specmatic 1.3.24 → 1.3.26

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.
@@ -25,11 +25,29 @@ var callSpecmaticCli = function callSpecmaticCli(args) {
25
25
  });
26
26
  };
27
27
  function getJarFunction(args) {
28
- return args.length >= 3 && args[2] == 'kafka' ? _runner.callKafka : _runner.callCore;
28
+ if (args.length >= 3) {
29
+ switch (args[2]) {
30
+ case 'kafka':
31
+ return _runner.callKafka;
32
+ case 'graphql':
33
+ return _runner.callGraphQl;
34
+ default:
35
+ return _runner.callCore;
36
+ }
37
+ }
38
+ return _runner.callCore;
29
39
  }
30
40
  function extractArgsForJar(args) {
31
- var argsToRemove = args.length >= 3 && args[2] == 'kafka' ? 3 : 2;
32
- return args.slice(argsToRemove).join(' ');
41
+ if (args.length >= 3) {
42
+ switch (args[2]) {
43
+ case 'kafka':
44
+ case 'graphql':
45
+ return args.slice(3).join(' ');
46
+ default:
47
+ return args.slice(2).join(' ');
48
+ }
49
+ }
50
+ return args.slice(2).join(' ');
33
51
  }
34
52
  var _default = exports["default"] = callSpecmaticCli;
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcnVubmVyIiwib2JqIiwiX19lc01vZHVsZSIsImNhbGxTcGVjbWF0aWNDbGkiLCJhcmdzIiwicHJvY2VzcyIsImFyZ3YiLCJjbGlBcmdzIiwiZXh0cmFjdEFyZ3NGb3JKYXIiLCJmbiIsImdldEphckZ1bmN0aW9uIiwibG9nZ2VyIiwiaW5mbyIsImNvbmNhdCIsImVyciIsImNvZGUiLCJleGl0Q29kZSIsIm1lc3NhZ2UiLCJjb25zb2xlIiwibG9nIiwibGVuZ3RoIiwiY2FsbEthZmthIiwiY2FsbENvcmUiLCJhcmdzVG9SZW1vdmUiLCJzbGljZSIsImpvaW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2NvbW1hbmQubGluZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInXG5pbXBvcnQgeyBjYWxsS2Fma2EsIGNhbGxDb3JlIH0gZnJvbSAnLi4vY29tbW9uL3J1bm5lcidcblxuY29uc3QgY2FsbFNwZWNtYXRpY0NsaSA9IChhcmdzPzogc3RyaW5nW10pID0+IHtcbiAgICBhcmdzID0gYXJncyB8fCBwcm9jZXNzLmFyZ3ZcbiAgICBsZXQgY2xpQXJncyA9IGV4dHJhY3RBcmdzRm9ySmFyKGFyZ3MpXG4gICAgbGV0IGZuID0gZ2V0SmFyRnVuY3Rpb24oYXJncylcbiAgICBsb2dnZXIuaW5mbyhgQ0xJOiBSdW5uaW5nIHdpdGggYXJncyBcIiR7Y2xpQXJnc31cImApXG4gICAgZm4oXG4gICAgICAgIGNsaUFyZ3MsXG4gICAgICAgIChlcnI/OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnQ0xJOiBGaW5pc2hlZCB3aXRoIG5vbiB6ZXJvIGV4aXQgY29kZTogJywgZXJyLmNvZGUpXG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IGVyci5jb2RlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdDTEk6IEZpbmlzaGVkJylcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgIClcbn1cblxuZnVuY3Rpb24gZ2V0SmFyRnVuY3Rpb24oYXJnczogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gYXJncy5sZW5ndGggPj0gMyAmJiBhcmdzWzJdID09ICdrYWZrYScgPyBjYWxsS2Fma2EgOiBjYWxsQ29yZVxufVxuXG5mdW5jdGlvbiBleHRyYWN0QXJnc0ZvckphcihhcmdzOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGFyZ3NUb1JlbW92ZSA9IGFyZ3MubGVuZ3RoID49IDMgJiYgYXJnc1syXSA9PSAna2Fma2EnID8gMyA6IDJcbiAgICByZXR1cm4gYXJncy5zbGljZShhcmdzVG9SZW1vdmUpLmpvaW4oJyAnKVxufVxuXG5leHBvcnQgZGVmYXVsdCBjYWxsU3BlY21hdGljQ2xpXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUFzRCxTQUFBRCx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBRXRELElBQU1FLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLElBQWUsRUFBSztFQUMxQ0EsSUFBSSxHQUFHQSxJQUFJLElBQUlDLE9BQU8sQ0FBQ0MsSUFBSTtFQUMzQixJQUFJQyxPQUFPLEdBQUdDLGlCQUFpQixDQUFDSixJQUFJLENBQUM7RUFDckMsSUFBSUssRUFBRSxHQUFHQyxjQUFjLENBQUNOLElBQUksQ0FBQztFQUM3Qk8sa0JBQU0sQ0FBQ0MsSUFBSSw2QkFBQUMsTUFBQSxDQUE0Qk4sT0FBTyxPQUFHLENBQUM7RUFDbERFLEVBQUUsQ0FDRUYsT0FBTyxFQUNQLFVBQUNPLEdBQVMsRUFBSztJQUNYLElBQUlBLEdBQUcsRUFBRTtNQUNMSCxrQkFBTSxDQUFDQyxJQUFJLENBQUMseUNBQXlDLEVBQUVFLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDO01BQ2hFVixPQUFPLENBQUNXLFFBQVEsR0FBR0YsR0FBRyxDQUFDQyxJQUFJO0lBQy9CLENBQUMsTUFBTTtNQUNISixrQkFBTSxDQUFDQyxJQUFJLENBQUMsZUFBZSxDQUFDO01BQzVCUCxPQUFPLENBQUNXLFFBQVEsR0FBRyxDQUFDO0lBQ3hCO0VBQ0osQ0FBQyxFQUNELFVBQUFDLE9BQU8sRUFBSTtJQUNQQyxPQUFPLENBQUNDLEdBQUcsSUFBQU4sTUFBQSxDQUFJSSxPQUFPLENBQUUsQ0FBQztFQUM3QixDQUNKLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBU1AsY0FBY0EsQ0FBQ04sSUFBYyxFQUFFO0VBQ3BDLE9BQU9BLElBQUksQ0FBQ2dCLE1BQU0sSUFBSSxDQUFDLElBQUloQixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxHQUFHaUIsaUJBQVMsR0FBR0MsZ0JBQVE7QUFDeEU7QUFFQSxTQUFTZCxpQkFBaUJBLENBQUNKLElBQWMsRUFBRTtFQUN2QyxJQUFNbUIsWUFBWSxHQUFHbkIsSUFBSSxDQUFDZ0IsTUFBTSxJQUFJLENBQUMsSUFBSWhCLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7RUFDbkUsT0FBT0EsSUFBSSxDQUFDb0IsS0FBSyxDQUFDRCxZQUFZLENBQUMsQ0FBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUM3QztBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUVjeEIsZ0JBQWdCIn0=
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcnVubmVyIiwib2JqIiwiX19lc01vZHVsZSIsImNhbGxTcGVjbWF0aWNDbGkiLCJhcmdzIiwicHJvY2VzcyIsImFyZ3YiLCJjbGlBcmdzIiwiZXh0cmFjdEFyZ3NGb3JKYXIiLCJmbiIsImdldEphckZ1bmN0aW9uIiwibG9nZ2VyIiwiaW5mbyIsImNvbmNhdCIsImVyciIsImNvZGUiLCJleGl0Q29kZSIsIm1lc3NhZ2UiLCJjb25zb2xlIiwibG9nIiwibGVuZ3RoIiwiY2FsbEthZmthIiwiY2FsbEdyYXBoUWwiLCJjYWxsQ29yZSIsInNsaWNlIiwiam9pbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vY29tbWFuZC5saW5lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2dnZXIgZnJvbSAnLi4vY29tbW9uL2xvZ2dlcidcbmltcG9ydCB7IGNhbGxLYWZrYSwgY2FsbENvcmUsIGNhbGxHcmFwaFFsIH0gZnJvbSAnLi4vY29tbW9uL3J1bm5lcidcblxuY29uc3QgY2FsbFNwZWNtYXRpY0NsaSA9IChhcmdzPzogc3RyaW5nW10pID0+IHtcbiAgICBhcmdzID0gYXJncyB8fCBwcm9jZXNzLmFyZ3ZcbiAgICBsZXQgY2xpQXJncyA9IGV4dHJhY3RBcmdzRm9ySmFyKGFyZ3MpXG4gICAgbGV0IGZuID0gZ2V0SmFyRnVuY3Rpb24oYXJncylcbiAgICBsb2dnZXIuaW5mbyhgQ0xJOiBSdW5uaW5nIHdpdGggYXJncyBcIiR7Y2xpQXJnc31cImApXG4gICAgZm4oXG4gICAgICAgIGNsaUFyZ3MsXG4gICAgICAgIChlcnI/OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnQ0xJOiBGaW5pc2hlZCB3aXRoIG5vbiB6ZXJvIGV4aXQgY29kZTogJywgZXJyLmNvZGUpXG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IGVyci5jb2RlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdDTEk6IEZpbmlzaGVkJylcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgIClcbn1cblxuZnVuY3Rpb24gZ2V0SmFyRnVuY3Rpb24oYXJnczogc3RyaW5nW10pIHtcbiAgICBpZihhcmdzLmxlbmd0aCA+PSAzKSB7XG4gICAgICAgIHN3aXRjaCAoYXJnc1syXSkge1xuICAgICAgICAgICAgY2FzZSAna2Fma2EnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsS2Fma2FcbiAgICAgICAgICAgIGNhc2UgJ2dyYXBocWwnOlxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsR3JhcGhRbFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbENvcmVcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FsbENvcmVcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEFyZ3NGb3JKYXIoYXJnczogc3RyaW5nW10pIHtcbiAgICBpZihhcmdzLmxlbmd0aCA+PSAzKSB7XG4gICAgICAgIHN3aXRjaCAoYXJnc1syXSkge1xuICAgICAgICAgICAgY2FzZSAna2Fma2EnOlxuICAgICAgICAgICAgY2FzZSAnZ3JhcGhxbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3Muc2xpY2UoMykuam9pbignICcpXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBhcmdzLnNsaWNlKDIpLmpvaW4oJyAnKVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcmdzLnNsaWNlKDIpLmpvaW4oJyAnKVxufVxuXG5leHBvcnQgZGVmYXVsdCBjYWxsU3BlY21hdGljQ2xpXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUFtRSxTQUFBRCx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBRW5FLElBQU1FLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlDLElBQWUsRUFBSztFQUMxQ0EsSUFBSSxHQUFHQSxJQUFJLElBQUlDLE9BQU8sQ0FBQ0MsSUFBSTtFQUMzQixJQUFJQyxPQUFPLEdBQUdDLGlCQUFpQixDQUFDSixJQUFJLENBQUM7RUFDckMsSUFBSUssRUFBRSxHQUFHQyxjQUFjLENBQUNOLElBQUksQ0FBQztFQUM3Qk8sa0JBQU0sQ0FBQ0MsSUFBSSw2QkFBQUMsTUFBQSxDQUE0Qk4sT0FBTyxPQUFHLENBQUM7RUFDbERFLEVBQUUsQ0FDRUYsT0FBTyxFQUNQLFVBQUNPLEdBQVMsRUFBSztJQUNYLElBQUlBLEdBQUcsRUFBRTtNQUNMSCxrQkFBTSxDQUFDQyxJQUFJLENBQUMseUNBQXlDLEVBQUVFLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDO01BQ2hFVixPQUFPLENBQUNXLFFBQVEsR0FBR0YsR0FBRyxDQUFDQyxJQUFJO0lBQy9CLENBQUMsTUFBTTtNQUNISixrQkFBTSxDQUFDQyxJQUFJLENBQUMsZUFBZSxDQUFDO01BQzVCUCxPQUFPLENBQUNXLFFBQVEsR0FBRyxDQUFDO0lBQ3hCO0VBQ0osQ0FBQyxFQUNELFVBQUFDLE9BQU8sRUFBSTtJQUNQQyxPQUFPLENBQUNDLEdBQUcsSUFBQU4sTUFBQSxDQUFJSSxPQUFPLENBQUUsQ0FBQztFQUM3QixDQUNKLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBU1AsY0FBY0EsQ0FBQ04sSUFBYyxFQUFFO0VBQ3BDLElBQUdBLElBQUksQ0FBQ2dCLE1BQU0sSUFBSSxDQUFDLEVBQUU7SUFDakIsUUFBUWhCLElBQUksQ0FBQyxDQUFDLENBQUM7TUFDWCxLQUFLLE9BQU87UUFDUixPQUFPaUIsaUJBQVM7TUFDcEIsS0FBSyxTQUFTO1FBQ1YsT0FBT0MsbUJBQVc7TUFDdEI7UUFDSSxPQUFPQyxnQkFBUTtJQUN2QjtFQUNKO0VBQ0EsT0FBT0EsZ0JBQVE7QUFDbkI7QUFFQSxTQUFTZixpQkFBaUJBLENBQUNKLElBQWMsRUFBRTtFQUN2QyxJQUFHQSxJQUFJLENBQUNnQixNQUFNLElBQUksQ0FBQyxFQUFFO0lBQ2pCLFFBQVFoQixJQUFJLENBQUMsQ0FBQyxDQUFDO01BQ1gsS0FBSyxPQUFPO01BQ1osS0FBSyxTQUFTO1FBQ1YsT0FBT0EsSUFBSSxDQUFDb0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsR0FBRyxDQUFDO01BQ2xDO1FBQ0ksT0FBT3JCLElBQUksQ0FBQ29CLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN0QztFQUNKO0VBQ0EsT0FBT3JCLElBQUksQ0FBQ29CLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUNsQztBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxjQUVjeEIsZ0JBQWdCIn0=
@@ -1,4 +1,5 @@
1
1
  import { ChildProcess } from 'child_process';
2
2
  declare const callCore: (args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void) => ChildProcess;
3
3
  declare const callKafka: (args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void) => ChildProcess;
4
- export { callCore, callKafka };
4
+ declare const callGraphQl: (args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void) => ChildProcess;
5
+ export { callCore, callKafka, callGraphQl };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.callKafka = exports.callCore = void 0;
6
+ exports.callKafka = exports.callGraphQl = exports.callCore = void 0;
7
7
  var _path = _interopRequireDefault(require("path"));
8
8
  var _config = require("../config");
9
9
  var _logger = _interopRequireDefault(require("../common/logger"));
@@ -21,6 +21,12 @@ var callKafka = exports.callKafka = function callKafka(args, done, onOutput) {
21
21
  _logger["default"].debug("CLI: Specmatic jar path: ".concat(specmaticJarPath));
22
22
  return callJar(specmaticJarPath, args, done, onOutput);
23
23
  };
24
+ var callGraphQl = exports.callGraphQl = function callGraphQl(args, done, onOutput) {
25
+ var rootPath = _path["default"].resolve(__dirname, '..', '..', '..', 'specmatic-beta', 'graphql');
26
+ var specmaticJarPath = _path["default"].resolve(rootPath, _config.specmaticGraphQlJarName);
27
+ _logger["default"].debug("CLI: Specmatic jar path: ".concat(specmaticJarPath));
28
+ return callJar(specmaticJarPath, args, done, onOutput);
29
+ };
24
30
  function callJar(jarPath, args, done, onOutput) {
25
31
  var _javaProcess$stdout, _javaProcess$stderr;
26
32
  var argsList = [];
@@ -48,4 +54,4 @@ function callJar(jarPath, args, done, onOutput) {
48
54
  });
49
55
  return javaProcess;
50
56
  }
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvbmZpZyIsIl9sb2dnZXIiLCJfY2hpbGRfcHJvY2VzcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjYWxsQ29yZSIsImV4cG9ydHMiLCJhcmdzIiwiZG9uZSIsIm9uT3V0cHV0Iiwicm9vdFBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsInNwZWNtYXRpY0phclBhdGgiLCJzcGVjbWF0aWNDb3JlSmFyTmFtZSIsImxvZ2dlciIsImRlYnVnIiwiY29uY2F0IiwiY2FsbEphciIsImNhbGxLYWZrYSIsInNwZWNtYXRpY0thZmthSmFyTmFtZSIsImphclBhdGgiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsImFyZ3NMaXN0IiwicHJvY2VzcyIsImVudiIsInB1c2giLCJqYXZhUHJvY2VzcyIsInNwYXduIiwic3RkaW8iLCJzdGRlcnIiLCJzaGVsbCIsInN0ZG91dCIsIm9uIiwiZGF0YSIsImNvZGUiLCJFcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcnVubmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBleGVjU2ggZnJvbSAnZXhlYy1zaCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHNwZWNtYXRpY0NvcmVKYXJOYW1lLCBzcGVjbWF0aWNLYWZrYUphck5hbWUgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJztcbmltcG9ydCB7IENoaWxkUHJvY2Vzcywgc3Bhd24sIFNwYXduT3B0aW9ucyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuXG5jb25zdCBjYWxsQ29yZSA9IChhcmdzOiBzdHJpbmcsIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpOiBDaGlsZFByb2Nlc3MgPT4ge1xuICAgIGNvbnN0IHJvb3RQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJyk7XG4gICAgY29uc3Qgc3BlY21hdGljSmFyUGF0aCA9IHBhdGgucmVzb2x2ZShyb290UGF0aCwgc3BlY21hdGljQ29yZUphck5hbWUpO1xuICAgIGxvZ2dlci5kZWJ1ZyhgQ0xJOiBTcGVjbWF0aWMgamFyIHBhdGg6ICR7c3BlY21hdGljSmFyUGF0aH1gKTtcbiAgICByZXR1cm4gY2FsbEphcihzcGVjbWF0aWNKYXJQYXRoLCBhcmdzLCBkb25lLCBvbk91dHB1dCk7XG59O1xuXG5jb25zdCBjYWxsS2Fma2EgPSAoYXJnczogc3RyaW5nLCBkb25lOiAoZXJyb3I6IGFueSkgPT4gdm9pZCwgb25PdXRwdXQ6IChtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiBib29sZWFuKSA9PiB2b2lkKTogQ2hpbGRQcm9jZXNzID0+IHtcbiAgICBjb25zdCByb290UGF0aCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICcuLicsICdzcGVjbWF0aWMtYmV0YScsICdrYWZrYScpO1xuICAgIGNvbnN0IHNwZWNtYXRpY0phclBhdGggPSBwYXRoLnJlc29sdmUocm9vdFBhdGgsIHNwZWNtYXRpY0thZmthSmFyTmFtZSk7XG4gICAgbG9nZ2VyLmRlYnVnKGBDTEk6IFNwZWNtYXRpYyBqYXIgcGF0aDogJHtzcGVjbWF0aWNKYXJQYXRofWApO1xuICAgIHJldHVybiBjYWxsSmFyKHNwZWNtYXRpY0phclBhdGgsIGFyZ3MsIGRvbmUsIG9uT3V0cHV0KTtcbn07XG5cbmZ1bmN0aW9uIGNhbGxKYXIoamFyUGF0aDogc3RyaW5nLCBhcmdzOiBzdHJpbmcsIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICBsZXQgYXJnc0xpc3QgPSBbXTtcbiAgICBpZiAocHJvY2Vzcy5lbnZbJ2VuZHBvaW50c0FQSSddKSB7XG4gICAgICAgIGFyZ3NMaXN0LnB1c2goYC1EZW5kcG9pbnRzQVBJPVwiJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119XCJgKTtcbiAgICB9XG4gICAgYXJnc0xpc3QgPSBhcmdzTGlzdC5jb25jYXQoWyctamFyJywgYFwiJHtqYXJQYXRofVwiYCwgYXJnc10pO1xuICAgIGNvbnN0IGphdmFQcm9jZXNzOiBDaGlsZFByb2Nlc3MgPSBzcGF3bignamF2YScsIGFyZ3NMaXN0LCB7IHN0ZGlvOiAncGlwZScsIHN0ZGVycjogJ3BpcGUnLCBzaGVsbDogdHJ1ZSB9IGFzIFNwYXduT3B0aW9ucyk7XG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCBmYWxzZSk7XG4gICAgfSk7XG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCB0cnVlKTtcbiAgICB9KTtcbiAgICBqYXZhUHJvY2Vzcy5vbignY2xvc2UnLCBmdW5jdGlvbiAoY29kZTpudW1iZXIpIHtcbiAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgIGRvbmUobmV3IEVycm9yKCdDb21tYW5kIGV4aXRlZCB3aXRoIG5vbiB6ZXJvIGNvZGU6ICcgKyBjb2RlKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvbmUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gamF2YVByb2Nlc3M7XG59XG5cbmV4cG9ydCB7IGNhbGxDb3JlLCBjYWxsS2Fma2EgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FB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
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvbmZpZyIsIl9sb2dnZXIiLCJfY2hpbGRfcHJvY2VzcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJjYWxsQ29yZSIsImV4cG9ydHMiLCJhcmdzIiwiZG9uZSIsIm9uT3V0cHV0Iiwicm9vdFBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsInNwZWNtYXRpY0phclBhdGgiLCJzcGVjbWF0aWNDb3JlSmFyTmFtZSIsImxvZ2dlciIsImRlYnVnIiwiY29uY2F0IiwiY2FsbEphciIsImNhbGxLYWZrYSIsInNwZWNtYXRpY0thZmthSmFyTmFtZSIsImNhbGxHcmFwaFFsIiwic3BlY21hdGljR3JhcGhRbEphck5hbWUiLCJqYXJQYXRoIiwiX2phdmFQcm9jZXNzJHN0ZG91dCIsIl9qYXZhUHJvY2VzcyRzdGRlcnIiLCJhcmdzTGlzdCIsInByb2Nlc3MiLCJlbnYiLCJwdXNoIiwiamF2YVByb2Nlc3MiLCJzcGF3biIsInN0ZGlvIiwic3RkZXJyIiwic2hlbGwiLCJzdGRvdXQiLCJvbiIsImRhdGEiLCJjb2RlIiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3J1bm5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXhlY1NoIGZyb20gJ2V4ZWMtc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBzcGVjbWF0aWNDb3JlSmFyTmFtZSwgc3BlY21hdGljS2Fma2FKYXJOYW1lLCBzcGVjbWF0aWNHcmFwaFFsSmFyTmFtZSB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInO1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBzcGF3biwgU3Bhd25PcHRpb25zIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IGNhbGxDb3JlID0gKGFyZ3M6IHN0cmluZywgZG9uZTogKGVycm9yOiBhbnkpID0+IHZvaWQsIG9uT3V0cHV0OiAobWVzc2FnZTogc3RyaW5nLCBlcnJvcjogYm9vbGVhbikgPT4gdm9pZCk6IENoaWxkUHJvY2VzcyA9PiB7XG4gICAgY29uc3Qgcm9vdFBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nKTtcbiAgICBjb25zdCBzcGVjbWF0aWNKYXJQYXRoID0gcGF0aC5yZXNvbHZlKHJvb3RQYXRoLCBzcGVjbWF0aWNDb3JlSmFyTmFtZSk7XG4gICAgbG9nZ2VyLmRlYnVnKGBDTEk6IFNwZWNtYXRpYyBqYXIgcGF0aDogJHtzcGVjbWF0aWNKYXJQYXRofWApO1xuICAgIHJldHVybiBjYWxsSmFyKHNwZWNtYXRpY0phclBhdGgsIGFyZ3MsIGRvbmUsIG9uT3V0cHV0KTtcbn07XG5cbmNvbnN0IGNhbGxLYWZrYSA9IChhcmdzOiBzdHJpbmcsIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpOiBDaGlsZFByb2Nlc3MgPT4ge1xuICAgIGNvbnN0IHJvb3RQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJ3NwZWNtYXRpYy1iZXRhJywgJ2thZmthJyk7XG4gICAgY29uc3Qgc3BlY21hdGljSmFyUGF0aCA9IHBhdGgucmVzb2x2ZShyb290UGF0aCwgc3BlY21hdGljS2Fma2FKYXJOYW1lKTtcbiAgICBsb2dnZXIuZGVidWcoYENMSTogU3BlY21hdGljIGphciBwYXRoOiAke3NwZWNtYXRpY0phclBhdGh9YCk7XG4gICAgcmV0dXJuIGNhbGxKYXIoc3BlY21hdGljSmFyUGF0aCwgYXJncywgZG9uZSwgb25PdXRwdXQpO1xufTtcblxuY29uc3QgY2FsbEdyYXBoUWwgPSAoYXJnczogc3RyaW5nLCBkb25lOiAoZXJyb3I6IGFueSkgPT4gdm9pZCwgb25PdXRwdXQ6IChtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiBib29sZWFuKSA9PiB2b2lkKTogQ2hpbGRQcm9jZXNzID0+IHtcbiAgICBjb25zdCByb290UGF0aCA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicsICcuLicsICdzcGVjbWF0aWMtYmV0YScsICdncmFwaHFsJyk7XG4gICAgY29uc3Qgc3BlY21hdGljSmFyUGF0aCA9IHBhdGgucmVzb2x2ZShyb290UGF0aCwgc3BlY21hdGljR3JhcGhRbEphck5hbWUpO1xuICAgIGxvZ2dlci5kZWJ1ZyhgQ0xJOiBTcGVjbWF0aWMgamFyIHBhdGg6ICR7c3BlY21hdGljSmFyUGF0aH1gKTtcbiAgICByZXR1cm4gY2FsbEphcihzcGVjbWF0aWNKYXJQYXRoLCBhcmdzLCBkb25lLCBvbk91dHB1dCk7XG59XG5cbmZ1bmN0aW9uIGNhbGxKYXIoamFyUGF0aDogc3RyaW5nLCBhcmdzOiBzdHJpbmcsIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICBsZXQgYXJnc0xpc3QgPSBbXTtcbiAgICBpZiAocHJvY2Vzcy5lbnZbJ2VuZHBvaW50c0FQSSddKSB7XG4gICAgICAgIGFyZ3NMaXN0LnB1c2goYC1EZW5kcG9pbnRzQVBJPVwiJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119XCJgKTtcbiAgICB9XG4gICAgYXJnc0xpc3QgPSBhcmdzTGlzdC5jb25jYXQoWyctamFyJywgYFwiJHtqYXJQYXRofVwiYCwgYXJnc10pO1xuICAgIGNvbnN0IGphdmFQcm9jZXNzOiBDaGlsZFByb2Nlc3MgPSBzcGF3bignamF2YScsIGFyZ3NMaXN0LCB7IHN0ZGlvOiAncGlwZScsIHN0ZGVycjogJ3BpcGUnLCBzaGVsbDogdHJ1ZSB9IGFzIFNwYXduT3B0aW9ucyk7XG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCBmYWxzZSk7XG4gICAgfSk7XG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCB0cnVlKTtcbiAgICB9KTtcbiAgICBqYXZhUHJvY2Vzcy5vbignY2xvc2UnLCBmdW5jdGlvbiAoY29kZTpudW1iZXIpIHtcbiAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgIGRvbmUobmV3IEVycm9yKCdDb21tYW5kIGV4aXRlZCB3aXRoIG5vbiB6ZXJvIGNvZGU6ICcgKyBjb2RlKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvbmUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gamF2YVByb2Nlc3M7XG59XG5cbmV4cG9ydCB7IGNhbGxDb3JlLCBjYWxsS2Fma2EsIGNhbGxHcmFwaFFsIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUgsT0FBQTtBQUFrRSxTQUFBRCx1QkFBQUssR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBRWxFLElBQU1FLFFBQVEsR0FBQUMsT0FBQSxDQUFBRCxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUUsSUFBWSxFQUFFQyxJQUEwQixFQUFFQyxRQUFtRCxFQUFtQjtFQUM5SCxJQUFNQyxRQUFRLEdBQUdDLGdCQUFJLENBQUNDLE9BQU8sQ0FBQ0MsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7RUFDcEQsSUFBTUMsZ0JBQWdCLEdBQUdILGdCQUFJLENBQUNDLE9BQU8sQ0FBQ0YsUUFBUSxFQUFFSyw0QkFBb0IsQ0FBQztFQUNy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
package/dist/config.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare const specmaticCoreJarName = "specmatic.jar";
2
2
  export declare const specmaticKafkaJarName = "specmatic-kafka-all.jar";
3
+ export declare const specmaticGraphQlJarName = "specmatic-graphql-all.jar";
package/dist/config.js CHANGED
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.specmaticKafkaJarName = exports.specmaticCoreJarName = void 0;
6
+ exports.specmaticKafkaJarName = exports.specmaticGraphQlJarName = exports.specmaticCoreJarName = void 0;
7
7
  var specmaticCoreJarName = exports.specmaticCoreJarName = 'specmatic.jar';
8
8
  var specmaticKafkaJarName = exports.specmaticKafkaJarName = 'specmatic-kafka-all.jar';
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzcGVjbWF0aWNDb3JlSmFyTmFtZSIsImV4cG9ydHMiLCJzcGVjbWF0aWNLYWZrYUphck5hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzcGVjbWF0aWNDb3JlSmFyTmFtZSA9ICdzcGVjbWF0aWMuamFyJztcbmV4cG9ydCBjb25zdCBzcGVjbWF0aWNLYWZrYUphck5hbWUgPSAnc3BlY21hdGljLWthZmthLWFsbC5qYXInO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxvQkFBb0IsR0FBQUMsT0FBQSxDQUFBRCxvQkFBQSxHQUFHLGVBQWU7QUFDNUMsSUFBTUUscUJBQXFCLEdBQUFELE9BQUEsQ0FBQUMscUJBQUEsR0FBRyx5QkFBeUIifQ==
9
+ var specmaticGraphQlJarName = exports.specmaticGraphQlJarName = 'specmatic-graphql-all.jar';
10
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzcGVjbWF0aWNDb3JlSmFyTmFtZSIsImV4cG9ydHMiLCJzcGVjbWF0aWNLYWZrYUphck5hbWUiLCJzcGVjbWF0aWNHcmFwaFFsSmFyTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNwZWNtYXRpY0NvcmVKYXJOYW1lID0gJ3NwZWNtYXRpYy5qYXInO1xuZXhwb3J0IGNvbnN0IHNwZWNtYXRpY0thZmthSmFyTmFtZSA9ICdzcGVjbWF0aWMta2Fma2EtYWxsLmphcic7XG5leHBvcnQgY29uc3Qgc3BlY21hdGljR3JhcGhRbEphck5hbWUgPSAnc3BlY21hdGljLWdyYXBocWwtYWxsLmphcic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLElBQU1BLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUcsZUFBZTtBQUM1QyxJQUFNRSxxQkFBcUIsR0FBQUQsT0FBQSxDQUFBQyxxQkFBQSxHQUFHLHlCQUF5QjtBQUN2RCxJQUFNQyx1QkFBdUIsR0FBQUYsT0FBQSxDQUFBRSx1QkFBQSxHQUFHLDJCQUEyQiJ9
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ import type { ChildProcess } from "node:child_process";
3
+ export declare class GraphQlStub {
4
+ host: string;
5
+ port: number;
6
+ data?: string;
7
+ process: ChildProcess;
8
+ constructor(host: string, port: number, process: ChildProcess, data?: string);
9
+ }
10
+ declare const startGraphQlStub: (host?: string, port?: string, data?: string, args?: (string | number)[]) => Promise<GraphQlStub>;
11
+ declare const stopGraphQlStub: (graphQlStub: GraphQlStub) => Promise<void>;
12
+ export { startGraphQlStub, stopGraphQlStub };
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.stopGraphQlStub = exports.startGraphQlStub = exports.GraphQlStub = void 0;
7
+ var _logger = _interopRequireDefault(require("../common/logger"));
8
+ var _runner = require("../common/runner");
9
+ var _shutdownUtils = require("../core/shutdownUtils");
10
+ var _terminate = _interopRequireDefault(require("terminate"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
13
+ 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; }
14
+ 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); } }
15
+ 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); }); }; }
16
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
17
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ var GraphQlStub = exports.GraphQlStub = /*#__PURE__*/_createClass(function GraphQlStub(host, port, process, data) {
23
+ _classCallCheck(this, GraphQlStub);
24
+ _defineProperty(this, "host", void 0);
25
+ _defineProperty(this, "port", void 0);
26
+ _defineProperty(this, "data", void 0);
27
+ _defineProperty(this, "process", void 0);
28
+ this.host = host;
29
+ this.port = port;
30
+ this.process = process;
31
+ this.data = data;
32
+ });
33
+ var startGraphQlStub = exports.startGraphQlStub = function startGraphQlStub(host, port, data) {
34
+ var args = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
35
+ var cmd = " stub ";
36
+ if (host) cmd += "--host ".concat(host, " ");
37
+ if (port) cmd += "--port ".concat(port, " ");
38
+ if (data) cmd += "--data ".concat(data, " ");
39
+ cmd += args.join(" ");
40
+ _logger["default"].info("GraphQl Stub: Starting server");
41
+ _logger["default"].debug("GraphQl Stub: Executing \"".concat(cmd, "\""));
42
+ return new Promise(function (resolve, reject) {
43
+ var reportedPort;
44
+ var javaProcess = (0, _runner.callGraphQl)(cmd, function (err) {
45
+ if (err) {
46
+ _logger["default"].error("GraphQl Stub: Exited with error ".concat(err));
47
+ }
48
+ }, function (message, error) {
49
+ if (!error) {
50
+ if (message.includes("Starting the server on port")) {
51
+ _logger["default"].info("GraphQl Stub: ".concat(message));
52
+ var stubInfo = message.split("port ")[1];
53
+ if (stubInfo.length < 2) reject("Cannot determine port from graphql stub output");else reportedPort = Number.parseInt(stubInfo[1].trim());
54
+ } else if (message.includes("Address already in use")) {
55
+ _logger["default"].error("GraphQl Stub: ".concat(message));
56
+ reject(message);
57
+ } else if (message.includes("Stub server is running")) {
58
+ var _host = message.split("on ")[1].split(":")[0].trim();
59
+ if (port) {
60
+ resolve(new GraphQlStub(_host, reportedPort, javaProcess, data));
61
+ } else {
62
+ reject("No port or host information available, but graphql stub server is running");
63
+ }
64
+ } else {
65
+ _logger["default"].debug("GraphQl Stub: ".concat(message));
66
+ }
67
+ } else {
68
+ _logger["default"].error("GraphQl Stub: ".concat(message));
69
+ reject(message);
70
+ }
71
+ });
72
+ });
73
+ };
74
+ var stopGraphQlStub = exports.stopGraphQlStub = /*#__PURE__*/function () {
75
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(graphQlStub) {
76
+ var _javaProcess$stdout, _javaProcess$stderr;
77
+ var javaProcess;
78
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
79
+ while (1) switch (_context.prev = _context.next) {
80
+ case 0:
81
+ _logger["default"].debug("GraphQl Stub: Stopping server at ".concat(graphQlStub.host, ":").concat(graphQlStub.port));
82
+ javaProcess = graphQlStub.process;
83
+ (_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 || _javaProcess$stdout.removeAllListeners();
84
+ (_javaProcess$stderr = javaProcess.stderr) === null || _javaProcess$stderr === void 0 || _javaProcess$stderr.removeAllListeners();
85
+ javaProcess.removeAllListeners("close");
86
+ _logger["default"].debug("Trying to stop stub process gracefully ...");
87
+ _context.prev = 6;
88
+ _context.next = 9;
89
+ return (0, _shutdownUtils.gracefulShutdown)(javaProcess);
90
+ case 9:
91
+ _context.next = 14;
92
+ break;
93
+ case 11:
94
+ _context.prev = 11;
95
+ _context.t0 = _context["catch"](6);
96
+ (0, _terminate["default"])(javaProcess.pid);
97
+ case 14:
98
+ _logger["default"].info("GraphQl Stub: Stopped server at ".concat(graphQlStub.host, ":").concat(graphQlStub.port));
99
+ case 15:
100
+ case "end":
101
+ return _context.stop();
102
+ }
103
+ }, _callee, null, [[6, 11]]);
104
+ }));
105
+ return function stopGraphQlStub(_x) {
106
+ return _ref.apply(this, arguments);
107
+ };
108
+ }();
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcnVubmVyIiwiX3NodXRkb3duVXRpbHMiLCJfdGVybWluYXRlIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiaSIsImEiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsIk51bWJlciIsIkdyYXBoUWxTdHViIiwiZXhwb3J0cyIsImhvc3QiLCJwb3J0IiwicHJvY2VzcyIsImRhdGEiLCJzdGFydEdyYXBoUWxTdHViIiwiY21kIiwiY29uY2F0Iiwiam9pbiIsImxvZ2dlciIsImRlYnVnIiwicmVwb3J0ZWRQb3J0IiwiamF2YVByb2Nlc3MiLCJjYWxsR3JhcGhRbCIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsInN0dWJJbmZvIiwic3BsaXQiLCJwYXJzZUludCIsInRyaW0iLCJzdG9wR3JhcGhRbFN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsImdyYXBoUWxTdHViIiwiX2phdmFQcm9jZXNzJHN0ZG91dCIsIl9qYXZhUHJvY2VzcyRzdGRlcnIiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic3Rkb3V0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwic3RkZXJyIiwiZ3JhY2VmdWxTaHV0ZG93biIsInQwIiwidGVybWluYXRlIiwicGlkIiwiX3giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ3JhcGhxbC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCBsb2dnZXIgZnJvbSBcIi4uL2NvbW1vbi9sb2dnZXJcIjtcbmltcG9ydCB7IGNhbGxHcmFwaFFsIH0gZnJvbSBcIi4uL2NvbW1vbi9ydW5uZXJcIjtcbmltcG9ydCB7IGdyYWNlZnVsU2h1dGRvd24gfSBmcm9tIFwiLi4vY29yZS9zaHV0ZG93blV0aWxzXCI7XG5pbXBvcnQgdGVybWluYXRlIGZyb20gXCJ0ZXJtaW5hdGVcIjtcblxuZXhwb3J0IGNsYXNzIEdyYXBoUWxTdHViIHtcblx0aG9zdDogc3RyaW5nO1xuXHRwb3J0OiBudW1iZXI7XG5cdGRhdGE/OiBzdHJpbmc7XG5cdHByb2Nlc3M6IENoaWxkUHJvY2Vzcztcblx0Y29uc3RydWN0b3IoXG5cdFx0aG9zdDogc3RyaW5nLFxuXHRcdHBvcnQ6IG51bWJlcixcblx0XHRwcm9jZXNzOiBDaGlsZFByb2Nlc3MsXG5cdFx0ZGF0YT86IHN0cmluZyxcblx0KSB7XG5cdFx0dGhpcy5ob3N0ID0gaG9zdDtcblx0XHR0aGlzLnBvcnQgPSBwb3J0O1xuXHRcdHRoaXMucHJvY2VzcyA9IHByb2Nlc3M7XG5cdFx0dGhpcy5kYXRhID0gZGF0YTtcblx0fVxufVxuXG5jb25zdCBzdGFydEdyYXBoUWxTdHViID0gKFxuXHRob3N0Pzogc3RyaW5nLFxuXHRwb3J0Pzogc3RyaW5nLFxuXHRkYXRhPzogc3RyaW5nLFxuXHRhcmdzOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW10sXG4pOiBQcm9taXNlPEdyYXBoUWxTdHViPiA9PiB7XG5cdGxldCBjbWQgPSBcIiBzdHViIFwiO1xuXHRpZiAoaG9zdCkgY21kICs9IGAtLWhvc3QgJHtob3N0fSBgO1xuXHRpZiAocG9ydCkgY21kICs9IGAtLXBvcnQgJHtwb3J0fSBgO1xuXHRpZiAoZGF0YSkgY21kICs9IGAtLWRhdGEgJHtkYXRhfSBgO1xuXHRjbWQgKz0gYXJncy5qb2luKFwiIFwiKTtcblxuXHRsb2dnZXIuaW5mbyhcIkdyYXBoUWwgU3R1YjogU3RhcnRpbmcgc2VydmVyXCIpO1xuXHRsb2dnZXIuZGVidWcoYEdyYXBoUWwgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKTtcblxuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGxldCByZXBvcnRlZFBvcnQ6IG51bWJlcjtcblx0XHRjb25zdCBqYXZhUHJvY2VzcyA9IGNhbGxHcmFwaFFsKFxuXHRcdFx0Y21kLFxuXHRcdFx0KGVycjogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0XHRsb2dnZXIuZXJyb3IoYEdyYXBoUWwgU3R1YjogRXhpdGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHQobWVzc2FnZSwgZXJyb3IpID0+IHtcblx0XHRcdFx0aWYgKCFlcnJvcikge1xuXHRcdFx0XHRcdGlmIChtZXNzYWdlLmluY2x1ZGVzKFwiU3RhcnRpbmcgdGhlIHNlcnZlciBvbiBwb3J0XCIpKSB7XG5cdFx0XHRcdFx0XHRsb2dnZXIuaW5mbyhgR3JhcGhRbCBTdHViOiAke21lc3NhZ2V9YCk7XG5cdFx0XHRcdFx0XHRjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoXCJwb3J0IFwiKVsxXTtcblx0XHRcdFx0XHRcdGlmIChzdHViSW5mby5sZW5ndGggPCAyKVxuXHRcdFx0XHRcdFx0XHRyZWplY3QoXCJDYW5ub3QgZGV0ZXJtaW5lIHBvcnQgZnJvbSBncmFwaHFsIHN0dWIgb3V0cHV0XCIpO1xuXHRcdFx0XHRcdFx0ZWxzZSByZXBvcnRlZFBvcnQgPSBOdW1iZXIucGFyc2VJbnQoc3R1YkluZm9bMV0udHJpbSgpKTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoXCJBZGRyZXNzIGFscmVhZHkgaW4gdXNlXCIpKSB7XG5cdFx0XHRcdFx0XHRsb2dnZXIuZXJyb3IoYEdyYXBoUWwgU3R1YjogJHttZXNzYWdlfWApO1xuXHRcdFx0XHRcdFx0cmVqZWN0KG1lc3NhZ2UpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAobWVzc2FnZS5pbmNsdWRlcyhcIlN0dWIgc2VydmVyIGlzIHJ1bm5pbmdcIikpIHtcblx0XHRcdFx0XHRcdGNvbnN0IGhvc3QgPSBtZXNzYWdlLnNwbGl0KFwib24gXCIpWzFdLnNwbGl0KFwiOlwiKVswXS50cmltKCk7XG5cdFx0XHRcdFx0XHRpZiAocG9ydCkge1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKG5ldyBHcmFwaFFsU3R1Yihob3N0LCByZXBvcnRlZFBvcnQsIGphdmFQcm9jZXNzLCBkYXRhKSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QoXG5cdFx0XHRcdFx0XHRcdFx0XCJObyBwb3J0IG9yIGhvc3QgaW5mb3JtYXRpb24gYXZhaWxhYmxlLCBidXQgZ3JhcGhxbCBzdHViIHNlcnZlciBpcyBydW5uaW5nXCIsXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGxvZ2dlci5kZWJ1ZyhgR3JhcGhRbCBTdHViOiAke21lc3NhZ2V9YCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGxvZ2dlci5lcnJvcihgR3JhcGhRbCBTdHViOiAke21lc3NhZ2V9YCk7XG5cdFx0XHRcdFx0cmVqZWN0KG1lc3NhZ2UpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdCk7XG5cdH0pO1xufTtcblxuY29uc3Qgc3RvcEdyYXBoUWxTdHViID0gYXN5bmMgKGdyYXBoUWxTdHViOiBHcmFwaFFsU3R1YikgPT4ge1xuXHRsb2dnZXIuZGVidWcoXG5cdFx0YEdyYXBoUWwgU3R1YjogU3RvcHBpbmcgc2VydmVyIGF0ICR7Z3JhcGhRbFN0dWIuaG9zdH06JHtncmFwaFFsU3R1Yi5wb3J0fWAsXG5cdCk7XG5cdGNvbnN0IGphdmFQcm9jZXNzID0gZ3JhcGhRbFN0dWIucHJvY2Vzcztcblx0amF2YVByb2Nlc3Muc3Rkb3V0Py5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcblx0amF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcblx0amF2YVByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzKFwiY2xvc2VcIik7XG5cdGxvZ2dlci5kZWJ1ZyhcIlRyeWluZyB0byBzdG9wIHN0dWIgcHJvY2VzcyBncmFjZWZ1bGx5IC4uLlwiKTtcblx0dHJ5IHtcblx0XHRhd2FpdCBncmFjZWZ1bFNodXRkb3duKGphdmFQcm9jZXNzKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdHRlcm1pbmF0ZShqYXZhUHJvY2Vzcy5waWQhKTtcblx0fVxuXHRsb2dnZXIuaW5mbyhcblx0XHRgR3JhcGhRbCBTdHViOiBTdG9wcGVkIHNlcnZlciBhdCAke2dyYXBoUWxTdHViLmhvc3R9OiR7Z3JhcGhRbFN0dWIucG9ydH1gLFxuXHQpO1xufTtcblxuZXhwb3J0IHsgc3RhcnRHcmFwaFFsU3R1Yiwgc3RvcEdyYXBoUWxTdHViIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUFrQyxTQUFBRCx1QkFBQUssR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFB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
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export { startStub, startStub as startHttpStub, stopStub, stopStub as stopHttpStub, test, testWithApiCoverage, setExpectations, setExpectations as setHttpStubExpectations, setExpectationJson, setExpectationJson as setHttpStubExpectationJson, printJarVersion, showTestResults, } from './core';
2
- export { startKafkaStub, startKafkaStub as startKafkaMock, stopKafkaStub, stopKafkaStub as stopKafkaMock, verifyKafkaStubMessage, verifyKafkaStubMessage as verifyKafkaMockMessage, verifyKafkaStub, verifyKafkaStub as verifyKafkaMock, setKafkaStubExpectations, setKafkaStubExpectations as setKafkaMockExpectations, } from './kafka';
1
+ export { startStub, startStub as startHttpStub, stopStub, stopStub as stopHttpStub, test, testWithApiCoverage, setExpectations, setExpectations as setHttpStubExpectations, setExpectationJson, setExpectationJson as setHttpStubExpectationJson, printJarVersion, showTestResults, } from "./core";
2
+ export { startKafkaStub, startKafkaStub as startKafkaMock, stopKafkaStub, stopKafkaStub as stopKafkaMock, verifyKafkaStubMessage, verifyKafkaStubMessage as verifyKafkaMockMessage, verifyKafkaStub, verifyKafkaStub as verifyKafkaMock, setKafkaStubExpectations, setKafkaStubExpectations as setKafkaMockExpectations, } from "./kafka";
3
+ export { startGraphQlStub, stopGraphQlStub, } from "./graphql";
package/dist/index.js CHANGED
@@ -51,6 +51,12 @@ Object.defineProperty(exports, "showTestResults", {
51
51
  return _core.showTestResults;
52
52
  }
53
53
  });
54
+ Object.defineProperty(exports, "startGraphQlStub", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _graphql.startGraphQlStub;
58
+ }
59
+ });
54
60
  Object.defineProperty(exports, "startHttpStub", {
55
61
  enumerable: true,
56
62
  get: function get() {
@@ -75,6 +81,12 @@ Object.defineProperty(exports, "startStub", {
75
81
  return _core.startStub;
76
82
  }
77
83
  });
84
+ Object.defineProperty(exports, "stopGraphQlStub", {
85
+ enumerable: true,
86
+ get: function get() {
87
+ return _graphql.stopGraphQlStub;
88
+ }
89
+ });
78
90
  Object.defineProperty(exports, "stopHttpStub", {
79
91
  enumerable: true,
80
92
  get: function get() {
@@ -137,4 +149,5 @@ Object.defineProperty(exports, "verifyKafkaStubMessage", {
137
149
  });
138
150
  var _core = require("./core");
139
151
  var _kafka = require("./kafka");
140
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfa2Fma2EiXSwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgICBzdGFydFN0dWIsXG4gICAgc3RhcnRTdHViIGFzIHN0YXJ0SHR0cFN0dWIsXG4gICAgc3RvcFN0dWIsXG4gICAgc3RvcFN0dWIgYXMgc3RvcEh0dHBTdHViLFxuICAgIHRlc3QsXG4gICAgdGVzdFdpdGhBcGlDb3ZlcmFnZSxcbiAgICBzZXRFeHBlY3RhdGlvbnMsXG4gICAgc2V0RXhwZWN0YXRpb25zIGFzIHNldEh0dHBTdHViRXhwZWN0YXRpb25zLFxuICAgIHNldEV4cGVjdGF0aW9uSnNvbixcbiAgICBzZXRFeHBlY3RhdGlvbkpzb24gYXMgc2V0SHR0cFN0dWJFeHBlY3RhdGlvbkpzb24sXG4gICAgcHJpbnRKYXJWZXJzaW9uLFxuICAgIHNob3dUZXN0UmVzdWx0cyxcbn0gZnJvbSAnLi9jb3JlJ1xuZXhwb3J0IHtcbiAgICBzdGFydEthZmthU3R1YixcbiAgICBzdGFydEthZmthU3R1YiBhcyBzdGFydEthZmthTW9jayxcbiAgICBzdG9wS2Fma2FTdHViLFxuICAgIHN0b3BLYWZrYVN0dWIgYXMgc3RvcEthZmthTW9jayxcbiAgICB2ZXJpZnlLYWZrYVN0dWJNZXNzYWdlLFxuICAgIHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UgYXMgdmVyaWZ5S2Fma2FNb2NrTWVzc2FnZSxcbiAgICB2ZXJpZnlLYWZrYVN0dWIsXG4gICAgdmVyaWZ5S2Fma2FTdHViIGFzIHZlcmlmeUthZmthTW9jayxcbiAgICBzZXRLYWZrYVN0dWJFeHBlY3RhdGlvbnMsXG4gICAgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIGFzIHNldEthZmthTW9ja0V4cGVjdGF0aW9ucyxcbn0gZnJvbSAnLi9rYWZrYSdcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFjQSxJQUFBQyxNQUFBLEdBQUFELE9BQUEifQ==
152
+ var _graphql = require("./graphql");
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfa2Fma2EiLCJfZ3JhcGhxbCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuXHRzdGFydFN0dWIsXG5cdHN0YXJ0U3R1YiBhcyBzdGFydEh0dHBTdHViLFxuXHRzdG9wU3R1Yixcblx0c3RvcFN0dWIgYXMgc3RvcEh0dHBTdHViLFxuXHR0ZXN0LFxuXHR0ZXN0V2l0aEFwaUNvdmVyYWdlLFxuXHRzZXRFeHBlY3RhdGlvbnMsXG5cdHNldEV4cGVjdGF0aW9ucyBhcyBzZXRIdHRwU3R1YkV4cGVjdGF0aW9ucyxcblx0c2V0RXhwZWN0YXRpb25Kc29uLFxuXHRzZXRFeHBlY3RhdGlvbkpzb24gYXMgc2V0SHR0cFN0dWJFeHBlY3RhdGlvbkpzb24sXG5cdHByaW50SmFyVmVyc2lvbixcblx0c2hvd1Rlc3RSZXN1bHRzLFxufSBmcm9tIFwiLi9jb3JlXCI7XG5leHBvcnQge1xuXHRzdGFydEthZmthU3R1Yixcblx0c3RhcnRLYWZrYVN0dWIgYXMgc3RhcnRLYWZrYU1vY2ssXG5cdHN0b3BLYWZrYVN0dWIsXG5cdHN0b3BLYWZrYVN0dWIgYXMgc3RvcEthZmthTW9jayxcblx0dmVyaWZ5S2Fma2FTdHViTWVzc2FnZSxcblx0dmVyaWZ5S2Fma2FTdHViTWVzc2FnZSBhcyB2ZXJpZnlLYWZrYU1vY2tNZXNzYWdlLFxuXHR2ZXJpZnlLYWZrYVN0dWIsXG5cdHZlcmlmeUthZmthU3R1YiBhcyB2ZXJpZnlLYWZrYU1vY2ssXG5cdHNldEthZmthU3R1YkV4cGVjdGF0aW9ucyxcblx0c2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIGFzIHNldEthZmthTW9ja0V4cGVjdGF0aW9ucyxcbn0gZnJvbSBcIi4va2Fma2FcIjtcbmV4cG9ydCB7XG5cdHN0YXJ0R3JhcGhRbFN0dWIsXG5cdHN0b3BHcmFwaFFsU3R1Yixcbn0gZnJvbSBcIi4vZ3JhcGhxbFwiO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQWNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQVlBLElBQUFFLFFBQUEsR0FBQUYsT0FBQSJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "specmatic",
3
- "version": "1.3.24",
4
- "specmaticVersion": "1.3.24",
3
+ "version": "1.3.26",
4
+ "specmaticVersion": "1.3.26",
5
5
  "description": "Node wrapper for Specmatic",
6
6
  "main": "dist/index.js",
7
7
  "scripts": {
package/specmatic.jar CHANGED
Binary file
@@ -1,6 +1,6 @@
1
1
  import path from 'path';
2
2
  import callSpecmaticCli from '../command.line';
3
- import { specmaticCoreJarName, specmaticKafkaJarName } from '../../config';
3
+ import { specmaticCoreJarName, specmaticGraphQlJarName, specmaticKafkaJarName } from '../../config';
4
4
  import fs from 'fs';
5
5
  import { ChildProcess, spawn } from 'child_process';
6
6
  import { mock as jestMock, mockReset } from 'jest-mock-extended';
@@ -38,3 +38,15 @@ test('pass kafka related calls to the kafka jar', async () => {
38
38
  expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticKafkaJarPath)}"`);
39
39
  expect(spawn.mock.calls[0][1][2]).toBe(testArgs.slice(3).join(" "));
40
40
  });
41
+
42
+
43
+ test('pass graphql related calls to the graphql jar', async () => {
44
+ spawn.mockReturnValue(javaProcessMock);
45
+
46
+ jest.spyOn(fs, 'existsSync').mockReturnValue(true);
47
+ const testArgs = ['node', 'index.js', 'graphql', '--host', 'localhost', '--port', '8000'];
48
+ callSpecmaticCli(testArgs);
49
+ const specmaticGraphQlJarPath = path.resolve(__dirname, '..', '..', '..', '..', 'specmatic-beta', 'graphql', specmaticGraphQlJarName);
50
+ expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticGraphQlJarPath)}"`);
51
+ expect(spawn.mock.calls[0][1][2]).toBe(testArgs.slice(3).join(" "));
52
+ })
@@ -1,5 +1,5 @@
1
1
  import logger from '../common/logger'
2
- import { callKafka, callCore } from '../common/runner'
2
+ import { callKafka, callCore, callGraphQl } from '../common/runner'
3
3
 
4
4
  const callSpecmaticCli = (args?: string[]) => {
5
5
  args = args || process.argv
@@ -24,12 +24,30 @@ const callSpecmaticCli = (args?: string[]) => {
24
24
  }
25
25
 
26
26
  function getJarFunction(args: string[]) {
27
- return args.length >= 3 && args[2] == 'kafka' ? callKafka : callCore
27
+ if(args.length >= 3) {
28
+ switch (args[2]) {
29
+ case 'kafka':
30
+ return callKafka
31
+ case 'graphql':
32
+ return callGraphQl
33
+ default:
34
+ return callCore
35
+ }
36
+ }
37
+ return callCore
28
38
  }
29
39
 
30
40
  function extractArgsForJar(args: string[]) {
31
- const argsToRemove = args.length >= 3 && args[2] == 'kafka' ? 3 : 2
32
- return args.slice(argsToRemove).join(' ')
41
+ if(args.length >= 3) {
42
+ switch (args[2]) {
43
+ case 'kafka':
44
+ case 'graphql':
45
+ return args.slice(3).join(' ')
46
+ default:
47
+ return args.slice(2).join(' ')
48
+ }
49
+ }
50
+ return args.slice(2).join(' ')
33
51
  }
34
52
 
35
53
  export default callSpecmaticCli
@@ -1,6 +1,6 @@
1
1
  import execSh from 'exec-sh';
2
2
  import path from 'path';
3
- import { specmaticCoreJarName, specmaticKafkaJarName } from '../config';
3
+ import { specmaticCoreJarName, specmaticKafkaJarName, specmaticGraphQlJarName } from '../config';
4
4
  import logger from '../common/logger';
5
5
  import { ChildProcess, spawn, SpawnOptions } from 'child_process';
6
6
 
@@ -18,6 +18,13 @@ const callKafka = (args: string, done: (error: any) => void, onOutput: (message:
18
18
  return callJar(specmaticJarPath, args, done, onOutput);
19
19
  };
20
20
 
21
+ const callGraphQl = (args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void): ChildProcess => {
22
+ const rootPath = path.resolve(__dirname, '..', '..', '..', 'specmatic-beta', 'graphql');
23
+ const specmaticJarPath = path.resolve(rootPath, specmaticGraphQlJarName);
24
+ logger.debug(`CLI: Specmatic jar path: ${specmaticJarPath}`);
25
+ return callJar(specmaticJarPath, args, done, onOutput);
26
+ }
27
+
21
28
  function callJar(jarPath: string, args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void) {
22
29
  let argsList = [];
23
30
  if (process.env['endpointsAPI']) {
@@ -41,4 +48,4 @@ function callJar(jarPath: string, args: string, done: (error: any) => void, onOu
41
48
  return javaProcess;
42
49
  }
43
50
 
44
- export { callCore, callKafka };
51
+ export { callCore, callKafka, callGraphQl };
package/src/config.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export const specmaticCoreJarName = 'specmatic.jar';
2
2
  export const specmaticKafkaJarName = 'specmatic-kafka-all.jar';
3
+ export const specmaticGraphQlJarName = 'specmatic-graphql-all.jar';
@@ -0,0 +1,100 @@
1
+ import type { ChildProcess } from "node:child_process";
2
+ import logger from "../common/logger";
3
+ import { callGraphQl } from "../common/runner";
4
+ import { gracefulShutdown } from "../core/shutdownUtils";
5
+ import terminate from "terminate";
6
+
7
+ export class GraphQlStub {
8
+ host: string;
9
+ port: number;
10
+ data?: string;
11
+ process: ChildProcess;
12
+ constructor(
13
+ host: string,
14
+ port: number,
15
+ process: ChildProcess,
16
+ data?: string,
17
+ ) {
18
+ this.host = host;
19
+ this.port = port;
20
+ this.process = process;
21
+ this.data = data;
22
+ }
23
+ }
24
+
25
+ const startGraphQlStub = (
26
+ host?: string,
27
+ port?: string,
28
+ data?: string,
29
+ args: (string | number)[] = [],
30
+ ): Promise<GraphQlStub> => {
31
+ let cmd = " stub ";
32
+ if (host) cmd += `--host ${host} `;
33
+ if (port) cmd += `--port ${port} `;
34
+ if (data) cmd += `--data ${data} `;
35
+ cmd += args.join(" ");
36
+
37
+ logger.info("GraphQl Stub: Starting server");
38
+ logger.debug(`GraphQl Stub: Executing "${cmd}"`);
39
+
40
+ return new Promise((resolve, reject) => {
41
+ let reportedPort: number;
42
+ const javaProcess = callGraphQl(
43
+ cmd,
44
+ (err: any) => {
45
+ if (err) {
46
+ logger.error(`GraphQl Stub: Exited with error ${err}`);
47
+ }
48
+ },
49
+ (message, error) => {
50
+ if (!error) {
51
+ if (message.includes("Starting the server on port")) {
52
+ logger.info(`GraphQl Stub: ${message}`);
53
+ const stubInfo = message.split("port ")[1];
54
+ if (stubInfo.length < 2)
55
+ reject("Cannot determine port from graphql stub output");
56
+ else reportedPort = Number.parseInt(stubInfo[1].trim());
57
+ } else if (message.includes("Address already in use")) {
58
+ logger.error(`GraphQl Stub: ${message}`);
59
+ reject(message);
60
+ } else if (message.includes("Stub server is running")) {
61
+ const host = message.split("on ")[1].split(":")[0].trim();
62
+ if (port) {
63
+ resolve(new GraphQlStub(host, reportedPort, javaProcess, data));
64
+ } else {
65
+ reject(
66
+ "No port or host information available, but graphql stub server is running",
67
+ );
68
+ }
69
+ } else {
70
+ logger.debug(`GraphQl Stub: ${message}`);
71
+ }
72
+ } else {
73
+ logger.error(`GraphQl Stub: ${message}`);
74
+ reject(message);
75
+ }
76
+ },
77
+ );
78
+ });
79
+ };
80
+
81
+ const stopGraphQlStub = async (graphQlStub: GraphQlStub) => {
82
+ logger.debug(
83
+ `GraphQl Stub: Stopping server at ${graphQlStub.host}:${graphQlStub.port}`,
84
+ );
85
+ const javaProcess = graphQlStub.process;
86
+ javaProcess.stdout?.removeAllListeners();
87
+ javaProcess.stderr?.removeAllListeners();
88
+ javaProcess.removeAllListeners("close");
89
+ logger.debug("Trying to stop stub process gracefully ...");
90
+ try {
91
+ await gracefulShutdown(javaProcess);
92
+ } catch (e) {
93
+ terminate(javaProcess.pid!);
94
+ }
95
+ logger.info(
96
+ `GraphQl Stub: Stopped server at ${graphQlStub.host}:${graphQlStub.port}`,
97
+ );
98
+ };
99
+
100
+ export { startGraphQlStub, stopGraphQlStub };
package/src/index.ts CHANGED
@@ -1,26 +1,30 @@
1
1
  export {
2
- startStub,
3
- startStub as startHttpStub,
4
- stopStub,
5
- stopStub as stopHttpStub,
6
- test,
7
- testWithApiCoverage,
8
- setExpectations,
9
- setExpectations as setHttpStubExpectations,
10
- setExpectationJson,
11
- setExpectationJson as setHttpStubExpectationJson,
12
- printJarVersion,
13
- showTestResults,
14
- } from './core'
2
+ startStub,
3
+ startStub as startHttpStub,
4
+ stopStub,
5
+ stopStub as stopHttpStub,
6
+ test,
7
+ testWithApiCoverage,
8
+ setExpectations,
9
+ setExpectations as setHttpStubExpectations,
10
+ setExpectationJson,
11
+ setExpectationJson as setHttpStubExpectationJson,
12
+ printJarVersion,
13
+ showTestResults,
14
+ } from "./core";
15
15
  export {
16
- startKafkaStub,
17
- startKafkaStub as startKafkaMock,
18
- stopKafkaStub,
19
- stopKafkaStub as stopKafkaMock,
20
- verifyKafkaStubMessage,
21
- verifyKafkaStubMessage as verifyKafkaMockMessage,
22
- verifyKafkaStub,
23
- verifyKafkaStub as verifyKafkaMock,
24
- setKafkaStubExpectations,
25
- setKafkaStubExpectations as setKafkaMockExpectations,
26
- } from './kafka'
16
+ startKafkaStub,
17
+ startKafkaStub as startKafkaMock,
18
+ stopKafkaStub,
19
+ stopKafkaStub as stopKafkaMock,
20
+ verifyKafkaStubMessage,
21
+ verifyKafkaStubMessage as verifyKafkaMockMessage,
22
+ verifyKafkaStub,
23
+ verifyKafkaStub as verifyKafkaMock,
24
+ setKafkaStubExpectations,
25
+ setKafkaStubExpectations as setKafkaMockExpectations,
26
+ } from "./kafka";
27
+ export {
28
+ startGraphQlStub,
29
+ stopGraphQlStub,
30
+ } from "./graphql";