@pact-foundation/pact 10.0.0-beta.58 → 10.0.0-beta.61
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 +36 -2
- package/CODE_OF_CONDUCT.md +1 -1
- package/MIGRATION.md +24 -1
- package/README.md +174 -1371
- package/package.json +26 -38
- package/src/common/logger.js +5 -1
- package/src/common/logger.js.map +1 -1
- package/src/common/net.d.ts +1 -0
- package/src/common/net.js +16 -2
- package/src/common/net.js.map +1 -1
- package/src/common/request.d.ts +0 -1
- package/src/common/request.js +78 -40
- package/src/common/request.js.map +1 -1
- package/src/common/spec.d.ts +2 -0
- package/src/common/spec.js +22 -0
- package/src/common/spec.js.map +1 -0
- package/src/dsl/apolloGraphql.spec.js +24 -0
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +2 -2
- package/src/dsl/graphql.js +1 -0
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +77 -2
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +13 -7
- package/src/dsl/interaction.js +30 -1
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +21 -31
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +27 -32
- package/src/dsl/matchers.js +24 -23
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +101 -96
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +19 -13
- package/src/dsl/mockService.d.ts +1 -46
- package/src/dsl/mockService.js +0 -72
- package/src/dsl/mockService.js.map +1 -1
- package/src/dsl/verifier/index.js +5 -1
- package/src/dsl/verifier/index.js.map +1 -1
- package/src/dsl/verifier/proxy/index.js +5 -1
- package/src/dsl/verifier/proxy/index.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
- package/src/dsl/verifier/proxy/parseBody.js +22 -0
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
- package/src/dsl/{mockService.spec.d.ts → verifier/proxy/parseBody.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/proxy.js +19 -4
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/index.js +5 -1
- package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +5 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +1 -0
- package/src/dsl/verifier/verifier.js +8 -1
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +6 -2
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/httpPact/ffi.d.ts +15 -0
- package/src/httpPact/ffi.js +91 -0
- package/src/httpPact/ffi.js.map +1 -0
- package/src/{dsl/publisher.spec.d.ts → httpPact/ffi.spec.d.ts} +0 -0
- package/src/httpPact/ffi.spec.js +81 -0
- package/src/httpPact/ffi.spec.js.map +1 -0
- package/src/httpPact/index.d.ts +10 -10
- package/src/httpPact/index.js +146 -81
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +117 -220
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/httpPact/tracing.js +4 -4
- package/src/httpPact/tracing.js.map +1 -1
- package/src/index.d.ts +1 -7
- package/src/index.js +8 -9
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +34 -17
- package/src/messageConsumerPact.js +90 -67
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +0 -46
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.js +6 -2
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +22 -3
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/v3/display.d.ts +6 -0
- package/src/v3/display.js +83 -0
- package/src/v3/display.js.map +1 -0
- package/src/v3/index.d.ts +1 -6
- package/src/v3/index.js +6 -7
- package/src/v3/index.js.map +1 -1
- package/src/v3/matchers.d.ts +6 -5
- package/src/v3/matchers.js +7 -1
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +5 -1
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +5 -71
- package/src/v3/pact.js +84 -131
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +81 -0
- package/src/v3/types.js +11 -0
- package/src/v3/types.js.map +1 -0
- package/src/v3/xml/xmlElement.spec.js +36 -49
- package/src/v3/xml/xmlElement.spec.js.map +1 -1
- package/test/helper.js +5 -1
- package/test/helper.js.map +1 -1
- package/src/dsl/mockService.spec.js +0 -124
- package/src/dsl/mockService.spec.js.map +0 -1
- package/src/dsl/publisher.d.ts +0 -10
- package/src/dsl/publisher.js +0 -22
- package/src/dsl/publisher.js.map +0 -1
- package/src/dsl/publisher.spec.js +0 -43
- package/src/dsl/publisher.spec.js.map +0 -1
- package/src/v3/verifier.d.ts +0 -12
- package/src/v3/verifier.js +0 -23
- package/src/v3/verifier.js.map +0 -1
- package/v3/index.d.ts +0 -1
- package/v3/index.js +0 -16
- package/v3/index.js.map +0 -1
package/src/dsl/message.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { AnyJson } from '../common/jsonTypes';
|
|
2
3
|
import { Matcher, AnyTemplate } from './matchers';
|
|
3
4
|
/**
|
|
@@ -9,26 +10,31 @@ import { Matcher, AnyTemplate } from './matchers';
|
|
|
9
10
|
export interface Metadata {
|
|
10
11
|
[name: string]: string | Matcher<string>;
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Defines a state a provider must be in.
|
|
15
|
+
*/
|
|
16
|
+
export interface ProviderState {
|
|
17
|
+
name: string;
|
|
18
|
+
params?: {
|
|
19
|
+
[name: string]: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
12
22
|
/**
|
|
13
23
|
* A Message is an asynchronous Interaction, sent via a Provider
|
|
14
24
|
*
|
|
15
25
|
* @module Message
|
|
16
26
|
*/
|
|
17
27
|
export interface Message {
|
|
18
|
-
providerStates?: [
|
|
19
|
-
name: string;
|
|
20
|
-
}];
|
|
28
|
+
providerStates?: ProviderState[];
|
|
21
29
|
description?: string;
|
|
22
30
|
metadata?: Metadata;
|
|
23
|
-
contents: AnyTemplate;
|
|
31
|
+
contents: AnyTemplate | Buffer;
|
|
24
32
|
}
|
|
25
33
|
export interface ConcreteMessage {
|
|
26
|
-
providerStates?: [
|
|
27
|
-
name: string;
|
|
28
|
-
}];
|
|
34
|
+
providerStates?: ProviderState[];
|
|
29
35
|
description?: string;
|
|
30
36
|
metadata?: Metadata;
|
|
31
|
-
contents: AnyJson;
|
|
37
|
+
contents: AnyJson | Buffer;
|
|
32
38
|
}
|
|
33
39
|
/**
|
|
34
40
|
* A Message Descriptor is a set of additional context for a given message
|
|
@@ -36,9 +42,7 @@ export interface ConcreteMessage {
|
|
|
36
42
|
* @module Message
|
|
37
43
|
*/
|
|
38
44
|
export interface MessageDescriptor {
|
|
39
|
-
providerStates?: [
|
|
40
|
-
name: string;
|
|
41
|
-
}];
|
|
45
|
+
providerStates?: ProviderState[];
|
|
42
46
|
description: string;
|
|
43
47
|
metadata?: Metadata;
|
|
44
48
|
}
|
|
@@ -49,7 +53,7 @@ export interface MessageDescriptor {
|
|
|
49
53
|
*
|
|
50
54
|
* @module Message
|
|
51
55
|
*/
|
|
52
|
-
export declare type MessageConsumer = (m:
|
|
56
|
+
export declare type MessageConsumer = (m: ConcreteMessage) => Promise<unknown>;
|
|
53
57
|
export declare type MessageFromProvider = unknown;
|
|
54
58
|
export declare type MessageFromProviderWithMetadata = {
|
|
55
59
|
__pactMessageMetadata: Record<string, string>;
|
|
@@ -68,5 +72,7 @@ export interface MessageProviders {
|
|
|
68
72
|
[name: string]: MessageProvider;
|
|
69
73
|
}
|
|
70
74
|
export interface StateHandlers {
|
|
71
|
-
[name: string]: (state: string
|
|
75
|
+
[name: string]: (state: string, params?: {
|
|
76
|
+
[name: string]: string;
|
|
77
|
+
}) => Promise<unknown>;
|
|
72
78
|
}
|
package/src/dsl/mockService.d.ts
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mock Service is the HTTP interface to setup the Pact Mock Service.
|
|
3
|
-
* See https://github.com/bethesque/pact-mock_service and
|
|
4
|
-
* https://gist.github.com/bethesque/9d81f21d6f77650811f4.
|
|
5
|
-
* @module MockService
|
|
6
|
-
*/
|
|
7
|
-
import { Request } from '../common/request';
|
|
8
|
-
import { Interaction } from './interaction';
|
|
9
1
|
export declare type PactfileWriteMode = 'overwrite' | 'update' | 'merge';
|
|
10
2
|
export interface Pacticipant {
|
|
11
3
|
name: string;
|
|
@@ -15,44 +7,7 @@ export interface PactDetails {
|
|
|
15
7
|
provider?: Pacticipant;
|
|
16
8
|
pactfile_write_mode: PactfileWriteMode;
|
|
17
9
|
}
|
|
18
|
-
export
|
|
19
|
-
private consumer?;
|
|
20
|
-
private provider?;
|
|
21
|
-
private port;
|
|
22
|
-
private host;
|
|
23
|
-
private ssl;
|
|
24
|
-
private pactfileWriteMode;
|
|
10
|
+
export interface MockService {
|
|
25
11
|
pactDetails: PactDetails;
|
|
26
|
-
request: Request;
|
|
27
12
|
baseUrl: string;
|
|
28
|
-
/**
|
|
29
|
-
* @param {string} consumer - the consumer name
|
|
30
|
-
* @param {string} provider - the provider name
|
|
31
|
-
* @param {number} port - the mock service port, defaults to 1234
|
|
32
|
-
* @param {string} host - the mock service host, defaults to 127.0.0.1
|
|
33
|
-
* @param {boolean} ssl - which protocol to use, defaults to false (HTTP)
|
|
34
|
-
* @param {string} pactfileWriteMode - 'overwrite' | 'update' | 'merge', defaults to 'overwrite'
|
|
35
|
-
*/
|
|
36
|
-
constructor(consumer?: string | undefined, provider?: string | undefined, port?: number, host?: string, ssl?: boolean, pactfileWriteMode?: PactfileWriteMode);
|
|
37
|
-
/**
|
|
38
|
-
* Adds an interaction
|
|
39
|
-
* @param {Interaction} interaction
|
|
40
|
-
* @returns {Promise}
|
|
41
|
-
*/
|
|
42
|
-
addInteraction(interaction: Interaction): Promise<string>;
|
|
43
|
-
/**
|
|
44
|
-
* Removes all interactions.
|
|
45
|
-
* @returns {Promise}
|
|
46
|
-
*/
|
|
47
|
-
removeInteractions(): Promise<string>;
|
|
48
|
-
/**
|
|
49
|
-
* Verify all interactions.
|
|
50
|
-
* @returns {Promise}
|
|
51
|
-
*/
|
|
52
|
-
verify(): Promise<string>;
|
|
53
|
-
/**
|
|
54
|
-
* Writes the Pact file.
|
|
55
|
-
* @returns {Promise}
|
|
56
|
-
*/
|
|
57
|
-
writePact(): Promise<string>;
|
|
58
13
|
}
|
package/src/dsl/mockService.js
CHANGED
|
@@ -1,75 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MockService = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Mock Service is the HTTP interface to setup the Pact Mock Service.
|
|
6
|
-
* See https://github.com/bethesque/pact-mock_service and
|
|
7
|
-
* https://gist.github.com/bethesque/9d81f21d6f77650811f4.
|
|
8
|
-
* @module MockService
|
|
9
|
-
*/
|
|
10
|
-
var request_1 = require("../common/request");
|
|
11
|
-
var MockService = /** @class */ (function () {
|
|
12
|
-
/**
|
|
13
|
-
* @param {string} consumer - the consumer name
|
|
14
|
-
* @param {string} provider - the provider name
|
|
15
|
-
* @param {number} port - the mock service port, defaults to 1234
|
|
16
|
-
* @param {string} host - the mock service host, defaults to 127.0.0.1
|
|
17
|
-
* @param {boolean} ssl - which protocol to use, defaults to false (HTTP)
|
|
18
|
-
* @param {string} pactfileWriteMode - 'overwrite' | 'update' | 'merge', defaults to 'overwrite'
|
|
19
|
-
*/
|
|
20
|
-
function MockService(
|
|
21
|
-
// Deprecated as at https://github.com/pact-foundation/pact-js/issues/105
|
|
22
|
-
consumer, provider,
|
|
23
|
-
// Valid
|
|
24
|
-
port, host, ssl, pactfileWriteMode) {
|
|
25
|
-
if (port === void 0) { port = 1234; }
|
|
26
|
-
if (host === void 0) { host = '127.0.0.1'; }
|
|
27
|
-
if (ssl === void 0) { ssl = false; }
|
|
28
|
-
if (pactfileWriteMode === void 0) { pactfileWriteMode = 'overwrite'; }
|
|
29
|
-
this.consumer = consumer;
|
|
30
|
-
this.provider = provider;
|
|
31
|
-
this.port = port;
|
|
32
|
-
this.host = host;
|
|
33
|
-
this.ssl = ssl;
|
|
34
|
-
this.pactfileWriteMode = pactfileWriteMode;
|
|
35
|
-
this.request = new request_1.Request();
|
|
36
|
-
this.baseUrl = "".concat(this.ssl ? 'https' : 'http', "://").concat(this.host, ":").concat(this.port);
|
|
37
|
-
this.pactDetails = {
|
|
38
|
-
consumer: this.consumer ? { name: this.consumer } : undefined,
|
|
39
|
-
pactfile_write_mode: this.pactfileWriteMode,
|
|
40
|
-
provider: this.provider ? { name: this.provider } : undefined,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Adds an interaction
|
|
45
|
-
* @param {Interaction} interaction
|
|
46
|
-
* @returns {Promise}
|
|
47
|
-
*/
|
|
48
|
-
MockService.prototype.addInteraction = function (interaction) {
|
|
49
|
-
return this.request.send(request_1.HTTPMethods.POST, "".concat(this.baseUrl, "/interactions"), JSON.stringify(interaction.json()));
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Removes all interactions.
|
|
53
|
-
* @returns {Promise}
|
|
54
|
-
*/
|
|
55
|
-
MockService.prototype.removeInteractions = function () {
|
|
56
|
-
return this.request.send(request_1.HTTPMethods.DELETE, "".concat(this.baseUrl, "/interactions"));
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Verify all interactions.
|
|
60
|
-
* @returns {Promise}
|
|
61
|
-
*/
|
|
62
|
-
MockService.prototype.verify = function () {
|
|
63
|
-
return this.request.send(request_1.HTTPMethods.GET, "".concat(this.baseUrl, "/interactions/verification"));
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Writes the Pact file.
|
|
67
|
-
* @returns {Promise}
|
|
68
|
-
*/
|
|
69
|
-
MockService.prototype.writePact = function () {
|
|
70
|
-
return this.request.send(request_1.HTTPMethods.POST, "".concat(this.baseUrl, "/pact"), JSON.stringify(this.pactDetails));
|
|
71
|
-
};
|
|
72
|
-
return MockService;
|
|
73
|
-
}());
|
|
74
|
-
exports.MockService = MockService;
|
|
75
3
|
//# sourceMappingURL=mockService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockService.js","sourceRoot":"","sources":["../../../src/dsl/mockService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mockService.js","sourceRoot":"","sources":["../../../src/dsl/mockService.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import * as http from 'http';
|
|
3
|
+
interface ReqBodyExtended extends http.IncomingMessage {
|
|
4
|
+
body?: Buffer | Record<string, unknown>;
|
|
5
|
+
}
|
|
6
|
+
export declare const parseBody: (proxyReq: http.ClientRequest, req: ReqBodyExtended) => void;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseBody = void 0;
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
var parseBody = function (proxyReq, req) {
|
|
6
|
+
if (!req.body || !Object.keys(req.body).length) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
var bodyData;
|
|
10
|
+
if (Buffer.isBuffer(req.body)) {
|
|
11
|
+
bodyData = req.body;
|
|
12
|
+
}
|
|
13
|
+
else if (typeof req.body === 'object') {
|
|
14
|
+
bodyData = JSON.stringify(req.body);
|
|
15
|
+
}
|
|
16
|
+
if (bodyData) {
|
|
17
|
+
proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
|
|
18
|
+
proxyReq.write(bodyData);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.parseBody = parseBody;
|
|
22
|
+
//# sourceMappingURL=parseBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseBody.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.ts"],"names":[],"mappings":";;;AAMA,8DAA8D;AACvD,IAAM,SAAS,GAAG,UACvB,QAA4B,EAC5B,GAAoB;IAEpB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;QAC9C,OAAO;KACR;IAED,IAAI,QAAQ,CAAC;IAEb,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7B,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;KACrB;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QACvC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC;AApBW,QAAA,SAAS,aAoBpB"}
|
|
File without changes
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
+
function step(op) {
|
|
39
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
+
while (_) try {
|
|
41
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
+
switch (op[0]) {
|
|
44
|
+
case 0: case 1: t = op; break;
|
|
45
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
+
default:
|
|
49
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
+
if (t[2]) _.ops.pop();
|
|
54
|
+
_.trys.pop(); continue;
|
|
55
|
+
}
|
|
56
|
+
op = body.call(thisArg, _);
|
|
57
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
62
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
|
+
};
|
|
64
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
+
var chai_1 = __importDefault(require("chai"));
|
|
66
|
+
var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
67
|
+
var sinon_1 = __importDefault(require("sinon"));
|
|
68
|
+
var http = __importStar(require("http"));
|
|
69
|
+
var parseBody_1 = require("./parseBody");
|
|
70
|
+
chai_1.default.use(chai_as_promised_1.default);
|
|
71
|
+
var expect = chai_1.default.expect;
|
|
72
|
+
describe('Verifier', function () {
|
|
73
|
+
afterEach(function () {
|
|
74
|
+
sinon_1.default.restore();
|
|
75
|
+
});
|
|
76
|
+
describe('#parseBody', function () {
|
|
77
|
+
var proxyReq;
|
|
78
|
+
beforeEach(function () {
|
|
79
|
+
proxyReq = sinon_1.default.createStubInstance(http.ClientRequest);
|
|
80
|
+
});
|
|
81
|
+
describe('when request body exists', function () {
|
|
82
|
+
it('it writes the request if the body is a buffer', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
83
|
+
var req;
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
req = { body: '' };
|
|
86
|
+
req.body = Buffer.from('foo');
|
|
87
|
+
(0, parseBody_1.parseBody)(proxyReq, req);
|
|
88
|
+
expect(proxyReq.setHeader).to.have.been.called;
|
|
89
|
+
expect(proxyReq.write).to.have.been.called;
|
|
90
|
+
return [2 /*return*/];
|
|
91
|
+
});
|
|
92
|
+
}); });
|
|
93
|
+
it('it writes the request if the body is an object', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
94
|
+
var req;
|
|
95
|
+
return __generator(this, function (_a) {
|
|
96
|
+
req = { body: { foo: 'bar' } };
|
|
97
|
+
(0, parseBody_1.parseBody)(proxyReq, req);
|
|
98
|
+
expect(proxyReq.setHeader).to.have.been.called;
|
|
99
|
+
expect(proxyReq.write).to.have.been.called;
|
|
100
|
+
return [2 /*return*/];
|
|
101
|
+
});
|
|
102
|
+
}); });
|
|
103
|
+
});
|
|
104
|
+
describe('when request body does not exist', function () {
|
|
105
|
+
it('it does not invoke the request rewrite', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
106
|
+
var req;
|
|
107
|
+
return __generator(this, function (_a) {
|
|
108
|
+
req = 'foo';
|
|
109
|
+
(0, parseBody_1.parseBody)(proxyReq, req);
|
|
110
|
+
expect(proxyReq.setHeader).to.have.not.been.called;
|
|
111
|
+
expect(proxyReq.write).to.have.not.been.called;
|
|
112
|
+
return [2 /*return*/];
|
|
113
|
+
});
|
|
114
|
+
}); });
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=parseBody.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseBody.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,gDAA0B;AAC1B,yCAA6B;AAE7B,yCAAwC;AAExC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,UAAU,EAAE;IACnB,SAAS,CAAC;QACR,eAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE;QACrB,IAAI,QAAa,CAAC;QAElB,UAAU,CAAC;YACT,QAAQ,GAAG,eAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,EAAE,CAAC,+CAA+C,EAAE;;;oBAC5C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAC5C,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE;;;oBAC7C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1C,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kCAAkC,EAAE;YAC3C,EAAE,CAAC,wCAAwC,EAAE;;;oBACrC,GAAG,GAAQ,KAAK,CAAC;oBACvB,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAChD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -31,6 +35,7 @@ var logger_1 = __importDefault(require("../../../common/logger"));
|
|
|
31
35
|
var stateHandler_1 = require("./stateHandler/stateHandler");
|
|
32
36
|
var hooks_1 = require("./hooks");
|
|
33
37
|
var tracer_1 = require("./tracer");
|
|
38
|
+
var parseBody_1 = require("./parseBody");
|
|
34
39
|
// Listens for the server start event
|
|
35
40
|
var waitForServerReady = function (server) {
|
|
36
41
|
return new Promise(function (resolve, reject) {
|
|
@@ -46,8 +51,17 @@ var createProxy = function (config, stateSetupPath) {
|
|
|
46
51
|
var app = (0, express_1.default)();
|
|
47
52
|
var proxy = new http_proxy_1.default();
|
|
48
53
|
logger_1.default.trace("Setting up state proxy with path: ".concat(stateSetupPath));
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
// NOTE: if you change any of these global middleware that consumes the body
|
|
55
|
+
// review the "proxyReq" event reader below
|
|
56
|
+
app.use(body_parser_1.default.json({
|
|
57
|
+
type: [
|
|
58
|
+
'application/json',
|
|
59
|
+
'application/json; charset=utf-8',
|
|
60
|
+
'application/json; charset=utf8',
|
|
61
|
+
],
|
|
62
|
+
}));
|
|
63
|
+
app.use(body_parser_1.default.urlencoded({ extended: true }));
|
|
64
|
+
app.use('/*', body_parser_1.default.raw({ type: '*/*' }));
|
|
51
65
|
(0, hooks_1.registerBeforeHook)(app, config, stateSetupPath);
|
|
52
66
|
(0, hooks_1.registerAfterHook)(app, config, stateSetupPath);
|
|
53
67
|
// Trace req/res logging
|
|
@@ -64,13 +78,14 @@ var createProxy = function (config, stateSetupPath) {
|
|
|
64
78
|
app.post(stateSetupPath, (0, stateHandler_1.createProxyStateHandler)(config));
|
|
65
79
|
// Proxy server will respond to Verifier process
|
|
66
80
|
app.all('/*', function (req, res) {
|
|
67
|
-
logger_1.default.debug("Proxying ".concat(req.path));
|
|
81
|
+
logger_1.default.debug("Proxying ".concat(req.method, ": ").concat(req.path));
|
|
68
82
|
proxy.web(req, res, {
|
|
69
83
|
changeOrigin: config.changeOrigin === true,
|
|
70
84
|
secure: config.validateSSL === true,
|
|
71
85
|
target: config.providerBaseUrl,
|
|
72
86
|
});
|
|
73
87
|
});
|
|
88
|
+
proxy.on('proxyReq', function (proxyReq, req) { return (0, parseBody_1.parseBody)(proxyReq, req); });
|
|
74
89
|
return http.createServer(app).listen();
|
|
75
90
|
};
|
|
76
91
|
exports.createProxy = createProxy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateHandler.spec.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stateHandler.spec.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,gDAAwC;AAIxC,+CAAyD;AACzD,+DAAmD;AAGnD,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,0BAA0B,EAAE;IACnC,IAAI,GAAQ,CAAC;IACb,IAAM,YAAY,GAAG;QACnB,MAAM,EAAE,UAAC,MAAc;YACrB,GAAG,GAAG,MAAM,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,cAAO,CAAC;aACf,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,UAAC,IAAS,IAAK,OAAA,IAAI,EAAJ,CAAI;KAC1B,CAAC;IAEF,OAAO,CAAC,wCAAwC,EAAE;QAChD,UAAU,CAAC;YACT,eAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,SAAS,CAAC;YACP,iBAAiB,CAAC,WAAwB,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,eAAe,EAAE;;;;;wBACZ,CAAC,GAAG,IAAA,sCAAuB,EAAC,EAAkB,CAAC,CAAC;wBACzC,qBAAM,CAAC,CAClB,EAAqB,EACrB,YAAgC,CACjC,EAAA;;wBAHK,IAAI,GAAG,SAGZ;wBAED,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;;aAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,8CAA8C,EAAE;QACtD,UAAU,CAAC;YACT,eAAK;iBACF,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC;iBACtC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC;YACP,iBAAiB,CAAC,WAAwB,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,eAAe,EAAE;;;;;wBACZ,CAAC,GAAG,IAAA,sCAAuB,EAAC,EAAkB,CAAC,CAAC;wBACtD,qBAAM,CAAC,CAAC,EAAqB,EAAE,YAAgC,CAAC,EAAA;;wBAAhE,SAAgE,CAAC;wBAEjE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;;;aACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
14
|
if (k2 === undefined) k2 = k;
|
|
15
|
-
Object.
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
16
20
|
}) : (function(o, m, k, k2) {
|
|
17
21
|
if (k2 === undefined) k2 = k;
|
|
18
22
|
o[k2] = m[k];
|
|
@@ -64,6 +68,9 @@ var Verifier = /** @class */ (function () {
|
|
|
64
68
|
if (this.config.validateSSL === undefined) {
|
|
65
69
|
this.config.validateSSL = true;
|
|
66
70
|
}
|
|
71
|
+
if (this.config.proxyHost) {
|
|
72
|
+
this.address = "http://".concat(this.config.proxyHost);
|
|
73
|
+
}
|
|
67
74
|
if (this.config.changeOrigin === undefined) {
|
|
68
75
|
this.config.changeOrigin = false;
|
|
69
76
|
if (!this.isLocalVerification()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,yEAAwD;AACxD,iCAAuC;AAEvC,uCAA2B;AAE3B,4DAA0D;AAE1D,uFAAiE;AACjE,wCAAkD;AAClD,iCAA0D;AAG1D;IASE,kBAAY,MAAuB;QAAnC,iBAkCC;QA1CO,YAAO,GAAG,kBAAkB,CAAC;QAE7B,mBAAc,GAAG,aAAa,CAAC;QAI/B,qBAAgB,GAAa,CAAC,wBAAwB,CAAC,CAAC;QAG9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC1D,mBAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAA,oBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAC,CAAwB;YACrD,IAAI,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClB,gBAAM,CAAC,IAAI,CACT,UAAG,CAAC,2DAAwD,CAC7D,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;SAChC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,iBAAU,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;YAEjC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;gBAChC,gBAAM,CAAC,KAAK,CACV,qCAA8B,IAAI,CAAC,MAAM,CAAC,eAAe,kFAA+E,CACzI,CAAC;aACH;SACF;IACH,CAAC;IAED;;;;OAIG;IACI,iCAAc,GAArB;QACE,gBAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAElC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,4BAAkB,CAAC,uCAAuC,CAAC,CAChE,CAAC;SACH;QAED,0CAA0C;QAC1C,IAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7D,gBAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAEnD,0DAA0D;QAC1D,OAAO,IAAA,0BAAkB,EAAC,MAAM,CAAC;aAC9B,IAAI,CAAC,UAAC,MAAM;YACX,gBAAM,CAAC,KAAK,CAAC,4BAAqB,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAE,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;aACpC,IAAI,CAAC,UAAC,MAAM;YACX,gBAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,UAAC,CAAC;YACP,gBAAM,CAAC,KAAK,CAAC,8BAAuB,CAAC,CAAC,OAAO,sBAAmB,CAAC,CAAC;YAClE,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mCAAmC;IAC3B,0CAAuB,GAA/B;QAAA,iBAYC;QAXC,OAAO,UAAC,MAAmB;YACzB,IAAM,IAAI,uBACR,sBAAsB,EAAE,UAAG,KAAI,CAAC,OAAO,cAAI,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,SAC9D,KAAI,CAAC,cAAc,CACnB,IACC,IAAA,aAAI,EAAC,KAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAChC,eAAe,EAAE,UAAG,KAAI,CAAC,OAAO,cAAI,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAE,GAC5D,CAAC;YACF,gBAAM,CAAC,KAAK,CAAC,gCAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAE,CAAC,CAAC;YAC9D,OAAO,mBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAEO,sCAAmB,GAA3B;QACE,IAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACnD,OAAO,CACL,oBAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,oBAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CACvE,CAAC;IACJ,CAAC;IACH,eAAC;AAAD,CAAC,AAvGD,IAuGC;AAvGY,4BAAQ"}
|
|
@@ -12,7 +12,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
};
|
|
13
13
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
14
|
if (k2 === undefined) k2 = k;
|
|
15
|
-
Object.
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
16
20
|
}) : (function(o, m, k, k2) {
|
|
17
21
|
if (k2 === undefined) k2 = k;
|
|
18
22
|
o[k2] = m[k];
|
|
@@ -103,7 +107,7 @@ describe('Verifier', function () {
|
|
|
103
107
|
});
|
|
104
108
|
context('when logLevel is not provided', function () {
|
|
105
109
|
it('does not modify the log setting', function () {
|
|
106
|
-
var
|
|
110
|
+
var rest = __rest(opts, []);
|
|
107
111
|
v = new verifier_1.Verifier(__assign({}, rest));
|
|
108
112
|
expect(spy.callCount).to.eql(0);
|
|
109
113
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.spec.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verifier.spec.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,gDAA0B;AAE1B,yEAAsE;AAEtE,mDAAuC;AACvC,+DAAyC;AAIzC,uCAAsC;AAEtC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,UAAU,EAAE;IACnB,SAAS,CAAC;QACR,eAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAM,KAAK,GAAG,cAAc,CAAC;IAC7B,IAAI,CAAW,CAAC;IAChB,IAAI,IAAqB,CAAC;IAC1B,IAAI,QAAiB,CAAC;IACtB,IAAM,eAAe,GAAG,mBAAmB,CAAC;IAE5C,UAAU,CAAC;;QACT,QAAQ,GAAG,KAAK,CAAC;QACjB,IAAI,GAAG;YACL,eAAe,iBAAA;YACf,aAAa,EAAE,UAAC,GAAG,EAAE,GAAG,EAAE,IAAI;gBAC5B,IAAI,EAAE,CAAC;YACT,CAAC;YACD,aAAa;gBACX,GAAC,KAAK,IAAG;oBACP,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;mBACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,0BAA0B,EAAE;YACnC,EAAE,CAAC,sCAAsC,EAAE;gBACzC,CAAC,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,CAAC;gBAEvB,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;oBACjD,eAAe,iBAAA;iBAChB,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;gBAC1D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE;QAC3B,IAAI,GAAmB,CAAC;QAExB,UAAU,CAAC;YACT,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,mBAAc,EAAE,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,2BAA2B,EAAE;YACnC,EAAE,CAAC,iCAAiC,EAAE;gBACpC,CAAC,GAAG,IAAI,mBAAQ,uBACX,IAAI,KACP,QAAQ,EAAE,OAAO,IACjB,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,+BAA+B,EAAE;YACvC,EAAE,CAAC,iCAAiC,EAAE;gBACpC,IAAW,IAAI,UAAK,IAAI,EAAlB,EAAW,CAAO,CAAC;gBACzB,CAAC,GAAG,IAAI,mBAAQ,cACX,IAAI,EACP,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,qCAAqC,EAAE;YAC7C,EAAE,CAAC,gBAAgB,EAAE;gBACnB,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,gBAAM,EAAE,MAAM,CAAC,CAAC;gBAChC,CAAC,GAAG,IAAI,mBAAQ,uBACX,IAAI,KACP,sBAAsB,EAAE,gBAAgB,IACxC,CAAC;gBAEH,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE;QAC1B,UAAU,CAAC;YACT,eAAK,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC;gBACvC,KAAK,EAAE;oBACL,QAAQ,GAAG,IAAI,CAAC;oBAChB,OAAO,EAAY,CAAC;gBACtB,CAAC;gBACD,OAAO,EAAE,cAAM,OAAA,CAAC;oBACd,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,yBAAyB;iBACnC,CAAC,EAJa,CAIb;aACO,CAAC,CAAC;YACb,eAAK,CAAC,IAAI,CAAC,KAAK,EAAE,oBAA2B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sCAAsC,EAAE;YAC/C,EAAE,CAAC,qBAAqB,EAAE;gBACxB,OAAA,MAAM,CACJ,cAAM,OAAA,IAAI,mBAAQ,CAAC,SAAuC,CAAC,EAArD,CAAqD,CAC5D,CAAC,EAAE,CAAC,KAAK,EAAE;YAFZ,CAEY,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uCAAuC,EAAE;YAChD,UAAU,CAAC;gBACT,CAAC,GAAG,IAAI,mBAAQ,uBAAM,IAAI,KAAE,QAAQ,EAAE,OAAmB,IAAG,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,wCAAwC,EAAE;gBAChD,EAAE,CAAC,0CAA0C,EAAE;oBAC7C,eAAK;yBACF,IAAI,CAAC,CAAC,EAAE,yBAAgC,CAAC;yBACzC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;oBAEpC,IAAM,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;oBAE/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;wBACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,4BAA4B,EAAE;gBACpC,EAAE,CAAC,0CAA0C,EAAE;oBAC7C,eAAK;yBACF,IAAI,CAAC,CAAC,EAAE,yBAAgC,CAAC;yBACzC,OAAO,CAAC,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAlC,CAAkC,CAAC,CAAC;oBAErD,IAAM,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;oBAE/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAChD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;oBAC9B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ConsumerInteraction } from '@pact-foundation/pact-core/src/consumer/index';
|
|
2
|
+
import { RequestOptions, ResponseOptions, Headers, Query } from '../dsl/interaction';
|
|
3
|
+
import { AnyTemplate } from 'v3/matchers';
|
|
4
|
+
declare enum INTERACTION_PART {
|
|
5
|
+
REQUEST = 1,
|
|
6
|
+
RESPONSE = 2
|
|
7
|
+
}
|
|
8
|
+
export declare const contentTypeFromHeaders: (headers: Headers | undefined, defaultContentType: string) => string;
|
|
9
|
+
export declare const setRequestDetails: (interaction: ConsumerInteraction, req: RequestOptions) => void;
|
|
10
|
+
export declare const setResponseDetails: (interaction: ConsumerInteraction, res: ResponseOptions) => void;
|
|
11
|
+
export declare const setRequestMethodAndPath: (interaction: ConsumerInteraction, req: RequestOptions) => void;
|
|
12
|
+
export declare const setQuery: (interaction: ConsumerInteraction, query?: Query) => void;
|
|
13
|
+
export declare const setBody: (part: INTERACTION_PART, interaction: ConsumerInteraction, headers?: Headers, body?: AnyTemplate) => void;
|
|
14
|
+
export declare const setHeaders: (part: INTERACTION_PART, interaction: ConsumerInteraction, headers?: Headers) => void;
|
|
15
|
+
export {};
|