specmatic 2.13.1 → 2.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/test.yml +2 -1
- package/CONTRIBUTING.MD +4 -4
- package/README.md +8 -45
- package/dist/bin/command.line.d.ts +1 -1
- package/dist/bin/command.line.js +4 -48
- package/dist/common/runner.d.ts +2 -4
- package/dist/common/runner.js +17 -17
- package/dist/config.d.ts +0 -2
- package/dist/config.js +2 -4
- package/dist/core/index.js +22 -12
- package/dist/downloadSpecmaticJar.js +2 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +1 -75
- package/package.json +6 -9
- package/specmatic.jar +0 -0
- package/src/bin/__tests__/command.line.ts +5 -83
- package/src/bin/command.line.ts +5 -34
- package/src/common/runner.ts +12 -23
- package/src/config.ts +0 -2
- package/src/core/__tests__/print.jar.version.ts +2 -2
- package/src/core/__tests__/stub.ts +38 -46
- package/src/core/__tests__/test.ts +10 -10
- package/src/core/index.ts +16 -16
- package/src/downloadSpecmaticJar.js +2 -2
- package/src/index.ts +0 -16
- package/dist/graphql/index.d.ts +0 -11
- package/dist/graphql/index.js +0 -126
- package/dist/kafka/index.d.ts +0 -13
- package/dist/kafka/index.js +0 -152
- package/src/graphql/index.ts +0 -114
- package/src/kafka/__tests__/kafkaStub.ts +0 -62
- package/src/kafka/index.ts +0 -140
package/CONTRIBUTING.MD
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Thanks for your willingness to contribute!
|
|
4
4
|
|
|
5
|
-
Please check [open issues](https://github.com/
|
|
5
|
+
Please check [open issues](https://github.com/specmatic/specmatic-node/issues?q=is%3Aopen+is%3Aissue). Please respond to questions/bug reports/feature requests!
|
|
6
6
|
|
|
7
7
|
## Project setup
|
|
8
8
|
|
|
@@ -14,7 +14,7 @@ Please check [open issues](https://github.com/znsio/specmatic-node/issues?q=is%3
|
|
|
14
14
|
> pull requests from branches on your fork. To do this, run:
|
|
15
15
|
>
|
|
16
16
|
> ```
|
|
17
|
-
> git remote add upstream https://github.com/
|
|
17
|
+
> git remote add upstream https://github.com/specmatic/specmatic-node.git
|
|
18
18
|
> git fetch upstream
|
|
19
19
|
> git branch --set-upstream-to=upstream/master master
|
|
20
20
|
> ```
|
|
@@ -47,14 +47,14 @@ Finally commit
|
|
|
47
47
|
If the specmatic jar version is to be updated, modify the __specmaticVersion__ property in __package.json__ accordingly and check it in.
|
|
48
48
|
|
|
49
49
|
### Step 2: Make a release via github releases
|
|
50
|
-
* Goto [github releases](https://github.com/
|
|
50
|
+
* Goto [github releases](https://github.com/specmatic/specmatic-node/releases) and draft a new release
|
|
51
51
|
* Click `choose a tag` and enter the required version. If the tag exists then you might be releasing a wrong version. Reverify the tag and version number. Ideally the tag should not exist as this is a new version and thus you should be presented with option to `+ Create new tag: <version> on publish` option. Click it.
|
|
52
52
|
* Give a release title of format `v<version>`.
|
|
53
53
|
* Describe the changes in this release briefly
|
|
54
54
|
* You can either save this draft and come back later to publish it or publish it now.
|
|
55
55
|
* On publish, a github action is triggered that updates the release on npm repository.
|
|
56
56
|
|
|
57
|
-
You can check the publish status in [github actions](https://github.com/
|
|
57
|
+
You can check the publish status in [github actions](https://github.com/specmatic/specmatic-node/actions). Though, it might take some time to reflect in the [specmatic npm page](https://www.npmjs.com/package/specmatic) because of the npm caching.
|
|
58
58
|
|
|
59
59
|
### Developer notes
|
|
60
60
|
|
package/README.md
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
# Specmatic Framework Node Module
|
|
2
2
|
|
|
3
|
-
](https://github.com/
|
|
3
|
+

|
|
4
|
+
[](https://www.npmjs.com/package/specmatic)
|
|
5
|
+
[](https://github.com/specmatic/specmatic-node/releases/latest)
|
|
6
6
|
|
|
7
|
-
This node module is a thin wrapper over the [specmatic executable jar](https://specmatic.io/getting_started.html#setup). All core capabilities are in the main [Specmatic project](https://github.com/
|
|
7
|
+
This node module is a thin wrapper over the [specmatic executable jar](https://specmatic.io/getting_started.html#setup). All core capabilities are in the main [Specmatic project](https://github.com/specmatic/specmatic). The purpose of this wrapper module is to act as a helper with below aspects.
|
|
8
8
|
|
|
9
9
|
- Easy installation and upgrade of the jar file in node projects through npm
|
|
10
10
|
- Global install using npm and easy run specmatic jar executable without having to download the jar file and having to run `java -jar`
|
|
11
11
|
- Programmatic access to some of the specmatic options as api like start / stop the stub server, setting expecations, running tests. These helpers methods can be used in a javascript project programmatically instead of using cli scripts.
|
|
12
12
|
|
|
13
13
|
## Table Of Contents
|
|
14
|
+
- [Specmatic Framework Node Module](#specmatic-framework-node-module)
|
|
15
|
+
- [Table Of Contents](#table-of-contents)
|
|
14
16
|
- [Quick Start](#quick-start)
|
|
15
17
|
- [Contract as Stub / Smart Mock (For API clients / consumers)](#contract-as-stub--smart-mock-for-api-clients--consumers)
|
|
16
18
|
- [Contract as Test (For API Providers / Service)](#contract-as-test-for-api-providers--service)
|
|
17
19
|
- [Sample Repo](#sample-repo)
|
|
18
20
|
- [Programmatic Access](#programmatic-access)
|
|
19
21
|
- [Core APIs](#core-apis)
|
|
20
|
-
- [Kafka APIs](#kafka-apis)
|
|
21
22
|
- [IDE Support](#ide-support)
|
|
22
23
|
- [Jest Framework](#jest-framework)
|
|
23
24
|
- [Logging](#logging)
|
|
@@ -44,7 +45,7 @@ Tests for Free – Specmatic parses your API Specification files and based on th
|
|
|
44
45
|
|
|
45
46
|
## Sample Repo
|
|
46
47
|
|
|
47
|
-
https://github.com/
|
|
48
|
+
https://github.com/specmatic/specmatic-order-bff-nodejs
|
|
48
49
|
|
|
49
50
|
## Programmatic Access
|
|
50
51
|
|
|
@@ -59,10 +60,6 @@ import {
|
|
|
59
60
|
test,
|
|
60
61
|
showTestResults,
|
|
61
62
|
printJarVersion,
|
|
62
|
-
startKafkaMock,
|
|
63
|
-
setKafkaMockExpecations,
|
|
64
|
-
stopKafkaMock,
|
|
65
|
-
verifyKafkaMock
|
|
66
63
|
} from 'specmatic';
|
|
67
64
|
```
|
|
68
65
|
### Core APIs
|
|
@@ -94,46 +91,12 @@ method to print the version of specmatic.jar
|
|
|
94
91
|
`enableApiCoverage(expressAppRef) ` <br />
|
|
95
92
|
enable api coverage for express apps to know which apis and http verbs are covered in contract tests and which not
|
|
96
93
|
|
|
97
|
-
### Kafka APIs
|
|
98
|
-
|
|
99
|
-
`startKafkaMock(port?: number, args?: (string | number)[]): Promise<KafkaStub>` <br />
|
|
100
|
-
Start kafka stub. Requires an OpenAPI kafka spec in specmatic.json.<br />
|
|
101
|
-
*Note: This replaces `startKafkaStub` method which is deprecated*
|
|
102
|
-
|
|
103
|
-
`setKafkaMockExpectations(stub: KafkaStub, expecations: any): Promise<void>` <br />
|
|
104
|
-
Set expected message count on Kafka for each topic. Expecations are of the format
|
|
105
|
-
```
|
|
106
|
-
[
|
|
107
|
-
{
|
|
108
|
-
"topic": "product-queries",
|
|
109
|
-
"count": 2
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"topic": "test-topic",
|
|
113
|
-
"count": 2
|
|
114
|
-
}
|
|
115
|
-
]
|
|
116
|
-
```
|
|
117
|
-
*Note: This replaces `setKafkaStubExpectations` method which is deprecated*<br />
|
|
118
|
-
|
|
119
|
-
`stopKafkaMock(stub: KafkaStub)` <br />
|
|
120
|
-
Stop a running kafka stub.<br />
|
|
121
|
-
*Note: This replaces `stopKafkaStub` method which is deprecated*
|
|
122
|
-
|
|
123
|
-
`verifyKafkaMock(stub: KafkaStub): Promise<Boolean>` <br />
|
|
124
|
-
Verify all expecations set on Kafka.<br />
|
|
125
|
-
*Note: This replaces `verifyKafkaStub` method which is deprecated*
|
|
126
|
-
|
|
127
|
-
`verifyKafkaMockMessage(stub: KafkaStub, topic: string, value: string): Promise<Boolean>` <br />
|
|
128
|
-
Verify kafka message. This is invoked in tests to check on kafka side if a message expected to by pushed by a BFF api is recieved by Kafka. The Kafka stub starts a verification end point for this purpose which is invoked internally by this api..<br />
|
|
129
|
-
*Note: This replaces `verifyKafkaStubMessage` method which is deprecated*
|
|
130
|
-
|
|
131
94
|
## IDE Support
|
|
132
95
|
|
|
133
96
|
Specmatic tests can be displayed in IDE specific test result view by using `showTestResults` method coupled with `test` method. Test framework specific steps are below.
|
|
134
97
|
|
|
135
98
|
### Jest Framework
|
|
136
|
-
Example: https://github.com/
|
|
99
|
+
Example: https://github.com/specmatic/specmatic-order-bff-nodejs/blob/main/test/contract
|
|
137
100
|
|
|
138
101
|
1. Call `test` method in a [`globalSetup`](https://jestjs.io/docs/configuration#globalsetup-string) script. `globalSetup` script path can be set either in the jest command line argument or in jest configuration file.
|
|
139
102
|
2. Call `showTestResults` in the root of your test file anywhere. You can pass `test` method of Jest as its argument and it works out of the box.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const callSpecmaticCli: (
|
|
1
|
+
declare const callSpecmaticCli: (argsv?: string[]) => void;
|
|
2
2
|
export default callSpecmaticCli;
|
package/dist/bin/command.line.js
CHANGED
|
@@ -6,39 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
var _logger = _interopRequireDefault(require("../common/logger"));
|
|
8
8
|
var _runner = require("../common/runner");
|
|
9
|
-
var _yargs = _interopRequireDefault(require("yargs/yargs"));
|
|
10
|
-
var _helpers = require("yargs/helpers");
|
|
11
|
-
var _excluded = ["_", "$0"];
|
|
12
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
17
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
18
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
19
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
20
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
21
|
-
var callSpecmaticCli = function callSpecmaticCli(args) {
|
|
22
|
-
args = args || process.argv;
|
|
23
|
-
var argv = (0, _yargs["default"])((0, _helpers.hideBin)(args)).parserConfiguration({
|
|
24
|
-
'camel-case-expansion': false,
|
|
25
|
-
'boolean-negation': false,
|
|
26
|
-
'parse-numbers': false,
|
|
27
|
-
'dot-notation': false,
|
|
28
|
-
'short-option-groups': false
|
|
29
|
-
}).parseSync();
|
|
30
|
-
var _ = argv._,
|
|
31
|
-
$0 = argv.$0,
|
|
32
|
-
namedArgs = _objectWithoutProperties(argv, _excluded);
|
|
33
|
-
var fn = getJarFunction(_);
|
|
34
|
-
var command = (_.join(' ') + ' ' + Object.entries(namedArgs).map(function (_ref) {
|
|
35
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
36
|
-
key = _ref2[0],
|
|
37
|
-
value = _ref2[1];
|
|
38
|
-
return "--".concat(key, "=\"").concat(String(value), "\"");
|
|
39
|
-
}).join(' ')).trim();
|
|
40
|
-
_logger["default"].info("CLI: Running with args \"".concat(command, "\""));
|
|
41
|
-
fn(command, function (err) {
|
|
10
|
+
var callSpecmaticCli = function callSpecmaticCli(argsv) {
|
|
11
|
+
var args = argsv || process.argv.slice(2);
|
|
12
|
+
(0, _runner.callCore)(args, function (err) {
|
|
42
13
|
if (err) {
|
|
43
14
|
_logger["default"].info('CLI: Finished with non zero exit code: ', err.code);
|
|
44
15
|
process.exitCode = err.code;
|
|
@@ -50,20 +21,5 @@ var callSpecmaticCli = function callSpecmaticCli(args) {
|
|
|
50
21
|
console.log("".concat(message));
|
|
51
22
|
});
|
|
52
23
|
};
|
|
53
|
-
function getJarFunction(operation) {
|
|
54
|
-
if (operation.length > 0) {
|
|
55
|
-
switch (String(operation[0])) {
|
|
56
|
-
case 'kafka':
|
|
57
|
-
operation.splice(0, 1);
|
|
58
|
-
return _runner.callKafka;
|
|
59
|
-
case 'graphql':
|
|
60
|
-
operation.splice(0, 1);
|
|
61
|
-
return _runner.callGraphQl;
|
|
62
|
-
default:
|
|
63
|
-
return _runner.callCore;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return _runner.callCore;
|
|
67
|
-
}
|
|
68
24
|
var _default = exports["default"] = callSpecmaticCli;
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcnVubmVyIiwiZSIsIl9fZXNNb2R1bGUiLCJjYWxsU3BlY21hdGljQ2xpIiwiYXJnc3YiLCJhcmdzIiwicHJvY2VzcyIsImFyZ3YiLCJzbGljZSIsImNhbGxDb3JlIiwiZXJyIiwibG9nZ2VyIiwiaW5mbyIsImNvZGUiLCJleGl0Q29kZSIsIm1lc3NhZ2UiLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jb21tYW5kLmxpbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJ1xuaW1wb3J0IHsgY2FsbENvcmV9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInXG5cbmNvbnN0IGNhbGxTcGVjbWF0aWNDbGkgPSAoYXJnc3Y/OiBzdHJpbmdbXSkgPT4ge1xuICAgIGNvbnN0IGFyZ3MgPSBhcmdzdiB8fCBwcm9jZXNzLmFyZ3Yuc2xpY2UoMik7XG4gICAgY2FsbENvcmUoXG4gICAgICAgIGFyZ3MsXG4gICAgICAgIChlcnI/OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnQ0xJOiBGaW5pc2hlZCB3aXRoIG5vbiB6ZXJvIGV4aXQgY29kZTogJywgZXJyLmNvZGUpXG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IGVyci5jb2RlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdDTEk6IEZpbmlzaGVkJylcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXRDb2RlID0gMFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNhbGxTcGVjbWF0aWNDbGlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQTBDLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFFMUMsSUFBTUUsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsS0FBZ0IsRUFBSztFQUMzQyxJQUFNQyxJQUFJLEdBQUdELEtBQUssSUFBSUUsT0FBTyxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFDM0MsSUFBQUMsZ0JBQVEsRUFDSkosSUFBSSxFQUNKLFVBQUNLLEdBQVMsRUFBSztJQUNYLElBQUlBLEdBQUcsRUFBRTtNQUNMQyxrQkFBTSxDQUFDQyxJQUFJLENBQUMseUNBQXlDLEVBQUVGLEdBQUcsQ0FBQ0csSUFBSSxDQUFDO01BQ2hFUCxPQUFPLENBQUNRLFFBQVEsR0FBR0osR0FBRyxDQUFDRyxJQUFJO0lBQy9CLENBQUMsTUFBTTtNQUNIRixrQkFBTSxDQUFDQyxJQUFJLENBQUMsZUFBZSxDQUFDO01BQzVCTixPQUFPLENBQUNRLFFBQVEsR0FBRyxDQUFDO0lBQ3hCO0VBQ0osQ0FBQyxFQUNELFVBQUFDLE9BQU8sRUFBSTtJQUNQQyxPQUFPLENBQUNDLEdBQUcsSUFBQUMsTUFBQSxDQUFJSCxPQUFPLENBQUUsQ0FBQztFQUM3QixDQUNKLENBQUM7QUFDTCxDQUFDO0FBQUEsSUFBQUksUUFBQSxHQUFBQyxPQUFBLGNBRWNqQixnQkFBZ0IiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/common/runner.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
import { ChildProcess } from 'child_process';
|
|
2
|
-
declare const callCore: (args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void) => ChildProcess;
|
|
3
|
-
|
|
4
|
-
declare const callGraphQl: (args: string, done: (error: any) => void, onOutput: (message: string, error: boolean) => void) => ChildProcess;
|
|
5
|
-
export { callCore, callKafka, callGraphQl };
|
|
2
|
+
declare const callCore: (args: (string | number)[], done: (error: any) => void, onOutput: (message: string, error: boolean) => void) => ChildProcess;
|
|
3
|
+
export { callCore };
|
package/dist/common/runner.js
CHANGED
|
@@ -3,28 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
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"));
|
|
10
10
|
var _child_process = require("child_process");
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
13
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
15
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
16
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
17
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
12
18
|
var callCore = exports.callCore = function callCore(args, done, onOutput) {
|
|
13
19
|
var rootPath = _path["default"].resolve(__dirname, '..', '..');
|
|
14
20
|
var specmaticJarPath = _path["default"].resolve(rootPath, _config.specmaticCoreJarName);
|
|
15
|
-
_logger["default"].debug("CLI: Specmatic jar path: ".concat(specmaticJarPath));
|
|
16
|
-
return callJar(specmaticJarPath, args, done, onOutput);
|
|
17
|
-
};
|
|
18
|
-
var callKafka = exports.callKafka = function callKafka(args, done, onOutput) {
|
|
19
|
-
var rootPath = _path["default"].resolve(__dirname, '..', '..', '..', 'specmatic-commercial', 'kafka');
|
|
20
|
-
var specmaticJarPath = _path["default"].resolve(rootPath, _config.specmaticKafkaJarName);
|
|
21
|
-
_logger["default"].debug("CLI: Specmatic jar path: ".concat(specmaticJarPath));
|
|
22
|
-
return callJar(specmaticJarPath, args, done, onOutput);
|
|
23
|
-
};
|
|
24
|
-
var callGraphQl = exports.callGraphQl = function callGraphQl(args, done, onOutput) {
|
|
25
|
-
var rootPath = _path["default"].resolve(__dirname, '..', '..', '..', 'specmatic-commercial', 'graphql');
|
|
26
|
-
var specmaticJarPath = _path["default"].resolve(rootPath, _config.specmaticGraphQlJarName);
|
|
27
|
-
_logger["default"].debug("CLI: Specmatic jar path: ".concat(specmaticJarPath));
|
|
28
21
|
return callJar(specmaticJarPath, args, done, onOutput);
|
|
29
22
|
};
|
|
30
23
|
function callJar(jarPath, args, done, onOutput) {
|
|
@@ -33,11 +26,18 @@ function callJar(jarPath, args, done, onOutput) {
|
|
|
33
26
|
if (process.env['endpointsAPI']) {
|
|
34
27
|
argsList.push("-DendpointsAPI=\"".concat(process.env['endpointsAPI'], "\""));
|
|
35
28
|
}
|
|
36
|
-
argsList
|
|
29
|
+
argsList.push.apply(argsList, ['-jar', jarPath]);
|
|
30
|
+
argsList.push.apply(argsList, _toConsumableArray(args.map(function (arg) {
|
|
31
|
+
return String(arg);
|
|
32
|
+
})));
|
|
33
|
+
var prettyPrintedCLIArgs = ["java"].concat(argsList).map(function (arg) {
|
|
34
|
+
return JSON.stringify(arg);
|
|
35
|
+
}).join(' ');
|
|
36
|
+
_logger["default"].info("CLI: Running command: ".concat(prettyPrintedCLIArgs));
|
|
37
37
|
var javaProcess = (0, _child_process.spawn)('java', argsList, {
|
|
38
38
|
stdio: 'pipe',
|
|
39
39
|
stderr: 'pipe',
|
|
40
|
-
shell:
|
|
40
|
+
shell: false,
|
|
41
41
|
env: process.env
|
|
42
42
|
});
|
|
43
43
|
(_javaProcess$stdout = javaProcess.stdout) === null || _javaProcess$stdout === void 0 || _javaProcess$stdout.on('data', function (data) {
|
|
@@ -55,4 +55,4 @@ function callJar(jarPath, args, done, onOutput) {
|
|
|
55
55
|
});
|
|
56
56
|
return javaProcess;
|
|
57
57
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NvbmZpZyIsIl9sb2dnZXIiLCJfY2hpbGRfcHJvY2VzcyIsImUiLCJfX2VzTW9kdWxlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJhIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJpc0FycmF5IiwibGVuZ3RoIiwibiIsImNhbGxDb3JlIiwiZXhwb3J0cyIsImFyZ3MiLCJkb25lIiwib25PdXRwdXQiLCJyb290UGF0aCIsInBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwic3BlY21hdGljSmFyUGF0aCIsInNwZWNtYXRpY0NvcmVKYXJOYW1lIiwiY2FsbEphciIsImphclBhdGgiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsImFyZ3NMaXN0IiwicHJvY2VzcyIsImVudiIsInB1c2giLCJjb25jYXQiLCJhcHBseSIsIm1hcCIsImFyZyIsIlN0cmluZyIsInByZXR0eVByaW50ZWRDTElBcmdzIiwiSlNPTiIsInN0cmluZ2lmeSIsImpvaW4iLCJsb2dnZXIiLCJpbmZvIiwiamF2YVByb2Nlc3MiLCJzcGF3biIsInN0ZGlvIiwic3RkZXJyIiwic2hlbGwiLCJzdGRvdXQiLCJvbiIsImRhdGEiLCJjb2RlIiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3J1bm5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXhlY1NoIGZyb20gJ2V4ZWMtc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBzcGVjbWF0aWNDb3JlSmFyTmFtZSB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInO1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjLCBzcGF3biwgU3Bhd25PcHRpb25zIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IGNhbGxDb3JlID0gKGFyZ3M6IChzdHJpbmcgfCBudW1iZXIpW10sIGRvbmU6IChlcnJvcjogYW55KSA9PiB2b2lkLCBvbk91dHB1dDogKG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGJvb2xlYW4pID0+IHZvaWQpOiBDaGlsZFByb2Nlc3MgPT4ge1xuICAgIGNvbnN0IHJvb3RQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJyk7XG4gICAgY29uc3Qgc3BlY21hdGljSmFyUGF0aCA9IHBhdGgucmVzb2x2ZShyb290UGF0aCwgc3BlY21hdGljQ29yZUphck5hbWUpO1xuICAgIHJldHVybiBjYWxsSmFyKHNwZWNtYXRpY0phclBhdGgsIGFyZ3MsIGRvbmUsIG9uT3V0cHV0KTtcbn07XG5cbmZ1bmN0aW9uIGNhbGxKYXIoamFyUGF0aDogc3RyaW5nLCBhcmdzOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCBkb25lOiAoZXJyb3I6IGFueSkgPT4gdm9pZCwgb25PdXRwdXQ6IChtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiBib29sZWFuKSA9PiB2b2lkKSB7XG4gICAgY29uc3QgYXJnc0xpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHByb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXSkge1xuICAgICAgICBhcmdzTGlzdC5wdXNoKGAtRGVuZHBvaW50c0FQST1cIiR7cHJvY2Vzcy5lbnZbJ2VuZHBvaW50c0FQSSddfVwiYCk7XG4gICAgfVxuICAgIGFyZ3NMaXN0LnB1c2goLi4uWyctamFyJywgamFyUGF0aF0pO1xuICAgIGFyZ3NMaXN0LnB1c2goLi4uYXJncy5tYXAoYXJnID0+IFN0cmluZyhhcmcpKSk7XG4gICAgY29uc3QgcHJldHR5UHJpbnRlZENMSUFyZ3MgPSBbYGphdmFgLCAuLi5hcmdzTGlzdF0ubWFwKGFyZyA9PiBKU09OLnN0cmluZ2lmeShhcmcpKS5qb2luKCcgJyk7XG5cbiAgICBsb2dnZXIuaW5mbyhgQ0xJOiBSdW5uaW5nIGNvbW1hbmQ6ICR7cHJldHR5UHJpbnRlZENMSUFyZ3N9YCk7XG4gICAgY29uc3QgamF2YVByb2Nlc3M6IENoaWxkUHJvY2VzcyA9IHNwYXduKCdqYXZhJywgYXJnc0xpc3QsIHsgc3RkaW86ICdwaXBlJywgc3RkZXJyOiAncGlwZScsIHNoZWxsOiBmYWxzZSwgZW52OiBwcm9jZXNzLmVudiB9IGFzIFNwYXduT3B0aW9ucyk7XG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCBmYWxzZSk7XG4gICAgfSk7XG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhOiBTdHJpbmcpIHtcbiAgICAgICAgb25PdXRwdXQoYCR7ZGF0YX1gLCB0cnVlKTtcbiAgICB9KTtcbiAgICBqYXZhUHJvY2Vzcy5vbignY2xvc2UnLCBmdW5jdGlvbiAoY29kZTpudW1iZXIpIHtcbiAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgIGRvbmUobmV3IEVycm9yKCdDb21tYW5kIGV4aXRlZCB3aXRoIG5vbiB6ZXJvIGNvZGU6ICcgKyBjb2RlKSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvbmUobnVsbCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gamF2YVByb2Nlc3M7XG59XG5cbmV4cG9ydCB7IGNhbGxDb3JlIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9B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QUFBdEMsa0JBQUEsQ0FBU3lCLElBQUksQ0FBQ21CLEdBQUcsQ0FBQyxVQUFBQyxHQUFHO0lBQUEsT0FBSUMsTUFBTSxDQUFDRCxHQUFHLENBQUM7RUFBQSxFQUFDLEVBQUM7RUFDOUMsSUFBTUUsb0JBQW9CLEdBQUcsU0FBQUwsTUFBQSxDQUFZSixRQUFRLEVBQUVNLEdBQUcsQ0FBQyxVQUFBQyxHQUFHO0lBQUEsT0FBSUcsSUFBSSxDQUFDQyxTQUFTLENBQUNKLEdBQUcsQ0FBQztFQUFBLEVBQUMsQ0FBQ0ssSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUU1RkMsa0JBQU0sQ0FBQ0MsSUFBSSwwQkFBQVYsTUFBQSxDQUEwQkssb0JBQW9CLENBQUUsQ0FBQztFQUM1RCxJQUFNTSxXQUF5QixHQUFHLElBQUFDLG9CQUFLLEVBQUMsTUFBTSxFQUFFaEIsUUFBUSxFQUFFO0lBQUVpQixLQUFLLEVBQUUsTUFBTTtJQUFFQyxNQUFNLEVBQUUsTUFBTTtJQUFFQyxLQUFLLEVBQUUsS0FBSztJQUFFakIsR0FBRyxFQUFFRCxPQUFPLENBQUNDO0VBQUksQ0FBaUIsQ0FBQztFQUM1SSxDQUFBSixtQkFBQSxHQUFBaUIsV0FBVyxDQUFDSyxNQUFNLGNBQUF0QixtQkFBQSxlQUFsQkEsbUJBQUEsQ0FBb0J1QixFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVVDLElBQVksRUFBRTtJQUNuRGpDLFFBQVEsSUFBQWUsTUFBQSxDQUFJa0IsSUFBSSxHQUFJLEtBQUssQ0FBQztFQUM5QixDQUFDLENBQUM7RUFDRixDQUFBdkIsbUJBQUEsR0FBQWdCLFdBQVcsQ0FBQ0csTUFBTSxjQUFBbkIsbUJBQUEsZUFBbEJBLG1CQUFBLENBQW9Cc0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVQyxJQUFZLEVBQUU7SUFDbkRqQyxRQUFRLElBQUFlLE1BQUEsQ0FBSWtCLElBQUksR0FBSSxJQUFJLENBQUM7RUFDN0IsQ0FBQyxDQUFDO0VBQ0ZQLFdBQVcsQ0FBQ00sRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVRSxJQUFXLEVBQUU7SUFDM0MsSUFBSUEsSUFBSSxFQUFFO01BQ05uQyxJQUFJLENBQUMsSUFBSW9DLEtBQUssQ0FBQyxxQ0FBcUMsR0FBR0QsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQyxNQUFNO01BQ0huQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2Q7RUFDSixDQUFDLENBQUM7RUFDRixPQUFPMkIsV0FBVztBQUN0QiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/dist/config.d.ts
CHANGED
package/dist/config.js
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.specmaticCoreJarName = void 0;
|
|
7
7
|
var specmaticCoreJarName = exports.specmaticCoreJarName = 'specmatic.jar';
|
|
8
|
-
|
|
9
|
-
var specmaticGraphQlJarName = exports.specmaticGraphQlJarName = 'specmatic-graphql-all.jar';
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzcGVjbWF0aWNDb3JlSmFyTmFtZSIsImV4cG9ydHMiLCJzcGVjbWF0aWNLYWZrYUphck5hbWUiLCJzcGVjbWF0aWNHcmFwaFFsSmFyTmFtZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNwZWNtYXRpY0NvcmVKYXJOYW1lID0gJ3NwZWNtYXRpYy5qYXInO1xuZXhwb3J0IGNvbnN0IHNwZWNtYXRpY0thZmthSmFyTmFtZSA9ICdzcGVjbWF0aWMta2Fma2EtYWxsLmphcic7XG5leHBvcnQgY29uc3Qgc3BlY21hdGljR3JhcGhRbEphck5hbWUgPSAnc3BlY21hdGljLWdyYXBocWwtYWxsLmphcic7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLElBQU1BLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUcsZUFBZTtBQUM1QyxJQUFNRSxxQkFBcUIsR0FBQUQsT0FBQSxDQUFBQyxxQkFBQSxHQUFHLHlCQUF5QjtBQUN2RCxJQUFNQyx1QkFBdUIsR0FBQUYsT0FBQSxDQUFBRSx1QkFBQSxHQUFHLDJCQUEyQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzcGVjbWF0aWNDb3JlSmFyTmFtZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzcGVjbWF0aWNDb3JlSmFyTmFtZSA9ICdzcGVjbWF0aWMuamFyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sSUFBTUEsb0JBQW9CLEdBQUFDLE9BQUEsQ0FBQUQsb0JBQUEsR0FBRyxlQUFlIiwiaWdub3JlTGlzdCI6W119
|