specmatic 0.78.1 → 0.78.3
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/dist/core/index.js +6 -4
- package/dist/core/shutdownUtils.js +20 -39
- package/package.json +2 -1
- package/src/core/index.ts +2 -0
- package/src/core/shutdownUtils.ts +13 -20
package/dist/core/index.js
CHANGED
|
@@ -84,11 +84,13 @@ var stopStub = /*#__PURE__*/function () {
|
|
|
84
84
|
(_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 || _javaProcess$stdout.removeAllListeners();
|
|
85
85
|
(_javaProcess$stderr = javaProcess.stderr) === null || _javaProcess$stderr === void 0 || _javaProcess$stderr.removeAllListeners();
|
|
86
86
|
javaProcess.removeAllListeners('close');
|
|
87
|
-
|
|
87
|
+
_logger["default"].debug('Trying to stop stub process gracefully ...');
|
|
88
|
+
_context.next = 8;
|
|
88
89
|
return (0, _shutdownUtils.gracefulShutdown)(javaProcess);
|
|
89
|
-
case 7:
|
|
90
|
-
_logger["default"].info("Stub: Stopped server at ".concat(stub.url));
|
|
91
90
|
case 8:
|
|
91
|
+
_logger["default"].debug('Completed graceful termination of the stub process');
|
|
92
|
+
_logger["default"].info("Stub: Stopped server at ".concat(stub.url));
|
|
93
|
+
case 10:
|
|
92
94
|
case "end":
|
|
93
95
|
return _context.stop();
|
|
94
96
|
}
|
|
@@ -292,4 +294,4 @@ function extractEndPoints(expressApp) {
|
|
|
292
294
|
});
|
|
293
295
|
return springActuatorPayload;
|
|
294
296
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXRoIiwiX2Zhc3RYbWxQYXJzZXIiLCJfZnMiLCJfbG9nZ2VyIiwiX3J1bm5lciIsIl9leHByZXNzTGlzdEVuZHBvaW50cyIsIl9odHRwIiwiX3NodXRkb3duVXRpbHMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImUiLCJ0IiwiciIsIk9iamVjdCIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiYSIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiZGVzY3JpcHRvciIsIl90b1Byb3BlcnR5S2V5IiwiX2NyZWF0ZUNsYXNzIiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJ0b1ByaW1pdGl2ZSIsInJlcyIsIk51bWJlciIsIlN0dWIiLCJob3N0IiwicG9ydCIsInVybCIsInByb2Nlc3MiLCJleHBvcnRzIiwic3RhcnRTdHViIiwiY21kIiwiY29uY2F0Iiwiam9pbiIsImxvZ2dlciIsImRlYnVnIiwiamF2YVByb2Nlc3MiLCJjYWxsQ29yZSIsIm1lc3NhZ2UiLCJpbmRleE9mIiwic3R1YkluZm8iLCJzcGxpdCIsIl91cmxJbmZvJGxlbmd0aCIsInRyaW0iLCJ1cmxJbmZvIiwiZXhlYyIsInBhcnNlSW50Iiwic3RvcFN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsInN0dWIiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzdGRvdXQiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdGRlcnIiLCJncmFjZWZ1bFNodXRkb3duIiwiX3giLCJ0ZXN0V2l0aEFwaUNvdmVyYWdlIiwiX3JlZjIiLCJfY2FsbGVlMyIsImV4cHJlc3NBcHAiLCJjb250cmFjdFBhdGgiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX3JlamVjdCIsImFwaUNvdmVyYWdlU2VydmVyIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIiLCJ0ZXN0IiwiY2xvc2UiLCJfeDciLCJfeDgiLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJzcGVjc1BhdGgiLCJwYXRoIiwicmVwb3J0RGlyIiwiZnMiLCJybVN5bmMiLCJyZWN1cnNpdmUiLCJmb3JjZSIsInRlc3RDYXNlcyIsInBhcnNlSnVuaXRYTUwiLCJ0b3RhbCIsImZhaWx1cmUiLCJmaWx0ZXIiLCJ0ZXN0Y2FzZSIsInN1Y2Nlc3MiLCJyZXN1bHQiLCJjb25zb2xlIiwibG9nIiwic2hvd1Rlc3RSZXN1bHRzIiwidGVzdEZuIiwibWFwIiwibmFtZVRlbXBBcnIiLCJyZXBsYWNlIiwic2tpcHBlZCIsInNldEV4cGVjdGF0aW9ucyIsInN0dWJQYXRoIiwic3R1YlNlcnZlckJhc2VVcmwiLCJzdHViUmVzcG9uc2UiLCJheGlvcyIsInBvc3QiLCJyZXNwb25zZSIsImRhdGEiLCJwcmludEphclZlcnNpb24iLCJhcHAiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwiX3JlcSIsIndyaXRlSGVhZCIsImVuZFBvaW50cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJleHRyYWN0RW5kUG9pbnRzIiwiZW5kIiwib24iLCJsaXN0ZW4iLCJhZGRyZXNzIiwiZW52IiwicmVwb3J0UGF0aCIsInJlYWRGaWxlU3luYyIsInBhcnNlciIsIlhNTFBhcnNlciIsInJlc3VsdFhtbCIsInBhcnNlIiwidGVzdHN1aXRlIiwiQXJyYXkiLCJpc0FycmF5IiwibGlzdEVuZFBvaW50cyIsImRldGFpbHMiLCJsaXN0RXhwcmVzc0VuZHBvaW50cyIsImFwaURldGFpbCIsIm1ldGhvZHMiLCJzcHJpbmdBY3R1YXRvclBheWxvYWQiLCJjb250ZXh0cyIsImFwcGxpY2F0aW9uIiwibWFwcGluZ3MiLCJkaXNwYXRjaGVyU2VydmxldHMiLCJkaXNwYXRjaGVyU2VydmxldCIsInNvcnQiLCJyZXF1ZXN0TWFwcGluZ0NvbmRpdGlvbnMiLCJwYXR0ZXJucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MgfSBmcm9tICdjaGlsZF9wcm9jZXNzJ1xuaW1wb3J0IHsgWE1MUGFyc2VyIH0gZnJvbSAnZmFzdC14bWwtcGFyc2VyJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJ1xuaW1wb3J0IHsgY2FsbENvcmUgfSBmcm9tICcuLi9jb21tb24vcnVubmVyJ1xuaW1wb3J0IGxpc3RFeHByZXNzRW5kcG9pbnRzIGZyb20gJ2V4cHJlc3MtbGlzdC1lbmRwb2ludHMnXG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJ1xuaW1wb3J0IHsgQWRkcmVzc0luZm8gfSBmcm9tICduZXQnXG5pbXBvcnQgeyBncmFjZWZ1bFNodXRkb3duIH0gZnJvbSAnLi9zaHV0ZG93blV0aWxzJ1xuXG5leHBvcnQgY2xhc3MgU3R1YiB7XG4gICAgaG9zdDogc3RyaW5nXG4gICAgcG9ydDogbnVtYmVyXG4gICAgdXJsOiBzdHJpbmdcbiAgICBwcm9jZXNzOiBDaGlsZFByb2Nlc3NcbiAgICBjb25zdHJ1Y3Rvcihob3N0OiBzdHJpbmcsIHBvcnQ6IG51bWJlciwgdXJsOiBzdHJpbmcsIHByb2Nlc3M6IENoaWxkUHJvY2Vzcykge1xuICAgICAgICB0aGlzLmhvc3QgPSBob3N0XG4gICAgICAgIHRoaXMucG9ydCA9IHBvcnRcbiAgICAgICAgdGhpcy51cmwgPSB1cmxcbiAgICAgICAgdGhpcy5wcm9jZXNzID0gcHJvY2Vzc1xuICAgIH1cbn1cblxuY29uc3Qgc3RhcnRTdHViID0gKGhvc3Q/OiBzdHJpbmcsIHBvcnQ/OiBudW1iZXIsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTxTdHViPiA9PiB7XG4gICAgdmFyIGNtZCA9IGBzdHViYFxuICAgIGlmIChob3N0KSBjbWQgKz0gYCAtLWhvc3Q9JHtob3N0fWBcbiAgICBpZiAocG9ydCkgY21kICs9IGAgLS1wb3J0PSR7cG9ydH1gXG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKVxuXG4gICAgbG9nZ2VyLmluZm8oJ1N0dWI6IFN0YXJ0aW5nIHNlcnZlcicpXG4gICAgbG9nZ2VyLmRlYnVnKGBTdHViOiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBqYXZhUHJvY2VzcyA9IGNhbGxDb3JlKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6IEV4aXRlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaW5kZXhPZignU3R1YiBzZXJ2ZXIgaXMgcnVubmluZycpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0dWJJbmZvID0gbWVzc2FnZS5zcGxpdCgnb24nKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmxlbmd0aCA8IDIpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSB1cmwgZnJvbSBzdHViIG91dHB1dCcpXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBzdHViSW5mb1sxXS50cmltKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxJbmZvID0gLyguKj8pOlxcL1xcLyguKj8pOihbMC05XSspLy5leGVjKHVybClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHVybEluZm8/Lmxlbmd0aCA/PyAwKSA8IDQpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSBob3N0IGFuZCBwb3J0IGZyb20gc3R1YiBvdXRwdXQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcmVzb2x2ZShuZXcgU3R1Yih1cmxJbmZvIVsyXSwgcGFyc2VJbnQodXJsSW5mbyFbM10pLCB1cmxJbmZvIVswXSwgamF2YVByb2Nlc3MpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5kZXhPZignQWRkcmVzcyBhbHJlYWR5IGluIHVzZScpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgfSlcbn1cblxuY29uc3Qgc3RvcFN0dWIgPSBhc3luYyAoc3R1YjogU3R1YikgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogU3RvcHBpbmcgc2VydmVyIGF0ICR7c3R1Yi51cmx9YClcbiAgICBjb25zdCBqYXZhUHJvY2VzcyA9IHN0dWIucHJvY2Vzc1xuICAgIGphdmFQcm9jZXNzLnN0ZG91dD8ucmVtb3ZlQWxsTGlzdGVuZXJzKClcbiAgICBqYXZhUHJvY2Vzcy5zdGRlcnI/LnJlbW92ZUFsbExpc3RlbmVycygpXG4gICAgamF2YVByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzKCdjbG9zZScpXG4gICAgYXdhaXQgZ3JhY2VmdWxTaHV0ZG93bihqYXZhUHJvY2VzcylcbiAgICBsb2dnZXIuaW5mbyhgU3R1YjogU3RvcHBlZCBzZXJ2ZXIgYXQgJHtzdHViLnVybH1gKVxufVxuXG5jb25zdCB0ZXN0V2l0aEFwaUNvdmVyYWdlID0gYXN5bmMgKFxuICAgIGV4cHJlc3NBcHA6IGFueSxcbiAgICBob3N0Pzogc3RyaW5nLFxuICAgIHBvcnQ/OiBudW1iZXIsXG4gICAgY29udHJhY3RQYXRoPzogc3RyaW5nLFxuICAgIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBhcGlDb3ZlcmFnZVNlcnZlciA9IGF3YWl0IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIoZXhwcmVzc0FwcClcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRlc3QoaG9zdCwgcG9ydCwgY29udHJhY3RQYXRoLCBhcmdzKVxuICAgICAgICBhcGlDb3ZlcmFnZVNlcnZlci5jbG9zZSgoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdHMpXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgdGVzdCA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBjb250cmFjdFBhdGg/OiBzdHJpbmcsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTx7IFtrOiBzdHJpbmddOiBudW1iZXIgfSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IHNwZWNzUGF0aCA9IHBhdGgucmVzb2x2ZShjb250cmFjdFBhdGggKyAnJylcblxuICAgIHZhciBjbWQgPSBgdGVzdGBcbiAgICBpZiAoY29udHJhY3RQYXRoKSBjbWQgKz0gYCAke3NwZWNzUGF0aH1gXG4gICAgY21kICs9ICcgLS1qdW5pdFJlcG9ydERpcj1kaXN0L3Rlc3QtcmVwb3J0J1xuICAgIGlmIChob3N0KSBjbWQgKz0gYCAtLWhvc3Q9JHtob3N0fWBcbiAgICBpZiAocG9ydCkgY21kICs9IGAgLS1wb3J0PSR7cG9ydH1gXG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKVxuXG4gICAgbG9nZ2VyLmluZm8oJ1Rlc3Q6IFJ1bm5pbmcnKVxuICAgIGxvZ2dlci5kZWJ1ZyhgVGVzdDogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY29uc3QgcmVwb3J0RGlyID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0JylcbiAgICBmcy5ybVN5bmMocmVwb3J0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSlcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgICAgICBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIGxvZ2dlci5lcnJvcihgVGVzdDogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICB2YXIgdGVzdENhc2VzID0gcGFyc2VKdW5pdFhNTCgpXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB0ZXN0Q2FzZXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgY29uc3QgZmFpbHVyZSA9IHRlc3RDYXNlcy5maWx0ZXIoKHRlc3RjYXNlOiB7IFtpZDogc3RyaW5nXTogYW55IH0pID0+IHRlc3RjYXNlWydmYWlsdXJlJ10gfHwgdGVzdGNhc2VbJ3NraXBwZWQnXSkubGVuZ3RoXG4gICAgICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRvdGFsIC0gZmFpbHVyZVxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB7IHRvdGFsLCBzdWNjZXNzLCBmYWlsdXJlIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pbmRleE9mKCdBUEkgQ09WRVJBR0UgU1VNTUFSWScpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobWVzc2FnZSkgLy9Mb2cgYWx3YXlzIGZvciBhbGwgbG9nIGxldmVsc1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcltlcnJvciA/ICdlcnJvcicgOiAnZGVidWcnXShgVGVzdDogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgfSlcbn1cblxuY29uc3Qgc2hvd1Rlc3RSZXN1bHRzID0gKHRlc3RGbjogKG5hbWU6IHN0cmluZywgY2I6ICgpID0+IHZvaWQpID0+IHZvaWQpID0+IHtcbiAgICB2YXIgdGVzdENhc2VzID0gcGFyc2VKdW5pdFhNTCgpXG4gICAgdGVzdENhc2VzLm1hcChmdW5jdGlvbiAodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICB2YXIgbmFtZSA9ICdObyBOYW1lJ1xuICAgICAgICBpZiAodGVzdGNhc2VbJ3N5c3RlbS1vdXQnXSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZVRlbXBBcnIgPSB0ZXN0Y2FzZVsnc3lzdGVtLW91dCddXG4gICAgICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJycpXG4gICAgICAgICAgICAgICAgLnNwbGl0KC9kaXNwbGF5LW5hbWU6LipTY2VuYXJpbzogLylcbiAgICAgICAgICAgIGlmIChuYW1lVGVtcEFyci5sZW5ndGggPiAxKSBuYW1lID0gbmFtZVRlbXBBcnJbMV0udHJpbSgpXG4gICAgICAgIH1cbiAgICAgICAgdGVzdEZuKG5hbWUsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0ZXN0Y2FzZS5mYWlsdXJlIHx8IHRlc3RjYXNlLnNraXBwZWQpIHRocm93IG5ldyBFcnJvcignRGlkIG5vdCBwYXNzJylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBzZXRFeHBlY3RhdGlvbnMgPSAoc3R1YlBhdGg6IHN0cmluZywgc3R1YlNlcnZlckJhc2VVcmw/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBzdHViUmVzcG9uc2UgPSByZXF1aXJlKHBhdGgucmVzb2x2ZShzdHViUGF0aCkpXG4gICAgc3R1YlNlcnZlckJhc2VVcmwgPSBzdHViU2VydmVyQmFzZVVybCB8fCAnaHR0cDovL2xvY2FsaG9zdDo5MDAwJ1xuXG4gICAgbG9nZ2VyLmluZm8oYFNldCBFeHBlY3RhdGlvbnM6IFN0dWIgdXJsIGlzICR7c3R1YlNlcnZlckJhc2VVcmx9YClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF4aW9zXG4gICAgICAgICAgICAucG9zdChgJHtzdHViU2VydmVyQmFzZVVybH0vX3NwZWNtYXRpYy9leHBlY3RhdGlvbnNgLCBzdHViUmVzcG9uc2UpXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTZXQgRXhwZWN0YXRpb25zOiAke3Jlc3BvbnNlLmRhdGF9YClcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldHRpbmcgZXhwZWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBwcmludEphclZlcnNpb24gPSAoKSA9PiB7XG4gICAgY29uc3QgY21kID0gYC0tdmVyc2lvbmBcbiAgICBsb2dnZXIuaW5mbygnUHJpbnQgSmFyIFZlcnNpb246IFJ1bm5pbmcnKVxuICAgIGxvZ2dlci5kZWJ1ZyhgUHJpbnQgSmFyIFZlcnNpb246IEV4ZWN1dGluZyBcIiR7Y21kfVwiYClcblxuICAgIGNhbGxDb3JlKFxuICAgICAgICBjbWQsXG4gICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgfSxcbiAgICAgICAgKG1lc3NhZ2UsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIGxvZ2dlci5lcnJvcihgUHJpbnQgSmFyIFZlcnNpb246ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgZWxzZSBjb25zb2xlLmxvZyhgJHttZXNzYWdlfWApXG4gICAgICAgIH1cbiAgICApXG59XG5cbmNvbnN0IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIgPSAoZXhwcmVzc0FwcDogYW55KTogUHJvbWlzZTxodHRwLlNlcnZlcj4gPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgUmVnaXN0ZXJpbmcgQVBJIGVuZHBvaW50IGZvciBjb3ZlcmFnZWApXG4gICAgbGV0IGFwcCA9IGh0dHAuY3JlYXRlU2VydmVyKChfcmVxLCByZXMpID0+IHtcbiAgICAgICAgcmVzLndyaXRlSGVhZCgyMDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgICBjb25zdCBlbmRQb2ludHMgPSBKU09OLnN0cmluZ2lmeShleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHApKVxuICAgICAgICBsb2dnZXIuZGVidWcoYEVuZHBvaW50czogJHtlbmRQb2ludHN9YClcbiAgICAgICAgcmVzLmVuZChlbmRQb2ludHMpXG4gICAgfSlcbiAgICByZXR1cm4gbmV3IFByb21pc2U8aHR0cC5TZXJ2ZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgYXBwLm9uKCdlcnJvcicsIGVyciA9PiB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yIHdoaWxlIHN0YXJ0aW5nIGVuZCBwb2ludHMgc2VydmVyIGZvciBhcGkgY292ZXJhZ2UnLCBlcnIpXG4gICAgICAgICAgICByZWplY3QoJ0Vycm9yIHdoaWxlIHN0YXJ0aW5nIGVuZCBwb2ludHMgc2VydmVyIGZvciBhcGkgY292ZXJhZ2UnKVxuICAgICAgICB9KVxuICAgICAgICBhcHAubGlzdGVuKHsgaG9zdDogJzEyNy4wLjAuMScsIHBvcnQ6IDAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkcmVzcyA9IGFwcC5hZGRyZXNzKCkgYXMgQWRkcmVzc0luZm8gfCBudWxsXG4gICAgICAgICAgICBwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ10gPSBgaHR0cDovLyR7YWRkcmVzcz8uYWRkcmVzc306JHthZGRyZXNzPy5wb3J0fWBcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBFbmRwb2ludHMgQVBJIHJlZ2lzdGVyZWQgYXQgJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119YClcbiAgICAgICAgICAgIHJlc29sdmUoYXBwKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHBhcnNlSnVuaXRYTUwgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVwb3J0UGF0aCA9IHBhdGgucmVzb2x2ZSgnZGlzdC90ZXN0LXJlcG9ydC9URVNULWp1bml0LWp1cGl0ZXIueG1sJylcbiAgICB2YXIgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhyZXBvcnRQYXRoKVxuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBYTUxQYXJzZXIoKVxuICAgIHZhciByZXN1bHRYbWwgPSBwYXJzZXIucGFyc2UoZGF0YSlcbiAgICByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlID0gQXJyYXkuaXNBcnJheShyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlKSA/IHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgOiBbcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZV1cbiAgICByZXR1cm4gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZVxufVxuXG5jb25zdCBsaXN0RW5kUG9pbnRzID0gKGV4cHJlc3NBcHA6IGFueSk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9PiB7XG4gICAgY29uc3QgZGV0YWlscyA9IGxpc3RFeHByZXNzRW5kcG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IGVuZFBvaW50czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge31cbiAgICBkZXRhaWxzLm1hcChhcGlEZXRhaWwgPT4ge1xuICAgICAgICBlbmRQb2ludHNbYXBpRGV0YWlsLnBhdGhdID0gYXBpRGV0YWlsLm1ldGhvZHNcbiAgICB9KVxuICAgIGRlbGV0ZSBlbmRQb2ludHNbJyonXVxuICAgIHJldHVybiBlbmRQb2ludHNcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEVuZFBvaW50cyhleHByZXNzQXBwOiBhbnkpIHtcbiAgICBsZXQgZW5kUG9pbnRzID0gbGlzdEVuZFBvaW50cyhleHByZXNzQXBwKVxuICAgIGxldCBzcHJpbmdBY3R1YXRvclBheWxvYWQgPSB7XG4gICAgICAgIGNvbnRleHRzOiB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbjoge1xuICAgICAgICAgICAgICAgIG1hcHBpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXJTZXJ2bGV0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXQ6IFtdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH1cbiAgICBPYmplY3Qua2V5cyhlbmRQb2ludHMpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLm1hcChwYXRoID0+IHtcbiAgICAgICAgICAgIHNwcmluZ0FjdHVhdG9yUGF5bG9hZC5jb250ZXh0cy5hcHBsaWNhdGlvbi5tYXBwaW5ncy5kaXNwYXRjaGVyU2VydmxldHMuZGlzcGF0Y2hlclNlcnZsZXQucHVzaCh7XG4gICAgICAgICAgICAgICAgZGV0YWlsczoge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0TWFwcGluZ0NvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZHM6IGVuZFBvaW50c1twYXRoXS5zb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuczogW3BhdGgucmVwbGFjZSgvOihbXi9dKykvZywgJ3skMX0nKS5yZXBsYWNlKC9cXFxcL2csICcnKV0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0gYXMgbmV2ZXIpXG4gICAgICAgIH0pXG4gICAgcmV0dXJuIHNwcmluZ0FjdHVhdG9yUGF5bG9hZFxufVxuXG5leHBvcnQgeyBzdGFydFN0dWIsIHN0b3BTdHViLCB0ZXN0LCB0ZXN0V2l0aEFwaUNvdmVyYWdlLCBzZXRFeHBlY3RhdGlvbnMsIHByaW50SmFyVmVyc2lvbiwgc2hvd1Rlc3RSZXN1bHRzIH1cbmV4cG9ydCB7IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIgfVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxHQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxxQkFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sS0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVEsY0FBQSxHQUFBUixPQUFBO0FBQWtELFNBQUFELHVCQUFBVSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFB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
|
|
297
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXRoIiwiX2Zhc3RYbWxQYXJzZXIiLCJfZnMiLCJfbG9nZ2VyIiwiX3J1bm5lciIsIl9leHByZXNzTGlzdEVuZHBvaW50cyIsIl9odHRwIiwiX3NodXRkb3duVXRpbHMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImUiLCJ0IiwiciIsIk9iamVjdCIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiYSIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJfZGVmaW5lUHJvcGVydGllcyIsInRhcmdldCIsInByb3BzIiwiZGVzY3JpcHRvciIsIl90b1Byb3BlcnR5S2V5IiwiX2NyZWF0ZUNsYXNzIiwiQ29uc3RydWN0b3IiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJfY2xhc3NDYWxsQ2hlY2siLCJpbnN0YW5jZSIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJ0b1ByaW1pdGl2ZSIsInJlcyIsIk51bWJlciIsIlN0dWIiLCJob3N0IiwicG9ydCIsInVybCIsInByb2Nlc3MiLCJleHBvcnRzIiwic3RhcnRTdHViIiwiY21kIiwiY29uY2F0Iiwiam9pbiIsImxvZ2dlciIsImRlYnVnIiwiamF2YVByb2Nlc3MiLCJjYWxsQ29yZSIsIm1lc3NhZ2UiLCJpbmRleE9mIiwic3R1YkluZm8iLCJzcGxpdCIsIl91cmxJbmZvJGxlbmd0aCIsInRyaW0iLCJ1cmxJbmZvIiwiZXhlYyIsInBhcnNlSW50Iiwic3RvcFN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsInN0dWIiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzdGRvdXQiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdGRlcnIiLCJncmFjZWZ1bFNodXRkb3duIiwiX3giLCJ0ZXN0V2l0aEFwaUNvdmVyYWdlIiwiX3JlZjIiLCJfY2FsbGVlMyIsImV4cHJlc3NBcHAiLCJjb250cmFjdFBhdGgiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX3JlamVjdCIsImFwaUNvdmVyYWdlU2VydmVyIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIiLCJ0ZXN0IiwiY2xvc2UiLCJfeDciLCJfeDgiLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJzcGVjc1BhdGgiLCJwYXRoIiwicmVwb3J0RGlyIiwiZnMiLCJybVN5bmMiLCJyZWN1cnNpdmUiLCJmb3JjZSIsInRlc3RDYXNlcyIsInBhcnNlSnVuaXRYTUwiLCJ0b3RhbCIsImZhaWx1cmUiLCJmaWx0ZXIiLCJ0ZXN0Y2FzZSIsInN1Y2Nlc3MiLCJyZXN1bHQiLCJjb25zb2xlIiwibG9nIiwic2hvd1Rlc3RSZXN1bHRzIiwidGVzdEZuIiwibWFwIiwibmFtZVRlbXBBcnIiLCJyZXBsYWNlIiwic2tpcHBlZCIsInNldEV4cGVjdGF0aW9ucyIsInN0dWJQYXRoIiwic3R1YlNlcnZlckJhc2VVcmwiLCJzdHViUmVzcG9uc2UiLCJheGlvcyIsInBvc3QiLCJyZXNwb25zZSIsImRhdGEiLCJwcmludEphclZlcnNpb24iLCJhcHAiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwiX3JlcSIsIndyaXRlSGVhZCIsImVuZFBvaW50cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJleHRyYWN0RW5kUG9pbnRzIiwiZW5kIiwib24iLCJsaXN0ZW4iLCJhZGRyZXNzIiwiZW52IiwicmVwb3J0UGF0aCIsInJlYWRGaWxlU3luYyIsInBhcnNlciIsIlhNTFBhcnNlciIsInJlc3VsdFhtbCIsInBhcnNlIiwidGVzdHN1aXRlIiwiQXJyYXkiLCJpc0FycmF5IiwibGlzdEVuZFBvaW50cyIsImRldGFpbHMiLCJsaXN0RXhwcmVzc0VuZHBvaW50cyIsImFwaURldGFpbCIsIm1ldGhvZHMiLCJzcHJpbmdBY3R1YXRvclBheWxvYWQiLCJjb250ZXh0cyIsImFwcGxpY2F0aW9uIiwibWFwcGluZ3MiLCJkaXNwYXRjaGVyU2VydmxldHMiLCJkaXNwYXRjaGVyU2VydmxldCIsInNvcnQiLCJyZXF1ZXN0TWFwcGluZ0NvbmRpdGlvbnMiLCJwYXR0ZXJucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MgfSBmcm9tICdjaGlsZF9wcm9jZXNzJ1xuaW1wb3J0IHsgWE1MUGFyc2VyIH0gZnJvbSAnZmFzdC14bWwtcGFyc2VyJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJ1xuaW1wb3J0IHsgY2FsbENvcmUgfSBmcm9tICcuLi9jb21tb24vcnVubmVyJ1xuaW1wb3J0IGxpc3RFeHByZXNzRW5kcG9pbnRzIGZyb20gJ2V4cHJlc3MtbGlzdC1lbmRwb2ludHMnXG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJ1xuaW1wb3J0IHsgQWRkcmVzc0luZm8gfSBmcm9tICduZXQnXG5pbXBvcnQgeyBncmFjZWZ1bFNodXRkb3duIH0gZnJvbSAnLi9zaHV0ZG93blV0aWxzJ1xuXG5leHBvcnQgY2xhc3MgU3R1YiB7XG4gICAgaG9zdDogc3RyaW5nXG4gICAgcG9ydDogbnVtYmVyXG4gICAgdXJsOiBzdHJpbmdcbiAgICBwcm9jZXNzOiBDaGlsZFByb2Nlc3NcbiAgICBjb25zdHJ1Y3Rvcihob3N0OiBzdHJpbmcsIHBvcnQ6IG51bWJlciwgdXJsOiBzdHJpbmcsIHByb2Nlc3M6IENoaWxkUHJvY2Vzcykge1xuICAgICAgICB0aGlzLmhvc3QgPSBob3N0XG4gICAgICAgIHRoaXMucG9ydCA9IHBvcnRcbiAgICAgICAgdGhpcy51cmwgPSB1cmxcbiAgICAgICAgdGhpcy5wcm9jZXNzID0gcHJvY2Vzc1xuICAgIH1cbn1cblxuY29uc3Qgc3RhcnRTdHViID0gKGhvc3Q/OiBzdHJpbmcsIHBvcnQ/OiBudW1iZXIsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTxTdHViPiA9PiB7XG4gICAgdmFyIGNtZCA9IGBzdHViYFxuICAgIGlmIChob3N0KSBjbWQgKz0gYCAtLWhvc3Q9JHtob3N0fWBcbiAgICBpZiAocG9ydCkgY21kICs9IGAgLS1wb3J0PSR7cG9ydH1gXG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKVxuXG4gICAgbG9nZ2VyLmluZm8oJ1N0dWI6IFN0YXJ0aW5nIHNlcnZlcicpXG4gICAgbG9nZ2VyLmRlYnVnKGBTdHViOiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBqYXZhUHJvY2VzcyA9IGNhbGxDb3JlKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6IEV4aXRlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaW5kZXhPZignU3R1YiBzZXJ2ZXIgaXMgcnVubmluZycpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0dWJJbmZvID0gbWVzc2FnZS5zcGxpdCgnb24nKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmxlbmd0aCA8IDIpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSB1cmwgZnJvbSBzdHViIG91dHB1dCcpXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBzdHViSW5mb1sxXS50cmltKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxJbmZvID0gLyguKj8pOlxcL1xcLyguKj8pOihbMC05XSspLy5leGVjKHVybClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHVybEluZm8/Lmxlbmd0aCA/PyAwKSA8IDQpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSBob3N0IGFuZCBwb3J0IGZyb20gc3R1YiBvdXRwdXQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcmVzb2x2ZShuZXcgU3R1Yih1cmxJbmZvIVsyXSwgcGFyc2VJbnQodXJsSW5mbyFbM10pLCB1cmxJbmZvIVswXSwgamF2YVByb2Nlc3MpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5kZXhPZignQWRkcmVzcyBhbHJlYWR5IGluIHVzZScpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgfSlcbn1cblxuY29uc3Qgc3RvcFN0dWIgPSBhc3luYyAoc3R1YjogU3R1YikgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogU3RvcHBpbmcgc2VydmVyIGF0ICR7c3R1Yi51cmx9YClcbiAgICBjb25zdCBqYXZhUHJvY2VzcyA9IHN0dWIucHJvY2Vzc1xuICAgIGphdmFQcm9jZXNzLnN0ZG91dD8ucmVtb3ZlQWxsTGlzdGVuZXJzKClcbiAgICBqYXZhUHJvY2Vzcy5zdGRlcnI/LnJlbW92ZUFsbExpc3RlbmVycygpXG4gICAgamF2YVByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzKCdjbG9zZScpXG4gICAgbG9nZ2VyLmRlYnVnKCdUcnlpbmcgdG8gc3RvcCBzdHViIHByb2Nlc3MgZ3JhY2VmdWxseSAuLi4nKVxuICAgIGF3YWl0IGdyYWNlZnVsU2h1dGRvd24oamF2YVByb2Nlc3MpXG4gICAgbG9nZ2VyLmRlYnVnKCdDb21wbGV0ZWQgZ3JhY2VmdWwgdGVybWluYXRpb24gb2YgdGhlIHN0dWIgcHJvY2VzcycpXG4gICAgbG9nZ2VyLmluZm8oYFN0dWI6IFN0b3BwZWQgc2VydmVyIGF0ICR7c3R1Yi51cmx9YClcbn1cblxuY29uc3QgdGVzdFdpdGhBcGlDb3ZlcmFnZSA9IGFzeW5jIChcbiAgICBleHByZXNzQXBwOiBhbnksXG4gICAgaG9zdD86IHN0cmluZyxcbiAgICBwb3J0PzogbnVtYmVyLFxuICAgIGNvbnRyYWN0UGF0aD86IHN0cmluZyxcbiAgICBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXVxuKTogUHJvbWlzZTx7IFtrOiBzdHJpbmddOiBudW1iZXIgfSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgICAgICBsZXQgYXBpQ292ZXJhZ2VTZXJ2ZXIgPSBhd2FpdCBzdGFydEFwaUNvdmVyYWdlU2VydmVyKGV4cHJlc3NBcHApXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0ZXN0KGhvc3QsIHBvcnQsIGNvbnRyYWN0UGF0aCwgYXJncylcbiAgICAgICAgYXBpQ292ZXJhZ2VTZXJ2ZXIuY2xvc2UoKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHRzKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHRlc3QgPSAoaG9zdD86IHN0cmluZywgcG9ydD86IG51bWJlciwgY29udHJhY3RQYXRoPzogc3RyaW5nLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8eyBbazogc3RyaW5nXTogbnVtYmVyIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBjb25zdCBzcGVjc1BhdGggPSBwYXRoLnJlc29sdmUoY29udHJhY3RQYXRoICsgJycpXG5cbiAgICB2YXIgY21kID0gYHRlc3RgXG4gICAgaWYgKGNvbnRyYWN0UGF0aCkgY21kICs9IGAgJHtzcGVjc1BhdGh9YFxuICAgIGNtZCArPSAnIC0tanVuaXRSZXBvcnREaXI9ZGlzdC90ZXN0LXJlcG9ydCdcbiAgICBpZiAoaG9zdCkgY21kICs9IGAgLS1ob3N0PSR7aG9zdH1gXG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YFxuICAgIGlmIChhcmdzKSBjbWQgKz0gJyAnICsgYXJncy5qb2luKCcgJylcblxuICAgIGxvZ2dlci5pbmZvKCdUZXN0OiBSdW5uaW5nJylcbiAgICBsb2dnZXIuZGVidWcoYFRlc3Q6IEV4ZWN1dGluZyBcIiR7Y21kfVwiYClcblxuICAgIGNvbnN0IHJlcG9ydERpciA9IHBhdGgucmVzb2x2ZSgnZGlzdC90ZXN0LXJlcG9ydCcpXG4gICAgZnMucm1TeW5jKHJlcG9ydERpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pXG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICAgICAgY2FsbENvcmUoXG4gICAgICAgICAgICBjbWQsXG4gICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSBsb2dnZXIuZXJyb3IoYFRlc3Q6IEZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICAgICAgdmFyIHRlc3RDYXNlcyA9IHBhcnNlSnVuaXRYTUwoKVxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gdGVzdENhc2VzLmxlbmd0aFxuICAgICAgICAgICAgICAgIGNvbnN0IGZhaWx1cmUgPSB0ZXN0Q2FzZXMuZmlsdGVyKCh0ZXN0Y2FzZTogeyBbaWQ6IHN0cmluZ106IGFueSB9KSA9PiB0ZXN0Y2FzZVsnZmFpbHVyZSddIHx8IHRlc3RjYXNlWydza2lwcGVkJ10pLmxlbmd0aFxuICAgICAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0b3RhbCAtIGZhaWx1cmVcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0geyB0b3RhbCwgc3VjY2VzcywgZmFpbHVyZSB9XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKG1lc3NhZ2UsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaW5kZXhPZignQVBJIENPVkVSQUdFIFNVTU1BUlknKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpIC8vTG9nIGFsd2F5cyBmb3IgYWxsIGxvZyBsZXZlbHNcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXJbZXJyb3IgPyAnZXJyb3InIDogJ2RlYnVnJ10oYFRlc3Q6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH0pXG59XG5cbmNvbnN0IHNob3dUZXN0UmVzdWx0cyA9ICh0ZXN0Rm46IChuYW1lOiBzdHJpbmcsIGNiOiAoKSA9PiB2b2lkKSA9PiB2b2lkKSA9PiB7XG4gICAgdmFyIHRlc3RDYXNlcyA9IHBhcnNlSnVuaXRYTUwoKVxuICAgIHRlc3RDYXNlcy5tYXAoZnVuY3Rpb24gKHRlc3RjYXNlOiB7IFtpZDogc3RyaW5nXTogYW55IH0pIHtcbiAgICAgICAgdmFyIG5hbWUgPSAnTm8gTmFtZSdcbiAgICAgICAgaWYgKHRlc3RjYXNlWydzeXN0ZW0tb3V0J10pIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVUZW1wQXJyID0gdGVzdGNhc2VbJ3N5c3RlbS1vdXQnXVxuICAgICAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxuL2csICcnKVxuICAgICAgICAgICAgICAgIC5zcGxpdCgvZGlzcGxheS1uYW1lOi4qU2NlbmFyaW86IC8pXG4gICAgICAgICAgICBpZiAobmFtZVRlbXBBcnIubGVuZ3RoID4gMSkgbmFtZSA9IG5hbWVUZW1wQXJyWzFdLnRyaW0oKVxuICAgICAgICB9XG4gICAgICAgIHRlc3RGbihuYW1lLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGVzdGNhc2UuZmFpbHVyZSB8fCB0ZXN0Y2FzZS5za2lwcGVkKSB0aHJvdyBuZXcgRXJyb3IoJ0RpZCBub3QgcGFzcycpXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3Qgc2V0RXhwZWN0YXRpb25zID0gKHN0dWJQYXRoOiBzdHJpbmcsIHN0dWJTZXJ2ZXJCYXNlVXJsPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3Qgc3R1YlJlc3BvbnNlID0gcmVxdWlyZShwYXRoLnJlc29sdmUoc3R1YlBhdGgpKVxuICAgIHN0dWJTZXJ2ZXJCYXNlVXJsID0gc3R1YlNlcnZlckJhc2VVcmwgfHwgJ2h0dHA6Ly9sb2NhbGhvc3Q6OTAwMCdcblxuICAgIGxvZ2dlci5pbmZvKGBTZXQgRXhwZWN0YXRpb25zOiBTdHViIHVybCBpcyAke3N0dWJTZXJ2ZXJCYXNlVXJsfWApXG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBheGlvc1xuICAgICAgICAgICAgLnBvc3QoYCR7c3R1YlNlcnZlckJhc2VVcmx9L19zcGVjbWF0aWMvZXhwZWN0YXRpb25zYCwgc3R1YlJlc3BvbnNlKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgU2V0IEV4cGVjdGF0aW9uczogJHtyZXNwb25zZS5kYXRhfWApXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oJ1NldCBFeHBlY3RhdGlvbnM6IEZpbmlzaGVkJylcbiAgICAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFNldCBFeHBlY3RhdGlvbnM6IEZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICAgICAgcmVqZWN0KGBTZXR0aW5nIGV4cGVjYXRpb24gZmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgcHJpbnRKYXJWZXJzaW9uID0gKCkgPT4ge1xuICAgIGNvbnN0IGNtZCA9IGAtLXZlcnNpb25gXG4gICAgbG9nZ2VyLmluZm8oJ1ByaW50IEphciBWZXJzaW9uOiBSdW5uaW5nJylcbiAgICBsb2dnZXIuZGVidWcoYFByaW50IEphciBWZXJzaW9uOiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICBjYWxsQ29yZShcbiAgICAgICAgY21kLFxuICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIGxvZ2dlci5lcnJvcihgUHJpbnQgSmFyIFZlcnNpb246IEZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgIH0sXG4gICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yKSBsb2dnZXIuZXJyb3IoYFByaW50IEphciBWZXJzaW9uOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgIGVsc2UgY29uc29sZS5sb2coYCR7bWVzc2FnZX1gKVxuICAgICAgICB9XG4gICAgKVxufVxuXG5jb25zdCBzdGFydEFwaUNvdmVyYWdlU2VydmVyID0gKGV4cHJlc3NBcHA6IGFueSk6IFByb21pc2U8aHR0cC5TZXJ2ZXI+ID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYFJlZ2lzdGVyaW5nIEFQSSBlbmRwb2ludCBmb3IgY292ZXJhZ2VgKVxuICAgIGxldCBhcHAgPSBodHRwLmNyZWF0ZVNlcnZlcigoX3JlcSwgcmVzKSA9PiB7XG4gICAgICAgIHJlcy53cml0ZUhlYWQoMjAwLCB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSlcbiAgICAgICAgY29uc3QgZW5kUG9pbnRzID0gSlNPTi5zdHJpbmdpZnkoZXh0cmFjdEVuZFBvaW50cyhleHByZXNzQXBwKSlcbiAgICAgICAgbG9nZ2VyLmRlYnVnKGBFbmRwb2ludHM6ICR7ZW5kUG9pbnRzfWApXG4gICAgICAgIHJlcy5lbmQoZW5kUG9pbnRzKVxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGh0dHAuU2VydmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGFwcC5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvciB3aGlsZSBzdGFydGluZyBlbmQgcG9pbnRzIHNlcnZlciBmb3IgYXBpIGNvdmVyYWdlJywgZXJyKVxuICAgICAgICAgICAgcmVqZWN0KCdFcnJvciB3aGlsZSBzdGFydGluZyBlbmQgcG9pbnRzIHNlcnZlciBmb3IgYXBpIGNvdmVyYWdlJylcbiAgICAgICAgfSlcbiAgICAgICAgYXBwLmxpc3Rlbih7IGhvc3Q6ICcxMjcuMC4wLjEnLCBwb3J0OiAwIH0sICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBhcHAuYWRkcmVzcygpIGFzIEFkZHJlc3NJbmZvIHwgbnVsbFxuICAgICAgICAgICAgcHJvY2Vzcy5lbnZbJ2VuZHBvaW50c0FQSSddID0gYGh0dHA6Ly8ke2FkZHJlc3M/LmFkZHJlc3N9OiR7YWRkcmVzcz8ucG9ydH1gXG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhgRW5kcG9pbnRzIEFQSSByZWdpc3RlcmVkIGF0ICR7cHJvY2Vzcy5lbnZbJ2VuZHBvaW50c0FQSSddfWApXG4gICAgICAgICAgICByZXNvbHZlKGFwcClcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBwYXJzZUp1bml0WE1MID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlcG9ydFBhdGggPSBwYXRoLnJlc29sdmUoJ2Rpc3QvdGVzdC1yZXBvcnQvVEVTVC1qdW5pdC1qdXBpdGVyLnhtbCcpXG4gICAgdmFyIGRhdGEgPSBmcy5yZWFkRmlsZVN5bmMocmVwb3J0UGF0aClcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgWE1MUGFyc2VyKClcbiAgICB2YXIgcmVzdWx0WG1sID0gcGFyc2VyLnBhcnNlKGRhdGEpXG4gICAgcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZSA9IEFycmF5LmlzQXJyYXkocmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZSkgPyByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlIDogW3Jlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2VdXG4gICAgcmV0dXJuIHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2Vcbn1cblxuY29uc3QgbGlzdEVuZFBvaW50cyA9IChleHByZXNzQXBwOiBhbnkpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPT4ge1xuICAgIGNvbnN0IGRldGFpbHMgPSBsaXN0RXhwcmVzc0VuZHBvaW50cyhleHByZXNzQXBwKVxuICAgIGxldCBlbmRQb2ludHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9XG4gICAgZGV0YWlscy5tYXAoYXBpRGV0YWlsID0+IHtcbiAgICAgICAgZW5kUG9pbnRzW2FwaURldGFpbC5wYXRoXSA9IGFwaURldGFpbC5tZXRob2RzXG4gICAgfSlcbiAgICBkZWxldGUgZW5kUG9pbnRzWycqJ11cbiAgICByZXR1cm4gZW5kUG9pbnRzXG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFbmRQb2ludHMoZXhwcmVzc0FwcDogYW55KSB7XG4gICAgbGV0IGVuZFBvaW50cyA9IGxpc3RFbmRQb2ludHMoZXhwcmVzc0FwcClcbiAgICBsZXQgc3ByaW5nQWN0dWF0b3JQYXlsb2FkID0ge1xuICAgICAgICBjb250ZXh0czoge1xuICAgICAgICAgICAgYXBwbGljYXRpb246IHtcbiAgICAgICAgICAgICAgICBtYXBwaW5nczoge1xuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyU2VydmxldHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXJTZXJ2bGV0OiBbXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9XG4gICAgT2JqZWN0LmtleXMoZW5kUG9pbnRzKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5tYXAocGF0aCA9PiB7XG4gICAgICAgICAgICBzcHJpbmdBY3R1YXRvclBheWxvYWQuY29udGV4dHMuYXBwbGljYXRpb24ubWFwcGluZ3MuZGlzcGF0Y2hlclNlcnZsZXRzLmRpc3BhdGNoZXJTZXJ2bGV0LnB1c2goe1xuICAgICAgICAgICAgICAgIGRldGFpbHM6IHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdE1hcHBpbmdDb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2RzOiBlbmRQb2ludHNbcGF0aF0uc29ydCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybnM6IFtwYXRoLnJlcGxhY2UoLzooW14vXSspL2csICd7JDF9JykucmVwbGFjZSgvXFxcXC9nLCAnJyldLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9IGFzIG5ldmVyKVxuICAgICAgICB9KVxuICAgIHJldHVybiBzcHJpbmdBY3R1YXRvclBheWxvYWRcbn1cblxuZXhwb3J0IHsgc3RhcnRTdHViLCBzdG9wU3R1YiwgdGVzdCwgdGVzdFdpdGhBcGlDb3ZlcmFnZSwgc2V0RXhwZWN0YXRpb25zLCBwcmludEphclZlcnNpb24sIHNob3dUZXN0UmVzdWx0cyB9XG5leHBvcnQgeyBzdGFydEFwaUNvdmVyYWdlU2VydmVyIH1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsR0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0scUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFRLGNBQUEsR0FBQVIsT0FBQTtBQUFrRCxTQUFBRCx1QkFBQVUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxH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
|
|
@@ -5,57 +5,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.gracefulShutdown = void 0;
|
|
8
|
-
var
|
|
9
|
-
var _promise = _interopRequireDefault(require("terminate/promise"));
|
|
8
|
+
var _logger = _interopRequireDefault(require("../common/logger"));
|
|
10
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
10
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
12
11
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
13
12
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
14
|
-
|
|
15
|
-
try {
|
|
16
|
-
// Sending signal 0 doesn't kill the process, but will throw an error if the process doesn't exist
|
|
17
|
-
_nodeProcess["default"].kill(pid, 0);
|
|
18
|
-
return true;
|
|
19
|
-
} catch (err) {
|
|
20
|
-
// If process doesn't exist, ESRCH will be the error code
|
|
21
|
-
return err.code !== 'ESRCH';
|
|
22
|
-
}
|
|
23
|
-
}
|
|
13
|
+
var kill = require('tree-kill');
|
|
24
14
|
var gracefulShutdown = /*#__PURE__*/function () {
|
|
25
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
26
|
-
return _regeneratorRuntime().wrap(function
|
|
27
|
-
while (1) switch (
|
|
15
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(javaProcess) {
|
|
16
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
17
|
+
while (1) switch (_context.prev = _context.next) {
|
|
28
18
|
case 0:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return (0, _promise["default"])(javaProcess.pid);
|
|
41
|
-
case 3:
|
|
42
|
-
resolve();
|
|
43
|
-
case 4:
|
|
44
|
-
case "end":
|
|
45
|
-
return _context.stop();
|
|
46
|
-
}
|
|
47
|
-
}, _callee);
|
|
48
|
-
})), 5000);
|
|
19
|
+
return _context.abrupt("return", new Promise(function (resolve, reject) {
|
|
20
|
+
_logger["default"].info('Sending SIGTERM to stop stub process');
|
|
21
|
+
kill(javaProcess.pid, 'SIGTERM', function (err) {
|
|
22
|
+
if (err) {
|
|
23
|
+
_logger["default"].debug('Failed to send SIGTERM to stub process tree:', err);
|
|
24
|
+
resolve();
|
|
25
|
+
} else {
|
|
26
|
+
_logger["default"].debug('SIGTERM sent successfully to stub process tree');
|
|
27
|
+
resolve();
|
|
28
|
+
}
|
|
29
|
+
});
|
|
49
30
|
}));
|
|
50
|
-
case
|
|
31
|
+
case 1:
|
|
51
32
|
case "end":
|
|
52
|
-
return
|
|
33
|
+
return _context.stop();
|
|
53
34
|
}
|
|
54
|
-
},
|
|
35
|
+
}, _callee);
|
|
55
36
|
}));
|
|
56
37
|
return function gracefulShutdown(_x) {
|
|
57
38
|
return _ref.apply(this, arguments);
|
|
58
39
|
};
|
|
59
40
|
}();
|
|
60
41
|
exports.gracefulShutdown = gracefulShutdown;
|
|
61
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZVByb2Nlc3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9taXNlIiwib2JqIiwiX19lc01vZHVsZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwiaXNQcm9jZXNzUnVubmluZyIsInBpZCIsIm5vZGVQcm9jZXNzIiwia2lsbCIsImNvZGUiLCJncmFjZWZ1bFNodXRkb3duIiwiX3JlZiIsIl9jYWxsZWUyIiwiamF2YVByb2Nlc3MiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJzZXRUaW1lb3V0IiwiX2NhbGxlZSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ0ZXJtaW5hdGUiLCJfeCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9zaHV0ZG93blV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IG5vZGVQcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgdGVybWluYXRlIGZyb20gJ3Rlcm1pbmF0ZS9wcm9taXNlJztcblxuZnVuY3Rpb24gaXNQcm9jZXNzUnVubmluZyhwaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIFNlbmRpbmcgc2lnbmFsIDAgZG9lc24ndCBraWxsIHRoZSBwcm9jZXNzLCBidXQgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcHJvY2VzcyBkb2Vzbid0IGV4aXN0XG4gICAgICAgIG5vZGVQcm9jZXNzLmtpbGwocGlkLCAwKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgLy8gSWYgcHJvY2VzcyBkb2Vzbid0IGV4aXN0LCBFU1JDSCB3aWxsIGJlIHRoZSBlcnJvciBjb2RlXG4gICAgICAgIHJldHVybiBlcnIuY29kZSAhPT0gJ0VTUkNIJztcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBncmFjZWZ1bFNodXRkb3duID0gYXN5bmMgZnVuY3Rpb24gKGphdmFQcm9jZXNzOiBDaGlsZFByb2Nlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBqYXZhUHJvY2Vzcy5raWxsKCdTSUdURVJNJylcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGlmIChpc1Byb2Nlc3NSdW5uaW5nKGphdmFQcm9jZXNzLnBpZCEpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGVybWluYXRlKGphdmFQcm9jZXNzLnBpZCEpIC8vIEFzc3VtaW5nIHRlcm1pbmF0ZSBpcyBhIGtub3duIGZ1bmN0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgfSwgNTAwMClcbiAgICB9KVxufVxuXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxZQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFBMEMsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxnQkFBQUEsR0FBQTtBQUFBLFNBQUFFLG9CQUFB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
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImUiLCJ0IiwiciIsIk9iamVjdCIsInByb3RvdHlwZSIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiaSIsIlN5bWJvbCIsImEiLCJpdGVyYXRvciIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsImdlbiIsInJlamVjdCIsIl9uZXh0IiwiX3Rocm93Iiwia2V5IiwiaW5mbyIsImVycm9yIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJmbiIsInNlbGYiLCJhcmdzIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJlcnIiLCJ1bmRlZmluZWQiLCJraWxsIiwiZ3JhY2VmdWxTaHV0ZG93biIsIl9yZWYiLCJfY2FsbGVlIiwiamF2YVByb2Nlc3MiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwibG9nZ2VyIiwicGlkIiwiZGVidWciLCJfeCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9zaHV0ZG93blV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IG5vZGVQcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgdGVybWluYXRlIGZyb20gJ3Rlcm1pbmF0ZS9wcm9taXNlJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vY29tbW9uL2xvZ2dlcidcbmNvbnN0IGtpbGwgPSByZXF1aXJlKCd0cmVlLWtpbGwnKTtcblxuZXhwb3J0IGNvbnN0IGdyYWNlZnVsU2h1dGRvd24gPSBhc3luYyBmdW5jdGlvbiAoamF2YVByb2Nlc3M6IENoaWxkUHJvY2Vzcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvZ2dlci5pbmZvKCdTZW5kaW5nIFNJR1RFUk0gdG8gc3RvcCBzdHViIHByb2Nlc3MnKVxuICAgICAgICBraWxsKGphdmFQcm9jZXNzLnBpZCwgJ1NJR1RFUk0nLCAoZXJyOkVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZihlcnIpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoJ0ZhaWxlZCB0byBzZW5kIFNJR1RFUk0gdG8gc3R1YiBwcm9jZXNzIHRyZWU6JywgZXJyKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnU0lHVEVSTSBzZW50IHN1Y2Nlc3NmdWxseSB0byBzdHViIHByb2Nlc3MgdHJlZScpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBQUEsU0FBQUUsb0JBQUEsa0JBRnJDLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specmatic",
|
|
3
|
-
"version": "0.78.
|
|
3
|
+
"version": "0.78.3",
|
|
4
4
|
"description": "Node wrapper for Specmatic",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"express-list-endpoints": "^6.0.0",
|
|
39
39
|
"fast-xml-parser": "^4.2.7",
|
|
40
40
|
"terminate": "^2.6.1",
|
|
41
|
+
"tree-kill": "^1.2.2",
|
|
41
42
|
"winston": "^3.10.0"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
package/src/core/index.ts
CHANGED
|
@@ -72,7 +72,9 @@ const stopStub = async (stub: Stub) => {
|
|
|
72
72
|
javaProcess.stdout?.removeAllListeners()
|
|
73
73
|
javaProcess.stderr?.removeAllListeners()
|
|
74
74
|
javaProcess.removeAllListeners('close')
|
|
75
|
+
logger.debug('Trying to stop stub process gracefully ...')
|
|
75
76
|
await gracefulShutdown(javaProcess)
|
|
77
|
+
logger.debug('Completed graceful termination of the stub process')
|
|
76
78
|
logger.info(`Stub: Stopped server at ${stub.url}`)
|
|
77
79
|
}
|
|
78
80
|
|
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
import { ChildProcess } from 'child_process';
|
|
2
2
|
import nodeProcess from 'node:process';
|
|
3
3
|
import terminate from 'terminate/promise';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
try {
|
|
7
|
-
// Sending signal 0 doesn't kill the process, but will throw an error if the process doesn't exist
|
|
8
|
-
nodeProcess.kill(pid, 0);
|
|
9
|
-
return true;
|
|
10
|
-
} catch (err: any) {
|
|
11
|
-
// If process doesn't exist, ESRCH will be the error code
|
|
12
|
-
return err.code !== 'ESRCH';
|
|
13
|
-
}
|
|
14
|
-
}
|
|
4
|
+
import logger from '../common/logger'
|
|
5
|
+
const kill = require('tree-kill');
|
|
15
6
|
|
|
16
7
|
export const gracefulShutdown = async function (javaProcess: ChildProcess): Promise<void> {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
logger.info('Sending SIGTERM to stop stub process')
|
|
10
|
+
kill(javaProcess.pid, 'SIGTERM', (err:Error) => {
|
|
11
|
+
if(err) {
|
|
12
|
+
logger.debug('Failed to send SIGTERM to stub process tree:', err);
|
|
13
|
+
resolve();
|
|
14
|
+
} else {
|
|
15
|
+
logger.debug('SIGTERM sent successfully to stub process tree');
|
|
16
|
+
resolve();
|
|
23
17
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
})
|
|
18
|
+
});
|
|
19
|
+
});
|
|
27
20
|
}
|
|
28
21
|
|