@pact-foundation/pact-core 13.6.2 → 13.7.2
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/CHANGELOG.md +21 -0
- package/CONTRIBUTING.md +5 -0
- package/README.md +4 -4
- package/bin/pact-broker.js +6 -3
- package/bin/pact-broker.js.map +1 -1
- package/bin/pact-message.js +6 -3
- package/bin/pact-message.js.map +1 -1
- package/bin/pact-mock-service.js +6 -3
- package/bin/pact-mock-service.js.map +1 -1
- package/bin/pact-provider-verifier.js +6 -3
- package/bin/pact-provider-verifier.js.map +1 -1
- package/bin/pact-stub-service.js +6 -3
- package/bin/pact-stub-service.js.map +1 -1
- package/bin/pact.js +6 -3
- package/bin/pact.js.map +1 -1
- package/bin/pactflow.d.ts +2 -0
- package/bin/pactflow.js +13 -0
- package/bin/pactflow.js.map +1 -0
- package/build/Makefile +1 -1
- package/package.json +5 -5
- package/src/can-deploy.js +71 -78
- package/src/can-deploy.js.map +1 -1
- package/src/consumer/checkErrors.js +14 -33
- package/src/consumer/checkErrors.js.map +1 -1
- package/src/consumer/index.js +72 -94
- package/src/consumer/index.js.map +1 -1
- package/src/ffi/index.js +29 -11
- package/src/ffi/index.js.map +1 -1
- package/src/ffi/internals/index.js +14 -16
- package/src/ffi/internals/index.js.map +1 -1
- package/src/index.js +4 -1
- package/src/index.js.map +1 -1
- package/src/logger/crashMessage.js +18 -1
- package/src/logger/crashMessage.js.map +1 -1
- package/src/logger/index.js +19 -42
- package/src/logger/index.js.map +1 -1
- package/src/logger/pino.js +7 -9
- package/src/logger/pino.js.map +1 -1
- package/src/message.js +25 -35
- package/src/message.js.map +1 -1
- package/src/pact-environment.js +26 -15
- package/src/pact-environment.js.map +1 -1
- package/src/pact-standalone.d.ts +2 -0
- package/src/pact-standalone.js +39 -14
- package/src/pact-standalone.js.map +1 -1
- package/src/pact.js +83 -67
- package/src/pact.js.map +1 -1
- package/src/publisher.js +52 -32
- package/src/publisher.js.map +1 -1
- package/src/server.js +18 -35
- package/src/server.js.map +1 -1
- package/src/service.js +115 -126
- package/src/service.js.map +1 -1
- package/src/spawn/arguments.js +17 -25
- package/src/spawn/arguments.js.map +1 -1
- package/src/spawn/index.js +4 -1
- package/src/spawn/index.js.map +1 -1
- package/src/spawn/spawn.js +50 -45
- package/src/spawn/spawn.js.map +1 -1
- package/src/stub.js +14 -30
- package/src/stub.js.map +1 -1
- package/src/verifier/argumentMapper/arguments.js +27 -36
- package/src/verifier/argumentMapper/arguments.js.map +1 -1
- package/src/verifier/argumentMapper/index.js +50 -54
- package/src/verifier/argumentMapper/index.js.map +1 -1
- package/src/verifier/filesystem/index.js +5 -5
- package/src/verifier/filesystem/index.js.map +1 -1
- package/src/verifier/index.js +16 -21
- package/src/verifier/index.js.map +1 -1
- package/src/verifier/nativeVerifier.js +56 -35
- package/src/verifier/nativeVerifier.js.map +1 -1
- package/src/verifier/validateOptions.js +13 -21
- package/src/verifier/validateOptions.js.map +1 -1
- package/standalone/install.d.ts +0 -19
- package/standalone/install.js +16 -55
- package/standalone/install.js.map +1 -1
- package/tsconfig.json +1 -2
package/src/logger/pino.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createLogger = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
};
|
|
4
|
+
const pino = require("pino");
|
|
5
|
+
const createLogger = (level) => pino({
|
|
6
|
+
level: level.toLowerCase(),
|
|
7
|
+
prettyPrint: {
|
|
8
|
+
translateTime: true,
|
|
9
|
+
},
|
|
10
|
+
});
|
|
13
11
|
exports.createLogger = createLogger;
|
|
14
12
|
//# sourceMappingURL=pino.js.map
|
package/src/logger/pino.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pino.js","sourceRoot":"","sources":["pino.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"pino.js","sourceRoot":"","sources":["pino.ts"],"names":[],"mappings":";;;AAAA,6BAA8B;AAGvB,MAAM,YAAY,GAAG,CAAC,KAAe,EAAe,EAAE,CAC3D,IAAI,CAAC;IACH,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;IAC1B,WAAW,EAAE;QACX,aAAa,EAAE,IAAI;KACpB;CACF,CAAC,CAAC;AANQ,QAAA,YAAY,gBAMpB"}
|
package/src/message.js
CHANGED
|
@@ -1,27 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
4
|
};
|
|
13
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
6
|
exports.Message = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
9
|
+
const spawn_1 = __importDefault(require("./spawn"));
|
|
10
|
+
const spawn_2 = require("./spawn");
|
|
11
|
+
const pact_standalone_1 = __importDefault(require("./pact-standalone"));
|
|
12
|
+
const path = require("path");
|
|
13
|
+
const mkdirp = require("mkdirp");
|
|
14
|
+
const checkTypes = require("check-types");
|
|
15
|
+
class Message {
|
|
16
|
+
constructor(options) {
|
|
25
17
|
this.__argMapping = {
|
|
26
18
|
pactFileWriteMode: spawn_2.DEFAULT_ARG,
|
|
27
19
|
dir: '--pact_dir',
|
|
@@ -66,19 +58,18 @@ var Message = (function () {
|
|
|
66
58
|
}
|
|
67
59
|
this.options = options;
|
|
68
60
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
instance.
|
|
77
|
-
instance.stderr.on('data', function (l) { return output.push(l); });
|
|
61
|
+
createMessage() {
|
|
62
|
+
logger_1.default.info(`Creating message pact`);
|
|
63
|
+
return new Promise((resolve, reject) => {
|
|
64
|
+
const { pactFileWriteMode, content, ...restOptions } = this.options;
|
|
65
|
+
const instance = spawn_1.default.spawnBinary(pact_standalone_1.default.messageFullPath, [{ pactFileWriteMode }, restOptions], this.__argMapping);
|
|
66
|
+
const output = [];
|
|
67
|
+
instance.stdout.on('data', (l) => output.push(l));
|
|
68
|
+
instance.stderr.on('data', (l) => output.push(l));
|
|
78
69
|
instance.stdin.write(content);
|
|
79
70
|
instance.stdin.end();
|
|
80
|
-
instance.once('close',
|
|
81
|
-
|
|
71
|
+
instance.once('close', (code) => {
|
|
72
|
+
const o = output.join('\n');
|
|
82
73
|
logger_1.default.info(o);
|
|
83
74
|
if (code === 0) {
|
|
84
75
|
return resolve(o);
|
|
@@ -88,9 +79,8 @@ var Message = (function () {
|
|
|
88
79
|
}
|
|
89
80
|
});
|
|
90
81
|
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
}());
|
|
82
|
+
}
|
|
83
|
+
}
|
|
94
84
|
exports.Message = Message;
|
|
95
|
-
exports.default = (
|
|
85
|
+
exports.default = (options) => new Message(options);
|
|
96
86
|
//# sourceMappingURL=message.js.map
|
package/src/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["message.ts"],"names":[],"mappings":"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"}
|
package/src/pact-environment.js
CHANGED
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.PactEnvironment = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
23
|
+
const path = __importStar(require("path"));
|
|
24
|
+
class PactEnvironment {
|
|
25
|
+
get cwd() {
|
|
26
|
+
return path.resolve(__dirname, '..');
|
|
7
27
|
}
|
|
8
|
-
|
|
9
|
-
get: function () {
|
|
10
|
-
return path.resolve(__dirname, '..');
|
|
11
|
-
},
|
|
12
|
-
enumerable: false,
|
|
13
|
-
configurable: true
|
|
14
|
-
});
|
|
15
|
-
PactEnvironment.prototype.isWindows = function (platform) {
|
|
16
|
-
if (platform === void 0) { platform = process.platform; }
|
|
28
|
+
isWindows(platform = process.platform) {
|
|
17
29
|
return platform === 'win32';
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}());
|
|
30
|
+
}
|
|
31
|
+
}
|
|
21
32
|
exports.PactEnvironment = PactEnvironment;
|
|
22
33
|
exports.default = new PactEnvironment();
|
|
23
34
|
//# sourceMappingURL=pact-environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pact-environment.js","sourceRoot":"","sources":["pact-environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pact-environment.js","sourceRoot":"","sources":["pact-environment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAE7B,MAAa,eAAe;IAC1B,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,SAAS,CAAC,WAAmB,OAAO,CAAC,QAAQ;QAClD,OAAO,QAAQ,KAAK,OAAO,CAAC;IAC9B,CAAC;CACF;AARD,0CAQC;AAED,kBAAe,IAAI,eAAe,EAAE,CAAC"}
|
package/src/pact-standalone.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface PactStandalone {
|
|
|
12
12
|
messageFullPath: string;
|
|
13
13
|
pactPath: string;
|
|
14
14
|
pactFullPath: string;
|
|
15
|
+
pactflowPath: string;
|
|
16
|
+
pactflowFullPath: string;
|
|
15
17
|
}
|
|
16
18
|
export declare const standalone: (platform?: string | undefined, arch?: string | undefined) => PactStandalone;
|
|
17
19
|
declare const _default: PactStandalone;
|
package/src/pact-standalone.js
CHANGED
|
@@ -1,22 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
25
|
exports.standalone = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
26
|
+
const path = __importStar(require("path"));
|
|
27
|
+
const install_1 = require("../standalone/install");
|
|
28
|
+
const pact_environment_1 = __importDefault(require("./pact-environment"));
|
|
29
|
+
const standalone = (platform, arch) => {
|
|
8
30
|
platform = platform || process.platform;
|
|
9
31
|
arch = arch || process.arch;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var basePath = path.join('standalone', install_1.getBinaryEntry(platform, arch).folderName, 'pact', 'bin');
|
|
32
|
+
const binName = (name) => `${name}${pact_environment_1.default.isWindows(platform) ? '.bat' : ''}`;
|
|
33
|
+
const mock = binName('pact-mock-service');
|
|
34
|
+
const message = binName('pact-message');
|
|
35
|
+
const verify = binName('pact-provider-verifier');
|
|
36
|
+
const broker = binName('pact-broker');
|
|
37
|
+
const stub = binName('pact-stub-service');
|
|
38
|
+
const pact = binName('pact');
|
|
39
|
+
const pactflow = binName('pactflow');
|
|
40
|
+
const basePath = path.join('standalone', install_1.getBinaryEntry(platform, arch).folderName, 'pact', 'bin');
|
|
20
41
|
return {
|
|
21
42
|
cwd: pact_environment_1.default.cwd,
|
|
22
43
|
brokerPath: path.join(basePath, broker),
|
|
@@ -33,6 +54,10 @@ var standalone = function (platform, arch) {
|
|
|
33
54
|
stubFullPath: path.resolve(pact_environment_1.default.cwd, basePath, stub).trim(),
|
|
34
55
|
pactPath: path.join(basePath, pact),
|
|
35
56
|
pactFullPath: path.resolve(pact_environment_1.default.cwd, basePath, pact).trim(),
|
|
57
|
+
pactflowPath: path.join(basePath, pactflow),
|
|
58
|
+
pactflowFullPath: path
|
|
59
|
+
.resolve(pact_environment_1.default.cwd, basePath, pactflow)
|
|
60
|
+
.trim(),
|
|
36
61
|
verifierPath: path.join(basePath, verify),
|
|
37
62
|
verifierFullPath: path
|
|
38
63
|
.resolve(pact_environment_1.default.cwd, basePath, verify)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pact-standalone.js","sourceRoot":"","sources":["pact-standalone.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pact-standalone.js","sourceRoot":"","sources":["pact-standalone.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,mDAAuD;AACvD,0EAAiD;AAoB1C,MAAM,UAAU,GAAG,CACxB,QAAiB,EACjB,IAAa,EACG,EAAE;IAClB,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACxC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC5B,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CACvC,GAAG,IAAI,GAAG,0BAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,YAAY,EACZ,wBAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,EACzC,MAAM,EACN,KAAK,CACN,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,0BAAe,CAAC,GAAG;QACxB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QACvC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;QAC1E,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;QACzC,eAAe,EAAE,IAAI;aAClB,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;aAC/C,IAAI,EAAE;QACT,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC1C,mBAAmB,EAAE,IAAI;aACtB,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;aAC5C,IAAI,EAAE;QACT,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;QACtE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;QACnC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;QACtE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3C,gBAAgB,EAAE,IAAI;aACnB,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC;aAChD,IAAI,EAAE;QACT,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QACzC,gBAAgB,EAAE,IAAI;aACnB,OAAO,CAAC,0BAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC;aAC9C,IAAI,EAAE;KACV,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,UAAU,cA+CrB;AAEF,kBAAe,kBAAU,EAAE,CAAC"}
|
package/src/pact.js
CHANGED
|
@@ -1,120 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
25
|
exports.Pact = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var _this = this;
|
|
26
|
+
const path = __importStar(require("path"));
|
|
27
|
+
const server_1 = __importDefault(require("./server"));
|
|
28
|
+
const stub_1 = __importDefault(require("./stub"));
|
|
29
|
+
const verifier_1 = __importDefault(require("./verifier"));
|
|
30
|
+
const message_1 = __importDefault(require("./message"));
|
|
31
|
+
const publisher_1 = __importDefault(require("./publisher"));
|
|
32
|
+
const can_deploy_1 = __importDefault(require("./can-deploy"));
|
|
33
|
+
const pact_environment_1 = __importDefault(require("./pact-environment"));
|
|
34
|
+
const logger_1 = __importStar(require("./logger"));
|
|
35
|
+
const service_1 = require("./service");
|
|
36
|
+
const _ = __importStar(require("underscore"));
|
|
37
|
+
const mkdirp = require("mkdirp");
|
|
38
|
+
const rimraf = require("rimraf");
|
|
39
|
+
class Pact {
|
|
40
|
+
constructor() {
|
|
20
41
|
this.__servers = [];
|
|
21
42
|
this.__stubs = [];
|
|
22
43
|
if (pact_environment_1.default.isWindows()) {
|
|
23
44
|
try {
|
|
24
|
-
|
|
25
|
-
|
|
45
|
+
const name = 'Jctyo0NXwbPN6Y1o8p2TkicKma2kfqmXwVLw6ypBX47uktBPX9FM9kbPraQXsAUZuT6BvenTbnWczXzuN4js0KB9e7P5cccxvmXPYcFhJnBvPSKGH1FlTqEOsjl8djk3md';
|
|
46
|
+
const dir = mkdirp.sync(path.resolve(__dirname, name, name));
|
|
26
47
|
dir && rimraf.sync(dir);
|
|
27
48
|
}
|
|
28
|
-
catch
|
|
49
|
+
catch {
|
|
29
50
|
logger_1.default.warn('WARNING: Windows Long Paths is not enabled and might cause Pact to crash if the path is too long. ' +
|
|
30
51
|
'To fix this issue, please consult https://github.com/pact-foundation/pact-js-core#enable-long-paths`');
|
|
31
52
|
}
|
|
32
53
|
}
|
|
33
|
-
process.once('exit',
|
|
34
|
-
process.once('SIGINT',
|
|
54
|
+
process.once('exit', () => this.removeAll());
|
|
55
|
+
process.once('SIGINT', () => process.exit());
|
|
35
56
|
}
|
|
36
|
-
|
|
57
|
+
logLevel(level) {
|
|
37
58
|
return logger_1.setLogLevel(level);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
var _this = this;
|
|
41
|
-
if (options === void 0) { options = {}; }
|
|
59
|
+
}
|
|
60
|
+
createServer(options = {}) {
|
|
42
61
|
if (options &&
|
|
43
62
|
options.port &&
|
|
44
|
-
_.some(this.__servers,
|
|
45
|
-
|
|
63
|
+
_.some(this.__servers, (s) => s.options.port === options.port)) {
|
|
64
|
+
let msg = `Port '${options.port}' is already in use by another process.`;
|
|
46
65
|
logger_1.default.error(msg);
|
|
47
66
|
throw new Error(msg);
|
|
48
67
|
}
|
|
49
|
-
|
|
68
|
+
let server = server_1.default(options);
|
|
50
69
|
this.__servers.push(server);
|
|
51
|
-
logger_1.default.info(
|
|
52
|
-
server.once(service_1.AbstractService.Events.DELETE_EVENT,
|
|
53
|
-
logger_1.default.info(
|
|
54
|
-
|
|
70
|
+
logger_1.default.info(`Creating Pact Server with options: \n${JSON.stringify(server.options)}`);
|
|
71
|
+
server.once(service_1.AbstractService.Events.DELETE_EVENT, (s) => {
|
|
72
|
+
logger_1.default.info(`Deleting Pact Server with options: \n${JSON.stringify(s.options)}`);
|
|
73
|
+
this.__servers = _.without(this.__servers, s);
|
|
55
74
|
});
|
|
56
75
|
return server;
|
|
57
|
-
}
|
|
58
|
-
|
|
76
|
+
}
|
|
77
|
+
listServers() {
|
|
59
78
|
return this.__servers;
|
|
60
|
-
}
|
|
61
|
-
|
|
79
|
+
}
|
|
80
|
+
removeAllServers() {
|
|
62
81
|
if (this.__servers.length === 0) {
|
|
63
82
|
return Promise.resolve(this.__servers);
|
|
64
83
|
}
|
|
65
84
|
logger_1.default.info('Removing all Pact servers.');
|
|
66
|
-
return Promise.all(_.map(this.__servers,
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
var _this = this;
|
|
70
|
-
if (options === void 0) { options = {}; }
|
|
85
|
+
return Promise.all(_.map(this.__servers, (server) => server.delete()));
|
|
86
|
+
}
|
|
87
|
+
createStub(options = {}) {
|
|
71
88
|
if (options &&
|
|
72
89
|
options.port &&
|
|
73
|
-
_.some(this.__stubs,
|
|
74
|
-
|
|
90
|
+
_.some(this.__stubs, (s) => s.options.port === options.port)) {
|
|
91
|
+
let msg = `Port '${options.port}' is already in use by another process.`;
|
|
75
92
|
logger_1.default.error(msg);
|
|
76
93
|
throw new Error(msg);
|
|
77
94
|
}
|
|
78
|
-
|
|
95
|
+
let stub = stub_1.default(options);
|
|
79
96
|
this.__stubs.push(stub);
|
|
80
|
-
logger_1.default.info(
|
|
81
|
-
stub.once(service_1.AbstractService.Events.DELETE_EVENT,
|
|
82
|
-
logger_1.default.info(
|
|
83
|
-
|
|
97
|
+
logger_1.default.info(`Creating Pact Stub with options: \n${JSON.stringify(stub.options)}`);
|
|
98
|
+
stub.once(service_1.AbstractService.Events.DELETE_EVENT, (s) => {
|
|
99
|
+
logger_1.default.info(`Deleting Pact Stub with options: \n${JSON.stringify(stub.options)}`);
|
|
100
|
+
this.__stubs = _.without(this.__stubs, s);
|
|
84
101
|
});
|
|
85
102
|
return stub;
|
|
86
|
-
}
|
|
87
|
-
|
|
103
|
+
}
|
|
104
|
+
listStubs() {
|
|
88
105
|
return this.__stubs;
|
|
89
|
-
}
|
|
90
|
-
|
|
106
|
+
}
|
|
107
|
+
removeAllStubs() {
|
|
91
108
|
if (this.__stubs.length === 0) {
|
|
92
109
|
return Promise.resolve(this.__stubs);
|
|
93
110
|
}
|
|
94
111
|
logger_1.default.info('Removing all Pact stubs.');
|
|
95
|
-
return Promise.all(_.map(this.__stubs,
|
|
96
|
-
}
|
|
97
|
-
|
|
112
|
+
return Promise.all(_.map(this.__stubs, (stub) => stub.delete()));
|
|
113
|
+
}
|
|
114
|
+
removeAll() {
|
|
98
115
|
return Promise.all(_.flatten([this.removeAllStubs(), this.removeAllServers()]));
|
|
99
|
-
}
|
|
100
|
-
|
|
116
|
+
}
|
|
117
|
+
verifyPacts(options) {
|
|
101
118
|
logger_1.default.info('Verifying Pacts.');
|
|
102
119
|
return verifier_1.default(options).verify();
|
|
103
|
-
}
|
|
104
|
-
|
|
120
|
+
}
|
|
121
|
+
createMessage(options) {
|
|
105
122
|
logger_1.default.info('Creating Message');
|
|
106
123
|
return message_1.default(options).createMessage();
|
|
107
|
-
}
|
|
108
|
-
|
|
124
|
+
}
|
|
125
|
+
publishPacts(options) {
|
|
109
126
|
logger_1.default.info('Publishing Pacts to Broker');
|
|
110
127
|
return publisher_1.default(options).publish();
|
|
111
|
-
}
|
|
112
|
-
|
|
128
|
+
}
|
|
129
|
+
canDeploy(options) {
|
|
113
130
|
logger_1.default.info('Checking if it it possible to deploy');
|
|
114
131
|
return can_deploy_1.default(options).canDeploy();
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
}());
|
|
132
|
+
}
|
|
133
|
+
}
|
|
118
134
|
exports.Pact = Pact;
|
|
119
135
|
exports.default = new Pact();
|
|
120
136
|
//# sourceMappingURL=pact.js.map
|
package/src/pact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pact.js","sourceRoot":"","sources":["pact.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pact.js","sourceRoot":"","sources":["pact.ts"],"names":[],"mappings":"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"}
|
package/src/publisher.js
CHANGED
|
@@ -1,16 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
2
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
25
|
exports.Publisher = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
26
|
+
const path = require("path");
|
|
27
|
+
const fs = require("fs");
|
|
28
|
+
const logger_1 = __importStar(require("./logger"));
|
|
29
|
+
const spawn_1 = __importDefault(require("./spawn"));
|
|
30
|
+
const promise_timeout_1 = require("promise-timeout");
|
|
31
|
+
const spawn_2 = require("./spawn");
|
|
32
|
+
const pact_standalone_1 = __importDefault(require("./pact-standalone"));
|
|
33
|
+
const checkTypes = require("check-types");
|
|
34
|
+
class Publisher {
|
|
35
|
+
constructor(options) {
|
|
14
36
|
this.__argMapping = {
|
|
15
37
|
pactFilesOrDirs: spawn_2.DEFAULT_ARG,
|
|
16
38
|
pactBroker: '--broker-base-url',
|
|
@@ -31,10 +53,10 @@ var Publisher = (function () {
|
|
|
31
53
|
checkTypes.assert.nonEmptyArray(options.pactFilesOrDirs, 'Must provide the pactFilesOrDirs argument with an array');
|
|
32
54
|
if (options.pactFilesOrDirs) {
|
|
33
55
|
checkTypes.assert.array.of.string(options.pactFilesOrDirs);
|
|
34
|
-
options.pactFilesOrDirs = options.pactFilesOrDirs.map(
|
|
35
|
-
|
|
56
|
+
options.pactFilesOrDirs = options.pactFilesOrDirs.map((v) => {
|
|
57
|
+
const newPath = path.resolve(v);
|
|
36
58
|
if (!fs.existsSync(newPath)) {
|
|
37
|
-
throw new Error(
|
|
59
|
+
throw new Error(`Path '${v}' given in pactFilesOrDirs does not exists.`);
|
|
38
60
|
}
|
|
39
61
|
return newPath;
|
|
40
62
|
});
|
|
@@ -61,39 +83,37 @@ var Publisher = (function () {
|
|
|
61
83
|
}
|
|
62
84
|
this.options = options;
|
|
63
85
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
instance.
|
|
71
|
-
instance.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
var pactUrls = /https?:\/\/.*\/pacts\/.*$/gim.exec(o);
|
|
86
|
+
publish() {
|
|
87
|
+
logger_1.default.info(`Publishing pacts to broker at: ${this.options.pactBroker}`);
|
|
88
|
+
return promise_timeout_1.timeout(new Promise((resolve, reject) => {
|
|
89
|
+
const instance = spawn_1.default.spawnBinary(pact_standalone_1.default.brokerFullPath, [{ cliVerb: 'publish' }, this.options], this.__argMapping);
|
|
90
|
+
const output = [];
|
|
91
|
+
instance.stdout.on('data', (l) => output.push(l));
|
|
92
|
+
instance.stderr.on('data', (l) => output.push(l));
|
|
93
|
+
instance.once('close', (code) => {
|
|
94
|
+
const o = output.join('\n');
|
|
95
|
+
const pactUrls = /https?:\/\/.*\/pacts\/.*$/gim.exec(o);
|
|
75
96
|
if (code !== 0) {
|
|
76
|
-
|
|
97
|
+
const message = `Pact publication failed with non-zero exit code. Full output was:\n${o}`;
|
|
77
98
|
logger_1.default.error(message);
|
|
78
99
|
return reject(new Error(message));
|
|
79
100
|
}
|
|
80
101
|
if (!pactUrls) {
|
|
81
|
-
|
|
102
|
+
const message = `Publication appeared to fail, as we did not detect any pact URLs in the following output:\n${o}`;
|
|
82
103
|
logger_1.default.error(message);
|
|
83
104
|
return reject(new Error(message));
|
|
84
105
|
}
|
|
85
106
|
logger_1.default.info(o);
|
|
86
107
|
return resolve(pactUrls);
|
|
87
108
|
});
|
|
88
|
-
}), this.options.timeout).catch(
|
|
109
|
+
}), this.options.timeout).catch((err) => {
|
|
89
110
|
if (err instanceof promise_timeout_1.TimeoutError) {
|
|
90
|
-
throw new Error(
|
|
111
|
+
throw new Error(`Timeout waiting for publication process to complete`);
|
|
91
112
|
}
|
|
92
113
|
throw err;
|
|
93
114
|
});
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
}());
|
|
115
|
+
}
|
|
116
|
+
}
|
|
97
117
|
exports.Publisher = Publisher;
|
|
98
|
-
exports.default = (
|
|
118
|
+
exports.default = (options) => new Publisher(options);
|
|
99
119
|
//# sourceMappingURL=publisher.js.map
|