@pact-foundation/pact 16.0.3 → 16.1.0
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 +19 -0
- package/package.json +9 -9
- package/src/common/matchingRules.d.ts +19 -0
- package/src/common/matchingRules.js +80 -0
- package/src/common/matchingRules.js.map +1 -0
- package/src/dsl/verifier/verifier.js +1 -2
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/v3/matchers.d.ts +6 -0
- package/src/v3/matchers.js +11 -1
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/pact.d.ts +21 -1
- package/src/v3/pact.js +33 -0
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +19 -0
- package/src/v4/http/requestBuilder.d.ts +10 -1
- package/src/v4/http/requestBuilder.js +15 -0
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.d.ts +10 -1
- package/src/v4/http/requestWithPluginBuilder.js +12 -0
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.d.ts +10 -1
- package/src/v4/http/responseBuilder.js +15 -0
- package/src/v4/http/responseBuilder.js.map +1 -1
- package/src/v4/http/types.d.ts +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [16.1.0](https://github.com/pact-foundation/pact-js/compare/v16.0.4...v16.1.0) (2026-02-06)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add support for with_matching_rules and add example usage ([#1640](https://github.com/pact-foundation/pact-js/issues/1640)) ([31a277b](https://github.com/pact-foundation/pact-js/commit/31a277bdf8590bae80dc6c38f7e6e48449eb3fa7))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Fixes and Improvements
|
|
14
|
+
|
|
15
|
+
* **deps:** update dependency @pact-foundation/pact-core to v18 ([#1635](https://github.com/pact-foundation/pact-js/issues/1635)) ([1700f6f](https://github.com/pact-foundation/pact-js/commit/1700f6f0ba3dfd7eccf6ca651e668df5b6cab21e))
|
|
16
|
+
|
|
17
|
+
## [16.0.4](https://github.com/pact-foundation/pact-js/compare/v16.0.3...v16.0.4) (2025-12-19)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Fixes and Improvements
|
|
21
|
+
|
|
22
|
+
* ability to validate both message and HTTP ([#1634](https://github.com/pact-foundation/pact-js/issues/1634)) ([187684c](https://github.com/pact-foundation/pact-js/commit/187684cab11c06f1206f54479a022ed61c6a0692)), closes [#1633](https://github.com/pact-foundation/pact-js/issues/1633)
|
|
23
|
+
|
|
5
24
|
## [16.0.3](https://github.com/pact-foundation/pact-js/compare/v16.0.2...v16.0.3) (2025-12-18)
|
|
6
25
|
|
|
7
26
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pact-foundation/pact",
|
|
3
|
-
"version": "16.0
|
|
3
|
+
"version": "16.1.0",
|
|
4
4
|
"description": "Pact for all things Javascript",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
]
|
|
104
104
|
},
|
|
105
105
|
"dependencies": {
|
|
106
|
-
"@pact-foundation/pact-core": "^
|
|
106
|
+
"@pact-foundation/pact-core": "^18.0.0",
|
|
107
107
|
"axios": "^1.12.2",
|
|
108
108
|
"body-parser": "^2.2.0",
|
|
109
109
|
"chalk": "4.1.2",
|
|
@@ -120,25 +120,25 @@
|
|
|
120
120
|
"stack-utils": "^2.0.6"
|
|
121
121
|
},
|
|
122
122
|
"devDependencies": {
|
|
123
|
-
"@babel/cli": "7.28.
|
|
124
|
-
"@babel/core": "7.
|
|
125
|
-
"@babel/preset-env": "7.
|
|
123
|
+
"@babel/cli": "7.28.6",
|
|
124
|
+
"@babel/core": "7.29.0",
|
|
125
|
+
"@babel/preset-env": "7.29.0",
|
|
126
126
|
"@pact-foundation/pact-js-prettier-config": "1.0.0",
|
|
127
127
|
"@types/chai": "5.2.3",
|
|
128
128
|
"@types/chai-as-promised": "8.0.2",
|
|
129
129
|
"@types/express": "4.17.25",
|
|
130
130
|
"@types/http-proxy": "1.17.17",
|
|
131
|
-
"@types/lodash": "4.17.
|
|
131
|
+
"@types/lodash": "4.17.23",
|
|
132
132
|
"@types/mocha": "10.0.10",
|
|
133
133
|
"@types/nock": "11.1.0",
|
|
134
|
-
"@types/node": "24.10.
|
|
134
|
+
"@types/node": "24.10.10",
|
|
135
135
|
"@types/ramda": "0.31.1",
|
|
136
136
|
"@types/sinon": "21.0.0",
|
|
137
137
|
"@types/sinon-chai": "4.0.0",
|
|
138
138
|
"@types/stack-utils": "2.0.3",
|
|
139
139
|
"@typescript-eslint/eslint-plugin": "5.62.0",
|
|
140
140
|
"@typescript-eslint/parser": "5.62.0",
|
|
141
|
-
"chai": "6.2.
|
|
141
|
+
"chai": "6.2.2",
|
|
142
142
|
"chai-as-promised": "8.0.2",
|
|
143
143
|
"commit-and-tag-version": "12.6.1",
|
|
144
144
|
"copyfiles": "2.4.1",
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
"prettier": "3.6.2",
|
|
157
157
|
"proxyquire": "2.1.3",
|
|
158
158
|
"rimraf": "6.1.2",
|
|
159
|
-
"sinon": "21.0.
|
|
159
|
+
"sinon": "21.0.1",
|
|
160
160
|
"sinon-chai": "4.0.1",
|
|
161
161
|
"source-map-support": "0.5.21",
|
|
162
162
|
"tsx": "4.21.0",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Rules, Matcher } from '../v3/types';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a matcher to the FFI format expected by pact-core
|
|
4
|
+
* @param matcher The matcher to convert
|
|
5
|
+
* @returns The matcher in FFI format
|
|
6
|
+
*/
|
|
7
|
+
export declare const convertMatcherToFFI: (matcher: Matcher<unknown>) => Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Validates that the rules parameter is of type Rules
|
|
10
|
+
* @param rules The rules to validate
|
|
11
|
+
* @throws Error if rules is not a valid Rules object
|
|
12
|
+
*/
|
|
13
|
+
export declare const validateRules: (rules: Rules) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Converts Rules format to FFI matching rules format
|
|
16
|
+
* @param rules Rules in the user-friendly format
|
|
17
|
+
* @returns Rules in FFI format
|
|
18
|
+
*/
|
|
19
|
+
export declare const convertRulesToFFI: (rules: Rules) => Record<string, unknown>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertRulesToFFI = exports.validateRules = exports.convertMatcherToFFI = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Converts a matcher to the FFI format expected by pact-core
|
|
6
|
+
* @param matcher The matcher to convert
|
|
7
|
+
* @returns The matcher in FFI format
|
|
8
|
+
*/
|
|
9
|
+
var convertMatcherToFFI = function (matcher) {
|
|
10
|
+
var result = {};
|
|
11
|
+
if (matcher['pact:matcher:type']) {
|
|
12
|
+
result.match = matcher['pact:matcher:type'];
|
|
13
|
+
}
|
|
14
|
+
Object.keys(matcher).forEach(function (key) {
|
|
15
|
+
if (key !== 'pact:matcher:type' && key !== 'pact:generator:type') {
|
|
16
|
+
result[key] = matcher[key];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
exports.convertMatcherToFFI = convertMatcherToFFI;
|
|
22
|
+
/**
|
|
23
|
+
* Validates that the rules parameter is of type Rules
|
|
24
|
+
* @param rules The rules to validate
|
|
25
|
+
* @throws Error if rules is not a valid Rules object
|
|
26
|
+
*/
|
|
27
|
+
var validateRules = function (rules) {
|
|
28
|
+
if (!rules || typeof rules !== 'object' || Array.isArray(rules)) {
|
|
29
|
+
throw new Error('rules must be an object');
|
|
30
|
+
}
|
|
31
|
+
var validParts = ['path', 'body', 'header', 'query', 'status'];
|
|
32
|
+
var ruleKeys = Object.keys(rules);
|
|
33
|
+
ruleKeys.forEach(function (key) {
|
|
34
|
+
if (!validParts.includes(key)) {
|
|
35
|
+
throw new Error("Invalid part \"".concat(key, "\" in rules. Valid parts are: ").concat(validParts.join(', ')));
|
|
36
|
+
}
|
|
37
|
+
var partRules = rules[key];
|
|
38
|
+
if (!partRules)
|
|
39
|
+
return;
|
|
40
|
+
var rulesArray = Array.isArray(partRules) ? partRules : [partRules];
|
|
41
|
+
rulesArray.forEach(function (rule, index) {
|
|
42
|
+
if (!rule || typeof rule !== 'object') {
|
|
43
|
+
throw new Error("Rule at ".concat(key, "[").concat(index, "] must be an object"));
|
|
44
|
+
}
|
|
45
|
+
var ruleObj = rule;
|
|
46
|
+
if (!('rules' in ruleObj) || !Array.isArray(ruleObj.rules)) {
|
|
47
|
+
throw new Error("Rule at ".concat(key, "[").concat(index, "] must have a \"rule\" property that is an array"));
|
|
48
|
+
}
|
|
49
|
+
if ('path' in ruleObj && typeof ruleObj.path !== 'string') {
|
|
50
|
+
throw new Error("Rule at ".concat(key, "[").concat(index, "] has a \"path\" property that is not a string"));
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
exports.validateRules = validateRules;
|
|
56
|
+
/**
|
|
57
|
+
* Converts Rules format to FFI matching rules format
|
|
58
|
+
* @param rules Rules in the user-friendly format
|
|
59
|
+
* @returns Rules in FFI format
|
|
60
|
+
*/
|
|
61
|
+
var convertRulesToFFI = function (rules) {
|
|
62
|
+
var ffiRules = {};
|
|
63
|
+
Object.keys(rules).forEach(function (part) {
|
|
64
|
+
var partRules = rules[part];
|
|
65
|
+
if (!partRules)
|
|
66
|
+
return;
|
|
67
|
+
var rulesArray = Array.isArray(partRules) ? partRules : [partRules];
|
|
68
|
+
ffiRules[part] = {};
|
|
69
|
+
rulesArray.forEach(function (rule) {
|
|
70
|
+
if (rule.path) {
|
|
71
|
+
ffiRules[part][rule.path] = {
|
|
72
|
+
matchers: rule.rules.map(exports.convertMatcherToFFI),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
return ffiRules;
|
|
78
|
+
};
|
|
79
|
+
exports.convertRulesToFFI = convertRulesToFFI;
|
|
80
|
+
//# sourceMappingURL=matchingRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchingRules.js","sourceRoot":"","sources":["../../../src/common/matchingRules.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,IAAM,mBAAmB,GAAG,UACjC,OAAyB;IAEzB,IAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;QAC/B,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAA6B,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAhBW,QAAA,mBAAmB,uBAgB9B;AAEF;;;;GAIG;AACI,IAAM,aAAa,GAAG,UAAC,KAAY;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjE,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEpC,QAAQ,CAAC,OAAO,CAAC,UAAC,GAAG;QACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,yBAAiB,GAAG,2CAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAC5E,CAAC;QACJ,CAAC;QAED,IAAM,SAAS,GAAI,KAAiC,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,UAAU,CAAC,OAAO,CAAC,UAAC,IAAa,EAAE,KAAa;YAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,kBAAW,GAAG,cAAI,KAAK,wBAAqB,CAAC,CAAC;YAChE,CAAC;YAED,IAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CACb,kBAAW,GAAG,cAAI,KAAK,qDAAgD,CACxE,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CACb,kBAAW,GAAG,cAAI,KAAK,mDAA8C,CACtE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtCW,QAAA,aAAa,iBAsCxB;AAEF;;;;GAIG;AACI,IAAM,iBAAiB,GAAG,UAAC,KAAY;IAC5C,IAAM,QAAQ,GAGV,EAAE,CAAC;IAEP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI;QAC9B,IAAM,SAAS,GAAG,KAAK,CAAC,IAAmB,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAEpB,UAAU,CAAC,OAAO,CAAC,UAAC,IAAU;YAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBAC1B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,2BAAmB,CAAC;iBAC9C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAvBW,QAAA,iBAAiB,qBAuB5B"}
|
|
@@ -131,9 +131,8 @@ var Verifier = /** @class */ (function () {
|
|
|
131
131
|
Verifier.prototype.runProviderVerification = function () {
|
|
132
132
|
var _this = this;
|
|
133
133
|
return function (server) {
|
|
134
|
-
var _a;
|
|
135
134
|
var port = server.address().port;
|
|
136
|
-
var opts = __assign(__assign({ providerStatesSetupUrl: "".concat(_this.address, ":").concat(port).concat(_this.stateSetupPath) }, (0, lodash_1.omit)(_this.config, 'handlers')), { providerBaseUrl: "".concat(_this.address, ":").concat(port), transports: (
|
|
135
|
+
var opts = __assign(__assign({ providerStatesSetupUrl: "".concat(_this.address, ":").concat(port).concat(_this.stateSetupPath) }, (0, lodash_1.omit)(_this.config, 'handlers')), { providerBaseUrl: "".concat(_this.address, ":").concat(port), transports: (_this.config.transports || []).concat([
|
|
137
136
|
{
|
|
138
137
|
port: port,
|
|
139
138
|
path: _this.messageTransportPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.ts"],"names":[],"mappings":"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"}
|
package/src/v3/matchers.d.ts
CHANGED
|
@@ -98,6 +98,12 @@ export declare function string(str?: string): Matcher<string>;
|
|
|
98
98
|
* @param str Example value
|
|
99
99
|
*/
|
|
100
100
|
export declare function regex(pattern: RegExp | string, str: string): V3RegexMatcher;
|
|
101
|
+
/**
|
|
102
|
+
* Matches the content type of a multipart field.
|
|
103
|
+
* Used for matching binary content or specific content types in multipart requests.
|
|
104
|
+
* @param contentTypeValue The content type to match (e.g., 'image/jpeg', 'text/plain')
|
|
105
|
+
*/
|
|
106
|
+
export declare const contentType: (contentTypeValue: string) => Matcher<string>;
|
|
101
107
|
/**
|
|
102
108
|
* Value that must be equal to the example. This is mainly used to reset the matching rules which cascade.
|
|
103
109
|
* @param value Example value
|
package/src/v3/matchers.js
CHANGED
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.matcherValueOrString = exports.equal = exports.decimal = exports.integer = exports.boolean = exports.constrainedArrayLike = exports.atMostLike = exports.atLeastLike = exports.atLeastOneLike = exports.eachLike = exports.eachValueMatches = exports.eachKeyMatches = exports.eachKeyLike = exports.like = void 0;
|
|
40
|
+
exports.matcherValueOrString = exports.equal = exports.contentType = exports.decimal = exports.integer = exports.boolean = exports.constrainedArrayLike = exports.atMostLike = exports.atLeastLike = exports.atLeastOneLike = exports.eachLike = exports.eachValueMatches = exports.eachKeyMatches = exports.eachKeyLike = exports.like = void 0;
|
|
41
41
|
exports.isMatcher = isMatcher;
|
|
42
42
|
exports.number = number;
|
|
43
43
|
exports.string = string;
|
|
@@ -322,6 +322,16 @@ function regex(pattern, str) {
|
|
|
322
322
|
value: str,
|
|
323
323
|
};
|
|
324
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Matches the content type of a multipart field.
|
|
327
|
+
* Used for matching binary content or specific content types in multipart requests.
|
|
328
|
+
* @param contentTypeValue The content type to match (e.g., 'image/jpeg', 'text/plain')
|
|
329
|
+
*/
|
|
330
|
+
var contentType = function (contentTypeValue) { return ({
|
|
331
|
+
'pact:matcher:type': 'contentType',
|
|
332
|
+
value: contentTypeValue,
|
|
333
|
+
}); };
|
|
334
|
+
exports.contentType = contentType;
|
|
325
335
|
/**
|
|
326
336
|
* Value that must be equal to the example. This is mainly used to reset the matching rules which cascade.
|
|
327
337
|
* @param value Example value
|
package/src/v3/matchers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/v3/matchers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,8BAMC;AAkPD,wBAiBC;AAMD,wBAKC;AAOD,sBAaC;
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/v3/matchers.ts"],"names":[],"mappings":"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"}
|
package/src/v3/pact.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsonMap } from '../common/jsonTypes';
|
|
2
|
-
import { PactV3Options, V3Interaction, V3MockServer, V3Request, V3Response } from './types';
|
|
2
|
+
import { PactV3Options, Rules, V3Interaction, V3MockServer, V3Request, V3Response } from './types';
|
|
3
3
|
export declare class PactV3 {
|
|
4
4
|
private opts;
|
|
5
5
|
private states;
|
|
@@ -11,6 +11,26 @@ export declare class PactV3 {
|
|
|
11
11
|
uponReceiving(description: string): PactV3;
|
|
12
12
|
withRequest(req: V3Request): PactV3;
|
|
13
13
|
withRequestBinaryFile(req: V3Request, contentType: string, file: string): PactV3;
|
|
14
|
+
/**
|
|
15
|
+
* Applies matching rules to the consumer request.
|
|
16
|
+
* Matching rules allow you to define flexible matching criteria for request attributes
|
|
17
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
18
|
+
*
|
|
19
|
+
* @param req - The request configuration (method, path, headers, etc.)
|
|
20
|
+
* @param rules - The matching rules.
|
|
21
|
+
* @returns The PactV3 instance for method chaining
|
|
22
|
+
*/
|
|
23
|
+
withRequestMatchingRules(req: V3Request, rules: Rules): PactV3;
|
|
24
|
+
/**
|
|
25
|
+
* Applies matching rules to the provider response.
|
|
26
|
+
* Matching rules allow you to define flexible matching criteria for response attributes
|
|
27
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
28
|
+
*
|
|
29
|
+
* @param req - The request configuration (method, path, headers, etc.)
|
|
30
|
+
* @param rules - The matching rules.
|
|
31
|
+
* @returns The PactV3 instance for method chaining
|
|
32
|
+
*/
|
|
33
|
+
withResponseMatchingRules(req: V3Request, rules: Rules): PactV3;
|
|
14
34
|
/**
|
|
15
35
|
* Sets up the expected consumer request with multipart file upload data.
|
|
16
36
|
* This is useful for testing APIs that accept multipart/form-data uploads.
|
package/src/v3/pact.js
CHANGED
|
@@ -44,6 +44,7 @@ var ramda_1 = require("ramda");
|
|
|
44
44
|
var pact_core_1 = require("@pact-foundation/pact-core");
|
|
45
45
|
var fs = require("fs");
|
|
46
46
|
var package_json_1 = require("../../package.json");
|
|
47
|
+
var matchingRules_1 = require("../common/matchingRules");
|
|
47
48
|
var types_1 = require("./types");
|
|
48
49
|
var matchers_1 = require("./matchers");
|
|
49
50
|
var display_1 = require("./display");
|
|
@@ -122,6 +123,38 @@ var PactV3 = /** @class */ (function () {
|
|
|
122
123
|
(0, ffi_1.setRequestDetails)(this.interaction, req);
|
|
123
124
|
return this;
|
|
124
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* Applies matching rules to the consumer request.
|
|
128
|
+
* Matching rules allow you to define flexible matching criteria for request attributes
|
|
129
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
130
|
+
*
|
|
131
|
+
* @param req - The request configuration (method, path, headers, etc.)
|
|
132
|
+
* @param rules - The matching rules.
|
|
133
|
+
* @returns The PactV3 instance for method chaining
|
|
134
|
+
*/
|
|
135
|
+
PactV3.prototype.withRequestMatchingRules = function (req, rules) {
|
|
136
|
+
(0, matchingRules_1.validateRules)(rules);
|
|
137
|
+
var ffiRules = (0, matchingRules_1.convertRulesToFFI)(rules);
|
|
138
|
+
this.interaction.withRequestMatchingRules(JSON.stringify(ffiRules));
|
|
139
|
+
(0, ffi_1.setRequestDetails)(this.interaction, req);
|
|
140
|
+
return this;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Applies matching rules to the provider response.
|
|
144
|
+
* Matching rules allow you to define flexible matching criteria for response attributes
|
|
145
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
146
|
+
*
|
|
147
|
+
* @param req - The request configuration (method, path, headers, etc.)
|
|
148
|
+
* @param rules - The matching rules.
|
|
149
|
+
* @returns The PactV3 instance for method chaining
|
|
150
|
+
*/
|
|
151
|
+
PactV3.prototype.withResponseMatchingRules = function (req, rules) {
|
|
152
|
+
(0, matchingRules_1.validateRules)(rules);
|
|
153
|
+
var ffiRules = (0, matchingRules_1.convertRulesToFFI)(rules);
|
|
154
|
+
this.interaction.withResponseMatchingRules(JSON.stringify(ffiRules));
|
|
155
|
+
(0, ffi_1.setRequestDetails)(this.interaction, req);
|
|
156
|
+
return this;
|
|
157
|
+
};
|
|
125
158
|
/**
|
|
126
159
|
* Sets up the expected consumer request with multipart file upload data.
|
|
127
160
|
* This is useful for testing APIs that accept multipart/form-data uploads.
|
package/src/v3/pact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pact.js","sourceRoot":"","sources":["../../../src/v3/pact.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,wDAIoC;AACpC,uBAA0B;AAC1B,mDAAmE;AAEnE,
|
|
1
|
+
{"version":3,"file":"pact.js","sourceRoot":"","sources":["../../../src/v3/pact.ts"],"names":[],"mappings":"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"}
|
package/src/v3/types.d.ts
CHANGED
|
@@ -40,6 +40,25 @@ export interface ProviderStateInjectedValue<T> extends Matcher<T> {
|
|
|
40
40
|
export interface RulesMatcher<T> extends Matcher<T> {
|
|
41
41
|
rules: Matcher<T>[];
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Part of a request or response where matching rules can be applied
|
|
45
|
+
*/
|
|
46
|
+
export type Part = 'path' | 'body' | 'header' | 'query' | 'status';
|
|
47
|
+
export type JSONPath = string;
|
|
48
|
+
/**
|
|
49
|
+
* A matching rule with optional JSONPath and array of matchers
|
|
50
|
+
*/
|
|
51
|
+
export type Rule = {
|
|
52
|
+
path?: JSONPath;
|
|
53
|
+
rules: Matcher<unknown>[];
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Matching rules organized by part (path, body, header, query, status)
|
|
57
|
+
* Each part can have its own set of matching rules
|
|
58
|
+
*/
|
|
59
|
+
export type Rules = Partial<{
|
|
60
|
+
[part in Part]: Rule | Rule[];
|
|
61
|
+
}>;
|
|
43
62
|
/**
|
|
44
63
|
* Options for the mock server
|
|
45
64
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConsumerInteraction } from '@pact-foundation/pact-core';
|
|
2
|
-
import { TemplateQuery, TemplateHeaders } from '../../v3';
|
|
2
|
+
import { TemplateQuery, TemplateHeaders, Rules } from '../../v3';
|
|
3
3
|
import { V4RequestBuilder } from './types';
|
|
4
4
|
export declare class RequestBuilder implements V4RequestBuilder {
|
|
5
5
|
protected interaction: ConsumerInteraction;
|
|
@@ -19,5 +19,14 @@ export declare class RequestBuilder implements V4RequestBuilder {
|
|
|
19
19
|
* @returns The V4RequestBuilder instance for method chaining
|
|
20
20
|
*/
|
|
21
21
|
multipartBody(contentType: string, file: string, mimePartName: string, boundary?: string): V4RequestBuilder;
|
|
22
|
+
/**
|
|
23
|
+
* Applies matching rules to the consumer request.
|
|
24
|
+
* Matching rules allow you to define flexible matching criteria for request attributes
|
|
25
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
26
|
+
*
|
|
27
|
+
* @param rules - The matching rules as a strongly typed Rules object. Rules should follow the Pact matching rules format.
|
|
28
|
+
* @returns The V4RequestBuilder instance for method chaining
|
|
29
|
+
*/
|
|
30
|
+
matchingRules(rules: Rules): V4RequestBuilder;
|
|
22
31
|
body(contentType: string, body: Buffer): V4RequestBuilder;
|
|
23
32
|
}
|
|
@@ -4,6 +4,7 @@ exports.RequestBuilder = void 0;
|
|
|
4
4
|
var ramda_1 = require("ramda");
|
|
5
5
|
var matchers_1 = require("../../v3/matchers");
|
|
6
6
|
var _1 = require(".");
|
|
7
|
+
var matchingRules_1 = require("../../common/matchingRules");
|
|
7
8
|
var RequestBuilder = /** @class */ (function () {
|
|
8
9
|
// tslint:disable:no-empty-function
|
|
9
10
|
function RequestBuilder(interaction) {
|
|
@@ -60,6 +61,20 @@ var RequestBuilder = /** @class */ (function () {
|
|
|
60
61
|
this.interaction.withRequestMultipartBody(contentType, file, mimePartName, boundary);
|
|
61
62
|
return this;
|
|
62
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* Applies matching rules to the consumer request.
|
|
66
|
+
* Matching rules allow you to define flexible matching criteria for request attributes
|
|
67
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
68
|
+
*
|
|
69
|
+
* @param rules - The matching rules as a strongly typed Rules object. Rules should follow the Pact matching rules format.
|
|
70
|
+
* @returns The V4RequestBuilder instance for method chaining
|
|
71
|
+
*/
|
|
72
|
+
RequestBuilder.prototype.matchingRules = function (rules) {
|
|
73
|
+
(0, matchingRules_1.validateRules)(rules);
|
|
74
|
+
var ffiRules = (0, matchingRules_1.convertRulesToFFI)(rules);
|
|
75
|
+
this.interaction.withRequestMatchingRules(JSON.stringify(ffiRules));
|
|
76
|
+
return this;
|
|
77
|
+
};
|
|
63
78
|
RequestBuilder.prototype.body = function (contentType, body) {
|
|
64
79
|
this.interaction.withRequestBinaryBody(body, contentType);
|
|
65
80
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestBuilder.js","sourceRoot":"","sources":["../../../../src/v4/http/requestBuilder.ts"],"names":[],"mappings":";;;AACA,+BAA0C;AAE1C,8CAAyD;AAEzD,sBAAmC;
|
|
1
|
+
{"version":3,"file":"requestBuilder.js","sourceRoot":"","sources":["../../../../src/v4/http/requestBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TemplateHeaders, TemplateQuery } from '../../v3';
|
|
1
|
+
import { Rules, TemplateHeaders, TemplateQuery } from '../../v3';
|
|
2
2
|
import { RequestBuilder } from './requestBuilder';
|
|
3
3
|
import { V4RequestWithPluginBuilder } from './types';
|
|
4
4
|
export declare class RequestWithPluginBuilder extends RequestBuilder implements V4RequestWithPluginBuilder {
|
|
@@ -18,5 +18,14 @@ export declare class RequestWithPluginBuilder extends RequestBuilder implements
|
|
|
18
18
|
* @returns The V4RequestWithPluginBuilder instance for method chaining
|
|
19
19
|
*/
|
|
20
20
|
multipartBody(contentType: string, file: string, mimePartName: string, boundary?: string): V4RequestWithPluginBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* Applies matching rules to the consumer request.
|
|
23
|
+
* Matching rules allow you to define flexible matching criteria for request attributes
|
|
24
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
25
|
+
*
|
|
26
|
+
* @param rules - The matching rules as a strongly typed Rules object. Rules should follow the Pact matching rules format.
|
|
27
|
+
* @returns The V4RequestWithPluginBuilder instance for method chaining
|
|
28
|
+
*/
|
|
29
|
+
matchingRules(rules: Rules): V4RequestWithPluginBuilder;
|
|
21
30
|
body(contentType: string, body: Buffer): V4RequestWithPluginBuilder;
|
|
22
31
|
}
|
|
@@ -56,6 +56,18 @@ var RequestWithPluginBuilder = /** @class */ (function (_super) {
|
|
|
56
56
|
_super.prototype.multipartBody.call(this, contentType, file, mimePartName, boundary);
|
|
57
57
|
return this;
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Applies matching rules to the consumer request.
|
|
61
|
+
* Matching rules allow you to define flexible matching criteria for request attributes
|
|
62
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
63
|
+
*
|
|
64
|
+
* @param rules - The matching rules as a strongly typed Rules object. Rules should follow the Pact matching rules format.
|
|
65
|
+
* @returns The V4RequestWithPluginBuilder instance for method chaining
|
|
66
|
+
*/
|
|
67
|
+
RequestWithPluginBuilder.prototype.matchingRules = function (rules) {
|
|
68
|
+
_super.prototype.matchingRules.call(this, rules);
|
|
69
|
+
return this;
|
|
70
|
+
};
|
|
59
71
|
RequestWithPluginBuilder.prototype.body = function (contentType, body) {
|
|
60
72
|
_super.prototype.body.call(this, contentType, body);
|
|
61
73
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestWithPluginBuilder.js","sourceRoot":"","sources":["../../../../src/v4/http/requestWithPluginBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,mDAAkD;AAGlD;IACU,4CAAc;IADxB;;
|
|
1
|
+
{"version":3,"file":"requestWithPluginBuilder.js","sourceRoot":"","sources":["../../../../src/v4/http/requestWithPluginBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,mDAAkD;AAGlD;IACU,4CAAc;IADxB;;IA+EA,CAAC;IA3EC,iDAAc,GAAd,UACE,WAAmB,EACnB,QAAgB;QAEhB,IAAI,CAAC,WAAW,CAAC,oCAAoC,CACnD,WAAW,EACX,QAAQ,CACT,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wCAAK,GAAL,UAAM,KAAoB;QACxB,gBAAK,CAAC,KAAK,YAAC,KAAK,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAAO,GAAP,UAAQ,OAAwB;QAC9B,gBAAK,CAAC,OAAO,YAAC,OAAO,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAAQ,GAAR,UAAS,IAAa;QACpB,gBAAK,CAAC,QAAQ,YAAC,IAAI,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6CAAU,GAAV,UAAW,WAAmB,EAAE,IAAY;QAC1C,gBAAK,CAAC,UAAU,YAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACH,gDAAa,GAAb,UACE,WAAmB,EACnB,IAAY,EACZ,YAAoB,EACpB,QAAiB;QAEjB,gBAAK,CAAC,aAAa,YAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,gDAAa,GAAb,UAAc,KAAY;QACxB,gBAAK,CAAC,aAAa,YAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAI,GAAJ,UAAK,WAAmB,EAAE,IAAY;QACpC,gBAAK,CAAC,IAAI,YAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;IACH,+BAAC;AAAD,CAAC,AA/ED,CACU,+BAAc,GA8EvB;AA/EY,4DAAwB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConsumerInteraction } from '@pact-foundation/pact-core';
|
|
2
|
-
import { TemplateHeaders } from '../../v3';
|
|
2
|
+
import { TemplateHeaders, Rules } from '../../v3';
|
|
3
3
|
import { V4ResponseBuilder } from './types';
|
|
4
4
|
export declare class ResponseBuilder implements V4ResponseBuilder {
|
|
5
5
|
protected interaction: ConsumerInteraction;
|
|
@@ -18,5 +18,14 @@ export declare class ResponseBuilder implements V4ResponseBuilder {
|
|
|
18
18
|
* @returns The V4ResponseBuilder instance for method chaining
|
|
19
19
|
*/
|
|
20
20
|
multipartBody(contentType: string, file: string, mimePartName: string, boundary?: string): V4ResponseBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* Applies matching rules to the provider response.
|
|
23
|
+
* Matching rules allow you to define flexible matching criteria for response attributes
|
|
24
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
25
|
+
*
|
|
26
|
+
* @param rules - The matching rules as a strongly typed Rules object. Rules should follow the Pact matching rules format.
|
|
27
|
+
* @returns The V4ResponseBuilder instance for method chaining
|
|
28
|
+
*/
|
|
29
|
+
matchingRules(rules: Rules): V4ResponseBuilder;
|
|
21
30
|
body(contentType: string, body: Buffer): V4ResponseBuilder;
|
|
22
31
|
}
|
|
@@ -4,6 +4,7 @@ exports.ResponseBuilder = void 0;
|
|
|
4
4
|
var ramda_1 = require("ramda");
|
|
5
5
|
var _1 = require(".");
|
|
6
6
|
var matchers_1 = require("../../v3/matchers");
|
|
7
|
+
var matchingRules_1 = require("../../common/matchingRules");
|
|
7
8
|
var ResponseBuilder = /** @class */ (function () {
|
|
8
9
|
function ResponseBuilder(interaction) {
|
|
9
10
|
this.interaction = interaction;
|
|
@@ -38,6 +39,20 @@ var ResponseBuilder = /** @class */ (function () {
|
|
|
38
39
|
this.interaction.withResponseMultipartBody(contentType, file, mimePartName, boundary);
|
|
39
40
|
return this;
|
|
40
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Applies matching rules to the provider response.
|
|
44
|
+
* Matching rules allow you to define flexible matching criteria for response attributes
|
|
45
|
+
* beyond exact equality (e.g., regex patterns, type matching, number ranges).
|
|
46
|
+
*
|
|
47
|
+
* @param rules - The matching rules as a strongly typed Rules object. Rules should follow the Pact matching rules format.
|
|
48
|
+
* @returns The V4ResponseBuilder instance for method chaining
|
|
49
|
+
*/
|
|
50
|
+
ResponseBuilder.prototype.matchingRules = function (rules) {
|
|
51
|
+
(0, matchingRules_1.validateRules)(rules);
|
|
52
|
+
var ffiRules = (0, matchingRules_1.convertRulesToFFI)(rules);
|
|
53
|
+
this.interaction.withResponseMatchingRules(JSON.stringify(ffiRules));
|
|
54
|
+
return this;
|
|
55
|
+
};
|
|
41
56
|
ResponseBuilder.prototype.body = function (contentType, body) {
|
|
42
57
|
this.interaction.withResponseBinaryBody(body, contentType);
|
|
43
58
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseBuilder.js","sourceRoot":"","sources":["../../../../src/v4/http/responseBuilder.ts"],"names":[],"mappings":";;;AACA,+BAA0C;AAC1C,sBAAmC;AAEnC,8CAAyD;
|
|
1
|
+
{"version":3,"file":"responseBuilder.js","sourceRoot":"","sources":["../../../../src/v4/http/responseBuilder.ts"],"names":[],"mappings":";;;AACA,+BAA0C;AAC1C,sBAAmC;AAEnC,8CAAyD;AAEzD,4DAA8E;AAE9E;IAGE,yBAAY,WAAgC;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,iCAAO,GAAP,UAAQ,OAAwB;QAAhC,iBAMC;QALC,IAAA,yBAAiB,EAAC,UAAC,CAAC,EAAE,CAAC;YACrB,KAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,UAAG,CAAC,CAAE,EAAE,CAAC,EAAE,IAAA,+BAAoB,EAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAQ,GAAR,UAAS,IAAa;QACpB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC/B,IAAA,+BAAoB,EAAC,IAAI,CAAC,EAC1B,kBAAkB,CACnB,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAU,GAAV,UAAW,WAAmB,EAAE,IAAY;QAC1C,IAAM,IAAI,GAAG,IAAA,iBAAc,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACH,uCAAa,GAAb,UACE,WAAmB,EACnB,IAAY,EACZ,YAAoB,EACpB,QAAiB;QAEjB,IAAI,CAAC,WAAW,CAAC,yBAAyB,CACxC,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,QAAQ,CACT,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,uCAAa,GAAb,UAAc,KAAY;QACxB,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACrB,IAAM,QAAQ,GAAG,IAAA,iCAAiB,EAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAAI,GAAJ,UAAK,WAAmB,EAAE,IAAY;QACpC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC;IACH,sBAAC;AAAD,CAAC,AA5ED,IA4EC;AA5EY,0CAAe"}
|
package/src/v4/http/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsonMap } from '../../common/jsonTypes';
|
|
2
|
-
import { Matcher, Path, SpecificationVersion, TemplateHeaders, TemplateQuery, V3MockServer, V3ProviderState, V3Request, V3Response } from '../../v3';
|
|
2
|
+
import { Matcher, Path, Rules, SpecificationVersion, TemplateHeaders, TemplateQuery, V3MockServer, V3ProviderState, V3Request, V3Response } from '../../v3';
|
|
3
3
|
export type V4ProviderState = V3ProviderState;
|
|
4
4
|
export type V4MockServer = V3MockServer;
|
|
5
5
|
export type V4Request = V3Request;
|
|
@@ -59,6 +59,7 @@ export interface V4RequestBuilder {
|
|
|
59
59
|
jsonBody(body: unknown): V4RequestBuilder;
|
|
60
60
|
binaryFile(contentType: string, file: string): V4RequestBuilder;
|
|
61
61
|
multipartBody(contentType: string, filename: string, mimePartName: string, boundary?: string): V4RequestBuilder;
|
|
62
|
+
matchingRules(rules: Rules): V4RequestBuilder;
|
|
62
63
|
body(contentType: string, body: Buffer): V4RequestBuilder;
|
|
63
64
|
}
|
|
64
65
|
export interface V4ResponseBuilder {
|
|
@@ -66,6 +67,7 @@ export interface V4ResponseBuilder {
|
|
|
66
67
|
jsonBody(body: unknown): V4ResponseBuilder;
|
|
67
68
|
binaryFile(contentType: string, file: string): V4ResponseBuilder;
|
|
68
69
|
multipartBody(contentType: string, filename: string, mimePartName: string, boundary?: string): V4ResponseBuilder;
|
|
70
|
+
matchingRules(rules: Rules): V4ResponseBuilder;
|
|
69
71
|
body(contentType: string, body: Buffer): V4ResponseBuilder;
|
|
70
72
|
}
|
|
71
73
|
export type V4ResponseBuilderFunc = (builder: V4ResponseBuilder) => void;
|
|
@@ -92,6 +94,7 @@ export interface V4RequestWithPluginBuilder {
|
|
|
92
94
|
binaryFile(contentType: string, file: string): V4RequestWithPluginBuilder;
|
|
93
95
|
multipartBody(contentType: string, filename: string, mimePartName: string, boundary?: string): V4RequestWithPluginBuilder;
|
|
94
96
|
body(contentType: string, body: Buffer): V4RequestWithPluginBuilder;
|
|
97
|
+
matchingRules(rules: Rules): V4RequestWithPluginBuilder;
|
|
95
98
|
pluginContents(contentType: string, contents: string): V4RequestWithPluginBuilder;
|
|
96
99
|
}
|
|
97
100
|
export interface V4ResponseWithPluginBuilder {
|
|
@@ -99,6 +102,7 @@ export interface V4ResponseWithPluginBuilder {
|
|
|
99
102
|
jsonBody(body: unknown): V4ResponseBuilder;
|
|
100
103
|
binaryFile(contentType: string, file: string): V4ResponseBuilder;
|
|
101
104
|
multipartBody(contentType: string, filename: string, mimePartName: string, boundary?: string): V4ResponseBuilder;
|
|
105
|
+
matchingRules(rules: Rules): V4ResponseBuilder;
|
|
102
106
|
body(contentType: string, body: Buffer): V4ResponseBuilder;
|
|
103
107
|
pluginContents(contentType: string, contents: string): V4ResponseBuilder;
|
|
104
108
|
}
|