@pact-foundation/pact-core 13.7.0 → 13.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -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.js +6 -3
- package/bin/pactflow.js.map +1 -1
- package/build/Makefile +1 -1
- package/package.json +3 -2
- 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/ffi/types.d.ts +5 -0
- package/src/ffi/types.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.d.ts +14 -5
- package/src/verifier/argumentMapper/arguments.js +126 -87
- package/src/verifier/argumentMapper/arguments.js.map +1 -1
- package/src/verifier/argumentMapper/index.d.ts +3 -1
- package/src/verifier/argumentMapper/index.js +38 -57
- package/src/verifier/argumentMapper/index.js.map +1 -1
- package/src/verifier/argumentMapper/types.d.ts +20 -1
- package/src/verifier/argumentMapper/types.js +16 -0
- package/src/verifier/argumentMapper/types.js.map +1 -1
- package/src/verifier/index.js +16 -21
- package/src/verifier/index.js.map +1 -1
- package/src/verifier/nativeVerifier.js +33 -75
- package/src/verifier/nativeVerifier.js.map +1 -1
- package/src/verifier/types.d.ts +1 -0
- package/src/verifier/validateOptions.d.ts +12 -2
- package/src/verifier/validateOptions.js +157 -100
- package/src/verifier/validateOptions.js.map +1 -1
- package/standalone/install.js +16 -18
- package/standalone/install.js.map +1 -1
- package/tsconfig.json +1 -2
- package/src/verifier/filesystem/index.d.ts +0 -2
- package/src/verifier/filesystem/index.js +0 -24
- package/src/verifier/filesystem/index.js.map +0 -1
- package/src/verifier/filesystem/types.d.ts +0 -1
- package/src/verifier/filesystem/types.js +0 -3
- package/src/verifier/filesystem/types.js.map +0 -1
package/src/spawn/arguments.js
CHANGED
|
@@ -1,48 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Arguments = exports.PACT_NODE_NO_VALUE = exports.DEFAULT_ARG = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const _ = require("underscore");
|
|
5
|
+
const checkTypes = require("check-types");
|
|
6
6
|
exports.DEFAULT_ARG = 'DEFAULT';
|
|
7
7
|
exports.PACT_NODE_NO_VALUE = 'PACT_NODE_NO_VALUE';
|
|
8
|
-
|
|
8
|
+
const valFor = (v) => {
|
|
9
9
|
if (typeof v === 'object') {
|
|
10
10
|
return [JSON.stringify(v)];
|
|
11
11
|
}
|
|
12
|
-
return v !== exports.PACT_NODE_NO_VALUE ? [
|
|
12
|
+
return v !== exports.PACT_NODE_NO_VALUE ? [`${v}`] : [];
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
var convertValue = function (mapping, v) {
|
|
14
|
+
const mapFor = (mapping, v) => mapping === exports.DEFAULT_ARG ? valFor(v) : [mapping].concat(valFor(v));
|
|
15
|
+
const convertValue = (mapping, v) => {
|
|
18
16
|
if (v && mapping) {
|
|
19
17
|
return checkTypes.array(v)
|
|
20
|
-
? _.flatten(v.map(
|
|
18
|
+
? _.flatten(v.map((val) => mapFor(mapping, val)))
|
|
21
19
|
: mapFor(mapping, v);
|
|
22
20
|
}
|
|
23
21
|
return [];
|
|
24
22
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
Arguments.prototype.toArgumentsArray = function (args, mappings) {
|
|
29
|
-
var _this = this;
|
|
23
|
+
class Arguments {
|
|
24
|
+
toArgumentsArray(args, mappings) {
|
|
30
25
|
return _.chain(args instanceof Array ? args : [args])
|
|
31
|
-
.map(
|
|
26
|
+
.map((x) => this.createArgumentsFromObject(x, mappings))
|
|
32
27
|
.flatten()
|
|
33
28
|
.value();
|
|
34
|
-
}
|
|
35
|
-
|
|
29
|
+
}
|
|
30
|
+
createArgumentsFromObject(args, mappings) {
|
|
36
31
|
return _.chain(Object.keys(args))
|
|
37
|
-
.reduce(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
: acc.concat(convertValue(mappings[key], args[key]));
|
|
41
|
-
}, [])
|
|
32
|
+
.reduce((acc, key) => mappings[key] === exports.DEFAULT_ARG
|
|
33
|
+
? convertValue(mappings[key], args[key]).concat(acc)
|
|
34
|
+
: acc.concat(convertValue(mappings[key], args[key])), [])
|
|
42
35
|
.value();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
}());
|
|
36
|
+
}
|
|
37
|
+
}
|
|
46
38
|
exports.Arguments = Arguments;
|
|
47
39
|
exports.default = new Arguments();
|
|
48
40
|
//# sourceMappingURL=arguments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["arguments.ts"],"names":[],"mappings":";;;AAMA,
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["arguments.ts"],"names":[],"mappings":";;;AAMA,gCAAiC;AACjC,0CAA2C;AAkB9B,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AAEvD,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAiB,EAAE;IACjD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5B;IACD,OAAO,CAAC,KAAK,0BAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,CAAS,EAAiB,EAAE,CAC3D,OAAO,KAAK,mBAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,MAAM,YAAY,GAAG,CACnB,OAAe,EACf,CAAuC,EACxB,EAAE;IACjB,IAAI,CAAC,IAAI,OAAO,EAAE;QAChB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC,CAAC,OAAO,CACN,CAAmB,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAChE;YACH,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAW,CAAC,CAAC;KAClC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAa,SAAS;IACb,gBAAgB,CACrB,IAAoB,EACpB,QAAkC;QAElC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAClD,GAAG,CAAC,CAAC,CAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;aACtE,OAAO,EAAE;aACT,KAAK,EAAE,CAAC;IACb,CAAC;IAEO,yBAAyB,CAC/B,IAAmB,EACnB,QAAkC;QAElC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9B,MAAM,CACL,CAAC,GAAkB,EAAE,GAAW,EAAiB,EAAE,CACjD,QAAQ,CAAC,GAAG,CAAC,KAAK,mBAAW;YAC3B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACpD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EACxD,EAAE,CACH;aACA,KAAK,EAAE,CAAC;IACb,CAAC;CACF;AAzBD,8BAyBC;AAED,kBAAe,IAAI,SAAS,EAAE,CAAC"}
|
package/src/spawn/index.js
CHANGED
|
@@ -9,9 +9,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
12
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
16
|
exports.default = void 0;
|
|
14
17
|
__exportStar(require("./arguments"), exports);
|
|
15
18
|
var spawn_1 = require("./spawn");
|
|
16
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return spawn_1.default; } });
|
|
19
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(spawn_1).default; } });
|
|
17
20
|
//# sourceMappingURL=index.js.map
|
package/src/spawn/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iCAAkC;AAAzB,iHAAA,OAAO,OAAA"}
|
package/src/spawn/spawn.js
CHANGED
|
@@ -1,70 +1,76 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
|
|
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 };
|
|
12
23
|
};
|
|
13
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
25
|
exports.Spawn = void 0;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
const spawn = require("cross-spawn");
|
|
27
|
+
const cp = require("child_process");
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const logger_1 = __importDefault(require("../logger"));
|
|
30
|
+
const pact_environment_1 = __importDefault(require("../pact-environment"));
|
|
31
|
+
const arguments_1 = __importStar(require("./arguments"));
|
|
32
|
+
class Spawn {
|
|
33
|
+
get cwd() {
|
|
34
|
+
return path.resolve(__dirname, '..');
|
|
23
35
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return path.resolve(__dirname, '..');
|
|
27
|
-
},
|
|
28
|
-
enumerable: false,
|
|
29
|
-
configurable: true
|
|
30
|
-
});
|
|
31
|
-
Spawn.prototype.spawnBinary = function (command, args, argMapping) {
|
|
32
|
-
if (args === void 0) { args = {}; }
|
|
33
|
-
if (argMapping === void 0) { argMapping = {}; }
|
|
34
|
-
var envVars = JSON.parse(JSON.stringify(process.env));
|
|
36
|
+
spawnBinary(command, args = {}, argMapping = {}) {
|
|
37
|
+
const envVars = JSON.parse(JSON.stringify(process.env));
|
|
35
38
|
envVars['PACT_EXECUTING_LANGUAGE'] = 'node.js';
|
|
36
39
|
envVars['PACT_EXECUTING_LANGUAGE_VERSION'] = process.versions.node;
|
|
37
40
|
delete envVars['RUBYGEMS_GEMDEPS'];
|
|
38
|
-
|
|
41
|
+
const opts = {
|
|
39
42
|
cwd: pact_environment_1.default.cwd,
|
|
40
43
|
detached: !pact_environment_1.default.isWindows(),
|
|
41
44
|
env: envVars,
|
|
42
45
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
const spawnArgs = arguments_1.default.toArgumentsArray(args, {
|
|
47
|
+
cliVerb: arguments_1.DEFAULT_ARG,
|
|
48
|
+
...argMapping,
|
|
49
|
+
});
|
|
50
|
+
logger_1.default.debug(`Starting pact binary '${command}', with arguments [${spawnArgs.join(' ')}]`);
|
|
51
|
+
logger_1.default.trace(`Environment: ${JSON.stringify(opts)}`);
|
|
52
|
+
const instance = spawn(command, spawnArgs, opts);
|
|
47
53
|
instance.stdout.setEncoding('utf8');
|
|
48
54
|
instance.stderr.setEncoding('utf8');
|
|
49
55
|
instance.stdout.on('data', logger_1.default.debug.bind(logger_1.default));
|
|
50
56
|
instance.stderr.on('data', logger_1.default.debug.bind(logger_1.default));
|
|
51
57
|
instance.on('error', logger_1.default.error.bind(logger_1.default));
|
|
52
|
-
instance.once('close',
|
|
58
|
+
instance.once('close', (code) => {
|
|
53
59
|
if (code !== 0) {
|
|
54
|
-
logger_1.default.warn(
|
|
60
|
+
logger_1.default.warn(`Pact exited with code ${code}.`);
|
|
55
61
|
}
|
|
56
62
|
});
|
|
57
|
-
logger_1.default.debug(
|
|
63
|
+
logger_1.default.debug(`Created '${command}' process with PID: ${instance.pid}`);
|
|
58
64
|
return instance;
|
|
59
|
-
}
|
|
60
|
-
|
|
65
|
+
}
|
|
66
|
+
killBinary(binary) {
|
|
61
67
|
if (binary) {
|
|
62
|
-
|
|
63
|
-
logger_1.default.info(
|
|
68
|
+
const pid = binary.pid;
|
|
69
|
+
logger_1.default.info(`Removing Pact process with PID: ${pid}`);
|
|
64
70
|
binary.removeAllListeners();
|
|
65
71
|
try {
|
|
66
72
|
pact_environment_1.default.isWindows()
|
|
67
|
-
? cp.execSync(
|
|
73
|
+
? cp.execSync(`taskkill /f /t /pid ${pid}`)
|
|
68
74
|
: process.kill(-pid, 'SIGINT');
|
|
69
75
|
}
|
|
70
76
|
catch (e) {
|
|
@@ -72,9 +78,8 @@ var Spawn = (function () {
|
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
return true;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
}());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
78
83
|
exports.Spawn = Spawn;
|
|
79
84
|
exports.default = new Spawn();
|
|
80
85
|
//# sourceMappingURL=spawn.js.map
|
package/src/spawn/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["spawn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["spawn.ts"],"names":[],"mappings":"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"}
|
package/src/stub.js
CHANGED
|
@@ -1,36 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
17
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
6
|
exports.Stub = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
function Stub(options) {
|
|
26
|
-
var _this = this;
|
|
7
|
+
const spawn_1 = require("./spawn");
|
|
8
|
+
const service_1 = require("./service");
|
|
9
|
+
const pact_standalone_1 = __importDefault(require("./pact-standalone"));
|
|
10
|
+
const checkTypes = require("check-types");
|
|
11
|
+
class Stub extends service_1.AbstractService {
|
|
12
|
+
constructor(options) {
|
|
27
13
|
options = options || {};
|
|
28
14
|
options.pactUrls = options.pactUrls || [];
|
|
29
15
|
if (options.pactUrls) {
|
|
30
16
|
checkTypes.assert.array.of.string(options.pactUrls);
|
|
31
17
|
}
|
|
32
18
|
checkTypes.assert.not.emptyArray(options.pactUrls);
|
|
33
|
-
|
|
19
|
+
super(pact_standalone_1.default.stubFullPath, options, {
|
|
34
20
|
pactUrls: spawn_1.DEFAULT_ARG,
|
|
35
21
|
port: '--port',
|
|
36
22
|
host: '--host',
|
|
@@ -40,12 +26,10 @@ var Stub = (function (_super) {
|
|
|
40
26
|
sslcert: '--sslcert',
|
|
41
27
|
sslkey: '--sslkey',
|
|
42
28
|
cors: '--cors',
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
return _this;
|
|
29
|
+
});
|
|
30
|
+
this.options = options;
|
|
46
31
|
}
|
|
47
|
-
|
|
48
|
-
}(service_1.AbstractService));
|
|
32
|
+
}
|
|
49
33
|
exports.Stub = Stub;
|
|
50
|
-
exports.default = (
|
|
34
|
+
exports.default = (options) => new Stub(options);
|
|
51
35
|
//# sourceMappingURL=stub.js.map
|
package/src/stub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.js","sourceRoot":"","sources":["stub.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stub.js","sourceRoot":"","sources":["stub.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsC;AACtC,uCAA4C;AAE5C,wEAAqC;AACrC,0CAA2C;AAG3C,MAAa,IAAK,SAAQ,yBAAe;IAGvC,YAAY,OAAqB;QAC/B,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAE1C,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACrD;QAED,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,KAAK,CAAC,yBAAI,CAAC,YAAY,EAAE,OAAO,EAAE;YAChC,QAAQ,EAAE,mBAAW;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,aAAa;YACvB,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AA1BD,oBA0BC;AAGD,kBAAe,CAAC,OAAqB,EAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InternalPactVerifierOptions
|
|
3
|
-
|
|
4
|
-
export declare
|
|
5
|
-
|
|
1
|
+
import { FnMapping } from './types';
|
|
2
|
+
import { InternalPactVerifierOptions } from '../types';
|
|
3
|
+
import { FfiVerificationFunctions } from '../../ffi/types';
|
|
4
|
+
export declare type IgnoredFfiFunctions = {
|
|
5
|
+
pactffiVerifierNewForApplication: 1;
|
|
6
|
+
pactffiVerifierExecute: 1;
|
|
7
|
+
pactffiVerifierShutdown: 1;
|
|
8
|
+
};
|
|
9
|
+
export declare type MergedFfiSourceFunctions = {
|
|
10
|
+
pactffiVerifierAddFileSource: 1;
|
|
11
|
+
pactffiVerifierUrlSource: 1;
|
|
12
|
+
};
|
|
13
|
+
export declare type RequiredFfiVerificationFunctions = Omit<FfiVerificationFunctions, keyof (IgnoredFfiFunctions & MergedFfiSourceFunctions)>;
|
|
14
|
+
export declare const ffiFnMapping: FnMapping<RequiredFfiVerificationFunctions, InternalPactVerifierOptions>;
|
|
@@ -1,103 +1,142 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
to[j] = from[i];
|
|
5
|
-
return to;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
4
|
};
|
|
7
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
'beforeEach',
|
|
17
|
-
'afterEach',
|
|
18
|
-
'validateSSL',
|
|
19
|
-
];
|
|
20
|
-
exports.ignoreOptionCombinations = {
|
|
21
|
-
enablePending: { ifNotSet: 'pactBrokerUrl' },
|
|
22
|
-
consumerVersionSelectors: { ifNotSet: 'pactBrokerUrl' },
|
|
23
|
-
consumerVersionTags: { ifNotSet: 'pactBrokerUrl' },
|
|
24
|
-
publishVerificationResult: { ifNotSet: 'pactBrokerUrl' },
|
|
6
|
+
exports.ffiFnMapping = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("../../logger"));
|
|
8
|
+
const fs = require("fs");
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
const url_1 = require("url");
|
|
11
|
+
const DEFAULT_TIMEOUT = 30000;
|
|
12
|
+
const objArrayToStringArray = (obj) => {
|
|
13
|
+
return obj.map((o) => JSON.stringify(o));
|
|
25
14
|
};
|
|
26
|
-
exports.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
warningMessage: 'providerStatesSetupTeardown is not valid for the CLI',
|
|
15
|
+
exports.ffiFnMapping = {
|
|
16
|
+
pactffiVerifierAddCustomHeader: {
|
|
17
|
+
validateAndExecute(ffi, handle, options) {
|
|
18
|
+
if (options.customProviderHeaders) {
|
|
19
|
+
if (options.customProviderHeaders) {
|
|
20
|
+
Object.entries(options.customProviderHeaders).forEach(([key, value]) => {
|
|
21
|
+
ffi.pactffiVerifierAddCustomHeader(handle, key, value);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
25
|
+
}
|
|
26
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
27
|
+
},
|
|
40
28
|
},
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
29
|
+
pactffiVerifierAddDirectorySource: {
|
|
30
|
+
validateAndExecute(ffi, handle, options) {
|
|
31
|
+
const messages = [];
|
|
32
|
+
if (options.pactUrls) {
|
|
33
|
+
options.pactUrls.forEach((file) => {
|
|
34
|
+
logger_1.default.debug(`checking source type of given pactUrl: ${file}`);
|
|
35
|
+
try {
|
|
36
|
+
const u = new url_1.URL(file);
|
|
37
|
+
if (u.hostname) {
|
|
38
|
+
logger_1.default.debug(`adding ${file} as a Url source`);
|
|
39
|
+
ffi.pactffiVerifierUrlSource(handle, file, options.pactBrokerUsername ||
|
|
40
|
+
process.env.PACT_BROKER_USERNAME ||
|
|
41
|
+
'', options.pactBrokerPassword ||
|
|
42
|
+
process.env.PACT_BROKER_PASSWORD ||
|
|
43
|
+
'', options.pactBrokerToken || process.env.PACT_BROKER_TOKEN || '');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
messages.push(`${file} is not a valid URL`);
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const f = fs.lstatSync(file);
|
|
51
|
+
if (f.isDirectory()) {
|
|
52
|
+
logger_1.default.debug(`adding ${file} as Directory source`);
|
|
53
|
+
ffi.pactffiVerifierAddDirectorySource(handle, file);
|
|
54
|
+
}
|
|
55
|
+
else if (f.isFile() || f.isSymbolicLink()) {
|
|
56
|
+
logger_1.default.debug(`adding ${file} as File source`);
|
|
57
|
+
ffi.pactffiVerifierAddFileSource(handle, file);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
messages.push(`'${file}' does not exist, or is not a file or directory`);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
54
65
|
}
|
|
55
|
-
|
|
66
|
+
if (messages.length > 0) {
|
|
67
|
+
return { status: types_1.FnValidationStatus.FAIL, messages };
|
|
68
|
+
}
|
|
69
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
70
|
+
},
|
|
56
71
|
},
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
]; },
|
|
69
|
-
providerStatesSetupUrl: { arg: '--state-change-url', mapper: 'string' },
|
|
70
|
-
providerVersion: { arg: '--provider-version', mapper: 'string' },
|
|
71
|
-
includeWipPactsSince: { arg: '--include-wip-pacts-since', mapper: 'string' },
|
|
72
|
-
consumerVersionSelectors: function (selectors) {
|
|
73
|
-
return selectors
|
|
74
|
-
.map(function (s) { return [
|
|
75
|
-
'--consumer-version-selectors',
|
|
76
|
-
JSON.stringify(s),
|
|
77
|
-
]; })
|
|
78
|
-
.reduce(function (acc, current) { return __spreadArray(__spreadArray([], acc), current); }, []);
|
|
72
|
+
pactffiVerifierBrokerSourceWithSelectors: {
|
|
73
|
+
validateAndExecute(ffi, handle, opts) {
|
|
74
|
+
const brokerUrl = opts.pactBrokerUrl || process.env.PACT_BROKER_BASE_URL;
|
|
75
|
+
if (brokerUrl && opts.provider) {
|
|
76
|
+
ffi.pactffiVerifierBrokerSourceWithSelectors(handle, brokerUrl, opts.pactBrokerUsername || process.env.PACT_BROKER_USERNAME || '', opts.pactBrokerPassword || process.env.PACT_BROKER_PASSWORD || '', opts.pactBrokerToken || process.env.PACT_BROKER_TOKEN || '', opts.enablePending || false, opts.includeWipPactsSince || '', opts.providerVersionTags || [], opts.providerBranch || '', opts.consumerVersionSelectors
|
|
77
|
+
? objArrayToStringArray(opts.consumerVersionSelectors)
|
|
78
|
+
: [], opts.consumerVersionTags || []);
|
|
79
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
80
|
+
}
|
|
81
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
82
|
+
},
|
|
79
83
|
},
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
pactffiVerifierSetConsumerFilters: {
|
|
85
|
+
validateAndExecute(ffi, handle, options) {
|
|
86
|
+
if (options.consumerFilters && options.consumerFilters.length > 0) {
|
|
87
|
+
ffi.pactffiVerifierSetConsumerFilters(handle, options.consumerFilters);
|
|
88
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
89
|
+
}
|
|
90
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
91
|
+
},
|
|
86
92
|
},
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
pactffiVerifierSetFilterInfo: {
|
|
94
|
+
validateAndExecute(ffi, handle, options) {
|
|
95
|
+
if (process.env.PACT_DESCRIPTION ||
|
|
96
|
+
process.env.PACT_PROVIDER_STATE ||
|
|
97
|
+
process.env.PACT_PROVIDER_NO_STATE) {
|
|
98
|
+
const filterDescription = process.env.PACT_DESCRIPTION || '';
|
|
99
|
+
const filterState = process.env.PACT_PROVIDER_STATE || '';
|
|
100
|
+
const filterNoState = process.env.PACT_PROVIDER_NO_STATE ? true : false;
|
|
101
|
+
ffi.pactffiVerifierSetFilterInfo(handle, filterDescription, filterState, filterNoState);
|
|
102
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
103
|
+
}
|
|
104
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
105
|
+
},
|
|
89
106
|
},
|
|
90
|
-
|
|
91
|
-
|
|
107
|
+
pactffiVerifierSetProviderInfo: {
|
|
108
|
+
validateAndExecute(ffi, handle, options) {
|
|
109
|
+
const uri = new url_1.URL(options.providerBaseUrl);
|
|
110
|
+
ffi.pactffiVerifierSetProviderInfo(handle, options.provider || '', uri.protocol.split(':')[0], uri.hostname, parseInt(uri.port, 10), uri.pathname);
|
|
111
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
112
|
+
},
|
|
92
113
|
},
|
|
93
|
-
|
|
94
|
-
|
|
114
|
+
pactffiVerifierSetProviderState: {
|
|
115
|
+
validateAndExecute(ffi, handle, options) {
|
|
116
|
+
if (options.providerStatesSetupUrl) {
|
|
117
|
+
ffi.pactffiVerifierSetProviderState(handle, options.providerStatesSetupUrl, true, true);
|
|
118
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
119
|
+
}
|
|
120
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
121
|
+
},
|
|
95
122
|
},
|
|
96
|
-
|
|
97
|
-
|
|
123
|
+
pactffiVerifierSetPublishOptions: {
|
|
124
|
+
validateAndExecute(ffi, handle, options) {
|
|
125
|
+
if (options.publishVerificationResult && options.providerVersion) {
|
|
126
|
+
ffi.pactffiVerifierSetPublishOptions(handle, options.providerVersion, options.buildUrl || '', options.providerVersionTags || [], options.providerBranch || '');
|
|
127
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
128
|
+
}
|
|
129
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
130
|
+
},
|
|
98
131
|
},
|
|
99
|
-
|
|
100
|
-
|
|
132
|
+
pactffiVerifierSetVerificationOptions: {
|
|
133
|
+
validateAndExecute(ffi, handle, opts) {
|
|
134
|
+
if (opts.disableSslVerification || opts.timeout) {
|
|
135
|
+
ffi.pactffiVerifierSetVerificationOptions(handle, opts.disableSslVerification || false, opts.timeout || DEFAULT_TIMEOUT);
|
|
136
|
+
return { status: types_1.FnValidationStatus.SUCCESS };
|
|
137
|
+
}
|
|
138
|
+
return { status: types_1.FnValidationStatus.IGNORE };
|
|
139
|
+
},
|
|
101
140
|
},
|
|
102
141
|
};
|
|
103
142
|
//# sourceMappingURL=arguments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["arguments.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["arguments.ts"],"names":[],"mappings":"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"}
|