specmatic 0.72.11 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,18 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ # Maintain dependencies for Gradle
9
+ - package-ecosystem: "npm"
10
+ directory: "/"
11
+ schedule:
12
+ interval: "daily"
13
+
14
+ # Maintain dependencies for GitHub Actions
15
+ - package-ecosystem: "github-actions"
16
+ directory: "/"
17
+ schedule:
18
+ interval: "daily"
@@ -14,7 +14,7 @@ jobs:
14
14
  node-version: 14
15
15
  - run: npm install
16
16
  - run: npm run build
17
- - uses: reedyuk/npm-version@1.1.1
17
+ - uses: reedyuk/npm-version@1.2.1
18
18
  with:
19
19
  version: ${{ github.event.release.tag_name }}
20
20
  - uses: JS-DevTools/npm-publish@v2
@@ -29,7 +29,7 @@ function callJar(jarPath, args, done, onOutput) {
29
29
  if (process.env['endpointsAPI']) {
30
30
  java = "".concat(java, " -DendpointsAPI=\"").concat(process.env['endpointsAPI'], "\"");
31
31
  }
32
- var javaProcess = (0, _execSh["default"])("".concat(java, " -jar ").concat(jarPath, " ").concat(args), {
32
+ var javaProcess = (0, _execSh["default"])("".concat(java, " -jar \"").concat(jarPath, "\" ").concat(args), {
33
33
  stdio: 'pipe',
34
34
  stderr: 'pipe'
35
35
  }, done);
@@ -41,4 +41,4 @@ function callJar(jarPath, args, done, onOutput) {
41
41
  });
42
42
  return javaProcess;
43
43
  }
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhlY1NoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsIl9jb25maWciLCJfbG9nZ2VyIiwib2JqIiwiX19lc01vZHVsZSIsImNhbGxDb3JlIiwiYXJncyIsImRvbmUiLCJvbk91dHB1dCIsInJvb3RQYXRoIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJzcGVjbWF0aWNKYXJQYXRoIiwic3BlY21hdGljQ29yZUphck5hbWUiLCJsb2dnZXIiLCJkZWJ1ZyIsImNvbmNhdCIsImNhbGxKYXIiLCJleHBvcnRzIiwiY2FsbEthZmthIiwic3BlY21hdGljS2Fma2FKYXJOYW1lIiwiamFyUGF0aCIsIl9qYXZhUHJvY2VzcyRzdGRvdXQiLCJfamF2YVByb2Nlc3Mkc3RkZXJyIiwiamF2YSIsInByb2Nlc3MiLCJlbnYiLCJqYXZhUHJvY2VzcyIsImV4ZWNTaCIsInN0ZGlvIiwic3RkZXJyIiwic3Rkb3V0Iiwib24iLCJkYXRhIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9ydW5uZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGV4ZWNTaCBmcm9tICdleGVjLXNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgc3BlY21hdGljQ29yZUphck5hbWUsIHNwZWNtYXRpY0thZmthSmFyTmFtZSB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInO1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IGNhbGxDb3JlID0gKGFyZ3M6IHN0cmluZywgZG9uZTogKGVycm9yOiBhbnkpID0+IHZvaWQsIG9uT3V0cHV0OiAobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogYm9vbGVhbikgPT4gdm9pZCk6IENoaWxkUHJvY2VzcyA9PiB7XG4gICAgY29uc3Qgcm9vdFBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nKTtcbiAgICBjb25zdCBzcGVjbWF0aWNKYXJQYXRoID0gcGF0aC5yZXNvbHZlKHJvb3RQYXRoLCBzcGVjbWF0aWNDb3JlSmFyTmFtZSk7XG4gICAgbG9nZ2VyLmRlYnVnKGBDTEk6IFNwZWNtYXRpYyBqYXIgcGF0aDogJHtzcGVjbWF0aWNKYXJQYXRofWApO1xuICAgIHJldHVybiBjYWxsSmFyKHNwZWNtYXRpY0phclBhdGgsIGFyZ3MsIGRvbmUsIG9uT3V0cHV0KTtcbn07XG5cbmNvbnN0IGNhbGxLYWZrYSA9IChhcmdzOiBzdHJpbmcsIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpOiBDaGlsZFByb2Nlc3MgPT4ge1xuICAgIGNvbnN0IHJvb3RQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJ3NwZWNtYXRpYy1iZXRhJywgJ2thZmthJyk7XG4gICAgY29uc3Qgc3BlY21hdGljSmFyUGF0aCA9IHBhdGgucmVzb2x2ZShyb290UGF0aCwgc3BlY21hdGljS2Fma2FKYXJOYW1lKTtcbiAgICBsb2dnZXIuZGVidWcoYENMSTogU3BlY21hdGljIGphciBwYXRoOiAke3NwZWNtYXRpY0phclBhdGh9YCk7XG4gICAgcmV0dXJuIGNhbGxKYXIoc3BlY21hdGljSmFyUGF0aCwgYXJncywgZG9uZSwgb25PdXRwdXQpO1xufTtcblxuZnVuY3Rpb24gY2FsbEphcihqYXJQYXRoOiBzdHJpbmcsIGFyZ3M6IHN0cmluZywgZG9uZTogKGVycm9yOiBhbnkpID0+IHZvaWQsIG9uT3V0cHV0OiAobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgIGxldCBqYXZhID0gJ2phdmEnO1xuICAgIGlmIChwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ10pIHtcbiAgICAgICAgamF2YSA9IGAke2phdmF9IC1EZW5kcG9pbnRzQVBJPVwiJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119XCJgO1xuICAgIH1cbiAgICBjb25zdCBqYXZhUHJvY2VzcyA9IGV4ZWNTaChgJHtqYXZhfSAtamFyICR7amFyUGF0aH0gJHthcmdzfWAsIHsgc3RkaW86ICdwaXBlJywgc3RkZXJyOiAncGlwZScgfSwgZG9uZSk7XG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCBmYWxzZSk7XG4gICAgfSk7XG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCB0cnVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gamF2YVByb2Nlc3M7XG59XG5cbmV4cG9ydCB7IGNhbGxDb3JlLCBjYWxsS2Fma2EgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQXNDLFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFHdEMsSUFBTUUsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLElBQVksRUFBRUMsSUFBMEIsRUFBRUMsUUFBbUQsRUFBbUI7RUFDOUgsSUFBTUMsUUFBUSxHQUFHQyxnQkFBSSxDQUFDQyxPQUFPLENBQUNDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO0VBQ3BELElBQU1DLGdCQUFnQixHQUFHSCxnQkFBSSxDQUFDQyxPQUFPLENBQUNGLFFBQVEsRUFBRUssNEJBQW9CLENBQUM7RUFDckVDLGtCQUFNLENBQUNDLEtBQUssNkJBQUFDLE1BQUEsQ0FBNkJKLGdCQUFnQixDQUFFLENBQUM7RUFDNUQsT0FBT0ssT0FBTyxDQUFDTCxnQkFBZ0IsRUFBRVAsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsQ0FBQztBQUMxRCxDQUFDO0FBQUNXLE9BQUEsQ0FBQWQsUUFBQSxHQUFBQSxRQUFBO0FBRUYsSUFBTWUsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlkLElBQVksRUFBRUMsSUFBMEIsRUFBRUMsUUFBbUQsRUFBbUI7RUFDL0gsSUFBTUMsUUFBUSxHQUFHQyxnQkFBSSxDQUFDQyxPQUFPLENBQUNDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7RUFDckYsSUFBTUMsZ0JBQWdCLEdBQUdILGdCQUFJLENBQUNDLE9BQU8sQ0FBQ0YsUUFBUSxFQUFFWSw2QkFBcUIsQ0FBQztFQUN0RU4sa0JBQU0sQ0FBQ0MsS0FBSyw2QkFBQUMsTUFBQSxDQUE2QkosZ0JBQWdCLENBQUUsQ0FBQztFQUM1RCxPQUFPSyxPQUFPLENBQUNMLGdCQUFnQixFQUFFUCxJQUFJLEVBQUVDLElBQUksRUFBRUMsUUFBUSxDQUFDO0FBQzFELENBQUM7QUFBQ1csT0FBQSxDQUFBQyxTQUFBLEdBQUFBLFNBQUE7QUFFRixTQUFTRixPQUFPQSxDQUFDSSxPQUFlLEVBQUVoQixJQUFZLEVBQUVDLElBQTBCLEVBQUVDLFFBQW1ELEVBQUU7RUFBQSxJQUFBZSxtQkFBQSxFQUFBQyxtQkFBQTtFQUM3SCxJQUFJQyxJQUFJLEdBQUcsTUFBTTtFQUNqQixJQUFJQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRTtJQUM3QkYsSUFBSSxNQUFBUixNQUFBLENBQU1RLElBQUksd0JBQUFSLE1BQUEsQ0FBb0JTLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFHO0VBQ3BFO0VBQ0EsSUFBTUMsV0FBVyxHQUFHLElBQUFDLGtCQUFNLEtBQUFaLE1BQUEsQ0FBSVEsSUFBSSxZQUFBUixNQUFBLENBQVNLLE9BQU8sT0FBQUwsTUFBQSxDQUFJWCxJQUFJLEdBQUk7SUFBRXdCLEtBQUssRUFBRSxNQUFNO0lBQUVDLE1BQU0sRUFBRTtFQUFPLENBQUMsRUFBRXhCLElBQUksQ0FBQztFQUN0RyxDQUFBZ0IsbUJBQUEsR0FBQUssV0FBVyxDQUFDSSxNQUFNLGNBQUFULG1CQUFBLHVCQUFsQkEsbUJBQUEsQ0FBb0JVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVUMsSUFBWSxFQUFFO0lBQ25EMUIsUUFBUSxJQUFBUyxNQUFBLENBQUlpQixJQUFJLEdBQUksS0FBSyxDQUFDO0VBQzlCLENBQUMsQ0FBQztFQUNGLENBQUFWLG1CQUFBLEdBQUFJLFdBQVcsQ0FBQ0csTUFBTSxjQUFBUCxtQkFBQSx1QkFBbEJBLG1CQUFBLENBQW9CUyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVVDLElBQVksRUFBRTtJQUNuRDFCLFFBQVEsSUFBQVMsTUFBQSxDQUFJaUIsSUFBSSxHQUFJLElBQUksQ0FBQztFQUM3QixDQUFDLENBQUM7RUFDRixPQUFPTixXQUFXO0FBQ3RCIn0=
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhlY1NoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsIl9jb25maWciLCJfbG9nZ2VyIiwib2JqIiwiX19lc01vZHVsZSIsImNhbGxDb3JlIiwiYXJncyIsImRvbmUiLCJvbk91dHB1dCIsInJvb3RQYXRoIiwicGF0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJzcGVjbWF0aWNKYXJQYXRoIiwic3BlY21hdGljQ29yZUphck5hbWUiLCJsb2dnZXIiLCJkZWJ1ZyIsImNvbmNhdCIsImNhbGxKYXIiLCJleHBvcnRzIiwiY2FsbEthZmthIiwic3BlY21hdGljS2Fma2FKYXJOYW1lIiwiamFyUGF0aCIsIl9qYXZhUHJvY2VzcyRzdGRvdXQiLCJfamF2YVByb2Nlc3Mkc3RkZXJyIiwiamF2YSIsInByb2Nlc3MiLCJlbnYiLCJqYXZhUHJvY2VzcyIsImV4ZWNTaCIsInN0ZGlvIiwic3RkZXJyIiwic3Rkb3V0Iiwib24iLCJkYXRhIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9ydW5uZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGV4ZWNTaCBmcm9tICdleGVjLXNoJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgc3BlY21hdGljQ29yZUphck5hbWUsIHNwZWNtYXRpY0thZmthSmFyTmFtZSB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInO1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IGNhbGxDb3JlID0gKGFyZ3M6IHN0cmluZywgZG9uZTogKGVycm9yOiBhbnkpID0+IHZvaWQsIG9uT3V0cHV0OiAobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogYm9vbGVhbikgPT4gdm9pZCk6IENoaWxkUHJvY2VzcyA9PiB7XG4gICAgY29uc3Qgcm9vdFBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nKTtcbiAgICBjb25zdCBzcGVjbWF0aWNKYXJQYXRoID0gcGF0aC5yZXNvbHZlKHJvb3RQYXRoLCBzcGVjbWF0aWNDb3JlSmFyTmFtZSk7XG4gICAgbG9nZ2VyLmRlYnVnKGBDTEk6IFNwZWNtYXRpYyBqYXIgcGF0aDogJHtzcGVjbWF0aWNKYXJQYXRofWApO1xuICAgIHJldHVybiBjYWxsSmFyKHNwZWNtYXRpY0phclBhdGgsIGFyZ3MsIGRvbmUsIG9uT3V0cHV0KTtcbn07XG5cbmNvbnN0IGNhbGxLYWZrYSA9IChhcmdzOiBzdHJpbmcsIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpOiBDaGlsZFByb2Nlc3MgPT4ge1xuICAgIGNvbnN0IHJvb3RQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJ3NwZWNtYXRpYy1iZXRhJywgJ2thZmthJyk7XG4gICAgY29uc3Qgc3BlY21hdGljSmFyUGF0aCA9IHBhdGgucmVzb2x2ZShyb290UGF0aCwgc3BlY21hdGljS2Fma2FKYXJOYW1lKTtcbiAgICBsb2dnZXIuZGVidWcoYENMSTogU3BlY21hdGljIGphciBwYXRoOiAke3NwZWNtYXRpY0phclBhdGh9YCk7XG4gICAgcmV0dXJuIGNhbGxKYXIoc3BlY21hdGljSmFyUGF0aCwgYXJncywgZG9uZSwgb25PdXRwdXQpO1xufTtcblxuZnVuY3Rpb24gY2FsbEphcihqYXJQYXRoOiBzdHJpbmcsIGFyZ3M6IHN0cmluZywgZG9uZTogKGVycm9yOiBhbnkpID0+IHZvaWQsIG9uT3V0cHV0OiAobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgIGxldCBqYXZhID0gJ2phdmEnO1xuICAgIGlmIChwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ10pIHtcbiAgICAgICAgamF2YSA9IGAke2phdmF9IC1EZW5kcG9pbnRzQVBJPVwiJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119XCJgO1xuICAgIH1cbiAgICBjb25zdCBqYXZhUHJvY2VzcyA9IGV4ZWNTaChgJHtqYXZhfSAtamFyIFwiJHtqYXJQYXRofVwiICR7YXJnc31gLCB7IHN0ZGlvOiAncGlwZScsIHN0ZGVycjogJ3BpcGUnIH0sIGRvbmUpO1xuICAgIGphdmFQcm9jZXNzLnN0ZG91dD8ub24oJ2RhdGEnLCBmdW5jdGlvbiAoZGF0YTogU3RyaW5nKSB7XG4gICAgICAgIG9uT3V0cHV0KGAke2RhdGF9YCwgZmFsc2UpO1xuICAgIH0pO1xuICAgIGphdmFQcm9jZXNzLnN0ZGVycj8ub24oJ2RhdGEnLCBmdW5jdGlvbiAoZGF0YTogU3RyaW5nKSB7XG4gICAgICAgIG9uT3V0cHV0KGAke2RhdGF9YCwgdHJ1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGphdmFQcm9jZXNzO1xufVxuXG5leHBvcnQgeyBjYWxsQ29yZSwgY2FsbEthZmthIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUFzQyxTQUFBRCx1QkFBQUssR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBR3RDLElBQU1FLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJQyxJQUFZLEVBQUVDLElBQTBCLEVBQUVDLFFBQW1ELEVBQW1CO0VBQzlILElBQU1DLFFBQVEsR0FBR0MsZ0JBQUksQ0FBQ0MsT0FBTyxDQUFDQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztFQUNwRCxJQUFNQyxnQkFBZ0IsR0FBR0gsZ0JBQUksQ0FBQ0MsT0FBTyxDQUFDRixRQUFRLEVBQUVLLDRCQUFvQixDQUFDO0VBQ3JFQyxrQkFBTSxDQUFDQyxLQUFLLDZCQUFBQyxNQUFBLENBQTZCSixnQkFBZ0IsQ0FBRSxDQUFDO0VBQzVELE9BQU9LLE9BQU8sQ0FBQ0wsZ0JBQWdCLEVBQUVQLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLENBQUM7QUFDMUQsQ0FBQztBQUFDVyxPQUFBLENBQUFkLFFBQUEsR0FBQUEsUUFBQTtBQUVGLElBQU1lLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFJZCxJQUFZLEVBQUVDLElBQTBCLEVBQUVDLFFBQW1ELEVBQW1CO0VBQy9ILElBQU1DLFFBQVEsR0FBR0MsZ0JBQUksQ0FBQ0MsT0FBTyxDQUFDQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO0VBQ3JGLElBQU1DLGdCQUFnQixHQUFHSCxnQkFBSSxDQUFDQyxPQUFPLENBQUNGLFFBQVEsRUFBRVksNkJBQXFCLENBQUM7RUFDdEVOLGtCQUFNLENBQUNDLEtBQUssNkJBQUFDLE1BQUEsQ0FBNkJKLGdCQUFnQixDQUFFLENBQUM7RUFDNUQsT0FBT0ssT0FBTyxDQUFDTCxnQkFBZ0IsRUFBRVAsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsQ0FBQztBQUMxRCxDQUFDO0FBQUNXLE9BQUEsQ0FBQUMsU0FBQSxHQUFBQSxTQUFBO0FBRUYsU0FBU0YsT0FBT0EsQ0FBQ0ksT0FBZSxFQUFFaEIsSUFBWSxFQUFFQyxJQUEwQixFQUFFQyxRQUFtRCxFQUFFO0VBQUEsSUFBQWUsbUJBQUEsRUFBQUMsbUJBQUE7RUFDN0gsSUFBSUMsSUFBSSxHQUFHLE1BQU07RUFDakIsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7SUFDN0JGLElBQUksTUFBQVIsTUFBQSxDQUFNUSxJQUFJLHdCQUFBUixNQUFBLENBQW9CUyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBRztFQUNwRTtFQUNBLElBQU1DLFdBQVcsR0FBRyxJQUFBQyxrQkFBTSxLQUFBWixNQUFBLENBQUlRLElBQUksY0FBQVIsTUFBQSxDQUFVSyxPQUFPLFNBQUFMLE1BQUEsQ0FBS1gsSUFBSSxHQUFJO0lBQUV3QixLQUFLLEVBQUUsTUFBTTtJQUFFQyxNQUFNLEVBQUU7RUFBTyxDQUFDLEVBQUV4QixJQUFJLENBQUM7RUFDeEcsQ0FBQWdCLG1CQUFBLEdBQUFLLFdBQVcsQ0FBQ0ksTUFBTSxjQUFBVCxtQkFBQSx1QkFBbEJBLG1CQUFBLENBQW9CVSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVVDLElBQVksRUFBRTtJQUNuRDFCLFFBQVEsSUFBQVMsTUFBQSxDQUFJaUIsSUFBSSxHQUFJLEtBQUssQ0FBQztFQUM5QixDQUFDLENBQUM7RUFDRixDQUFBVixtQkFBQSxHQUFBSSxXQUFXLENBQUNHLE1BQU0sY0FBQVAsbUJBQUEsdUJBQWxCQSxtQkFBQSxDQUFvQlMsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVQyxJQUFZLEVBQUU7SUFDbkQxQixRQUFRLElBQUFTLE1BQUEsQ0FBSWlCLElBQUksR0FBSSxJQUFJLENBQUM7RUFDN0IsQ0FBQyxDQUFDO0VBQ0YsT0FBT04sV0FBVztBQUN0QiJ9
@@ -315,11 +315,11 @@ function extractEndPoints(expressApp) {
315
315
  details: {
316
316
  requestMappingConditions: {
317
317
  methods: endPoints[path].sort(),
318
- patterns: [path.replace(/:([^/]+)/g, '{$1}')]
318
+ patterns: [path.replace(/:([^/]+)/g, '{$1}').replace(/\\/g, '')]
319
319
  }
320
320
  }
321
321
  });
322
322
  });
323
323
  return springActuatorPayload;
324
324
  }
325
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsIl9mYXN0WG1sUGFyc2VyIiwiX2ZzIiwiX2xvZ2dlciIsIl9ydW5uZXIiLCJfcHJvbWlzZSIsIl9leHByZXNzTGlzdEVuZHBvaW50cyIsIl9odHRwIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiU3R1YiIsImhvc3QiLCJwb3J0IiwidXJsIiwicHJvY2VzcyIsInN0YXJ0U3R1YiIsImNtZCIsImNvbmNhdCIsImpvaW4iLCJsb2dnZXIiLCJkZWJ1ZyIsImphdmFQcm9jZXNzIiwiY2FsbENvcmUiLCJtZXNzYWdlIiwiaW5kZXhPZiIsInN0dWJJbmZvIiwic3BsaXQiLCJfdXJsSW5mbyRsZW5ndGgiLCJ0cmltIiwidXJsSW5mbyIsImV4ZWMiLCJwYXJzZUludCIsInN0b3BTdHViIiwiX3JlZiIsIl9jYWxsZWUiLCJzdHViIiwiX2phdmFQcm9jZXNzJHN0ZG91dCIsIl9qYXZhUHJvY2VzcyRzdGRlcnIiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic3Rkb3V0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwic3RkZXJyIiwidGVybWluYXRlIiwicGlkIiwiX3giLCJ0ZXN0V2l0aEFwaUNvdmVyYWdlIiwiX3JlZjIiLCJfY2FsbGVlMyIsImV4cHJlc3NBcHAiLCJjb250cmFjdFBhdGgiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX3JlamVjdCIsImFwaUNvdmVyYWdlU2VydmVyIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIiLCJ0ZXN0IiwiY2xvc2UiLCJfeDciLCJfeDgiLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJzcGVjc1BhdGgiLCJwYXRoIiwicmVwb3J0RGlyIiwiZnMiLCJybVN5bmMiLCJyZWN1cnNpdmUiLCJmb3JjZSIsInRlc3RDYXNlcyIsInBhcnNlSnVuaXRYTUwiLCJ0b3RhbCIsImZhaWx1cmUiLCJmaWx0ZXIiLCJ0ZXN0Y2FzZSIsInN1Y2Nlc3MiLCJjb25zb2xlIiwibG9nIiwic2hvd1Rlc3RSZXN1bHRzIiwidGVzdEZuIiwibWFwIiwibmFtZVRlbXBBcnIiLCJyZXBsYWNlIiwic2tpcHBlZCIsInNldEV4cGVjdGF0aW9ucyIsInN0dWJQYXRoIiwic3R1YlNlcnZlckJhc2VVcmwiLCJzdHViUmVzcG9uc2UiLCJmZXRjaCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiX3JlZjQiLCJfY2FsbGVlNCIsInJlc3BvbnNlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0Iiwic3RhdHVzIiwidGV4dCIsIl94OSIsInByaW50SmFyVmVyc2lvbiIsImFwcCIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJfcmVxIiwid3JpdGVIZWFkIiwiZW5kUG9pbnRzIiwiZXh0cmFjdEVuZFBvaW50cyIsImVuZCIsIm9uIiwibGlzdGVuIiwiYWRkcmVzcyIsImVudiIsInJlcG9ydFBhdGgiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwicGFyc2VyIiwiWE1MUGFyc2VyIiwicmVzdWx0WG1sIiwicGFyc2UiLCJ0ZXN0c3VpdGUiLCJBcnJheSIsImlzQXJyYXkiLCJsaXN0RW5kUG9pbnRzIiwiZGV0YWlscyIsImxpc3RFeHByZXNzRW5kcG9pbnRzIiwiYXBpRGV0YWlsIiwibWV0aG9kcyIsInNwcmluZ0FjdHVhdG9yUGF5bG9hZCIsImNvbnRleHRzIiwiYXBwbGljYXRpb24iLCJtYXBwaW5ncyIsImRpc3BhdGNoZXJTZXJ2bGV0cyIsImRpc3BhdGNoZXJTZXJ2bGV0Iiwic29ydCIsInJlcXVlc3RNYXBwaW5nQ29uZGl0aW9ucyIsInBhdHRlcm5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2VzcydcbmltcG9ydCB7IFhNTFBhcnNlciB9IGZyb20gJ2Zhc3QteG1sLXBhcnNlcidcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vY29tbW9uL2xvZ2dlcidcbmltcG9ydCB7IGNhbGxDb3JlIH0gZnJvbSAnLi4vY29tbW9uL3J1bm5lcidcbmltcG9ydCB0ZXJtaW5hdGUgZnJvbSAndGVybWluYXRlL3Byb21pc2UnXG5pbXBvcnQgbGlzdEV4cHJlc3NFbmRwb2ludHMgZnJvbSAnZXhwcmVzcy1saXN0LWVuZHBvaW50cydcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBBZGRyZXNzSW5mbyB9IGZyb20gJ25ldCdcblxuZXhwb3J0IGNsYXNzIFN0dWIge1xuICAgIGhvc3Q6IHN0cmluZ1xuICAgIHBvcnQ6IG51bWJlclxuICAgIHVybDogc3RyaW5nXG4gICAgcHJvY2VzczogQ2hpbGRQcm9jZXNzXG4gICAgY29uc3RydWN0b3IoaG9zdDogc3RyaW5nLCBwb3J0OiBudW1iZXIsIHVybDogc3RyaW5nLCBwcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gaG9zdFxuICAgICAgICB0aGlzLnBvcnQgPSBwb3J0XG4gICAgICAgIHRoaXMudXJsID0gdXJsXG4gICAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3NcbiAgICB9XG59XG5cbmNvbnN0IHN0YXJ0U3R1YiA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8U3R1Yj4gPT4ge1xuICAgIHZhciBjbWQgPSBgc3R1YmBcbiAgICBpZiAoaG9zdCkgY21kICs9IGAgLS1ob3N0PSR7aG9zdH1gXG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YFxuICAgIGlmIChhcmdzKSBjbWQgKz0gJyAnICsgYXJncy5qb2luKCcgJylcblxuICAgIGxvZ2dlci5pbmZvKCdTdHViOiBTdGFydGluZyBzZXJ2ZXInKVxuICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgamF2YVByb2Nlc3MgPSBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiBFeGl0ZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ1N0dWIgc2VydmVyIGlzIHJ1bm5pbmcnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoJ29uJylcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5sZW5ndGggPCAyKSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgdXJsIGZyb20gc3R1YiBvdXRwdXQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gc3R1YkluZm9bMV0udHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsSW5mbyA9IC8oLio/KTpcXC9cXC8oLio/KTooWzAtOV0rKS8uZXhlYyh1cmwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1cmxJbmZvPy5sZW5ndGggPz8gMCkgPCA0KSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgaG9zdCBhbmQgcG9ydCBmcm9tIHN0dWIgb3V0cHV0JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlc29sdmUobmV3IFN0dWIodXJsSW5mbyFbMl0sIHBhcnNlSW50KHVybEluZm8hWzNdKSwgdXJsSW5mbyFbMF0sIGphdmFQcm9jZXNzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJylcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH0pXG59XG5cbmNvbnN0IHN0b3BTdHViID0gYXN5bmMgKHN0dWI6IFN0dWIpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYFN0dWI6IFN0b3BwaW5nIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG4gICAgY29uc3QgamF2YVByb2Nlc3MgPSBzdHViLnByb2Nlc3NcbiAgICBqYXZhUHJvY2Vzcy5zdGRvdXQ/LnJlbW92ZUFsbExpc3RlbmVycygpXG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKVxuICAgIGphdmFQcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycygnY2xvc2UnKVxuICAgIGF3YWl0IHRlcm1pbmF0ZShqYXZhUHJvY2Vzcy5waWQhKVxuICAgIGxvZ2dlci5pbmZvKGBTdHViOiBTdG9wcGVkIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG59XG5cbmNvbnN0IHRlc3RXaXRoQXBpQ292ZXJhZ2UgPSBhc3luYyAoXG4gICAgZXhwcmVzc0FwcDogYW55LFxuICAgIGhvc3Q/OiBzdHJpbmcsXG4gICAgcG9ydD86IG51bWJlcixcbiAgICBjb250cmFjdFBhdGg/OiBzdHJpbmcsXG4gICAgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW11cbik6IFByb21pc2U8eyBbazogc3RyaW5nXTogbnVtYmVyIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICAgICAgbGV0IGFwaUNvdmVyYWdlU2VydmVyID0gYXdhaXQgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlcihleHByZXNzQXBwKVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGVzdChob3N0LCBwb3J0LCBjb250cmFjdFBhdGgsIGFyZ3MpXG4gICAgICAgIGFwaUNvdmVyYWdlU2VydmVyLmNsb3NlKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0cylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCB0ZXN0ID0gKGhvc3Q/OiBzdHJpbmcsIHBvcnQ/OiBudW1iZXIsIGNvbnRyYWN0UGF0aD86IHN0cmluZywgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3Qgc3BlY3NQYXRoID0gcGF0aC5yZXNvbHZlKGNvbnRyYWN0UGF0aCArICcnKVxuXG4gICAgdmFyIGNtZCA9IGB0ZXN0YFxuICAgIGlmIChjb250cmFjdFBhdGgpIGNtZCArPSBgICR7c3BlY3NQYXRofWBcbiAgICBjbWQgKz0gJyAtLWp1bml0UmVwb3J0RGlyPWRpc3QvdGVzdC1yZXBvcnQnXG4gICAgaWYgKGhvc3QpIGNtZCArPSBgIC0taG9zdD0ke2hvc3R9YFxuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWBcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpXG5cbiAgICBsb2dnZXIuaW5mbygnVGVzdDogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBUZXN0OiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICBjb25zdCByZXBvcnREaXIgPSBwYXRoLnJlc29sdmUoJ2Rpc3QvdGVzdC1yZXBvcnQnKVxuICAgIGZzLnJtU3luYyhyZXBvcnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGNhbGxDb3JlKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBUZXN0OiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IHRlc3RDYXNlcy5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBmYWlsdXJlID0gdGVzdENhc2VzLmZpbHRlcigodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkgPT4gdGVzdGNhc2VbJ2ZhaWx1cmUnXSB8fCB0ZXN0Y2FzZVsnc2tpcHBlZCddKS5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gdG90YWwgLSBmYWlsdXJlXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHsgdG90YWwsIHN1Y2Nlc3MsIGZhaWx1cmUgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FQSSBDT1ZFUkFHRSBTVU1NQVJZJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKSAvL0xvZyBhbHdheXMgZm9yIGFsbCBsb2cgbGV2ZWxzXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyW2Vycm9yID8gJ2Vycm9yJyA6ICdkZWJ1ZyddKGBUZXN0OiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICB9KVxufVxuXG5jb25zdCBzaG93VGVzdFJlc3VsdHMgPSAodGVzdEZuOiAobmFtZTogc3RyaW5nLCBjYjogKCkgPT4gdm9pZCkgPT4gdm9pZCkgPT4ge1xuICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICB0ZXN0Q2FzZXMubWFwKGZ1bmN0aW9uICh0ZXN0Y2FzZTogeyBbaWQ6IHN0cmluZ106IGFueSB9KSB7XG4gICAgICAgIHZhciBuYW1lID0gJ05vIE5hbWUnXG4gICAgICAgIGlmICh0ZXN0Y2FzZVsnc3lzdGVtLW91dCddKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lVGVtcEFyciA9IHRlc3RjYXNlWydzeXN0ZW0tb3V0J11cbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnJylcbiAgICAgICAgICAgICAgICAuc3BsaXQoL2Rpc3BsYXktbmFtZTouKlNjZW5hcmlvOiAvKVxuICAgICAgICAgICAgaWYgKG5hbWVUZW1wQXJyLmxlbmd0aCA+IDEpIG5hbWUgPSBuYW1lVGVtcEFyclsxXS50cmltKClcbiAgICAgICAgfVxuICAgICAgICB0ZXN0Rm4obmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRlc3RjYXNlLmZhaWx1cmUgfHwgdGVzdGNhc2Uuc2tpcHBlZCkgdGhyb3cgbmV3IEVycm9yKCdEaWQgbm90IHBhc3MnKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHNldEV4cGVjdGF0aW9ucyA9IChzdHViUGF0aDogc3RyaW5nLCBzdHViU2VydmVyQmFzZVVybD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHN0dWJSZXNwb25zZSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKHN0dWJQYXRoKSlcbiAgICBzdHViU2VydmVyQmFzZVVybCA9IHN0dWJTZXJ2ZXJCYXNlVXJsIHx8ICdodHRwOi8vbG9jYWxob3N0OjkwMDAnXG5cbiAgICBsb2dnZXIuaW5mbyhgU2V0IEV4cGVjdGF0aW9uczogU3R1YiB1cmwgaXMgJHtzdHViU2VydmVyQmFzZVVybH1gKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goYCR7c3R1YlNlcnZlckJhc2VVcmx9L19zcGVjbWF0aWMvZXhwZWN0YXRpb25zYCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShzdHViUmVzcG9uc2UpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSlcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGBTZXR0aW5nIGV4cGVjYXRpb24gZmFpbGVkYClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTZXQgRXhwZWN0YXRpb25zOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHJlamVjdChgU2V0dGluZyBleHBlY2F0aW9uIGZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHByaW50SmFyVmVyc2lvbiA9ICgpID0+IHtcbiAgICBjb25zdCBjbWQgPSBgLS12ZXJzaW9uYFxuICAgIGxvZ2dlci5pbmZvKCdQcmludCBKYXIgVmVyc2lvbjogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBQcmludCBKYXIgVmVyc2lvbjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY2FsbENvcmUoXG4gICAgICAgIGNtZCxcbiAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSBsb2dnZXIuZXJyb3IoYFByaW50IEphciBWZXJzaW9uOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICB9LFxuICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICBlbHNlIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgIClcbn1cblxuY29uc3Qgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciA9IChleHByZXNzQXBwOiBhbnkpOiBQcm9taXNlPGh0dHAuU2VydmVyPiA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBSZWdpc3RlcmluZyBBUEkgZW5kcG9pbnQgZm9yIGNvdmVyYWdlYClcbiAgICBsZXQgYXBwID0gaHR0cC5jcmVhdGVTZXJ2ZXIoKF9yZXEsIHJlcykgPT4ge1xuICAgICAgICByZXMud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICAgIGNvbnN0IGVuZFBvaW50cyA9IEpTT04uc3RyaW5naWZ5KGV4dHJhY3RFbmRQb2ludHMoZXhwcmVzc0FwcCkpXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgRW5kcG9pbnRzOiAke2VuZFBvaW50c31gKVxuICAgICAgICByZXMuZW5kKGVuZFBvaW50cylcbiAgICB9KVxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxodHRwLlNlcnZlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBhcHAub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScsIGVycilcbiAgICAgICAgICAgIHJlamVjdCgnRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScpXG4gICAgICAgIH0pXG4gICAgICAgIGFwcC5saXN0ZW4oeyBob3N0OiAnMTI3LjAuMC4xJywgcG9ydDogMCB9LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhZGRyZXNzID0gYXBwLmFkZHJlc3MoKSBhcyBBZGRyZXNzSW5mbyB8IG51bGxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXSA9IGBodHRwOi8vJHthZGRyZXNzPy5hZGRyZXNzfToke2FkZHJlc3M/LnBvcnR9YFxuICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEVuZHBvaW50cyBBUEkgcmVnaXN0ZXJlZCBhdCAke3Byb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXX1gKVxuICAgICAgICAgICAgcmVzb2x2ZShhcHApXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgcGFyc2VKdW5pdFhNTCA9ICgpID0+IHtcbiAgICBjb25zdCByZXBvcnRQYXRoID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0L1RFU1QtanVuaXQtanVwaXRlci54bWwnKVxuICAgIHZhciBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHJlcG9ydFBhdGgpXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFhNTFBhcnNlcigpXG4gICAgdmFyIHJlc3VsdFhtbCA9IHBhcnNlci5wYXJzZShkYXRhKVxuICAgIHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgPSBBcnJheS5pc0FycmF5KHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UpID8gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZSA6IFtyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXVxuICAgIHJldHVybiByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXG59XG5cbmNvbnN0IGxpc3RFbmRQb2ludHMgPSAoZXhwcmVzc0FwcDogYW55KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0+IHtcbiAgICBjb25zdCBkZXRhaWxzID0gbGlzdEV4cHJlc3NFbmRwb2ludHMoZXhwcmVzc0FwcClcbiAgICBsZXQgZW5kUG9pbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fVxuICAgIGRldGFpbHMubWFwKGFwaURldGFpbCA9PiB7XG4gICAgICAgIGVuZFBvaW50c1thcGlEZXRhaWwucGF0aF0gPSBhcGlEZXRhaWwubWV0aG9kc1xuICAgIH0pXG4gICAgZGVsZXRlIGVuZFBvaW50c1snKiddXG4gICAgcmV0dXJuIGVuZFBvaW50c1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHA6IGFueSkge1xuICAgIGxldCBlbmRQb2ludHMgPSBsaXN0RW5kUG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IHNwcmluZ0FjdHVhdG9yUGF5bG9hZCA9IHtcbiAgICAgICAgY29udGV4dHM6IHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgbWFwcGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyU2VydmxldDogW10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfVxuICAgIE9iamVjdC5rZXlzKGVuZFBvaW50cylcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAubWFwKHBhdGggPT4ge1xuICAgICAgICAgICAgc3ByaW5nQWN0dWF0b3JQYXlsb2FkLmNvbnRleHRzLmFwcGxpY2F0aW9uLm1hcHBpbmdzLmRpc3BhdGNoZXJTZXJ2bGV0cy5kaXNwYXRjaGVyU2VydmxldC5wdXNoKHtcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RNYXBwaW5nQ29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kczogZW5kUG9pbnRzW3BhdGhdLnNvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5zOiBbcGF0aC5yZXBsYWNlKC86KFteL10rKS9nLCAneyQxfScpXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSBhcyBuZXZlcilcbiAgICAgICAgfSlcbiAgICByZXR1cm4gc3ByaW5nQWN0dWF0b3JQYXlsb2FkXG59XG5cbmV4cG9ydCB7IHN0YXJ0U3R1Yiwgc3RvcFN0dWIsIHRlc3QsIHRlc3RXaXRoQXBpQ292ZXJhZ2UsIHNldEV4cGVjdGF0aW9ucywgcHJpbnRKYXJWZXJzaW9uLCBzaG93VGVzdFJlc3VsdHMgfVxuZXhwb3J0IHsgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciB9XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLHFCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFBdUIsU0FBQUQsdUJBQUFVLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxnQkFBQUEsR0FBQTtBQUFBLFNBQUFFLFFBQUFGLEdBQUEsc0NBQUFFLE9BQUEsd0JBQUFDLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBSixHQUFBLGtCQUFBQSxHQUFBLGdCQUFBQSxHQUFBLFdBQUFBLEdBQUEseUJBQUFHLE1BQUEsSUFBQUgsR0FBQSxDQUFBSyxXQUFBLEtBQUFGLE1BQUEs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
325
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsIl9mYXN0WG1sUGFyc2VyIiwiX2ZzIiwiX2xvZ2dlciIsIl9ydW5uZXIiLCJfcHJvbWlzZSIsIl9leHByZXNzTGlzdEVuZHBvaW50cyIsIl9odHRwIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiU3R1YiIsImhvc3QiLCJwb3J0IiwidXJsIiwicHJvY2VzcyIsInN0YXJ0U3R1YiIsImNtZCIsImNvbmNhdCIsImpvaW4iLCJsb2dnZXIiLCJkZWJ1ZyIsImphdmFQcm9jZXNzIiwiY2FsbENvcmUiLCJtZXNzYWdlIiwiaW5kZXhPZiIsInN0dWJJbmZvIiwic3BsaXQiLCJfdXJsSW5mbyRsZW5ndGgiLCJ0cmltIiwidXJsSW5mbyIsImV4ZWMiLCJwYXJzZUludCIsInN0b3BTdHViIiwiX3JlZiIsIl9jYWxsZWUiLCJzdHViIiwiX2phdmFQcm9jZXNzJHN0ZG91dCIsIl9qYXZhUHJvY2VzcyRzdGRlcnIiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic3Rkb3V0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwic3RkZXJyIiwidGVybWluYXRlIiwicGlkIiwiX3giLCJ0ZXN0V2l0aEFwaUNvdmVyYWdlIiwiX3JlZjIiLCJfY2FsbGVlMyIsImV4cHJlc3NBcHAiLCJjb250cmFjdFBhdGgiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX3JlamVjdCIsImFwaUNvdmVyYWdlU2VydmVyIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIiLCJ0ZXN0IiwiY2xvc2UiLCJfeDciLCJfeDgiLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJzcGVjc1BhdGgiLCJwYXRoIiwicmVwb3J0RGlyIiwiZnMiLCJybVN5bmMiLCJyZWN1cnNpdmUiLCJmb3JjZSIsInRlc3RDYXNlcyIsInBhcnNlSnVuaXRYTUwiLCJ0b3RhbCIsImZhaWx1cmUiLCJmaWx0ZXIiLCJ0ZXN0Y2FzZSIsInN1Y2Nlc3MiLCJjb25zb2xlIiwibG9nIiwic2hvd1Rlc3RSZXN1bHRzIiwidGVzdEZuIiwibWFwIiwibmFtZVRlbXBBcnIiLCJyZXBsYWNlIiwic2tpcHBlZCIsInNldEV4cGVjdGF0aW9ucyIsInN0dWJQYXRoIiwic3R1YlNlcnZlckJhc2VVcmwiLCJzdHViUmVzcG9uc2UiLCJmZXRjaCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiX3JlZjQiLCJfY2FsbGVlNCIsInJlc3BvbnNlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0Iiwic3RhdHVzIiwidGV4dCIsIl94OSIsInByaW50SmFyVmVyc2lvbiIsImFwcCIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJfcmVxIiwid3JpdGVIZWFkIiwiZW5kUG9pbnRzIiwiZXh0cmFjdEVuZFBvaW50cyIsImVuZCIsIm9uIiwibGlzdGVuIiwiYWRkcmVzcyIsImVudiIsInJlcG9ydFBhdGgiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwicGFyc2VyIiwiWE1MUGFyc2VyIiwicmVzdWx0WG1sIiwicGFyc2UiLCJ0ZXN0c3VpdGUiLCJBcnJheSIsImlzQXJyYXkiLCJsaXN0RW5kUG9pbnRzIiwiZGV0YWlscyIsImxpc3RFeHByZXNzRW5kcG9pbnRzIiwiYXBpRGV0YWlsIiwibWV0aG9kcyIsInNwcmluZ0FjdHVhdG9yUGF5bG9hZCIsImNvbnRleHRzIiwiYXBwbGljYXRpb24iLCJtYXBwaW5ncyIsImRpc3BhdGNoZXJTZXJ2bGV0cyIsImRpc3BhdGNoZXJTZXJ2bGV0Iiwic29ydCIsInJlcXVlc3RNYXBwaW5nQ29uZGl0aW9ucyIsInBhdHRlcm5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2VzcydcbmltcG9ydCB7IFhNTFBhcnNlciB9IGZyb20gJ2Zhc3QteG1sLXBhcnNlcidcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vY29tbW9uL2xvZ2dlcidcbmltcG9ydCB7IGNhbGxDb3JlIH0gZnJvbSAnLi4vY29tbW9uL3J1bm5lcidcbmltcG9ydCB0ZXJtaW5hdGUgZnJvbSAndGVybWluYXRlL3Byb21pc2UnXG5pbXBvcnQgbGlzdEV4cHJlc3NFbmRwb2ludHMgZnJvbSAnZXhwcmVzcy1saXN0LWVuZHBvaW50cydcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBBZGRyZXNzSW5mbyB9IGZyb20gJ25ldCdcblxuZXhwb3J0IGNsYXNzIFN0dWIge1xuICAgIGhvc3Q6IHN0cmluZ1xuICAgIHBvcnQ6IG51bWJlclxuICAgIHVybDogc3RyaW5nXG4gICAgcHJvY2VzczogQ2hpbGRQcm9jZXNzXG4gICAgY29uc3RydWN0b3IoaG9zdDogc3RyaW5nLCBwb3J0OiBudW1iZXIsIHVybDogc3RyaW5nLCBwcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gaG9zdFxuICAgICAgICB0aGlzLnBvcnQgPSBwb3J0XG4gICAgICAgIHRoaXMudXJsID0gdXJsXG4gICAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3NcbiAgICB9XG59XG5cbmNvbnN0IHN0YXJ0U3R1YiA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8U3R1Yj4gPT4ge1xuICAgIHZhciBjbWQgPSBgc3R1YmBcbiAgICBpZiAoaG9zdCkgY21kICs9IGAgLS1ob3N0PSR7aG9zdH1gXG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YFxuICAgIGlmIChhcmdzKSBjbWQgKz0gJyAnICsgYXJncy5qb2luKCcgJylcblxuICAgIGxvZ2dlci5pbmZvKCdTdHViOiBTdGFydGluZyBzZXJ2ZXInKVxuICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgamF2YVByb2Nlc3MgPSBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiBFeGl0ZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ1N0dWIgc2VydmVyIGlzIHJ1bm5pbmcnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoJ29uJylcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5sZW5ndGggPCAyKSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgdXJsIGZyb20gc3R1YiBvdXRwdXQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gc3R1YkluZm9bMV0udHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsSW5mbyA9IC8oLio/KTpcXC9cXC8oLio/KTooWzAtOV0rKS8uZXhlYyh1cmwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1cmxJbmZvPy5sZW5ndGggPz8gMCkgPCA0KSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgaG9zdCBhbmQgcG9ydCBmcm9tIHN0dWIgb3V0cHV0JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlc29sdmUobmV3IFN0dWIodXJsSW5mbyFbMl0sIHBhcnNlSW50KHVybEluZm8hWzNdKSwgdXJsSW5mbyFbMF0sIGphdmFQcm9jZXNzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJylcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH0pXG59XG5cbmNvbnN0IHN0b3BTdHViID0gYXN5bmMgKHN0dWI6IFN0dWIpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYFN0dWI6IFN0b3BwaW5nIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG4gICAgY29uc3QgamF2YVByb2Nlc3MgPSBzdHViLnByb2Nlc3NcbiAgICBqYXZhUHJvY2Vzcy5zdGRvdXQ/LnJlbW92ZUFsbExpc3RlbmVycygpXG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKVxuICAgIGphdmFQcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycygnY2xvc2UnKVxuICAgIGF3YWl0IHRlcm1pbmF0ZShqYXZhUHJvY2Vzcy5waWQhKVxuICAgIGxvZ2dlci5pbmZvKGBTdHViOiBTdG9wcGVkIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG59XG5cbmNvbnN0IHRlc3RXaXRoQXBpQ292ZXJhZ2UgPSBhc3luYyAoXG4gICAgZXhwcmVzc0FwcDogYW55LFxuICAgIGhvc3Q/OiBzdHJpbmcsXG4gICAgcG9ydD86IG51bWJlcixcbiAgICBjb250cmFjdFBhdGg/OiBzdHJpbmcsXG4gICAgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW11cbik6IFByb21pc2U8eyBbazogc3RyaW5nXTogbnVtYmVyIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICAgICAgbGV0IGFwaUNvdmVyYWdlU2VydmVyID0gYXdhaXQgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlcihleHByZXNzQXBwKVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGVzdChob3N0LCBwb3J0LCBjb250cmFjdFBhdGgsIGFyZ3MpXG4gICAgICAgIGFwaUNvdmVyYWdlU2VydmVyLmNsb3NlKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0cylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCB0ZXN0ID0gKGhvc3Q/OiBzdHJpbmcsIHBvcnQ/OiBudW1iZXIsIGNvbnRyYWN0UGF0aD86IHN0cmluZywgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3Qgc3BlY3NQYXRoID0gcGF0aC5yZXNvbHZlKGNvbnRyYWN0UGF0aCArICcnKVxuXG4gICAgdmFyIGNtZCA9IGB0ZXN0YFxuICAgIGlmIChjb250cmFjdFBhdGgpIGNtZCArPSBgICR7c3BlY3NQYXRofWBcbiAgICBjbWQgKz0gJyAtLWp1bml0UmVwb3J0RGlyPWRpc3QvdGVzdC1yZXBvcnQnXG4gICAgaWYgKGhvc3QpIGNtZCArPSBgIC0taG9zdD0ke2hvc3R9YFxuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWBcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpXG5cbiAgICBsb2dnZXIuaW5mbygnVGVzdDogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBUZXN0OiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICBjb25zdCByZXBvcnREaXIgPSBwYXRoLnJlc29sdmUoJ2Rpc3QvdGVzdC1yZXBvcnQnKVxuICAgIGZzLnJtU3luYyhyZXBvcnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGNhbGxDb3JlKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBUZXN0OiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IHRlc3RDYXNlcy5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBmYWlsdXJlID0gdGVzdENhc2VzLmZpbHRlcigodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkgPT4gdGVzdGNhc2VbJ2ZhaWx1cmUnXSB8fCB0ZXN0Y2FzZVsnc2tpcHBlZCddKS5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gdG90YWwgLSBmYWlsdXJlXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHsgdG90YWwsIHN1Y2Nlc3MsIGZhaWx1cmUgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FQSSBDT1ZFUkFHRSBTVU1NQVJZJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKSAvL0xvZyBhbHdheXMgZm9yIGFsbCBsb2cgbGV2ZWxzXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyW2Vycm9yID8gJ2Vycm9yJyA6ICdkZWJ1ZyddKGBUZXN0OiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICB9KVxufVxuXG5jb25zdCBzaG93VGVzdFJlc3VsdHMgPSAodGVzdEZuOiAobmFtZTogc3RyaW5nLCBjYjogKCkgPT4gdm9pZCkgPT4gdm9pZCkgPT4ge1xuICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICB0ZXN0Q2FzZXMubWFwKGZ1bmN0aW9uICh0ZXN0Y2FzZTogeyBbaWQ6IHN0cmluZ106IGFueSB9KSB7XG4gICAgICAgIHZhciBuYW1lID0gJ05vIE5hbWUnXG4gICAgICAgIGlmICh0ZXN0Y2FzZVsnc3lzdGVtLW91dCddKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lVGVtcEFyciA9IHRlc3RjYXNlWydzeXN0ZW0tb3V0J11cbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnJylcbiAgICAgICAgICAgICAgICAuc3BsaXQoL2Rpc3BsYXktbmFtZTouKlNjZW5hcmlvOiAvKVxuICAgICAgICAgICAgaWYgKG5hbWVUZW1wQXJyLmxlbmd0aCA+IDEpIG5hbWUgPSBuYW1lVGVtcEFyclsxXS50cmltKClcbiAgICAgICAgfVxuICAgICAgICB0ZXN0Rm4obmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRlc3RjYXNlLmZhaWx1cmUgfHwgdGVzdGNhc2Uuc2tpcHBlZCkgdGhyb3cgbmV3IEVycm9yKCdEaWQgbm90IHBhc3MnKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHNldEV4cGVjdGF0aW9ucyA9IChzdHViUGF0aDogc3RyaW5nLCBzdHViU2VydmVyQmFzZVVybD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHN0dWJSZXNwb25zZSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKHN0dWJQYXRoKSlcbiAgICBzdHViU2VydmVyQmFzZVVybCA9IHN0dWJTZXJ2ZXJCYXNlVXJsIHx8ICdodHRwOi8vbG9jYWxob3N0OjkwMDAnXG5cbiAgICBsb2dnZXIuaW5mbyhgU2V0IEV4cGVjdGF0aW9uczogU3R1YiB1cmwgaXMgJHtzdHViU2VydmVyQmFzZVVybH1gKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goYCR7c3R1YlNlcnZlckJhc2VVcmx9L19zcGVjbWF0aWMvZXhwZWN0YXRpb25zYCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShzdHViUmVzcG9uc2UpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSlcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGBTZXR0aW5nIGV4cGVjYXRpb24gZmFpbGVkYClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTZXQgRXhwZWN0YXRpb25zOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHJlamVjdChgU2V0dGluZyBleHBlY2F0aW9uIGZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHByaW50SmFyVmVyc2lvbiA9ICgpID0+IHtcbiAgICBjb25zdCBjbWQgPSBgLS12ZXJzaW9uYFxuICAgIGxvZ2dlci5pbmZvKCdQcmludCBKYXIgVmVyc2lvbjogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBQcmludCBKYXIgVmVyc2lvbjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY2FsbENvcmUoXG4gICAgICAgIGNtZCxcbiAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSBsb2dnZXIuZXJyb3IoYFByaW50IEphciBWZXJzaW9uOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICB9LFxuICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICBlbHNlIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgIClcbn1cblxuY29uc3Qgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciA9IChleHByZXNzQXBwOiBhbnkpOiBQcm9taXNlPGh0dHAuU2VydmVyPiA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBSZWdpc3RlcmluZyBBUEkgZW5kcG9pbnQgZm9yIGNvdmVyYWdlYClcbiAgICBsZXQgYXBwID0gaHR0cC5jcmVhdGVTZXJ2ZXIoKF9yZXEsIHJlcykgPT4ge1xuICAgICAgICByZXMud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICAgIGNvbnN0IGVuZFBvaW50cyA9IEpTT04uc3RyaW5naWZ5KGV4dHJhY3RFbmRQb2ludHMoZXhwcmVzc0FwcCkpXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgRW5kcG9pbnRzOiAke2VuZFBvaW50c31gKVxuICAgICAgICByZXMuZW5kKGVuZFBvaW50cylcbiAgICB9KVxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxodHRwLlNlcnZlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBhcHAub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScsIGVycilcbiAgICAgICAgICAgIHJlamVjdCgnRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScpXG4gICAgICAgIH0pXG4gICAgICAgIGFwcC5saXN0ZW4oeyBob3N0OiAnMTI3LjAuMC4xJywgcG9ydDogMCB9LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhZGRyZXNzID0gYXBwLmFkZHJlc3MoKSBhcyBBZGRyZXNzSW5mbyB8IG51bGxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXSA9IGBodHRwOi8vJHthZGRyZXNzPy5hZGRyZXNzfToke2FkZHJlc3M/LnBvcnR9YFxuICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEVuZHBvaW50cyBBUEkgcmVnaXN0ZXJlZCBhdCAke3Byb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXX1gKVxuICAgICAgICAgICAgcmVzb2x2ZShhcHApXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgcGFyc2VKdW5pdFhNTCA9ICgpID0+IHtcbiAgICBjb25zdCByZXBvcnRQYXRoID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0L1RFU1QtanVuaXQtanVwaXRlci54bWwnKVxuICAgIHZhciBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHJlcG9ydFBhdGgpXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFhNTFBhcnNlcigpXG4gICAgdmFyIHJlc3VsdFhtbCA9IHBhcnNlci5wYXJzZShkYXRhKVxuICAgIHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgPSBBcnJheS5pc0FycmF5KHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UpID8gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZSA6IFtyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXVxuICAgIHJldHVybiByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXG59XG5cbmNvbnN0IGxpc3RFbmRQb2ludHMgPSAoZXhwcmVzc0FwcDogYW55KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0+IHtcbiAgICBjb25zdCBkZXRhaWxzID0gbGlzdEV4cHJlc3NFbmRwb2ludHMoZXhwcmVzc0FwcClcbiAgICBsZXQgZW5kUG9pbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fVxuICAgIGRldGFpbHMubWFwKGFwaURldGFpbCA9PiB7XG4gICAgICAgIGVuZFBvaW50c1thcGlEZXRhaWwucGF0aF0gPSBhcGlEZXRhaWwubWV0aG9kc1xuICAgIH0pXG4gICAgZGVsZXRlIGVuZFBvaW50c1snKiddXG4gICAgcmV0dXJuIGVuZFBvaW50c1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHA6IGFueSkge1xuICAgIGxldCBlbmRQb2ludHMgPSBsaXN0RW5kUG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IHNwcmluZ0FjdHVhdG9yUGF5bG9hZCA9IHtcbiAgICAgICAgY29udGV4dHM6IHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgbWFwcGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyU2VydmxldDogW10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfVxuICAgIE9iamVjdC5rZXlzKGVuZFBvaW50cylcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAubWFwKHBhdGggPT4ge1xuICAgICAgICAgICAgc3ByaW5nQWN0dWF0b3JQYXlsb2FkLmNvbnRleHRzLmFwcGxpY2F0aW9uLm1hcHBpbmdzLmRpc3BhdGNoZXJTZXJ2bGV0cy5kaXNwYXRjaGVyU2VydmxldC5wdXNoKHtcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RNYXBwaW5nQ29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kczogZW5kUG9pbnRzW3BhdGhdLnNvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5zOiBbcGF0aC5yZXBsYWNlKC86KFteL10rKS9nLCAneyQxfScpLnJlcGxhY2UoL1xcXFwvZywgJycpXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSBhcyBuZXZlcilcbiAgICAgICAgfSlcbiAgICByZXR1cm4gc3ByaW5nQWN0dWF0b3JQYXlsb2FkXG59XG5cbmV4cG9ydCB7IHN0YXJ0U3R1Yiwgc3RvcFN0dWIsIHRlc3QsIHRlc3RXaXRoQXBpQ292ZXJhZ2UsIHNldEV4cGVjdGF0aW9ucywgcHJpbnRKYXJWZXJzaW9uLCBzaG93VGVzdFJlc3VsdHMgfVxuZXhwb3J0IHsgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciB9XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLHFCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFBdUIsU0FBQUQsdUJBQUFVLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxnQkFBQUEsR0FBQTtBQUFBLFNBQUFFLFFBQUFGLEdBQUEsc0NBQUFFLE9BQUEsd0JBQUFDLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBSixHQUFBLGtCQUFBQSxHQUFBLGdCQUFBQSxHQUFBLFdBQUFBLEdBQUEseUJBQUFHLE1BQUEsSUFBQUgsR0FBQSxD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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specmatic",
3
- "version": "0.72.11",
3
+ "version": "0.73.0",
4
4
  "description": "Node wrapper for Specmatic",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -36,7 +36,7 @@
36
36
  "dependencies": {
37
37
  "exec-sh": "^0.4.0",
38
38
  "express-list-endpoints": "^6.0.0",
39
- "fast-xml-parser": "^4.2.5",
39
+ "fast-xml-parser": "^4.2.6",
40
40
  "node-fetch": "^2.6.11",
41
41
  "terminate": "^2.6.1",
42
42
  "winston": "^3.10.0"
@@ -51,11 +51,11 @@
51
51
  "@types/express-list-endpoints": "^6.0.0",
52
52
  "@types/jest": "^29.5.3",
53
53
  "@types/jest-when": "^3.5.2",
54
- "@types/node": "^20.4.2",
54
+ "@types/node": "^20.4.5",
55
55
  "@types/node-fetch": "^2.6.4",
56
56
  "@types/supertest": "^2.0.12",
57
57
  "express": "^4.18.2",
58
- "jest": "^29.6.1",
58
+ "jest": "^29.6.2",
59
59
  "jest-extended": "^4.0.0",
60
60
  "jest-mock-extended": "^3.0.4",
61
61
  "jest-when": "^3.5.2",
package/specmatic.jar CHANGED
Binary file
@@ -29,7 +29,7 @@ test('pass all wrapper arguments to the jar', async () => {
29
29
  const testArgs = ['node', 'index.js', 'stub', '*.specmatic', '--data', 'src/mocks', '--host', 'localhost', '--port', '8000'];
30
30
  callSpecmaticCli(testArgs);
31
31
  const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
32
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(specmaticJarPath)} ${testArgs.slice(2).join(' ')}`);
32
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(specmaticJarPath)}" ${testArgs.slice(2).join(' ')}`);
33
33
  expect(execSh).toHaveBeenCalledTimes(1);
34
34
  });
35
35
 
@@ -40,6 +40,6 @@ test('pass kafka related calls to the kafka jar', async () => {
40
40
  const testArgs = ['node', 'index.js', 'kafka', '--host', 'localhost', '--port', '8000'];
41
41
  callSpecmaticCli(testArgs);
42
42
  const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', '..', 'specmatic-beta', 'kafka', specmaticKafkaJarName);
43
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(specmaticJarPath)} ${testArgs.slice(3).join(' ')}`);
43
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(specmaticJarPath)}" ${testArgs.slice(3).join(' ')}`);
44
44
  expect(execSh).toHaveBeenCalledTimes(1);
45
45
  });
@@ -23,7 +23,7 @@ function callJar(jarPath: string, args: string, done: (error: any) => void, onOu
23
23
  if (process.env['endpointsAPI']) {
24
24
  java = `${java} -DendpointsAPI="${process.env['endpointsAPI']}"`;
25
25
  }
26
- const javaProcess = execSh(`${java} -jar ${jarPath} ${args}`, { stdio: 'pipe', stderr: 'pipe' }, done);
26
+ const javaProcess = execSh(`${java} -jar "${jarPath}" ${args}`, { stdio: 'pipe', stderr: 'pipe' }, done);
27
27
  javaProcess.stdout?.on('data', function (data: String) {
28
28
  onOutput(`${data}`, false);
29
29
  });
@@ -70,6 +70,13 @@ test('coverts express route multiple variable syntax to spring request mapping s
70
70
  expect(res.body).toStrictEqual(response)
71
71
  })
72
72
 
73
+ test('removes escaped dot and backslash in url', async () => {
74
+ app.get('/v1\\.0/:store/:id', () => {})
75
+ const res = await request(server).get('/').accept('application/json').expect(200)
76
+ const response = generateResponseObject({ '/v1.0/{store}/{id}': ['GET'] })
77
+ expect(res.body).toStrictEqual(response)
78
+ })
79
+
73
80
  function generateResponseObject(endPoints: { [key: string]: string[] }) {
74
81
  const structure = {
75
82
  contexts: {
@@ -28,5 +28,5 @@ test('prints bundled jar version', () => {
28
28
  specmatic.printJarVersion();
29
29
 
30
30
  expect(execSh).toHaveBeenCalledTimes(1);
31
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} --version`);
31
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" --version`);
32
32
  });
@@ -38,7 +38,7 @@ test('starts the specmatic stub server', async () => {
38
38
  await expect(specmatic.startStub(HOST, PORT)).resolves.toStrictEqual(stub);
39
39
 
40
40
  expect(execSh).toHaveBeenCalledTimes(1);
41
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT}`);
41
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT}`);
42
42
  });
43
43
 
44
44
  test('notifies when start fails due to port not available', async () => {
@@ -48,7 +48,7 @@ test('notifies when start fails due to port not available', async () => {
48
48
  await expect(specmatic.startStub(HOST, PORT)).toReject();
49
49
 
50
50
  expect(execSh).toHaveBeenCalledTimes(1);
51
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT}`);
51
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT}`);
52
52
  });
53
53
 
54
54
  test('returns host, port and stub url', async () => {
@@ -62,7 +62,7 @@ test('returns host, port and stub url', async () => {
62
62
  await expect(specmatic.startStub(HOST, PORT)).resolves.toStrictEqual(stub);
63
63
 
64
64
  expect(execSh).toHaveBeenCalledTimes(1);
65
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT}`);
65
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT}`);
66
66
  });
67
67
 
68
68
  test('fails if stub url is not available in start up message', async () => {
@@ -72,7 +72,7 @@ test('fails if stub url is not available in start up message', async () => {
72
72
  await expect(specmatic.startStub(HOST, PORT)).toReject();
73
73
 
74
74
  expect(execSh).toHaveBeenCalledTimes(1);
75
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT}`);
75
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT}`);
76
76
  });
77
77
 
78
78
  test('fails if host info is not available in start up message', async () => {
@@ -83,7 +83,7 @@ test('fails if host info is not available in start up message', async () => {
83
83
  await expect(specmatic.startStub(HOST, PORT)).toReject();
84
84
 
85
85
  expect(execSh).toHaveBeenCalledTimes(1);
86
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT}`);
86
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT}`);
87
87
  });
88
88
 
89
89
  test('fails if port info is not available in start up message', async () => {
@@ -94,7 +94,7 @@ test('fails if port info is not available in start up message', async () => {
94
94
  await expect(specmatic.startStub(HOST, PORT)).toReject();
95
95
 
96
96
  expect(execSh).toHaveBeenCalledTimes(1);
97
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT}`);
97
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT}`);
98
98
  });
99
99
 
100
100
  test('host and port are optional', async () => {
@@ -104,7 +104,7 @@ test('host and port are optional', async () => {
104
104
  await expect(specmatic.startStub()).resolves.toStrictEqual(stub);
105
105
 
106
106
  expect(execSh).toHaveBeenCalledTimes(1);
107
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub`);
107
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub`);
108
108
  });
109
109
 
110
110
  test('takes additional pass through arguments', async () => {
@@ -114,7 +114,7 @@ test('takes additional pass through arguments', async () => {
114
114
  await expect(specmatic.startStub(HOST, PORT, ['p1', 'p2'])).resolves.toStrictEqual(stub);
115
115
 
116
116
  expect(execSh).toHaveBeenCalledTimes(1);
117
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT} p1 p2`);
117
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT} p1 p2`);
118
118
  });
119
119
 
120
120
  test('additional pass through arguments can be string or number', async () => {
@@ -124,7 +124,7 @@ test('additional pass through arguments can be string or number', async () => {
124
124
  await expect(specmatic.startStub(HOST, PORT, ['p1', 123])).resolves.toStrictEqual(stub);
125
125
 
126
126
  expect(execSh).toHaveBeenCalledTimes(1);
127
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} stub --host=${HOST} --port=${PORT} p1 123`);
127
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" stub --host=${HOST} --port=${PORT} p1 123`);
128
128
  });
129
129
 
130
130
  test('stopStub method stops any running stub server', () => {
@@ -41,7 +41,7 @@ test('runs the contract tests', async function () {
41
41
 
42
42
  expect(execSh).toHaveBeenCalledTimes(1);
43
43
  expect(execShMock.mock.calls[0][0]).toBe(
44
- `java -jar ${path.resolve(SPECMATIC_JAR_PATH)} test ${path.resolve(
44
+ `java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" test ${path.resolve(
45
45
  CONTRACT_FILE_PATH
46
46
  )} --junitReportDir=dist/test-report --host=${HOST} --port=${PORT}`
47
47
  );
@@ -58,7 +58,7 @@ test('takes additional pass through arguments', async () => {
58
58
 
59
59
  expect(execSh).toHaveBeenCalledTimes(1);
60
60
  expect(execShMock.mock.calls[0][0]).toBe(
61
- `java -jar ${path.resolve(SPECMATIC_JAR_PATH)} test ${path.resolve(
61
+ `java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" test ${path.resolve(
62
62
  CONTRACT_FILE_PATH
63
63
  )} --junitReportDir=dist/test-report --host=${HOST} --port=${PORT} P1 P2`
64
64
  );
@@ -75,7 +75,7 @@ test('additional pass through arguments can be string or number', async () => {
75
75
 
76
76
  expect(execSh).toHaveBeenCalledTimes(1);
77
77
  expect(execShMock.mock.calls[0][0]).toBe(
78
- `java -jar ${path.resolve(SPECMATIC_JAR_PATH)} test ${path.resolve(
78
+ `java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" test ${path.resolve(
79
79
  CONTRACT_FILE_PATH
80
80
  )} --junitReportDir=dist/test-report --host=${HOST} --port=${PORT} P1 123`
81
81
  );
@@ -91,7 +91,7 @@ test('runs the contract tests with host and port optional', async function () {
91
91
  await expect(specmatic.test()).resolves.toBeTruthy();
92
92
 
93
93
  expect(execSh).toHaveBeenCalledTimes(1);
94
- expect(execShMock.mock.calls[0][0]).toBe(`java -jar ${path.resolve(SPECMATIC_JAR_PATH)} test --junitReportDir=dist/test-report`);
94
+ expect(execShMock.mock.calls[0][0]).toBe(`java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" test --junitReportDir=dist/test-report`);
95
95
  });
96
96
 
97
97
  test('runs the contract tests with contracts path optional', async function () {
@@ -105,7 +105,7 @@ test('runs the contract tests with contracts path optional', async function () {
105
105
 
106
106
  expect(execSh).toHaveBeenCalledTimes(1);
107
107
  expect(execShMock.mock.calls[0][0]).toBe(
108
- `java -jar ${path.resolve(SPECMATIC_JAR_PATH)} test --junitReportDir=dist/test-report --host=${HOST} --port=${PORT}`
108
+ `java -jar "${path.resolve(SPECMATIC_JAR_PATH)}" test --junitReportDir=dist/test-report --host=${HOST} --port=${PORT}`
109
109
  );
110
110
  });
111
111
 
package/src/core/index.ts CHANGED
@@ -255,7 +255,7 @@ function extractEndPoints(expressApp: any) {
255
255
  details: {
256
256
  requestMappingConditions: {
257
257
  methods: endPoints[path].sort(),
258
- patterns: [path.replace(/:([^/]+)/g, '{$1}')],
258
+ patterns: [path.replace(/:([^/]+)/g, '{$1}').replace(/\\/g, '')],
259
259
  },
260
260
  },
261
261
  } as never)