velocious 1.0.159 → 1.0.160
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/routes/resolver.js"],"names":[],"mappings":"AAUA;IAIE;;;;;OAKG;IACH,kDAJG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACmF,OAAO,EAA/H,OAAO,kCAAkC,EAAE,OAAO,GAAG,OAAO,4CAA4C,EAAE,OAAO;QACvD,QAAQ,EAAlE,OAAO,mCAAmC,EAAE,OAAO;KAC7D,EAUA;IAlBD,iCAAiC;IACjC,QADW,MAAM,GAAG,SAAS,CACvB;IAaJ,qDAAkC;IAClC,YAA8B;IAC9B,2HAAsB;IACtB,8DAAwB;IAG1B,yBA+EC;IAED;;;;OAIG;IACH,2BAJW,OAAO,iBAAiB,EAAE,OAAO,QACjC,MAAM,GACJ;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS,CAsB1C;IAED;;;;;OAKG;IACH,6CAJG;QAAqB,MAAM,EAAnB,MAAM;QAC0C,eAAe,EAA/D,cAAc,kBAAkB,EAAE,OAAO;KACjD,GAAU,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/routes/resolver.js"],"names":[],"mappings":"AAUA;IAIE;;;;;OAKG;IACH,kDAJG;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO;QACmF,OAAO,EAA/H,OAAO,kCAAkC,EAAE,OAAO,GAAG,OAAO,4CAA4C,EAAE,OAAO;QACvD,QAAQ,EAAlE,OAAO,mCAAmC,EAAE,OAAO;KAC7D,EAUA;IAlBD,iCAAiC;IACjC,QADW,MAAM,GAAG,SAAS,CACvB;IAaJ,qDAAkC;IAClC,YAA8B;IAC9B,2HAAsB;IACtB,8DAAwB;IAG1B,yBA+EC;IAED;;;;OAIG;IACH,2BAJW,OAAO,iBAAiB,EAAE,OAAO,QACjC,MAAM,GACJ;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS,CAsB1C;IAED;;;;;OAKG;IACH,6CAJG;QAAqB,MAAM,EAAnB,MAAM;QAC0C,eAAe,EAA/D,cAAc,kBAAkB,EAAE,OAAO;KACjD,GAAU,OAAO,CAAC,IAAI,CAAC,CAezB;IAED;;;OAGG;IACH,uBAHW,IAAI,GACF,MAAM,CAqBlB;IAED;;;OAGG;IACH,iCAHW,GAAG,GACD,GAAG,CA2Bf;CACF;uBAjNoB,cAAc"}
|
|
@@ -131,11 +131,12 @@ export default class VelociousRoutesResolver {
|
|
|
131
131
|
const timestamp = this._formatTimestamp(new Date());
|
|
132
132
|
const remoteAddress = request.remoteAddress?.() || request.header("x-forwarded-for") || "unknown";
|
|
133
133
|
const loggedParams = /** @type {Record<string, unknown>} */ (this._sanitizeParamsForLogging(this.params));
|
|
134
|
+
const logMethod = this.configuration.getEnvironment() === "test" ? "debug" : "info";
|
|
134
135
|
delete loggedParams.action;
|
|
135
136
|
delete loggedParams.controller;
|
|
136
|
-
await this.logger
|
|
137
|
-
await this.logger
|
|
138
|
-
await this.logger
|
|
137
|
+
await this.logger[logMethod](() => `Started ${request.httpMethod()} "${request.path()}" for ${remoteAddress} at ${timestamp}`);
|
|
138
|
+
await this.logger[logMethod](() => `Processing by ${controllerClass.name}#${action}`);
|
|
139
|
+
await this.logger[logMethod](() => [` Parameters:`, loggedParams]);
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
141
142
|
* @param {Date} date - Date value.
|
|
@@ -186,4 +187,4 @@ export default class VelociousRoutesResolver {
|
|
|
186
187
|
return value;
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL3Jlc29sdmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxLQUFLLENBQUE7QUFDakMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDbkMsT0FBTyxZQUFZLE1BQU0sc0RBQXNELENBQUE7QUFDL0UsT0FBTyxXQUFXLE1BQU0sMEJBQTBCLENBQUE7QUFFbEQsTUFBTSxDQUFDLE9BQU8sT0FBTyx1QkFBdUI7SUFDMUMsaUNBQWlDO0lBQ2pDLE1BQU0sQ0FBQTtJQUVOOzs7OztPQUtHO0lBQ0gsWUFBWSxFQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQzdELElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRW5ELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksY0FBYyxD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QUE7SUFDdEgsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlCQUF5QixDQUFDLEtBQUs7UUFDN0IsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFLENBQUM7WUFDbEMsT0FBTztnQkFDTCxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJO2dCQUNqQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDMUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUU7YUFDbkIsQ0FBQTtRQUNILENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQ2xFLENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxrQ0FBa0M7WUFDbEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBRWpCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzFELENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge2Rpcm5hbWV9IGZyb20gXCJwYXRoXCJcbmltcG9ydCB7ZmlsZVVSTFRvUGF0aH0gZnJvbSBcInVybFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IFVwbG9hZGVkRmlsZSBmcm9tIFwiLi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3VwbG9hZGVkLWZpbGUvdXBsb2FkZWQtZmlsZS5qc1wiXG5pbXBvcnQgZW5zdXJlRXJyb3IgZnJvbSBcIi4uL3V0aWxzL2Vuc3VyZS1lcnJvci5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c1JvdXRlc1Jlc29sdmVyIHtcbiAgLyoqIEB0eXBlIHtMb2dnZXIgfCB1bmRlZmluZWR9ICovXG4gIGxvZ2dlclxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9odHRwLXNlcnZlci9jbGllbnQvcmVxdWVzdC5qc1wiKS5kZWZhdWx0IHwgaW1wb3J0KFwiLi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3dlYnNvY2tldC1yZXF1ZXN0LmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVxdWVzdCAtIFJlcXVlc3Qgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2h0dHAtc2VydmVyL2NsaWVudC9yZXNwb25zZS5qc1wiKS5kZWZhdWx0fSBhcmdzLnJlc3BvbnNlIC0gUmVzcG9uc2Ugb2JqZWN0LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIHJlcXVlc3QsIHJlc3BvbnNlfSkge1xuICAgIGlmICghY29uZmlndXJhdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTm8gY29uZmlndXJhdGlvbiBnaXZlblwiKVxuICAgIGlmICghcmVxdWVzdCkgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmVxdWVzdCBnaXZlblwiKVxuICAgIGlmICghcmVzcG9uc2UpIHRocm93IG5ldyBFcnJvcihcIk5vIHJlc3BvbnNlIGdpdmVuXCIpXG5cbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5wYXJhbXMgPSByZXF1ZXN0LnBhcmFtcygpXG4gICAgdGhpcy5yZXF1ZXN0ID0gcmVxdWVzdFxuICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZVxuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZSgpIHtcbiAgICBsZXQgY29udHJvbGxlclBhdGhcbiAgICBsZXQgY3VycmVudFJvdXRlID0gdGhpcy5jb25maWd1cmF0aW9uLnJvdXRlcy5yb290Um91dGVcbiAgICBjb25zdCByYXdQYXRoID0gdGhpcy5yZXF1ZXN0LnBhdGgoKVxuICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcmF3UGF0aC5zcGxpdChcIj9cIilbMF1cbiAgICBsZXQgdmlld1BhdGhcblxuICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gdGhpcy5tYXRjaFBhdGhXaXRoUm91dGVzKGN1cnJlbnRSb3V0ZSwgY3VycmVudFBhdGgpXG4gICAgY29uc3QgYWN0aW9uUGFyYW0gPSB0aGlzLnBhcmFtcy5hY3Rpb25cbiAgICBjb25zdCBjb250cm9sbGVyUGFyYW0gPSB0aGlzLnBhcmFtcy5jb250cm9sbGVyXG4gICAgY29uc3QgYWN0aW9uVmFsdWUgPSB0eXBlb2YgYWN0aW9uUGFyYW0gPT0gXCJzdHJpbmdcIiA/IGFjdGlvblBhcmFtIDogKEFycmF5LmlzQXJyYXkoYWN0aW9uUGFyYW0pID8gYWN0aW9uUGFyYW1bMF0gOiB1bmRlZmluZWQpXG4gICAgbGV0IGFjdGlvbiA9IHR5cGVvZiBhY3Rpb25WYWx1ZSA9PSBcInN0cmluZ1wiID8gaW5mbGVjdGlvbi5jYW1lbGl6ZShhY3Rpb25WYWx1ZS5yZXBsYWNlQWxsKFwiLVwiLCBcIl9cIiksIHRydWUpIDogdW5kZWZpbmVkXG4gICAgbGV0IGNvbnRyb2xsZXIgPSB0eXBlb2YgY29udHJvbGxlclBhcmFtID09IFwic3RyaW5nXCIgPyBjb250cm9sbGVyUGFyYW0gOiAoQXJyYXkuaXNBcnJheShjb250cm9sbGVyUGFyYW0pID8gY29udHJvbGxlclBhcmFtWzBdIDogdW5kZWZpbmVkKVxuXG4gICAgaWYgKCFtYXRjaFJlc3VsdCkge1xuICAgICAgY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKVxuICAgICAgY29uc3QgX19kaXJuYW1lID0gZGlybmFtZShfX2ZpbGVuYW1lKVxuICAgICAgY29uc3QgcmVxdWVzdGVkUGF0aCA9IGN1cnJlbnRQYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSB8fCBcIl9yb290XCJcbiAgICAgIGNvbnN0IGF0dGVtcHRlZENvbnRyb2xsZXJQYXRoID0gYCR7dGhpcy5jb25maWd1cmF0aW9uLmdldERpcmVjdG9yeSgpfS9zcmMvcm91dGVzLyR7cmVxdWVzdGVkUGF0aH0vY29udHJvbGxlci5qc2BcblxuICAgICAgYXdhaXQgKHRoaXMubG9nZ2VyIHx8IG5ldyBMb2dnZXIoXCJSb3V0ZXNSZXNvbHZlclwiLCB7Y29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9ufSkpLndhcm4oYE5vIHJvdXRlIG1hdGNoZWQgZm9yICR7cmF3UGF0aH0uIFRyaWVkIGNvbnRyb2xsZXIgYXQgJHthdHRlbXB0ZWRDb250cm9sbGVyUGF0aH1gKVxuXG4gICAgICBjb250cm9sbGVyID0gXCJlcnJvcnNcIlxuICAgICAgY29udHJvbGxlclBhdGggPSBcIi4vYnVpbHQtaW4vZXJyb3JzL2NvbnRyb2xsZXIuanNcIlxuICAgICAgYWN0aW9uID0gXCJub3RGb3VuZFwiXG4gICAgICB2aWV3UGF0aCA9IGF3YWl0IGZzLnJlYWxwYXRoKGAke19fZGlybmFtZX0vYnVpbHQtaW4vZXJyb3JzYClcbiAgICB9IGVsc2UgaWYgKGFjdGlvbikge1xuICAgICAgaWYgKCFjb250cm9sbGVyKSBjb250cm9sbGVyID0gXCJfcm9vdFwiXG5cbiAgICAgIGNvbnRyb2xsZXJQYXRoID0gYCR7dGhpcy5jb25maWd1cmF0aW9uLmdldERpcmVjdG9yeSgpfS9zcmMvcm91dGVzLyR7Y29udHJvbGxlcn0vY29udHJvbGxlci5qc2BcbiAgICAgIHZpZXdQYXRoID0gYCR7dGhpcy5jb25maWd1cmF0aW9uLmdldERpcmVjdG9yeSgpfS9zcmMvcm91dGVzLyR7Y29udHJvbGxlcn1gXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWF0Y2hlZCB0aGUgcm91dGUgYnV0IGRpZG4ndCBrbm93IHdoYXQgdG8gZG8gd2l0aCBpdDogJHtyYXdQYXRofSAoYWN0aW9uOiAke2FjdGlvbn0sIGNvbnRyb2xsZXI6ICR7Y29udHJvbGxlcn0sIHBhcmFtczogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnBhcmFtcyl9KWApXG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbGxlckNsYXNzSW1wb3J0ID0gYXdhaXQgaW1wb3J0KGNvbnRyb2xsZXJQYXRoKVxuICAgIGNvbnN0IGNvbnRyb2xsZXJDbGFzcyA9IGNvbnRyb2xsZXJDbGFzc0ltcG9ydC5kZWZhdWx0XG4gICAgY29uc3QgY29udHJvbGxlckluc3RhbmNlID0gbmV3IGNvbnRyb2xsZXJDbGFzcyh7XG4gICAgICBhY3Rpb24sXG4gICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICBjb250cm9sbGVyLFxuICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcbiAgICAgIHJlcXVlc3Q6IHRoaXMucmVxdWVzdCxcbiAgICAgIHJlc3BvbnNlOiB0aGlzLnJlc3BvbnNlLFxuICAgICAgdmlld1BhdGhcbiAgICB9KVxuXG4gICAgaWYgKCEoYWN0aW9uIGluIGNvbnRyb2xsZXJJbnN0YW5jZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBhY3Rpb24gb24gY29udHJvbGxlcjogJHtjb250cm9sbGVyfSMke2FjdGlvbn1gKVxuICAgIH1cblxuICAgIHRoaXMubG9nZ2VyIHx8PSBuZXcgTG9nZ2VyKGNvbnRyb2xsZXJDbGFzcy5uYW1lLCB7Y29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9ufSlcblxuICAgIGF3YWl0IHRoaXMuX2xvZ0FjdGlvblN0YXJ0KHthY3Rpb24sIGNvbnRyb2xsZXJDbGFzc30pXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmVuc3VyZUNvbm5lY3Rpb25zKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgY29udHJvbGxlckluc3RhbmNlLl9ydW5CZWZvcmVDYWxsYmFja3MoKVxuICAgICAgICBhd2FpdCBjb250cm9sbGVySW5zdGFuY2VbYWN0aW9uXSgpXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBlbnN1cmVkRXJyb3IgPSBlbnN1cmVFcnJvcihlcnJvcilcbiAgICAgIGNvbnN0IGVycm9yQ29udGV4dCA9IHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBodHRwTWV0aG9kOiB0aGlzLnJlcXVlc3QuaHR0cE1ldGhvZCgpLFxuICAgICAgICBwYXRoOiB0aGlzLnJlcXVlc3QucGF0aCgpLFxuICAgICAgICBzdGFnZTogXCJjb250cm9sbGVyLWFjdGlvblwiXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVycm9yV2l0aENvbnRleHQgPSAvKiogQHR5cGUge3t2ZWxvY2lvdXNDb250ZXh0Pzogb2JqZWN0fX0gKi8gKGVuc3VyZWRFcnJvcilcblxuICAgICAgZXJyb3JXaXRoQ29udGV4dC52ZWxvY2lvdXNDb250ZXh0ID0ge1xuICAgICAgICAuLi4oZXJyb3JXaXRoQ29udGV4dC52ZWxvY2lvdXNDb250ZXh0IHx8IHt9KSxcbiAgICAgICAgY29udHJvbGxlckFjdGlvbjogZXJyb3JDb250ZXh0XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVuc3VyZWRFcnJvclxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vYmFzZS1yb3V0ZS5qc1wiKS5kZWZhdWx0fSByb3V0ZSAtIFJvdXRlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGF0aCAtIFBhdGguXG4gICAqIEByZXR1cm5zIHt7cmVzdFBhdGg6IHN0cmluZ30gfCB1bmRlZmluZWR9IC0gUkVTVCBwYXRoIG1ldGFkYXRhIGZvciB0aGlzIHJvdXRlLlxuICAgKi9cbiAgbWF0Y2hQYXRoV2l0aFJvdXRlcyhyb3V0ZSwgcGF0aCkge1xuICAgIGNvbnN0IHBhdGhXaXRob3V0U2xhc2ggPSBwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKS5zcGxpdChcIj9cIilbMF1cblxuICAgIGZvciAoY29uc3Qgc3ViUm91dGUgb2Ygcm91dGUucm91dGVzKSB7XG4gICAgICBjb25zdCBtYXRjaFJlc3VsdCA9IHN1YlJvdXRlLm1hdGNoV2l0aFBhdGgoe1xuICAgICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxuICAgICAgICBwYXRoOiBwYXRoV2l0aG91dFNsYXNoLFxuICAgICAgICByZXF1ZXN0OiB0aGlzLnJlcXVlc3RcbiAgICAgIH0pXG5cbiAgICAgIGlmICghbWF0Y2hSZXN1bHQpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IHtyZXN0UGF0aH0gPSBtYXRjaFJlc3VsdFxuXG4gICAgICBpZiAocmVzdFBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF0Y2hQYXRoV2l0aFJvdXRlcyhzdWJSb3V0ZSwgcmVzdFBhdGgpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBtYXRjaFJlc3VsdFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5hY3Rpb24gLSBBY3Rpb24uXG4gICAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4uL2NvbnRyb2xsZXIuanNcIikuZGVmYXVsdH0gYXJncy5jb250cm9sbGVyQ2xhc3MgLSBDb250cm9sbGVyIGNsYXNzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgX2xvZ0FjdGlvblN0YXJ0KHthY3Rpb24sIGNvbnRyb2xsZXJDbGFzc30pIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5yZXF1ZXN0XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5fZm9ybWF0VGltZXN0YW1wKG5ldyBEYXRlKCkpXG4gICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IHJlcXVlc3QucmVtb3RlQWRkcmVzcz8uKCkgfHwgcmVxdWVzdC5oZWFkZXIoXCJ4LWZvcndhcmRlZC1mb3JcIikgfHwgXCJ1bmtub3duXCJcbiAgICBjb25zdCBsb2dnZWRQYXJhbXMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSAqLyAodGhpcy5fc2FuaXRpemVQYXJhbXNGb3JMb2dnaW5nKHRoaXMucGFyYW1zKSlcblxuICAgIGRlbGV0ZSBsb2dnZWRQYXJhbXMuYWN0aW9uXG4gICAgZGVsZXRlIGxvZ2dlZFBhcmFtcy5jb250cm9sbGVyXG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5pbmZvKCgpID0+IGBTdGFydGVkICR7cmVxdWVzdC5odHRwTWV0aG9kKCl9IFwiJHtyZXF1ZXN0LnBhdGgoKX1cIiBmb3IgJHtyZW1vdGVBZGRyZXNzfSBhdCAke3RpbWVzdGFtcH1gKVxuICAgIGF3YWl0IHRoaXMubG9nZ2VyLmluZm8oKCkgPT4gYFByb2Nlc3NpbmcgYnkgJHtjb250cm9sbGVyQ2xhc3MubmFtZX0jJHthY3Rpb259YClcbiAgICBhd2FpdCB0aGlzLmxvZ2dlci5pbmZvKCgpID0+IFtgICBQYXJhbWV0ZXJzOmAsIGxvZ2dlZFBhcmFtc10pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtEYXRlfSBkYXRlIC0gRGF0ZSB2YWx1ZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgdGltZXN0YW1wLlxuICAgKi9cbiAgX2Zvcm1hdFRpbWVzdGFtcChkYXRlKSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bSAtIE51bS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBwYWQuXG4gICAgICovXG4gICAgY29uc3QgcGFkID0gKG51bSkgPT4gU3RyaW5nKG51bSkucGFkU3RhcnQoMiwgXCIwXCIpXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKVxuICAgIGNvbnN0IG1vbnRoID0gcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpXG4gICAgY29uc3QgZGF5ID0gcGFkKGRhdGUuZ2V0RGF0ZSgpKVxuICAgIGNvbnN0IGhvdXJzID0gcGFkKGRhdGUuZ2V0SG91cnMoKSlcbiAgICBjb25zdCBtaW51dGVzID0gcGFkKGRhdGUuZ2V0TWludXRlcygpKVxuICAgIGNvbnN0IHNlY29uZHMgPSBwYWQoZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgY29uc3Qgb2Zmc2V0TWludXRlcyA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKVxuICAgIGNvbnN0IG9mZnNldFNpZ24gPSBvZmZzZXRNaW51dGVzID4gMCA/IFwiLVwiIDogXCIrXCJcbiAgICBjb25zdCBvZmZzZXRUb3RhbE1pbnV0ZXMgPSBNYXRoLmFicyhvZmZzZXRNaW51dGVzKVxuICAgIGNvbnN0IG9mZnNldEhvdXJzID0gcGFkKE1hdGguZmxvb3Iob2Zmc2V0VG90YWxNaW51dGVzIC8gNjApKVxuICAgIGNvbnN0IG9mZnNldFJlbWFpbmluZ01pbnV0ZXMgPSBwYWQob2Zmc2V0VG90YWxNaW51dGVzICUgNjApXG5cbiAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cnN9OiR7bWludXRlc306JHtzZWNvbmRzfSAke29mZnNldFNpZ259JHtvZmZzZXRIb3Vyc30ke29mZnNldFJlbWFpbmluZ01pbnV0ZXN9YFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFZhbHVlIHRvIHVzZS5cbiAgICogQHJldHVybnMge2FueX0gLSBUaGUgc2FuaXRpemUgcGFyYW1zIGZvciBsb2dnaW5nLlxuICAgKi9cbiAgX3Nhbml0aXplUGFyYW1zRm9yTG9nZ2luZyh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xhc3NOYW1lOiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICBmaWxlbmFtZTogdmFsdWUuZmlsZW5hbWUoKSxcbiAgICAgICAgc2l6ZTogdmFsdWUuc2l6ZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB0aGlzLl9zYW5pdGl6ZVBhcmFtc0ZvckxvZ2dpbmcoaXRlbSkpXG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICAgICAgY29uc3QgcmVzdWx0ID0ge31cblxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdGhpcy5fc2FuaXRpemVQYXJhbXNGb3JMb2dnaW5nKHZhbHVlW2tleV0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcm91dGVzL3Jlc29sdmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxLQUFLLENBQUE7QUFDakMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxjQUFjLENBQUE7QUFDbkMsT0FBTyxZQUFZLE1BQU0sc0RBQXNELENBQUE7QUFDL0UsT0FBTyxXQUFXLE1BQU0sMEJBQTBCLENBQUE7QUFFbEQsTUFBTSxDQUFDLE9BQU8sT0FBTyx1QkFBdUI7SUFDMUMsaUNBQWlDO0lBQ2pDLE1BQU0sQ0FBQTtJQUVOOzs7OztPQUtHO0lBQ0gsWUFBWSxFQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBQzdELElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRW5ELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO0lBQzFCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksY0FBYyxD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bXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gXCJ1cmxcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB7TG9nZ2VyfSBmcm9tIFwiLi4vbG9nZ2VyLmpzXCJcbmltcG9ydCBVcGxvYWRlZEZpbGUgZnJvbSBcIi4uL2h0dHAtc2VydmVyL2NsaWVudC91cGxvYWRlZC1maWxlL3VwbG9hZGVkLWZpbGUuanNcIlxuaW1wb3J0IGVuc3VyZUVycm9yIGZyb20gXCIuLi91dGlscy9lbnN1cmUtZXJyb3IuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNSb3V0ZXNSZXNvbHZlciB7XG4gIC8qKiBAdHlwZSB7TG9nZ2VyIHwgdW5kZWZpbmVkfSAqL1xuICBsb2dnZXJcblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24gaW5zdGFuY2UuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vaHR0cC1zZXJ2ZXIvY2xpZW50L3JlcXVlc3QuanNcIikuZGVmYXVsdCB8IGltcG9ydChcIi4uL2h0dHAtc2VydmVyL2NsaWVudC93ZWJzb2NrZXQtcmVxdWVzdC5qc1wiKS5kZWZhdWx0fSBhcmdzLnJlcXVlc3QgLSBSZXF1ZXN0IG9iamVjdC5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9odHRwLXNlcnZlci9jbGllbnQvcmVzcG9uc2UuanNcIikuZGVmYXVsdH0gYXJncy5yZXNwb25zZSAtIFJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCByZXF1ZXN0LCByZXNwb25zZX0pIHtcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHRocm93IG5ldyBFcnJvcihcIk5vIGNvbmZpZ3VyYXRpb24gZ2l2ZW5cIilcbiAgICBpZiAoIXJlcXVlc3QpIHRocm93IG5ldyBFcnJvcihcIk5vIHJlcXVlc3QgZ2l2ZW5cIilcbiAgICBpZiAoIXJlc3BvbnNlKSB0aHJvdyBuZXcgRXJyb3IoXCJObyByZXNwb25zZSBnaXZlblwiKVxuXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMucGFyYW1zID0gcmVxdWVzdC5wYXJhbXMoKVxuICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3RcbiAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2VcbiAgfVxuXG4gIGFzeW5jIHJlc29sdmUoKSB7XG4gICAgbGV0IGNvbnRyb2xsZXJQYXRoXG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuY29uZmlndXJhdGlvbi5yb3V0ZXMucm9vdFJvdXRlXG4gICAgY29uc3QgcmF3UGF0aCA9IHRoaXMucmVxdWVzdC5wYXRoKClcbiAgICBjb25zdCBjdXJyZW50UGF0aCA9IHJhd1BhdGguc3BsaXQoXCI/XCIpWzBdXG4gICAgbGV0IHZpZXdQYXRoXG5cbiAgICBjb25zdCBtYXRjaFJlc3VsdCA9IHRoaXMubWF0Y2hQYXRoV2l0aFJvdXRlcyhjdXJyZW50Um91dGUsIGN1cnJlbnRQYXRoKVxuICAgIGNvbnN0IGFjdGlvblBhcmFtID0gdGhpcy5wYXJhbXMuYWN0aW9uXG4gICAgY29uc3QgY29udHJvbGxlclBhcmFtID0gdGhpcy5wYXJhbXMuY29udHJvbGxlclxuICAgIGNvbnN0IGFjdGlvblZhbHVlID0gdHlwZW9mIGFjdGlvblBhcmFtID09IFwic3RyaW5nXCIgPyBhY3Rpb25QYXJhbSA6IChBcnJheS5pc0FycmF5KGFjdGlvblBhcmFtKSA/IGFjdGlvblBhcmFtWzBdIDogdW5kZWZpbmVkKVxuICAgIGxldCBhY3Rpb24gPSB0eXBlb2YgYWN0aW9uVmFsdWUgPT0gXCJzdHJpbmdcIiA/IGluZmxlY3Rpb24uY2FtZWxpemUoYWN0aW9uVmFsdWUucmVwbGFjZUFsbChcIi1cIiwgXCJfXCIpLCB0cnVlKSA6IHVuZGVmaW5lZFxuICAgIGxldCBjb250cm9sbGVyID0gdHlwZW9mIGNvbnRyb2xsZXJQYXJhbSA9PSBcInN0cmluZ1wiID8gY29udHJvbGxlclBhcmFtIDogKEFycmF5LmlzQXJyYXkoY29udHJvbGxlclBhcmFtKSA/IGNvbnRyb2xsZXJQYXJhbVswXSA6IHVuZGVmaW5lZClcblxuICAgIGlmICghbWF0Y2hSZXN1bHQpIHtcbiAgICAgIGNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybClcbiAgICAgIGNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoX19maWxlbmFtZSlcbiAgICAgIGNvbnN0IHJlcXVlc3RlZFBhdGggPSBjdXJyZW50UGF0aC5yZXBsYWNlKC9eXFwvLywgXCJcIikgfHwgXCJfcm9vdFwiXG4gICAgICBjb25zdCBhdHRlbXB0ZWRDb250cm9sbGVyUGF0aCA9IGAke3RoaXMuY29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKX0vc3JjL3JvdXRlcy8ke3JlcXVlc3RlZFBhdGh9L2NvbnRyb2xsZXIuanNgXG5cbiAgICAgIGF3YWl0ICh0aGlzLmxvZ2dlciB8fCBuZXcgTG9nZ2VyKFwiUm91dGVzUmVzb2x2ZXJcIiwge2NvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbn0pKS53YXJuKGBObyByb3V0ZSBtYXRjaGVkIGZvciAke3Jhd1BhdGh9LiBUcmllZCBjb250cm9sbGVyIGF0ICR7YXR0ZW1wdGVkQ29udHJvbGxlclBhdGh9YClcblxuICAgICAgY29udHJvbGxlciA9IFwiZXJyb3JzXCJcbiAgICAgIGNvbnRyb2xsZXJQYXRoID0gXCIuL2J1aWx0LWluL2Vycm9ycy9jb250cm9sbGVyLmpzXCJcbiAgICAgIGFjdGlvbiA9IFwibm90Rm91bmRcIlxuICAgICAgdmlld1BhdGggPSBhd2FpdCBmcy5yZWFscGF0aChgJHtfX2Rpcm5hbWV9L2J1aWx0LWluL2Vycm9yc2ApXG4gICAgfSBlbHNlIGlmIChhY3Rpb24pIHtcbiAgICAgIGlmICghY29udHJvbGxlcikgY29udHJvbGxlciA9IFwiX3Jvb3RcIlxuXG4gICAgICBjb250cm9sbGVyUGF0aCA9IGAke3RoaXMuY29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKX0vc3JjL3JvdXRlcy8ke2NvbnRyb2xsZXJ9L2NvbnRyb2xsZXIuanNgXG4gICAgICB2aWV3UGF0aCA9IGAke3RoaXMuY29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKX0vc3JjL3JvdXRlcy8ke2NvbnRyb2xsZXJ9YFxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1hdGNoZWQgdGhlIHJvdXRlIGJ1dCBkaWRuJ3Qga25vdyB3aGF0IHRvIGRvIHdpdGggaXQ6ICR7cmF3UGF0aH0gKGFjdGlvbjogJHthY3Rpb259LCBjb250cm9sbGVyOiAke2NvbnRyb2xsZXJ9LCBwYXJhbXM6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5wYXJhbXMpfSlgKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2xsZXJDbGFzc0ltcG9ydCA9IGF3YWl0IGltcG9ydChjb250cm9sbGVyUGF0aClcbiAgICBjb25zdCBjb250cm9sbGVyQ2xhc3MgPSBjb250cm9sbGVyQ2xhc3NJbXBvcnQuZGVmYXVsdFxuICAgIGNvbnN0IGNvbnRyb2xsZXJJbnN0YW5jZSA9IG5ldyBjb250cm9sbGVyQ2xhc3Moe1xuICAgICAgYWN0aW9uLFxuICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5jb25maWd1cmF0aW9uLFxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHBhcmFtczogdGhpcy5wYXJhbXMsXG4gICAgICByZXF1ZXN0OiB0aGlzLnJlcXVlc3QsXG4gICAgICByZXNwb25zZTogdGhpcy5yZXNwb25zZSxcbiAgICAgIHZpZXdQYXRoXG4gICAgfSlcblxuICAgIGlmICghKGFjdGlvbiBpbiBjb250cm9sbGVySW5zdGFuY2UpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgYWN0aW9uIG9uIGNvbnRyb2xsZXI6ICR7Y29udHJvbGxlcn0jJHthY3Rpb259YClcbiAgICB9XG5cbiAgICB0aGlzLmxvZ2dlciB8fD0gbmV3IExvZ2dlcihjb250cm9sbGVyQ2xhc3MubmFtZSwge2NvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbn0pXG5cbiAgICBhd2FpdCB0aGlzLl9sb2dBY3Rpb25TdGFydCh7YWN0aW9uLCBjb250cm9sbGVyQ2xhc3N9KVxuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5lbnN1cmVDb25uZWN0aW9ucyhhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IGNvbnRyb2xsZXJJbnN0YW5jZS5fcnVuQmVmb3JlQ2FsbGJhY2tzKClcbiAgICAgICAgYXdhaXQgY29udHJvbGxlckluc3RhbmNlW2FjdGlvbl0oKVxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc3QgZW5zdXJlZEVycm9yID0gZW5zdXJlRXJyb3IoZXJyb3IpXG4gICAgICBjb25zdCBlcnJvckNvbnRleHQgPSB7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY29udHJvbGxlcixcbiAgICAgICAgaHR0cE1ldGhvZDogdGhpcy5yZXF1ZXN0Lmh0dHBNZXRob2QoKSxcbiAgICAgICAgcGF0aDogdGhpcy5yZXF1ZXN0LnBhdGgoKSxcbiAgICAgICAgc3RhZ2U6IFwiY29udHJvbGxlci1hY3Rpb25cIlxuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJvcldpdGhDb250ZXh0ID0gLyoqIEB0eXBlIHt7dmVsb2Npb3VzQ29udGV4dD86IG9iamVjdH19ICovIChlbnN1cmVkRXJyb3IpXG5cbiAgICAgIGVycm9yV2l0aENvbnRleHQudmVsb2Npb3VzQ29udGV4dCA9IHtcbiAgICAgICAgLi4uKGVycm9yV2l0aENvbnRleHQudmVsb2Npb3VzQ29udGV4dCB8fCB7fSksXG4gICAgICAgIGNvbnRyb2xsZXJBY3Rpb246IGVycm9yQ29udGV4dFxuICAgICAgfVxuXG4gICAgICB0aHJvdyBlbnN1cmVkRXJyb3JcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2Jhc2Utcm91dGUuanNcIikuZGVmYXVsdH0gcm91dGUgLSBSb3V0ZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggLSBQYXRoLlxuICAgKiBAcmV0dXJucyB7e3Jlc3RQYXRoOiBzdHJpbmd9IHwgdW5kZWZpbmVkfSAtIFJFU1QgcGF0aCBtZXRhZGF0YSBmb3IgdGhpcyByb3V0ZS5cbiAgICovXG4gIG1hdGNoUGF0aFdpdGhSb3V0ZXMocm91dGUsIHBhdGgpIHtcbiAgICBjb25zdCBwYXRoV2l0aG91dFNsYXNoID0gcGF0aC5yZXBsYWNlKC9eXFwvLywgXCJcIikuc3BsaXQoXCI/XCIpWzBdXG5cbiAgICBmb3IgKGNvbnN0IHN1YlJvdXRlIG9mIHJvdXRlLnJvdXRlcykge1xuICAgICAgY29uc3QgbWF0Y2hSZXN1bHQgPSBzdWJSb3V0ZS5tYXRjaFdpdGhQYXRoKHtcbiAgICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcbiAgICAgICAgcGF0aDogcGF0aFdpdGhvdXRTbGFzaCxcbiAgICAgICAgcmVxdWVzdDogdGhpcy5yZXF1ZXN0XG4gICAgICB9KVxuXG4gICAgICBpZiAoIW1hdGNoUmVzdWx0KSBjb250aW51ZVxuXG4gICAgICBjb25zdCB7cmVzdFBhdGh9ID0gbWF0Y2hSZXN1bHRcblxuICAgICAgaWYgKHJlc3RQYXRoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hdGNoUGF0aFdpdGhSb3V0ZXMoc3ViUm91dGUsIHJlc3RQYXRoKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbWF0Y2hSZXN1bHRcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuYWN0aW9uIC0gQWN0aW9uLlxuICAgKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuLi9jb250cm9sbGVyLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29udHJvbGxlckNsYXNzIC0gQ29udHJvbGxlciBjbGFzcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIF9sb2dBY3Rpb25TdGFydCh7YWN0aW9uLCBjb250cm9sbGVyQ2xhc3N9KSB7XG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMucmVxdWVzdFxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IHRoaXMuX2Zvcm1hdFRpbWVzdGFtcChuZXcgRGF0ZSgpKVxuICAgIGNvbnN0IHJlbW90ZUFkZHJlc3MgPSByZXF1ZXN0LnJlbW90ZUFkZHJlc3M/LigpIHx8IHJlcXVlc3QuaGVhZGVyKFwieC1mb3J3YXJkZWQtZm9yXCIpIHx8IFwidW5rbm93blwiXG4gICAgY29uc3QgbG9nZ2VkUGFyYW1zID0gLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB1bmtub3duPn0gKi8gKHRoaXMuX3Nhbml0aXplUGFyYW1zRm9yTG9nZ2luZyh0aGlzLnBhcmFtcykpXG4gICAgY29uc3QgbG9nTWV0aG9kID0gdGhpcy5jb25maWd1cmF0aW9uLmdldEVudmlyb25tZW50KCkgPT09IFwidGVzdFwiID8gXCJkZWJ1Z1wiIDogXCJpbmZvXCJcblxuICAgIGRlbGV0ZSBsb2dnZWRQYXJhbXMuYWN0aW9uXG4gICAgZGVsZXRlIGxvZ2dlZFBhcmFtcy5jb250cm9sbGVyXG5cbiAgICBhd2FpdCB0aGlzLmxvZ2dlcltsb2dNZXRob2RdKCgpID0+IGBTdGFydGVkICR7cmVxdWVzdC5odHRwTWV0aG9kKCl9IFwiJHtyZXF1ZXN0LnBhdGgoKX1cIiBmb3IgJHtyZW1vdGVBZGRyZXNzfSBhdCAke3RpbWVzdGFtcH1gKVxuICAgIGF3YWl0IHRoaXMubG9nZ2VyW2xvZ01ldGhvZF0oKCkgPT4gYFByb2Nlc3NpbmcgYnkgJHtjb250cm9sbGVyQ2xhc3MubmFtZX0jJHthY3Rpb259YClcbiAgICBhd2FpdCB0aGlzLmxvZ2dlcltsb2dNZXRob2RdKCgpID0+IFtgICBQYXJhbWV0ZXJzOmAsIGxvZ2dlZFBhcmFtc10pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtEYXRlfSBkYXRlIC0gRGF0ZSB2YWx1ZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgdGltZXN0YW1wLlxuICAgKi9cbiAgX2Zvcm1hdFRpbWVzdGFtcChkYXRlKSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG51bSAtIE51bS5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBwYWQuXG4gICAgICovXG4gICAgY29uc3QgcGFkID0gKG51bSkgPT4gU3RyaW5nKG51bSkucGFkU3RhcnQoMiwgXCIwXCIpXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKVxuICAgIGNvbnN0IG1vbnRoID0gcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpXG4gICAgY29uc3QgZGF5ID0gcGFkKGRhdGUuZ2V0RGF0ZSgpKVxuICAgIGNvbnN0IGhvdXJzID0gcGFkKGRhdGUuZ2V0SG91cnMoKSlcbiAgICBjb25zdCBtaW51dGVzID0gcGFkKGRhdGUuZ2V0TWludXRlcygpKVxuICAgIGNvbnN0IHNlY29uZHMgPSBwYWQoZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgY29uc3Qgb2Zmc2V0TWludXRlcyA9IGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKVxuICAgIGNvbnN0IG9mZnNldFNpZ24gPSBvZmZzZXRNaW51dGVzID4gMCA/IFwiLVwiIDogXCIrXCJcbiAgICBjb25zdCBvZmZzZXRUb3RhbE1pbnV0ZXMgPSBNYXRoLmFicyhvZmZzZXRNaW51dGVzKVxuICAgIGNvbnN0IG9mZnNldEhvdXJzID0gcGFkKE1hdGguZmxvb3Iob2Zmc2V0VG90YWxNaW51dGVzIC8gNjApKVxuICAgIGNvbnN0IG9mZnNldFJlbWFpbmluZ01pbnV0ZXMgPSBwYWQob2Zmc2V0VG90YWxNaW51dGVzICUgNjApXG5cbiAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cnN9OiR7bWludXRlc306JHtzZWNvbmRzfSAke29mZnNldFNpZ259JHtvZmZzZXRIb3Vyc30ke29mZnNldFJlbWFpbmluZ01pbnV0ZXN9YFxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFZhbHVlIHRvIHVzZS5cbiAgICogQHJldHVybnMge2FueX0gLSBUaGUgc2FuaXRpemUgcGFyYW1zIGZvciBsb2dnaW5nLlxuICAgKi9cbiAgX3Nhbml0aXplUGFyYW1zRm9yTG9nZ2luZyh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVwbG9hZGVkRmlsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2xhc3NOYW1lOiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgICBmaWxlbmFtZTogdmFsdWUuZmlsZW5hbWUoKSxcbiAgICAgICAgc2l6ZTogdmFsdWUuc2l6ZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB0aGlzLl9zYW5pdGl6ZVBhcmFtc0ZvckxvZ2dpbmcoaXRlbSkpXG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSAqL1xuICAgICAgY29uc3QgcmVzdWx0ID0ge31cblxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdGhpcy5fc2FuaXRpemVQYXJhbXNGb3JMb2dnaW5nKHZhbHVlW2tleV0pXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-files-finder.d.ts","sourceRoot":"","sources":["../../../src/testing/test-files-finder.js"],"names":[],"mappings":"AAUA;IACE,+BAA+C;IAE/C;;;;;OAKG;IACH,kEAJG;QAAqB,SAAS,EAAtB,MAAM;QACU,WAAW,GAA3B,MAAM,EAAE;QACO,WAAW,EAA1B,MAAM,EAAE;KAClB,EAoCA;IAhCC,
|
|
1
|
+
{"version":3,"file":"test-files-finder.d.ts","sourceRoot":"","sources":["../../../src/testing/test-files-finder.js"],"names":[],"mappings":"AAUA;IACE,+BAA+C;IAE/C;;;;;OAKG;IACH,kEAJG;QAAqB,SAAS,EAAtB,MAAM;QACU,WAAW,GAA3B,MAAM,EAAE;QACO,WAAW,EAA1B,MAAM,EAAE;KAClB,EAoCA;IAhCC,kBAAwC;IACxC,eAA8B;IAG5B,sBAAkE;IASpE,qBAAqB;IACrB,sBAA8B;IAE9B,uBAAuB;IACvB,YADW,MAAM,EAAE,CACC;IAEpB,4CAA4C;IAC5C,iBADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CACf;IAEzB,uBAAuB;IACvB,UADW,MAAM,EAAE,CACuD;IAE1E,uBAAuB;IACvB,eADW,MAAM,EAAE,CACI;IAEvB,uBAAuB;IACvB,UADW,MAAM,EAAE,CACD;IAElB,uBAA0B;IAG5B;;OAEG;IACH,iBAFa,OAAO,CAAC,MAAM,EAAE,CAAC,CAgB7B;IAED;;OAEG;IACH,yBAFa,MAAM,CAEwD;IAE3E,wCAIC;IAED;;OAEG;IACH,mCAFa,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;;OAGG;IACH,2BAHW,MAAa,OAAO,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAwBzB;IAED;;;;OAIG;IACH,iCAJW,MAAM,aACN,MAAM,GACJ,OAAO,CA2BnB;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;OAEG;IACH,eAFa,OAAO,CAAC,IAAI,CAAC,CAgDzB;IAED;;;OAGG;IACH,+BAHW,MAAM,GACJ,MAAM,CAKlB;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,MAAM,CAKlB;CACF;uBA3PoB,cAAc"}
|
|
@@ -15,10 +15,10 @@ export default class TestFilesFinder {
|
|
|
15
15
|
*/
|
|
16
16
|
constructor({ directory, directories, processArgs, ...restArgs }) {
|
|
17
17
|
restArgsError(restArgs);
|
|
18
|
-
this.directory = directory;
|
|
18
|
+
this.directory = path.resolve(directory);
|
|
19
19
|
this.logger = new Logger(this);
|
|
20
20
|
if (directories) {
|
|
21
|
-
this.directories = directories;
|
|
21
|
+
this.directories = directories.map((entry) => path.resolve(entry));
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
24
|
this.directories = [
|
|
@@ -161,13 +161,31 @@ export default class TestFilesFinder {
|
|
|
161
161
|
for (const testArg of this.testArgs) {
|
|
162
162
|
const forceDirectory = testArg.endsWith("/") || testArg.endsWith(path.sep);
|
|
163
163
|
const fullPath = path.isAbsolute(testArg) ? testArg : path.resolve(this.directory, testArg);
|
|
164
|
-
const
|
|
164
|
+
const baseName = path.basename(this.directory);
|
|
165
|
+
const hasBasePrefix = testArg === baseName || testArg.startsWith(`${baseName}/`) || testArg.startsWith(`${baseName}${path.sep}`);
|
|
166
|
+
const basePrefixedFullPath = (!path.isAbsolute(testArg) && hasBasePrefix) ? path.resolve(path.dirname(this.directory), testArg) : null;
|
|
167
|
+
const fullPathCandidates = basePrefixedFullPath ? [basePrefixedFullPath] : [fullPath];
|
|
165
168
|
if (forceDirectory) {
|
|
166
|
-
this.
|
|
169
|
+
const preferredLocalPath = this.toLocalPath(basePrefixedFullPath || fullPath);
|
|
170
|
+
this.directoryArgs.push(this.ensureTrailingSlash(preferredLocalPath));
|
|
167
171
|
continue;
|
|
168
172
|
}
|
|
169
173
|
try {
|
|
170
|
-
|
|
174
|
+
let stats;
|
|
175
|
+
let resolvedFullPath;
|
|
176
|
+
for (const candidatePath of fullPathCandidates) {
|
|
177
|
+
try {
|
|
178
|
+
stats = await fs.stat(candidatePath);
|
|
179
|
+
resolvedFullPath = candidatePath;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// Keep searching
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (!stats || !resolvedFullPath)
|
|
187
|
+
throw new Error("Path not found");
|
|
188
|
+
const localPath = this.toLocalPath(resolvedFullPath);
|
|
171
189
|
if (stats.isDirectory()) {
|
|
172
190
|
this.directoryArgs.push(this.ensureTrailingSlash(localPath));
|
|
173
191
|
}
|
|
@@ -176,7 +194,8 @@ export default class TestFilesFinder {
|
|
|
176
194
|
}
|
|
177
195
|
}
|
|
178
196
|
catch {
|
|
179
|
-
this.
|
|
197
|
+
const fallbackLocalPath = this.toLocalPath(basePrefixedFullPath || fullPath);
|
|
198
|
+
this.fileArgs.push(fallbackLocalPath);
|
|
180
199
|
}
|
|
181
200
|
}
|
|
182
201
|
this._argsPrepared = true;
|
|
@@ -199,4 +218,4 @@ export default class TestFilesFinder {
|
|
|
199
218
|
return relativePath.split(path.sep).join("/");
|
|
200
219
|
}
|
|
201
220
|
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1maWxlcy1maW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy90ZXN0LWZpbGVzLWZpbmRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixPQUFPLFVBQVUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ25DLE9BQU8sYUFBYSxNQUFNLDZCQUE2QixDQUFBO0FBRXZELGlIQUFpSDtBQUNqSCxNQUFNLENBQUMsT0FBTyxPQUFPLGVBQWU7SUFDbEMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUUvQzs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUM1RCxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU5QixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRztnQkFDakIsR0FBRyxJQUFJLENBQUMsU0FBUyxZQUFZO2dCQUM3QixHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVE7Z0JBQ3pCLEdBQUcsSUFBSSxDQUFDLFNBQVMsT0FBTzthQUN6QixDQUFBO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFBO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcs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QVMsS0FBSyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFDdEMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUE7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUM1RCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tIFwiLi4vdXRpbHMvZmlsZS1leGlzdHMuanNcIlxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8vIEluY3JlZGlibHkgY29tcGxleCBjbGFzcyB0byBmaW5kIGZpbGVzIGluIG11bHRpcGxlIHNpbXVsdGFuaW91cyBydW5uaW5nIHByb21pc2VzIHRvIGRvIGl0IGFzIGZhc3QgYXMgcG9zc2libGUuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0RmlsZXNGaW5kZXIge1xuICBzdGF0aWMgSUdOT1JFRF9OQU1FUyA9IFtcIi5naXRcIiwgXCJub2RlX21vZHVsZXNcIl1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGlyZWN0b3J5IC0gRGlyZWN0b3J5IHBhdGguXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzLmRpcmVjdG9yaWVzXSAtIERpcmVjdG9yaWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLnByb2Nlc3NBcmdzIC0gUHJvY2VzcyBhcmdzLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2RpcmVjdG9yeSwgZGlyZWN0b3JpZXMsIHByb2Nlc3NBcmdzLCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5kaXJlY3RvcnkgPSBkaXJlY3RvcnlcbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcblxuICAgIGlmIChkaXJlY3Rvcmllcykge1xuICAgICAgdGhpcy5kaXJlY3RvcmllcyA9IGRpcmVjdG9yaWVzXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlyZWN0b3JpZXMgPSBbXG4gICAgICAgIGAke3RoaXMuZGlyZWN0b3J5fS9fX3Rlc3RzX19gLFxuICAgICAgICBgJHt0aGlzLmRpcmVjdG9yeX0vdGVzdHNgLFxuICAgICAgICBgJHt0aGlzLmRpcmVjdG9yeX0vc3BlY2BcbiAgICAgIF1cbiAgICB9XG5cbiAgICB0aGlzLmZpbmRpbmdDb3VudCA9IDBcbiAgICB0aGlzLnByb2Nlc3NBcmdzID0gcHJvY2Vzc0FyZ3NcblxuICAgIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gICAgdGhpcy5mb3VuZEZpbGVzID0gW11cblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPG51bWJlciwgUHJvbWlzZTx2b2lkPj59ICovXG4gICAgdGhpcy5maW5kaW5nUHJvbWlzZXMgPSB7fVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICB0aGlzLnRlc3RBcmdzID0gdGhpcy5wcm9jZXNzQXJncy5maWx0ZXIoKHByb2Nlc3NBcmcsIGluZGV4KSA9PiBpbmRleCAhPSAwKVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICB0aGlzLmRpcmVjdG9yeUFyZ3MgPSBbXVxuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICB0aGlzLmZpbGVBcmdzID0gW11cblxuICAgIHRoaXMuX2FyZ3NQcmVwYXJlZCA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fSAtIFJlc29sdmVzIHdpdGggdGhlIHRlc3QgZmlsZXMuXG4gICAqL1xuICBhc3luYyBmaW5kVGVzdEZpbGVzKCkge1xuICAgIGF3YWl0IHRoaXMucHJlcGFyZUFyZ3MoKVxuXG4gICAgYXdhaXQgdGhpcy53aXRoRmluZGluZ0NvdW50KGFzeW5jICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZGlyZWN0b3J5IG9mIHRoaXMuZGlyZWN0b3JpZXMpIHtcbiAgICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoZGlyZWN0b3J5KSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZmluZFRlc3RGaWxlc0luRGlyKGRpcmVjdG9yeSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBhd2FpdCB0aGlzLndhaXRGb3JGaW5kaW5nUHJvbWlzZXMoKVxuXG4gICAgcmV0dXJuIHRoaXMuZm91bmRGaWxlc1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IC0gVGhlIGluZyBwcm9taXNlcyBsZW5ndGguXG4gICAqL1xuICBmaW5kaW5nUHJvbWlzZXNMZW5ndGgoKSB7IHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmZpbmRpbmdQcm9taXNlcykubGVuZ3RoIH1cblxuICBhc3luYyB3YWl0Rm9yRmluZGluZ1Byb21pc2VzKCkge1xuICAgIHdoaWxlICh0aGlzLmZpbmRpbmdQcm9taXNlc0xlbmd0aCgpID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yRmluZGluZ1Byb21pc2VzSXRlcmF0aW9uKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIHdhaXRGb3JGaW5kaW5nUHJvbWlzZXNJdGVyYXRpb24oKSB7XG4gICAgY29uc3QgdW5maW5pc2hlZFByb21pc2VzID0gW11cblxuICAgIGZvciAoY29uc3QgZmluZGluZ1Byb21pc2VJZCBpbiB0aGlzLmZpbmRpbmdQcm9taXNlcykge1xuICAgICAgY29uc3QgZmluZGluZ1Byb21pc2UgPSB0aGlzLmZpbmRpbmdQcm9taXNlc1tmaW5kaW5nUHJvbWlzZUlkXVxuXG4gICAgICB1bmZpbmlzaGVkUHJvbWlzZXMucHVzaChmaW5kaW5nUHJvbWlzZSlcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh1bmZpbmlzaGVkUHJvbWlzZXMpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtmdW5jdGlvbigpIDogUHJvbWlzZTx2b2lkPn0gY2FsbGJhY2sgLSBDYWxsYmFjayBmdW5jdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIHdpdGhGaW5kaW5nQ291bnQoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGNvbnN0IGZpbmRpbmdQcm9taXNlID0gY2FsbGJhY2soKVxuICAgICAgY29uc3QgZmluZGluZ0NvdW50ID0gdGhpcy5maW5kaW5nQ291bnRcblxuICAgICAgdGhpcy5maW5kaW5nQ291bnQgKz0gMVxuICAgICAgdGhpcy5maW5kaW5nUHJvbWlzZXNbZmluZGluZ0NvdW50XSA9IGZpbmRpbmdQcm9taXNlXG5cbiAgICAgIGZpbmRpbmdQcm9taXNlLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBkZWxldGUgdGhpcy5maW5kaW5nUHJvbWlzZXNbZmluZGluZ0NvdW50XVxuXG4gICAgICAgIHJlc29sdmUodW5kZWZpbmVkKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXIgLSBEaXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gY29tcGxldGUuXG4gICAqL1xuICBhc3luYyBmaW5kVGVzdEZpbGVzSW5EaXIoZGlyKSB7XG4gICAgYXdhaXQgdGhpcy53aXRoRmluZGluZ0NvdW50KGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZnMucmVhZGRpcihkaXIpXG5cbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoVGVzdEZpbGVzRmluZGVyLklHTk9SRURfTkFNRVMuaW5jbHVkZXMoZmlsZSkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBgJHtkaXJ9LyR7ZmlsZX1gXG4gICAgICAgIGNvbnN0IGxvY2FsUGF0aCA9IGZ1bGxQYXRoLnJlcGxhY2UoYCR7dGhpcy5kaXJlY3Rvcnl9L2AsIFwiXCIpXG4gICAgICAgIGNvbnN0IGlzRGlyID0gKGF3YWl0IGZzLnN0YXQoZnVsbFBhdGgpKS5pc0RpcmVjdG9yeSgpXG5cbiAgICAgICAgaWYgKGlzRGlyKSB7XG4gICAgICAgICAgdGhpcy5maW5kVGVzdEZpbGVzSW5EaXIoZnVsbFBhdGgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNGaWxlTWF0Y2hpbmdSZXF1aXJlbWVudHMoZmlsZSwgbG9jYWxQYXRoKSkge1xuICAgICAgICAgICAgdGhpcy5mb3VuZEZpbGVzLnB1c2goZnVsbFBhdGgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZSAtIEZpbGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbFBhdGggLSBMb2NhbCBwYXRoLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGZpbGUgbWF0Y2hpbmcgcmVxdWlyZW1lbnRzLlxuICAgKi9cbiAgaXNGaWxlTWF0Y2hpbmdSZXF1aXJlbWVudHMoZmlsZSwgbG9jYWxQYXRoKSB7XG4gICAgaWYgKHRoaXMuZGlyZWN0b3J5QXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGRpcmVjdG9yeUFyZyBvZiB0aGlzLmRpcmVjdG9yeUFyZ3MpIHtcbiAgICAgICAgaWYgKGxvY2FsUGF0aC5zdGFydHNXaXRoKGRpcmVjdG9yeUFyZykgJiYgdGhpcy5sb29rc0xpa2VUZXN0RmlsZShmaWxlKSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiRm91bmQgdGVzdCBmaWxlIGJlY2F1c2UgbWF0Y2hpbmcgZGlyIGFuZCBsb29rcyBsaWtlIHRoaXMgZmlsZTpcIiwgZmlsZSlcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsZUFyZ3MubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBmaWxlQXJnIG9mIHRoaXMuZmlsZUFyZ3MpIHtcbiAgICAgICAgaWYgKGZpbGVBcmcgPT0gbG9jYWxQYXRoKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJGb3VuZCB0ZXN0IGZpbGUgYmVjYXVzZSBtYXRjaGluZyBmaWxlIGFyZzpcIiwgZmlsZSlcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmlsZUFyZ3MubGVuZ3RoID09IDAgJiYgdGhpcy5kaXJlY3RvcnlBcmdzLmxlbmd0aCA9PSAwICYmIHRoaXMubG9va3NMaWtlVGVzdEZpbGUoZmlsZSkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiRm91bmQgdGVzdCBmaWxlIGJlY2F1c2UgbG9va3MgbGlrZSB0aGlzIGZpbGU6XCIsIGZpbGUpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlIC0gRmlsZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBsb29rcyBsaWtlIHRlc3QgZmlsZS5cbiAgICovXG4gIGxvb2tzTGlrZVRlc3RGaWxlKGZpbGUpIHtcbiAgICByZXR1cm4gQm9vbGVhbihmaWxlLm1hdGNoKC8tKHNwZWN8dGVzdClcXC4obXwpanMkLykpXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiB0ZXN0IGFyZ3MgYXJlIHByZXBhcmVkLlxuICAgKi9cbiAgYXN5bmMgcHJlcGFyZUFyZ3MoKSB7XG4gICAgaWYgKHRoaXMuX2FyZ3NQcmVwYXJlZCkgcmV0dXJuXG5cbiAgICBmb3IgKGNvbnN0IHRlc3RBcmcgb2YgdGhpcy50ZXN0QXJncykge1xuICAgICAgY29uc3QgZm9yY2VEaXJlY3RvcnkgPSB0ZXN0QXJnLmVuZHNXaXRoKFwiL1wiKSB8fCB0ZXN0QXJnLmVuZHNXaXRoKHBhdGguc2VwKVxuICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmlzQWJzb2x1dGUodGVzdEFyZykgPyB0ZXN0QXJnIDogcGF0aC5yZXNvbHZlKHRoaXMuZGlyZWN0b3J5LCB0ZXN0QXJnKVxuICAgICAgY29uc3QgbG9jYWxQYXRoID0gdGhpcy50b0xvY2FsUGF0aChmdWxsUGF0aClcblxuICAgICAgaWYgKGZvcmNlRGlyZWN0b3J5KSB7XG4gICAgICAgIHRoaXMuZGlyZWN0b3J5QXJncy5wdXNoKHRoaXMuZW5zdXJlVHJhaWxpbmdTbGFzaChsb2NhbFBhdGgpKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IGZzLnN0YXQoZnVsbFBhdGgpXG5cbiAgICAgICAgaWYgKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICB0aGlzLmRpcmVjdG9yeUFyZ3MucHVzaCh0aGlzLmVuc3VyZVRyYWlsaW5nU2xhc2gobG9jYWxQYXRoKSlcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0cy5pc0ZpbGUoKSkge1xuICAgICAgICAgIHRoaXMuZmlsZUFyZ3MucHVzaChsb2NhbFBhdGgpXG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aGlzLmZpbGVBcmdzLnB1c2gobG9jYWxQYXRoKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2FyZ3NQcmVwYXJlZCA9IHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxQYXRoIC0gTG9jYWwgcGF0aC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBOb3JtYWxpemVkIGxvY2FsIHBhdGggd2l0aCB0cmFpbGluZyBzbGFzaC5cbiAgICovXG4gIGVuc3VyZVRyYWlsaW5nU2xhc2gobG9jYWxQYXRoKSB7XG4gICAgaWYgKGxvY2FsUGF0aCA9PT0gXCJcIikgcmV0dXJuIGxvY2FsUGF0aFxuICAgIHJldHVybiBsb2NhbFBhdGguZW5kc1dpdGgoXCIvXCIpID8gbG9jYWxQYXRoIDogYCR7bG9jYWxQYXRofS9gXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZ1bGxQYXRoIC0gRnVsbCBwYXRoLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIExvY2FsIHBhdGggcmVsYXRpdmUgdG8gdGhlIGJhc2UgZGlyZWN0b3J5LlxuICAgKi9cbiAgdG9Mb2NhbFBhdGgoZnVsbFBhdGgpIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHRoaXMuZGlyZWN0b3J5LCBmdWxsUGF0aClcbiAgICByZXR1cm4gcmVsYXRpdmVQYXRoLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKVxuICB9XG59XG4iXX0=
|
|
221
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1maWxlcy1maW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdGluZy90ZXN0LWZpbGVzLWZpbmRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzVCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixPQUFPLFVBQVUsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sY0FBYyxDQUFBO0FBQ25DLE9BQU8sYUFBYSxNQUFNLDZCQUE2QixDQUFBO0FBRXZELGlIQUFpSDtBQUNqSCxNQUFNLENBQUMsT0FBTyxPQUFPLGVBQWU7SUFDbEMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUUvQzs7Ozs7T0FLRztJQUNILFlBQVksRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLFFBQVEsRUFBQztRQUM1RCxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFOUIsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNwRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUc7Z0JBQ2pCLEdBQUcsSUFBSSxDQUFDLFNBQVMsWUFBWTtnQkFDN0IsR0FBRyxJQUFJLENBQUMsU0FBUyxRQUFRO2dCQUN6QixHQUFHLElB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SUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7WUFDdkMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsU0FBUztRQUMzQixJQUFJLFNBQVMsS0FBSyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFDdEMsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxHQUFHLENBQUE7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUM1RCxPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5pbXBvcnQgZmlsZUV4aXN0cyBmcm9tIFwiLi4vdXRpbHMvZmlsZS1leGlzdHMuanNcIlxuaW1wb3J0IHtMb2dnZXJ9IGZyb20gXCIuLi9sb2dnZXIuanNcIlxuaW1wb3J0IHJlc3RBcmdzRXJyb3IgZnJvbSBcIi4uL3V0aWxzL3Jlc3QtYXJncy1lcnJvci5qc1wiXG5cbi8vIEluY3JlZGlibHkgY29tcGxleCBjbGFzcyB0byBmaW5kIGZpbGVzIGluIG11bHRpcGxlIHNpbXVsdGFuaW91cyBydW5uaW5nIHByb21pc2VzIHRvIGRvIGl0IGFzIGZhc3QgYXMgcG9zc2libGUuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUZXN0RmlsZXNGaW5kZXIge1xuICBzdGF0aWMgSUdOT1JFRF9OQU1FUyA9IFtcIi5naXRcIiwgXCJub2RlX21vZHVsZXNcIl1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zIG9iamVjdC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGlyZWN0b3J5IC0gRGlyZWN0b3J5IHBhdGguXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFthcmdzLmRpcmVjdG9yaWVzXSAtIERpcmVjdG9yaWVzLlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLnByb2Nlc3NBcmdzIC0gUHJvY2VzcyBhcmdzLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2RpcmVjdG9yeSwgZGlyZWN0b3JpZXMsIHByb2Nlc3NBcmdzLCAuLi5yZXN0QXJnc30pIHtcbiAgICByZXN0QXJnc0Vycm9yKHJlc3RBcmdzKVxuXG4gICAgdGhpcy5kaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZGlyZWN0b3J5KVxuICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcih0aGlzKVxuXG4gICAgaWYgKGRpcmVjdG9yaWVzKSB7XG4gICAgICB0aGlzLmRpcmVjdG9yaWVzID0gZGlyZWN0b3JpZXMubWFwKChlbnRyeSkgPT4gcGF0aC5yZXNvbHZlKGVudHJ5KSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaXJlY3RvcmllcyA9IFtcbiAgICAgICAgYCR7dGhpcy5kaXJlY3Rvcnl9L19fdGVzdHNfX2AsXG4gICAgICAgIGAke3RoaXMuZGlyZWN0b3J5fS90ZXN0c2AsXG4gICAgICAgIGAke3RoaXMuZGlyZWN0b3J5fS9zcGVjYFxuICAgICAgXVxuICAgIH1cblxuICAgIHRoaXMuZmluZGluZ0NvdW50ID0gMFxuICAgIHRoaXMucHJvY2Vzc0FyZ3MgPSBwcm9jZXNzQXJnc1xuXG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICB0aGlzLmZvdW5kRmlsZXMgPSBbXVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8bnVtYmVyLCBQcm9taXNlPHZvaWQ+Pn0gKi9cbiAgICB0aGlzLmZpbmRpbmdQcm9taXNlcyA9IHt9XG5cbiAgICAvKiogQHR5cGUge3N0cmluZ1tdfSAqL1xuICAgIHRoaXMudGVzdEFyZ3MgPSB0aGlzLnByb2Nlc3NBcmdzLmZpbHRlcigocHJvY2Vzc0FyZywgaW5kZXgpID0+IGluZGV4ICE9IDApXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ1tdfSAqL1xuICAgIHRoaXMuZGlyZWN0b3J5QXJncyA9IFtdXG5cbiAgICAvKiogQHR5cGUge3N0cmluZ1tdfSAqL1xuICAgIHRoaXMuZmlsZUFyZ3MgPSBbXVxuXG4gICAgdGhpcy5fYXJnc1ByZXBhcmVkID0gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgdGVzdCBmaWxlcy5cbiAgICovXG4gIGFzeW5jIGZpbmRUZXN0RmlsZXMoKSB7XG4gICAgYXdhaXQgdGhpcy5wcmVwYXJlQXJncygpXG5cbiAgICBhd2FpdCB0aGlzLndpdGhGaW5kaW5nQ291bnQoYXN5bmMgKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBkaXJlY3Rvcnkgb2YgdGhpcy5kaXJlY3Rvcmllcykge1xuICAgICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhkaXJlY3RvcnkpKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5maW5kVGVzdEZpbGVzSW5EaXIoZGlyZWN0b3J5KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIGF3YWl0IHRoaXMud2FpdEZvckZpbmRpbmdQcm9taXNlcygpXG5cbiAgICByZXR1cm4gdGhpcy5mb3VuZEZpbGVzXG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge251bWJlcn0gLSBUaGUgaW5nIHByb21pc2VzIGxlbmd0aC5cbiAgICovXG4gIGZpbmRpbmdQcm9taXNlc0xlbmd0aCgpIHsgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmluZGluZ1Byb21pc2VzKS5sZW5ndGggfVxuXG4gIGFzeW5jIHdhaXRGb3JGaW5kaW5nUHJvbWlzZXMoKSB7XG4gICAgd2hpbGUgKHRoaXMuZmluZGluZ1Byb21pc2VzTGVuZ3RoKCkgPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLndhaXRGb3JGaW5kaW5nUHJvbWlzZXNJdGVyYXRpb24oKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgd2FpdEZvckZpbmRpbmdQcm9taXNlc0l0ZXJhdGlvbigpIHtcbiAgICBjb25zdCB1bmZpbmlzaGVkUHJvbWlzZXMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBmaW5kaW5nUHJvbWlzZUlkIGluIHRoaXMuZmluZGluZ1Byb21pc2VzKSB7XG4gICAgICBjb25zdCBmaW5kaW5nUHJvbWlzZSA9IHRoaXMuZmluZGluZ1Byb21pc2VzW2ZpbmRpbmdQcm9taXNlSWRdXG5cbiAgICAgIHVuZmluaXNoZWRQcm9taXNlcy5wdXNoKGZpbmRpbmdQcm9taXNlKVxuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHVuZmluaXNoZWRQcm9taXNlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2Z1bmN0aW9uKCkgOiBQcm9taXNlPHZvaWQ+fSBjYWxsYmFjayAtIENhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgd2l0aEZpbmRpbmdDb3VudChjYWxsYmFjaykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgZmluZGluZ1Byb21pc2UgPSBjYWxsYmFjaygpXG4gICAgICBjb25zdCBmaW5kaW5nQ291bnQgPSB0aGlzLmZpbmRpbmdDb3VudFxuXG4gICAgICB0aGlzLmZpbmRpbmdDb3VudCArPSAxXG4gICAgICB0aGlzLmZpbmRpbmdQcm9taXNlc1tmaW5kaW5nQ291bnRdID0gZmluZGluZ1Byb21pc2VcblxuICAgICAgZmluZGluZ1Byb21pc2UuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpbmRpbmdQcm9taXNlc1tmaW5kaW5nQ291bnRdXG5cbiAgICAgICAgcmVzb2x2ZSh1bmRlZmluZWQpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRpciAtIERpci5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBjb21wbGV0ZS5cbiAgICovXG4gIGFzeW5jIGZpbmRUZXN0RmlsZXNJbkRpcihkaXIpIHtcbiAgICBhd2FpdCB0aGlzLndpdGhGaW5kaW5nQ291bnQoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGRpcilcblxuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGlmIChUZXN0RmlsZXNGaW5kZXIuSUdOT1JFRF9OQU1FUy5pbmNsdWRlcyhmaWxlKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmdWxsUGF0aCA9IGAke2Rpcn0vJHtmaWxlfWBcbiAgICAgICAgY29uc3QgbG9jYWxQYXRoID0gZnVsbFBhdGgucmVwbGFjZShgJHt0aGlzLmRpcmVjdG9yeX0vYCwgXCJcIilcbiAgICAgICAgY29uc3QgaXNEaXIgPSAoYXdhaXQgZnMuc3RhdChmdWxsUGF0aCkpLmlzRGlyZWN0b3J5KClcblxuICAgICAgICBpZiAoaXNEaXIpIHtcbiAgICAgICAgICB0aGlzLmZpbmRUZXN0RmlsZXNJbkRpcihmdWxsUGF0aClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5pc0ZpbGVNYXRjaGluZ1JlcXVpcmVtZW50cyhmaWxlLCBsb2NhbFBhdGgpKSB7XG4gICAgICAgICAgICB0aGlzLmZvdW5kRmlsZXMucHVzaChmdWxsUGF0aClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlIC0gRmlsZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGxvY2FsUGF0aCAtIExvY2FsIHBhdGguXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgZmlsZSBtYXRjaGluZyByZXF1aXJlbWVudHMuXG4gICAqL1xuICBpc0ZpbGVNYXRjaGluZ1JlcXVpcmVtZW50cyhmaWxlLCBsb2NhbFBhdGgpIHtcbiAgICBpZiAodGhpcy5kaXJlY3RvcnlBcmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgZGlyZWN0b3J5QXJnIG9mIHRoaXMuZGlyZWN0b3J5QXJncykge1xuICAgICAgICBpZiAobG9jYWxQYXRoLnN0YXJ0c1dpdGgoZGlyZWN0b3J5QXJnKSAmJiB0aGlzLmxvb2tzTGlrZVRlc3RGaWxlKGZpbGUpKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJGb3VuZCB0ZXN0IGZpbGUgYmVjYXVzZSBtYXRjaGluZyBkaXIgYW5kIGxvb2tzIGxpa2UgdGhpcyBmaWxlOlwiLCBmaWxlKVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWxlQXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpbGVBcmcgb2YgdGhpcy5maWxlQXJncykge1xuICAgICAgICBpZiAoZmlsZUFyZyA9PSBsb2NhbFBhdGgpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkZvdW5kIHRlc3QgZmlsZSBiZWNhdXNlIG1hdGNoaW5nIGZpbGUgYXJnOlwiLCBmaWxlKVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWxlQXJncy5sZW5ndGggPT0gMCAmJiB0aGlzLmRpcmVjdG9yeUFyZ3MubGVuZ3RoID09IDAgJiYgdGhpcy5sb29rc0xpa2VUZXN0RmlsZShmaWxlKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJGb3VuZCB0ZXN0IGZpbGUgYmVjYXVzZSBsb29rcyBsaWtlIHRoaXMgZmlsZTpcIiwgZmlsZSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGUgLSBGaWxlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGxvb2tzIGxpa2UgdGVzdCBmaWxlLlxuICAgKi9cbiAgbG9va3NMaWtlVGVzdEZpbGUoZmlsZSkge1xuICAgIHJldHVybiBCb29sZWFuKGZpbGUubWF0Y2goLy0oc3BlY3x0ZXN0KVxcLihtfClqcyQvKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHRlc3QgYXJncyBhcmUgcHJlcGFyZWQuXG4gICAqL1xuICBhc3luYyBwcmVwYXJlQXJncygpIHtcbiAgICBpZiAodGhpcy5fYXJnc1ByZXBhcmVkKSByZXR1cm5cblxuICAgIGZvciAoY29uc3QgdGVzdEFyZyBvZiB0aGlzLnRlc3RBcmdzKSB7XG4gICAgICBjb25zdCBmb3JjZURpcmVjdG9yeSA9IHRlc3RBcmcuZW5kc1dpdGgoXCIvXCIpIHx8IHRlc3RBcmcuZW5kc1dpdGgocGF0aC5zZXApXG4gICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGguaXNBYnNvbHV0ZSh0ZXN0QXJnKSA/IHRlc3RBcmcgOiBwYXRoLnJlc29sdmUodGhpcy5kaXJlY3RvcnksIHRlc3RBcmcpXG4gICAgICBjb25zdCBiYXNlTmFtZSA9IHBhdGguYmFzZW5hbWUodGhpcy5kaXJlY3RvcnkpXG4gICAgICBjb25zdCBoYXNCYXNlUHJlZml4ID0gdGVzdEFyZyA9PT0gYmFzZU5hbWUgfHwgdGVzdEFyZy5zdGFydHNXaXRoKGAke2Jhc2VOYW1lfS9gKSB8fCB0ZXN0QXJnLnN0YXJ0c1dpdGgoYCR7YmFzZU5hbWV9JHtwYXRoLnNlcH1gKVxuICAgICAgY29uc3QgYmFzZVByZWZpeGVkRnVsbFBhdGggPSAoIXBhdGguaXNBYnNvbHV0ZSh0ZXN0QXJnKSAmJiBoYXNCYXNlUHJlZml4KSA/IHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUodGhpcy5kaXJlY3RvcnkpLCB0ZXN0QXJnKSA6IG51bGxcbiAgICAgIGNvbnN0IGZ1bGxQYXRoQ2FuZGlkYXRlcyA9IGJhc2VQcmVmaXhlZEZ1bGxQYXRoID8gW2Jhc2VQcmVmaXhlZEZ1bGxQYXRoXSA6IFtmdWxsUGF0aF1cblxuICAgICAgaWYgKGZvcmNlRGlyZWN0b3J5KSB7XG4gICAgICAgIGNvbnN0IHByZWZlcnJlZExvY2FsUGF0aCA9IHRoaXMudG9Mb2NhbFBhdGgoYmFzZVByZWZpeGVkRnVsbFBhdGggfHwgZnVsbFBhdGgpXG4gICAgICAgIHRoaXMuZGlyZWN0b3J5QXJncy5wdXNoKHRoaXMuZW5zdXJlVHJhaWxpbmdTbGFzaChwcmVmZXJyZWRMb2NhbFBhdGgpKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBsZXQgc3RhdHNcbiAgICAgICAgbGV0IHJlc29sdmVkRnVsbFBhdGhcblxuICAgICAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZVBhdGggb2YgZnVsbFBhdGhDYW5kaWRhdGVzKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0YXRzID0gYXdhaXQgZnMuc3RhdChjYW5kaWRhdGVQYXRoKVxuICAgICAgICAgICAgcmVzb2x2ZWRGdWxsUGF0aCA9IGNhbmRpZGF0ZVBhdGhcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBLZWVwIHNlYXJjaGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc3RhdHMgfHwgIXJlc29sdmVkRnVsbFBhdGgpIHRocm93IG5ldyBFcnJvcihcIlBhdGggbm90IGZvdW5kXCIpXG4gICAgICAgIGNvbnN0IGxvY2FsUGF0aCA9IHRoaXMudG9Mb2NhbFBhdGgocmVzb2x2ZWRGdWxsUGF0aClcblxuICAgICAgICBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgIHRoaXMuZGlyZWN0b3J5QXJncy5wdXNoKHRoaXMuZW5zdXJlVHJhaWxpbmdTbGFzaChsb2NhbFBhdGgpKVxuICAgICAgICB9IGVsc2UgaWYgKHN0YXRzLmlzRmlsZSgpKSB7XG4gICAgICAgICAgdGhpcy5maWxlQXJncy5wdXNoKGxvY2FsUGF0aClcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxQYXRoID0gdGhpcy50b0xvY2FsUGF0aChiYXNlUHJlZml4ZWRGdWxsUGF0aCB8fCBmdWxsUGF0aClcbiAgICAgICAgdGhpcy5maWxlQXJncy5wdXNoKGZhbGxiYWNrTG9jYWxQYXRoKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2FyZ3NQcmVwYXJlZCA9IHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxQYXRoIC0gTG9jYWwgcGF0aC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBOb3JtYWxpemVkIGxvY2FsIHBhdGggd2l0aCB0cmFpbGluZyBzbGFzaC5cbiAgICovXG4gIGVuc3VyZVRyYWlsaW5nU2xhc2gobG9jYWxQYXRoKSB7XG4gICAgaWYgKGxvY2FsUGF0aCA9PT0gXCJcIikgcmV0dXJuIGxvY2FsUGF0aFxuICAgIHJldHVybiBsb2NhbFBhdGguZW5kc1dpdGgoXCIvXCIpID8gbG9jYWxQYXRoIDogYCR7bG9jYWxQYXRofS9gXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZ1bGxQYXRoIC0gRnVsbCBwYXRoLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIExvY2FsIHBhdGggcmVsYXRpdmUgdG8gdGhlIGJhc2UgZGlyZWN0b3J5LlxuICAgKi9cbiAgdG9Mb2NhbFBhdGgoZnVsbFBhdGgpIHtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBwYXRoLnJlbGF0aXZlKHRoaXMuZGlyZWN0b3J5LCBmdWxsUGF0aClcbiAgICByZXR1cm4gcmVsYXRpdmVQYXRoLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKVxuICB9XG59XG4iXX0=
|