@pact-foundation/pact-core 10.12.0 → 11.0.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/CHANGELOG.md +71 -0
- package/README.md +15 -1
- package/bin/pact-broker.js.map +1 -1
- package/bin/pact-message.js.map +1 -1
- package/bin/pact-mock-service.js.map +1 -1
- package/bin/pact-provider-verifier.js.map +1 -1
- package/bin/pact-stub-service.js.map +1 -1
- package/bin/pact.js.map +1 -1
- package/package.json +13 -15
- package/script/trigger-release.sh +1 -1
- package/src/can-deploy.d.ts +1 -2
- package/src/can-deploy.js +52 -38
- package/src/can-deploy.js.map +1 -1
- package/src/index.js +15 -8
- package/src/index.js.map +1 -1
- package/src/logger.d.ts +1 -1
- package/src/logger.js +5 -2
- package/src/logger.js.map +1 -1
- package/src/message.d.ts +1 -2
- package/src/message.js +25 -24
- package/src/message.js.map +1 -1
- package/src/pact-environment.d.ts +1 -1
- package/src/pact-environment.js +2 -1
- package/src/pact-environment.js.map +1 -1
- package/src/pact-standalone.js +3 -1
- package/src/pact-standalone.js.map +1 -1
- package/src/pact.d.ts +7 -8
- package/src/pact.js +6 -6
- package/src/pact.js.map +1 -1
- package/src/publisher.d.ts +1 -3
- package/src/publisher.js +23 -18
- package/src/publisher.js.map +1 -1
- package/src/server.d.ts +1 -1
- package/src/server.js +5 -4
- package/src/server.js.map +1 -1
- package/src/service.d.ts +7 -7
- package/src/service.js +92 -70
- package/src/service.js.map +1 -1
- package/src/spawn/arguments.js +7 -8
- package/src/spawn/arguments.js.map +1 -1
- package/src/spawn/index.js +13 -5
- package/src/spawn/index.js.map +1 -1
- package/src/spawn/spawn.d.ts +1 -1
- package/src/spawn/spawn.js +2 -1
- package/src/spawn/spawn.js.map +1 -1
- package/src/stub.d.ts +1 -1
- package/src/stub.js +5 -4
- package/src/stub.js.map +1 -1
- package/src/verifier.d.ts +5 -14
- package/src/verifier.js +19 -43
- package/src/verifier.js.map +1 -1
- package/standalone/install.d.ts +1 -1
- package/standalone/install.js +5 -4
- package/standalone/pact-1.88.56-linux-x86.tar.gz.checksum +1 -0
- package/standalone/pact-1.88.56-linux-x86_64.tar.gz.checksum +1 -0
- package/standalone/pact-1.88.56-osx.tar.gz.checksum +1 -0
- package/standalone/pact-1.88.56-win32.zip.checksum +1 -0
- package/test/integration/broker-mock.d.ts +1 -3
- package/test/integration/broker-mock.js +4 -4
- package/test/integration/broker-mock.js.map +1 -1
- package/test/integration/data-utils.js +1 -0
- package/test/integration/data-utils.js.map +1 -1
- package/test/integration/provider-mock.d.ts +1 -3
- package/test/integration/provider-mock.js +4 -4
- package/test/integration/provider-mock.js.map +1 -1
- package/.editorconfig +0 -24
- package/standalone/pact-1.88.40-linux-x86.tar.gz.checksum +0 -1
- package/standalone/pact-1.88.40-linux-x86_64.tar.gz.checksum +0 -1
- package/standalone/pact-1.88.40-osx.tar.gz.checksum +0 -1
- package/standalone/pact-1.88.40-win32.zip.checksum +0 -1
package/src/pact-environment.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PactEnvironment = void 0;
|
|
3
4
|
var path = require("path");
|
|
4
5
|
var PactEnvironment = (function () {
|
|
5
6
|
function PactEnvironment() {
|
|
@@ -8,7 +9,7 @@ var PactEnvironment = (function () {
|
|
|
8
9
|
get: function () {
|
|
9
10
|
return path.resolve(__dirname, '..');
|
|
10
11
|
},
|
|
11
|
-
enumerable:
|
|
12
|
+
enumerable: false,
|
|
12
13
|
configurable: true
|
|
13
14
|
});
|
|
14
15
|
PactEnvironment.prototype.isWindows = function (platform) {
|
|
@@ -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,2BAA6B;AAE7B;IAAA;IAQA,CAAC;IAPC,sBAAW,gCAAG;aAAd;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;;;OAAA;IAEM,mCAAS,GAAhB,UAAiB,QAAmC;QAAnC,yBAAA,EAAA,WAAmB,OAAO,CAAC,QAAQ;QAClD,OAAO,QAAQ,KAAK,OAAO,CAAC;IAC9B,CAAC;IACH,sBAAC;AAAD,CAAC,AARD,IAQC;AARY,0CAAe;AAU5B,kBAAe,IAAI,eAAe,EAAE,CAAC"}
|
package/src/pact-standalone.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.standalone = void 0;
|
|
3
4
|
var path = require("path");
|
|
4
5
|
var install_1 = require("../standalone/install");
|
|
5
6
|
var pact_environment_1 = require("./pact-environment");
|
|
6
|
-
|
|
7
|
+
var standalone = function (platform, arch) {
|
|
7
8
|
platform = platform || process.platform;
|
|
8
9
|
arch = arch || process.arch;
|
|
9
10
|
var binName = function (name) {
|
|
@@ -38,5 +39,6 @@ exports.standalone = function (platform, arch) {
|
|
|
38
39
|
.trim(),
|
|
39
40
|
};
|
|
40
41
|
};
|
|
42
|
+
exports.standalone = standalone;
|
|
41
43
|
exports.default = exports.standalone();
|
|
42
44
|
//# sourceMappingURL=pact-standalone.js.map
|
|
@@ -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,2BAA6B;AAC7B,iDAAuD;AACvD,uDAAiD;AAkB1C,IAAM,UAAU,GAAG,UACxB,QAAiB,EACjB,IAAa;IAEb,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACxC,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAC5B,IAAM,OAAO,GAAG,UAAC,IAAY;QAC3B,OAAA,KAAG,IAAI,IAAG,0BAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE;IAA7D,CAA6D,CAAC;IAChE,IAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,IAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,IAAM,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACjD,IAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,IAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAM,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,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;AA1CW,QAAA,UAAU,cA0CrB;AAEF,kBAAe,kBAAU,EAAE,CAAC"}
|
package/src/pact.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as q from 'q';
|
|
2
1
|
import { Server, ServerOptions } from './server';
|
|
3
2
|
import { Stub, StubOptions } from './stub';
|
|
4
3
|
import { VerifierOptions } from './verifier';
|
|
@@ -14,15 +13,15 @@ export declare class Pact {
|
|
|
14
13
|
logLevel(level?: LogLevels | number): number | void;
|
|
15
14
|
createServer(options?: ServerOptions): Server;
|
|
16
15
|
listServers(): Server[];
|
|
17
|
-
removeAllServers():
|
|
16
|
+
removeAllServers(): Promise<Server[]>;
|
|
18
17
|
createStub(options?: StubOptions): Stub;
|
|
19
18
|
listStubs(): Stub[];
|
|
20
|
-
removeAllStubs():
|
|
21
|
-
removeAll():
|
|
22
|
-
verifyPacts(options: VerifierOptions):
|
|
23
|
-
createMessage(options: MessageOptions):
|
|
24
|
-
publishPacts(options: PublisherOptions):
|
|
25
|
-
canDeploy(options: CanDeployOptions):
|
|
19
|
+
removeAllStubs(): Promise<Stub[]>;
|
|
20
|
+
removeAll(): Promise<AbstractService[]>;
|
|
21
|
+
verifyPacts(options: VerifierOptions): Promise<string>;
|
|
22
|
+
createMessage(options: MessageOptions): Promise<unknown>;
|
|
23
|
+
publishPacts(options: PublisherOptions): Promise<string[]>;
|
|
24
|
+
canDeploy(options: CanDeployOptions): Promise<CanDeployResponse | string>;
|
|
26
25
|
}
|
|
27
26
|
declare const _default: Pact;
|
|
28
27
|
export default _default;
|
package/src/pact.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.Pact = void 0;
|
|
4
4
|
var path = require("path");
|
|
5
5
|
var server_1 = require("./server");
|
|
6
6
|
var stub_1 = require("./stub");
|
|
@@ -60,10 +60,10 @@ var Pact = (function () {
|
|
|
60
60
|
};
|
|
61
61
|
Pact.prototype.removeAllServers = function () {
|
|
62
62
|
if (this.__servers.length === 0) {
|
|
63
|
-
return
|
|
63
|
+
return Promise.resolve(this.__servers);
|
|
64
64
|
}
|
|
65
65
|
logger_1.default.info('Removing all Pact servers.');
|
|
66
|
-
return
|
|
66
|
+
return Promise.all(_.map(this.__servers, function (server) { return server.delete(); }));
|
|
67
67
|
};
|
|
68
68
|
Pact.prototype.createStub = function (options) {
|
|
69
69
|
var _this = this;
|
|
@@ -89,13 +89,13 @@ var Pact = (function () {
|
|
|
89
89
|
};
|
|
90
90
|
Pact.prototype.removeAllStubs = function () {
|
|
91
91
|
if (this.__stubs.length === 0) {
|
|
92
|
-
return
|
|
92
|
+
return Promise.resolve(this.__stubs);
|
|
93
93
|
}
|
|
94
94
|
logger_1.default.info('Removing all Pact stubs.');
|
|
95
|
-
return
|
|
95
|
+
return Promise.all(_.map(this.__stubs, function (stub) { return stub.delete(); }));
|
|
96
96
|
};
|
|
97
97
|
Pact.prototype.removeAll = function () {
|
|
98
|
-
return
|
|
98
|
+
return Promise.all(_.flatten([this.removeAllStubs(), this.removeAllServers()]));
|
|
99
99
|
};
|
|
100
100
|
Pact.prototype.verifyPacts = function (options) {
|
|
101
101
|
logger_1.default.info('Verifying Pacts.');
|
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.d.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import q = require('q');
|
|
2
1
|
export declare class Publisher {
|
|
3
|
-
static create: (options: PublisherOptions) => Publisher;
|
|
4
2
|
readonly options: PublisherOptions;
|
|
5
3
|
private readonly __argMapping;
|
|
6
4
|
constructor(options: PublisherOptions);
|
|
7
|
-
publish():
|
|
5
|
+
publish(): Promise<string[]>;
|
|
8
6
|
}
|
|
9
7
|
declare const _default: (options: PublisherOptions) => Publisher;
|
|
10
8
|
export default _default;
|
package/src/publisher.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.Publisher = void 0;
|
|
4
4
|
var path = require("path");
|
|
5
5
|
var fs = require("fs");
|
|
6
6
|
var logger_1 = require("./logger");
|
|
7
7
|
var spawn_1 = require("./spawn");
|
|
8
|
+
var promise_timeout_1 = require("promise-timeout");
|
|
8
9
|
var spawn_2 = require("./spawn");
|
|
9
|
-
var util_1 = require("util");
|
|
10
10
|
var pact_standalone_1 = require("./pact-standalone");
|
|
11
|
-
var checkTypes = require(
|
|
11
|
+
var checkTypes = require("check-types");
|
|
12
12
|
var Publisher = (function () {
|
|
13
13
|
function Publisher(options) {
|
|
14
14
|
this.__argMapping = {
|
|
@@ -61,25 +61,30 @@ var Publisher = (function () {
|
|
|
61
61
|
this.options = options;
|
|
62
62
|
}
|
|
63
63
|
Publisher.prototype.publish = function () {
|
|
64
|
+
var _this = this;
|
|
64
65
|
logger_1.default.info("Publishing pacts to broker at: " + this.options.pactBroker);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
return promise_timeout_1.timeout(new Promise(function (resolve, reject) {
|
|
67
|
+
var instance = spawn_1.default.spawnBinary(pact_standalone_1.default.brokerPath, [{ cliVerb: 'publish' }, _this.options], _this.__argMapping);
|
|
68
|
+
var output = [];
|
|
69
|
+
instance.stdout.on('data', function (l) { return output.push(l); });
|
|
70
|
+
instance.stderr.on('data', function (l) { return output.push(l); });
|
|
71
|
+
instance.once('close', function (code) {
|
|
72
|
+
var o = output.join('\n');
|
|
73
|
+
var pactUrls = /^https?:\/\/.*\/pacts\/.*$/gim.exec(o);
|
|
74
|
+
if (code !== 0 || !pactUrls) {
|
|
75
|
+
logger_1.default.error("Could not publish pact:\n" + o);
|
|
76
|
+
return reject(new Error(o));
|
|
77
|
+
}
|
|
78
|
+
logger_1.default.info(o);
|
|
79
|
+
return resolve(pactUrls);
|
|
80
|
+
});
|
|
81
|
+
}), this.options.timeout).catch(function (err) {
|
|
82
|
+
if (err instanceof promise_timeout_1.TimeoutError) {
|
|
83
|
+
throw new Error("Timeout waiting for publication process to complete");
|
|
76
84
|
}
|
|
77
|
-
|
|
78
|
-
return deferred.resolve(pactUrls);
|
|
85
|
+
throw err;
|
|
79
86
|
});
|
|
80
|
-
return deferred.promise.timeout(this.options.timeout, "Timeout waiting for verification process to complete (PID: " + instance.pid + ")");
|
|
81
87
|
};
|
|
82
|
-
Publisher.create = util_1.deprecate(function (options) { return new Publisher(options); }, 'Create function will be removed in future release, please use the default export function or use `new Publisher()`');
|
|
83
88
|
return Publisher;
|
|
84
89
|
}());
|
|
85
90
|
exports.Publisher = Publisher;
|
package/src/publisher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["publisher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["publisher.ts"],"names":[],"mappings":"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"}
|
package/src/server.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AbstractService, LogLevel } from './service';
|
|
2
2
|
export declare class Server extends AbstractService {
|
|
3
|
-
static create: (options?: ServerOptions | undefined) => Server;
|
|
4
3
|
readonly options: ServerOptions;
|
|
5
4
|
constructor(options?: ServerOptions);
|
|
6
5
|
}
|
|
@@ -20,5 +19,6 @@ export interface ServerOptions {
|
|
|
20
19
|
provider?: string;
|
|
21
20
|
monkeypatch?: string;
|
|
22
21
|
logLevel?: LogLevel;
|
|
22
|
+
timeout?: number;
|
|
23
23
|
pactFileWriteMode?: 'overwrite' | 'update' | 'merge';
|
|
24
24
|
}
|
package/src/server.js
CHANGED
|
@@ -3,23 +3,25 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
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");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
15
|
};
|
|
14
16
|
})();
|
|
15
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.Server = void 0;
|
|
16
19
|
var service_1 = require("./service");
|
|
17
|
-
var util_1 = require("util");
|
|
18
20
|
var pact_standalone_1 = require("./pact-standalone");
|
|
19
21
|
var path = require("path");
|
|
20
22
|
var fs = require("fs");
|
|
21
23
|
var mkdirp = require("mkdirp");
|
|
22
|
-
var checkTypes = require(
|
|
24
|
+
var checkTypes = require("check-types");
|
|
23
25
|
var Server = (function (_super) {
|
|
24
26
|
__extends(Server, _super);
|
|
25
27
|
function Server(options) {
|
|
@@ -87,7 +89,6 @@ var Server = (function (_super) {
|
|
|
87
89
|
_this.options = options;
|
|
88
90
|
return _this;
|
|
89
91
|
}
|
|
90
|
-
Server.create = util_1.deprecate(function (options) { return new Server(options); }, 'Create function will be removed in future release, please use the default export function or use `new Server()`');
|
|
91
92
|
return Server;
|
|
92
93
|
}(service_1.AbstractService));
|
|
93
94
|
exports.Server = Server;
|
package/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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"}
|
package/src/service.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import events = require('events');
|
|
3
|
-
import q = require('q');
|
|
4
3
|
import { CliVerbOptions } from './spawn';
|
|
5
4
|
import { ChildProcess } from 'child_process';
|
|
6
5
|
interface AbstractServiceEventInterface {
|
|
@@ -9,7 +8,7 @@ interface AbstractServiceEventInterface {
|
|
|
9
8
|
DELETE_EVENT: string;
|
|
10
9
|
}
|
|
11
10
|
export declare abstract class AbstractService extends events.EventEmitter {
|
|
12
|
-
static
|
|
11
|
+
static get Events(): AbstractServiceEventInterface;
|
|
13
12
|
readonly options: ServiceOptions;
|
|
14
13
|
protected __argMapping: any;
|
|
15
14
|
protected __running: boolean;
|
|
@@ -17,12 +16,12 @@ export declare abstract class AbstractService extends events.EventEmitter {
|
|
|
17
16
|
protected __cliVerb?: CliVerbOptions;
|
|
18
17
|
protected __serviceCommand: string;
|
|
19
18
|
protected constructor(command: string, options: ServiceOptions, argMapping: any, cliVerb?: CliVerbOptions);
|
|
20
|
-
start():
|
|
21
|
-
stop():
|
|
22
|
-
delete():
|
|
19
|
+
start(): Promise<AbstractService>;
|
|
20
|
+
stop(): Promise<AbstractService>;
|
|
21
|
+
delete(): Promise<AbstractService>;
|
|
23
22
|
protected spawnBinary(): ChildProcess;
|
|
24
|
-
protected __waitForServiceUp():
|
|
25
|
-
protected __waitForServiceDown():
|
|
23
|
+
protected __waitForServiceUp(): Promise<unknown>;
|
|
24
|
+
protected __waitForServiceDown(): Promise<unknown>;
|
|
26
25
|
private __call;
|
|
27
26
|
}
|
|
28
27
|
export interface ServiceOptions {
|
|
@@ -34,6 +33,7 @@ export interface ServiceOptions {
|
|
|
34
33
|
sslkey?: string;
|
|
35
34
|
log?: string;
|
|
36
35
|
logLevel?: LogLevel;
|
|
36
|
+
timeout?: number;
|
|
37
37
|
}
|
|
38
38
|
export declare type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
39
39
|
export interface HTTPConfig {
|
package/src/service.js
CHANGED
|
@@ -3,29 +3,36 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
3
3
|
var extendStatics = function (d, b) {
|
|
4
4
|
extendStatics = Object.setPrototypeOf ||
|
|
5
5
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
7
|
return extendStatics(d, b);
|
|
8
8
|
};
|
|
9
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");
|
|
10
12
|
extendStatics(d, b);
|
|
11
13
|
function __() { this.constructor = d; }
|
|
12
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
15
|
};
|
|
14
16
|
})();
|
|
15
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AbstractService = void 0;
|
|
16
19
|
var path = require("path");
|
|
17
20
|
var fs = require("fs");
|
|
18
21
|
var events = require("events");
|
|
19
22
|
var http = require("request");
|
|
20
|
-
var q = require("q");
|
|
21
23
|
var logger_1 = require("./logger");
|
|
22
24
|
var spawn_1 = require("./spawn");
|
|
25
|
+
var promise_timeout_1 = require("promise-timeout");
|
|
23
26
|
var mkdirp = require("mkdirp");
|
|
24
|
-
var checkTypes = require(
|
|
27
|
+
var checkTypes = require("check-types");
|
|
25
28
|
var setTimeout = global.setTimeout;
|
|
26
|
-
var CHECKTIME = 500;
|
|
27
29
|
var RETRY_AMOUNT = 60;
|
|
28
|
-
var
|
|
30
|
+
var getTimeout = function (options) {
|
|
31
|
+
return options.timeout || 30000;
|
|
32
|
+
};
|
|
33
|
+
var getRetryTickTime = function (options) {
|
|
34
|
+
return Math.round(getTimeout(options) / RETRY_AMOUNT);
|
|
35
|
+
};
|
|
29
36
|
var AbstractService = (function (_super) {
|
|
30
37
|
__extends(AbstractService, _super);
|
|
31
38
|
function AbstractService(command, options, argMapping, cliVerb) {
|
|
@@ -47,7 +54,9 @@ var AbstractService = (function (_super) {
|
|
|
47
54
|
checkTypes.assert.number(options.port);
|
|
48
55
|
checkTypes.assert.integer(options.port);
|
|
49
56
|
checkTypes.assert.positive(options.port);
|
|
50
|
-
checkTypes.
|
|
57
|
+
if (!checkTypes.inRange(options.port, 0, 65535)) {
|
|
58
|
+
throw new Error("Port number " + options.port + " is not in the range 0-65535");
|
|
59
|
+
}
|
|
51
60
|
if (checkTypes.not.inRange(options.port, 1024, 49151)) {
|
|
52
61
|
logger_1.default.warn('Like a Boss, you used a port outside of the recommended range (1024 to 49151); I too like to live dangerously.');
|
|
53
62
|
}
|
|
@@ -104,14 +113,14 @@ var AbstractService = (function (_super) {
|
|
|
104
113
|
DELETE_EVENT: 'delete',
|
|
105
114
|
};
|
|
106
115
|
},
|
|
107
|
-
enumerable:
|
|
116
|
+
enumerable: false,
|
|
108
117
|
configurable: true
|
|
109
118
|
});
|
|
110
119
|
AbstractService.prototype.start = function () {
|
|
111
120
|
var _this = this;
|
|
112
121
|
if (this.__instance && this.__instance.connected) {
|
|
113
122
|
logger_1.default.warn("You already have a process running with PID: " + this.__instance.pid);
|
|
114
|
-
return
|
|
123
|
+
return Promise.resolve(this);
|
|
115
124
|
}
|
|
116
125
|
this.__instance = this.spawnBinary();
|
|
117
126
|
this.__instance.once('close', function () { return _this.stop(); });
|
|
@@ -131,20 +140,31 @@ var AbstractService = (function (_super) {
|
|
|
131
140
|
this.__instance.stderr.on('data', function (data) {
|
|
132
141
|
return logger_1.default.error("Pact Binary Error: " + data);
|
|
133
142
|
});
|
|
134
|
-
return this.__waitForServiceUp()
|
|
135
|
-
.timeout(PROCESS_TIMEOUT, "Couldn't start Pact with PID: " + this.__instance.pid)
|
|
143
|
+
return promise_timeout_1.timeout(this.__waitForServiceUp(), getTimeout(this.options))
|
|
136
144
|
.then(function () {
|
|
137
145
|
_this.__running = true;
|
|
138
146
|
_this.emit(AbstractService.Events.START_EVENT, _this);
|
|
139
147
|
return _this;
|
|
148
|
+
})
|
|
149
|
+
.catch(function (err) {
|
|
150
|
+
if (err instanceof promise_timeout_1.TimeoutError) {
|
|
151
|
+
throw new Error("Timeout while waiting to start Pact with PID: " + (_this.__instance ? _this.__instance.pid : 'No Instance'));
|
|
152
|
+
}
|
|
153
|
+
throw err;
|
|
140
154
|
});
|
|
141
155
|
};
|
|
142
156
|
AbstractService.prototype.stop = function () {
|
|
143
157
|
var _this = this;
|
|
144
158
|
var pid = this.__instance ? this.__instance.pid : -1;
|
|
145
|
-
return
|
|
146
|
-
.then(
|
|
147
|
-
.
|
|
159
|
+
return promise_timeout_1.timeout(Promise.resolve(this.__instance)
|
|
160
|
+
.then(spawn_1.default.killBinary)
|
|
161
|
+
.then(function () { return _this.__waitForServiceDown(); }), getTimeout(this.options))
|
|
162
|
+
.catch(function (err) {
|
|
163
|
+
if (err instanceof promise_timeout_1.TimeoutError) {
|
|
164
|
+
throw new Error("Timeout while waiting to stop Pact with PID '" + pid + "'");
|
|
165
|
+
}
|
|
166
|
+
throw err;
|
|
167
|
+
})
|
|
148
168
|
.then(function () {
|
|
149
169
|
_this.__running = false;
|
|
150
170
|
_this.emit(AbstractService.Events.STOP_EVENT, _this);
|
|
@@ -164,70 +184,72 @@ var AbstractService = (function (_super) {
|
|
|
164
184
|
AbstractService.prototype.__waitForServiceUp = function () {
|
|
165
185
|
var _this = this;
|
|
166
186
|
var amount = 0;
|
|
167
|
-
var
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
187
|
+
var waitPromise = new Promise(function (resolve, reject) {
|
|
188
|
+
var retry = function () {
|
|
189
|
+
if (amount >= RETRY_AMOUNT) {
|
|
190
|
+
reject(new Error("Pact startup failed; tried calling service " + RETRY_AMOUNT + " times with no result."));
|
|
191
|
+
}
|
|
192
|
+
setTimeout(check.bind(_this), getRetryTickTime(_this.options));
|
|
193
|
+
};
|
|
194
|
+
var check = function () {
|
|
195
|
+
amount++;
|
|
196
|
+
if (_this.options.port) {
|
|
197
|
+
_this.__call(_this.options).then(function () { return resolve(); }, retry.bind(_this));
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
retry();
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
check();
|
|
204
|
+
});
|
|
205
|
+
return waitPromise;
|
|
185
206
|
};
|
|
186
207
|
AbstractService.prototype.__waitForServiceDown = function () {
|
|
187
208
|
var _this = this;
|
|
188
209
|
var amount = 0;
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
210
|
+
var checkPromise = new Promise(function (resolve, reject) {
|
|
211
|
+
var check = function () {
|
|
212
|
+
amount++;
|
|
213
|
+
if (_this.options.port) {
|
|
214
|
+
_this.__call(_this.options).then(function () {
|
|
215
|
+
if (amount >= RETRY_AMOUNT) {
|
|
216
|
+
reject(new Error("Pact stop failed; tried calling service " + RETRY_AMOUNT + " times with no result."));
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
setTimeout(check, getRetryTickTime(_this.options));
|
|
220
|
+
}, function () { return resolve(); });
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
resolve();
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
check();
|
|
227
|
+
});
|
|
228
|
+
return checkPromise;
|
|
207
229
|
};
|
|
208
230
|
AbstractService.prototype.__call = function (options) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
231
|
+
return new Promise(function (resolve, reject) {
|
|
232
|
+
var config = {
|
|
233
|
+
uri: "http" + (options.ssl ? 's' : '') + "://" + options.host + ":" + options.port,
|
|
234
|
+
method: 'GET',
|
|
235
|
+
headers: {
|
|
236
|
+
'X-Pact-Mock-Service': true,
|
|
237
|
+
'Content-Type': 'application/json',
|
|
238
|
+
},
|
|
239
|
+
};
|
|
240
|
+
if (options.ssl) {
|
|
241
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
|
|
242
|
+
config.agentOptions = {};
|
|
243
|
+
config.agentOptions.rejectUnauthorized = false;
|
|
244
|
+
config.agentOptions.requestCert = false;
|
|
245
|
+
config.agentOptions.agent = false;
|
|
246
|
+
}
|
|
247
|
+
http(config, function (err, res) {
|
|
248
|
+
!err && res.statusCode === 200
|
|
249
|
+
? resolve()
|
|
250
|
+
: reject("HTTP Error: '" + JSON.stringify(err ? err : res) + "'");
|
|
251
|
+
});
|
|
229
252
|
});
|
|
230
|
-
return deferred.promise;
|
|
231
253
|
};
|
|
232
254
|
return AbstractService;
|
|
233
255
|
}(events.EventEmitter));
|