@pact-foundation/pact 16.3.1 → 16.5.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 +23 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +22 -12
- package/package.json +26 -47
- package/scripts/ci/build-and-test.sh +0 -3
- package/scripts/install-plugins.js +104 -0
- package/src/common/graphQL/configurationError.js +2 -22
- package/src/common/graphQL/configurationError.js.map +1 -1
- package/src/common/graphQL/graphQL.d.ts +2 -2
- package/src/common/graphQL/graphQL.js +11 -14
- package/src/common/graphQL/graphQL.js.map +1 -1
- package/src/common/graphQL/graphQLQueryError.js +2 -22
- package/src/common/graphQL/graphQLQueryError.js.map +1 -1
- package/src/common/logger.js +9 -9
- package/src/common/logger.js.map +1 -1
- package/src/common/matchingRules.d.ts +7 -1
- package/src/common/matchingRules.js +42 -22
- package/src/common/matchingRules.js.map +1 -1
- package/src/common/net.js +36 -42
- package/src/common/net.js.map +1 -1
- package/src/common/net.spec.js +39 -87
- package/src/common/net.spec.js.map +1 -1
- package/src/common/request.js +33 -82
- package/src/common/request.js.map +1 -1
- package/src/common/request.spec.js +29 -73
- package/src/common/request.spec.js.map +1 -1
- package/src/common/spec.js +3 -4
- package/src/common/spec.js.map +1 -1
- package/src/dsl/apolloGraphql.js +7 -25
- package/src/dsl/apolloGraphql.js.map +1 -1
- package/src/dsl/apolloGraphql.spec.js +21 -58
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +2 -2
- package/src/dsl/graphql.js +29 -48
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +92 -117
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +2 -2
- package/src/dsl/interaction.js +41 -48
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +109 -132
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +2 -3
- package/src/dsl/matchers.js +19 -31
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +279 -289
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +3 -3
- package/src/dsl/options.d.ts +3 -3
- package/src/dsl/verifier/proxy/hooks.d.ts +2 -2
- package/src/dsl/verifier/proxy/hooks.js +42 -112
- package/src/dsl/verifier/proxy/hooks.js.map +1 -1
- package/src/dsl/verifier/proxy/hooks.spec.js +86 -199
- package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/messages.d.ts +2 -2
- package/src/dsl/verifier/proxy/messages.js +88 -106
- package/src/dsl/verifier/proxy/messages.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.d.ts +1 -1
- package/src/dsl/verifier/proxy/parseBody.js +3 -3
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +35 -113
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.d.ts +2 -2
- package/src/dsl/verifier/proxy/proxy.js +22 -26
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.spec.js +11 -53
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.d.ts +3 -3
- package/src/dsl/verifier/proxy/proxyRequest.js +7 -7
- package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.spec.js +54 -104
- package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -3
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js +14 -18
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +76 -193
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +2 -2
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +23 -72
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +37 -122
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/tracer.d.ts +1 -1
- package/src/dsl/verifier/proxy/tracer.js +42 -35
- package/src/dsl/verifier/proxy/tracer.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +5 -5
- package/src/dsl/verifier/types.d.ts +3 -3
- package/src/dsl/verifier/verifier.d.ts +5 -1
- package/src/dsl/verifier/verifier.js +53 -60
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +84 -151
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/errors/configurationError.js +2 -22
- package/src/errors/configurationError.js.map +1 -1
- package/src/errors/graphQLQueryError.js +2 -22
- package/src/errors/graphQLQueryError.js.map +1 -1
- package/src/errors/matcherError.js +2 -22
- package/src/errors/matcherError.js.map +1 -1
- package/src/errors/verificationError.js +2 -22
- package/src/errors/verificationError.js.map +1 -1
- package/src/httpPact/ffi.d.ts +2 -2
- package/src/httpPact/ffi.js +28 -29
- package/src/httpPact/ffi.js.map +1 -1
- package/src/httpPact/ffi.spec.js +40 -83
- package/src/httpPact/ffi.spec.js.map +1 -1
- package/src/httpPact/index.d.ts +3 -3
- package/src/httpPact/index.js +92 -149
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +102 -195
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/httpPact/tracing.js +20 -28
- package/src/httpPact/tracing.js.map +1 -1
- package/src/index.d.ts +25 -25
- package/src/index.js +29 -29
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +5 -5
- package/src/messageConsumerPact.js +59 -53
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +55 -97
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.d.ts +3 -3
- package/src/messageProviderPact.js +68 -85
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +96 -123
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +242 -351
- package/src/pact.integration.spec.js.map +1 -1
- package/src/v3/display.d.ts +1 -1
- package/src/v3/display.js +44 -58
- package/src/v3/display.js.map +1 -1
- package/src/v3/ffi.js +20 -16
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +7 -42
- package/src/v3/ffi.spec.js.map +1 -1
- package/src/v3/graphql/graphQL.d.ts +4 -4
- package/src/v3/graphql/graphQL.js +50 -75
- package/src/v3/graphql/graphQL.js.map +1 -1
- package/src/v3/graphql/index.d.ts +1 -1
- package/src/v3/graphql/index.js +1 -1
- package/src/v3/graphql/index.js.map +1 -1
- package/src/v3/index.d.ts +4 -12
- package/src/v3/index.js +4 -12
- package/src/v3/index.js.map +1 -1
- package/src/v3/matchers.d.ts +15 -3
- package/src/v3/matchers.js +131 -148
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +281 -232
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +2 -2
- package/src/v3/pact.js +108 -151
- package/src/v3/pact.js.map +1 -1
- package/src/v3/pact.spec.js +94 -0
- package/src/v3/pact.spec.js.map +1 -0
- package/src/v3/types.d.ts +19 -3
- package/src/v3/types.js +22 -1
- package/src/v3/types.js.map +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +4 -4
- package/src/v4/graphql/graphQLInteractionWithRequest.js +21 -17
- package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
- package/src/v4/graphql/graphQLRequestBuilder.d.ts +3 -3
- package/src/v4/graphql/graphQLRequestBuilder.js +18 -20
- package/src/v4/graphql/graphQLRequestBuilder.js.map +1 -1
- package/src/v4/graphql/index.d.ts +6 -6
- package/src/v4/graphql/index.js +21 -17
- package/src/v4/graphql/index.js.map +1 -1
- package/src/v4/graphql/types.d.ts +5 -5
- package/src/v4/http/index.d.ts +2 -2
- package/src/v4/http/index.js +53 -93
- package/src/v4/http/index.js.map +1 -1
- package/src/v4/http/index.spec.d.ts +1 -0
- package/src/v4/http/index.spec.js +73 -0
- package/src/v4/http/index.spec.js.map +1 -0
- package/src/v4/http/interactionWithCompleteRequest.d.ts +4 -7
- package/src/v4/http/interactionWithCompleteRequest.js +6 -10
- package/src/v4/http/interactionWithCompleteRequest.js.map +1 -1
- package/src/v4/http/interactionWithPlugin.d.ts +3 -3
- package/src/v4/http/interactionWithPlugin.js +14 -11
- package/src/v4/http/interactionWithPlugin.js.map +1 -1
- package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
- package/src/v4/http/interactionWithPluginRequest.js +17 -9
- package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
- package/src/v4/http/interactionWithPluginResponse.d.ts +2 -2
- package/src/v4/http/interactionWithPluginResponse.js +10 -48
- package/src/v4/http/interactionWithPluginResponse.js.map +1 -1
- package/src/v4/http/interactionWithRequest.d.ts +4 -3
- package/src/v4/http/interactionWithRequest.js +17 -9
- package/src/v4/http/interactionWithRequest.js.map +1 -1
- package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
- package/src/v4/http/interactionWithRequest.spec.js +82 -0
- package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
- package/src/v4/http/interactionWithResponse.d.ts +2 -2
- package/src/v4/http/interactionWithResponse.js +10 -48
- package/src/v4/http/interactionWithResponse.js.map +1 -1
- package/src/v4/http/requestBuilder.d.ts +4 -3
- package/src/v4/http/requestBuilder.js +36 -34
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestBuilder.spec.d.ts +1 -0
- package/src/v4/http/requestBuilder.spec.js +42 -0
- package/src/v4/http/requestBuilder.spec.js.map +1 -0
- package/src/v4/http/requestWithPluginBuilder.d.ts +3 -2
- package/src/v4/http/requestWithPluginBuilder.js +30 -46
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
- package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
- package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
- package/src/v4/http/responseBuilder.d.ts +4 -3
- package/src/v4/http/responseBuilder.js +28 -25
- package/src/v4/http/responseBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.spec.d.ts +1 -0
- package/src/v4/http/responseBuilder.spec.js +42 -0
- package/src/v4/http/responseBuilder.spec.js.map +1 -0
- package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
- package/src/v4/http/responseWithPluginBuilder.js +5 -25
- package/src/v4/http/responseWithPluginBuilder.js.map +1 -1
- package/src/v4/http/responseWithPluginBuilder.spec.d.ts +1 -0
- package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
- package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
- package/src/v4/http/types.d.ts +13 -4
- package/src/v4/http/unconfiguredInteraction.d.ts +6 -5
- package/src/v4/http/unconfiguredInteraction.js +31 -26
- package/src/v4/http/unconfiguredInteraction.js.map +1 -1
- package/src/v4/index.d.ts +6 -5
- package/src/v4/index.js +32 -35
- package/src/v4/index.js.map +1 -1
- package/src/v4/message/asynchronousMessage.d.ts +7 -6
- package/src/v4/message/asynchronousMessage.js +157 -190
- package/src/v4/message/asynchronousMessage.js.map +1 -1
- package/src/v4/message/index.d.ts +7 -6
- package/src/v4/message/index.js +188 -217
- package/src/v4/message/index.js.map +1 -1
- package/src/v4/message/types.d.ts +5 -3
- package/src/v4/types.d.ts +3 -3
- package/src/xml/index.d.ts +4 -0
- package/src/xml/index.js +21 -0
- package/src/xml/index.js.map +1 -0
- package/src/{v3/xml → xml}/xmlBuilder.d.ts +1 -3
- package/src/{v3/xml → xml}/xmlBuilder.js +7 -9
- package/src/xml/xmlBuilder.js.map +1 -0
- package/src/{v3/xml → xml}/xmlElement.d.ts +2 -2
- package/src/xml/xmlElement.js +73 -0
- package/src/xml/xmlElement.js.map +1 -0
- package/src/xml/xmlElement.spec.d.ts +1 -0
- package/src/xml/xmlElement.spec.js +107 -0
- package/src/xml/xmlElement.spec.js.map +1 -0
- package/src/xml/xmlNode.js +7 -0
- package/src/xml/xmlNode.js.map +1 -0
- package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
- package/src/xml/xmlText.js +15 -0
- package/src/xml/xmlText.js.map +1 -0
- package/scripts/install-plugins +0 -106
- package/src/v3/xml/xmlBuilder.js.map +0 -1
- package/src/v3/xml/xmlElement.js +0 -90
- package/src/v3/xml/xmlElement.js.map +0 -1
- package/src/v3/xml/xmlElement.spec.js +0 -113
- package/src/v3/xml/xmlElement.spec.js.map +0 -1
- package/src/v3/xml/xmlNode.js +0 -10
- package/src/v3/xml/xmlNode.js.map +0 -1
- package/src/v3/xml/xmlText.js +0 -31
- package/src/v3/xml/xmlText.js.map +0 -1
- /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
- /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseBody = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (!req.body
|
|
4
|
+
const parseBody = (req) => {
|
|
5
|
+
let bodyData = Buffer.alloc(0);
|
|
6
|
+
if (!req.body) {
|
|
7
7
|
return bodyData;
|
|
8
8
|
}
|
|
9
9
|
if (Buffer.isBuffer(req.body)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseBody.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.ts"],"names":[],"mappings":";;;AAMO,
|
|
1
|
+
{"version":3,"file":"parseBody.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.ts"],"names":[],"mappings":";;;AAMO,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAU,EAAE;IACxD,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAdW,QAAA,SAAS,aAcpB"}
|
|
@@ -1,119 +1,41 @@
|
|
|
1
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 () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
-
function step(op) {
|
|
49
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
-
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;
|
|
52
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
-
switch (op[0]) {
|
|
54
|
-
case 0: case 1: t = op; break;
|
|
55
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
-
default:
|
|
59
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
-
if (t[2]) _.ops.pop();
|
|
64
|
-
_.trys.pop(); continue;
|
|
65
|
-
}
|
|
66
|
-
op = body.call(thisArg, _);
|
|
67
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
|
-
};
|
|
74
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
});
|
|
94
|
-
it('it returns a buffer
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return [2 /*return*/];
|
|
102
|
-
});
|
|
103
|
-
}); });
|
|
3
|
+
const parseBody_1 = require("./parseBody");
|
|
4
|
+
describe('Verifier', () => {
|
|
5
|
+
describe('#parseBody', () => {
|
|
6
|
+
describe('when request body exists', () => {
|
|
7
|
+
it('it returns the request body buffer', async () => {
|
|
8
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock — only body is needed to exercise parseBody
|
|
9
|
+
const req = { body: '' };
|
|
10
|
+
req.body = Buffer.from('foo');
|
|
11
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
12
|
+
expect(body).toBeInstanceOf(Buffer);
|
|
13
|
+
expect(body.toString()).toBe('foo');
|
|
14
|
+
});
|
|
15
|
+
it('it returns a buffer of the request body object', async () => {
|
|
16
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock — only body is needed to exercise parseBody
|
|
17
|
+
const req = { body: { foo: 'bar' } };
|
|
18
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
19
|
+
expect(body).toBeInstanceOf(Buffer);
|
|
20
|
+
expect(body.toString()).toBe(JSON.stringify(req.body));
|
|
21
|
+
});
|
|
22
|
+
it('it returns a buffer for an empty JSON object body', async () => {
|
|
23
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock — only body is needed to exercise parseBody
|
|
24
|
+
const req = { body: {} };
|
|
25
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
26
|
+
expect(body).toBeInstanceOf(Buffer);
|
|
27
|
+
expect(body.toString()).toBe('{}');
|
|
28
|
+
});
|
|
104
29
|
});
|
|
105
|
-
describe('when request body does not exist',
|
|
106
|
-
it('returns an empty buffer',
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return [2 /*return*/];
|
|
115
|
-
});
|
|
116
|
-
}); });
|
|
30
|
+
describe('when request body does not exist', () => {
|
|
31
|
+
it('returns an empty buffer', async () => {
|
|
32
|
+
// biome-ignore lint/suspicious/noExplicitAny: passing a non-object to test the absent-body branch
|
|
33
|
+
const req = 'foo';
|
|
34
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
35
|
+
expect(body).toBeInstanceOf(Buffer);
|
|
36
|
+
expect(body).toHaveLength(0);
|
|
37
|
+
expect(body.toString()).toBe('');
|
|
38
|
+
});
|
|
117
39
|
});
|
|
118
40
|
});
|
|
119
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseBody.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseBody.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.spec.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AAExC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;gBAClD,uGAAuG;gBACvG,MAAM,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE9B,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;gBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;gBAC9D,uGAAuG;gBACvG,MAAM,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;gBAE1C,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;gBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;gBACjE,uGAAuG;gBACvG,MAAM,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAE9B,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;gBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAChD,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;gBACvC,kGAAkG;gBAClG,MAAM,GAAG,GAAQ,KAAK,CAAC;gBAEvB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;gBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import http from 'http';
|
|
2
|
-
import { ProxyOptions } from './types';
|
|
1
|
+
import http from 'node:http';
|
|
2
|
+
import type { ProxyOptions } from './types';
|
|
3
3
|
export declare const waitForServerReady: (server: http.Server) => Promise<http.Server>;
|
|
4
4
|
export declare const createProxy: (config: ProxyOptions, stateSetupPath: string, messageTransportPath: string) => http.Server;
|
|
@@ -4,31 +4,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createProxy = exports.waitForServerReady = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
const node_http_1 = __importDefault(require("node:http"));
|
|
8
|
+
const body_parser_1 = __importDefault(require("body-parser"));
|
|
9
|
+
const express_1 = __importDefault(require("express"));
|
|
10
|
+
const http_proxy_1 = __importDefault(require("http-proxy"));
|
|
11
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
12
|
+
const hooks_1 = require("./hooks");
|
|
13
|
+
const messages_1 = require("./messages");
|
|
14
|
+
const proxyRequest_1 = require("./proxyRequest");
|
|
15
|
+
const stateHandler_1 = require("./stateHandler/stateHandler");
|
|
16
|
+
const tracer_1 = require("./tracer");
|
|
17
17
|
// Listens for the server start event
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return reject(new Error('Unable to start verification proxy server'));
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
};
|
|
18
|
+
const waitForServerReady = (server) => new Promise((resolve, reject) => {
|
|
19
|
+
server.on('listening', () => resolve(server));
|
|
20
|
+
server.on('error', () => reject(new Error('Unable to start verification proxy server')));
|
|
21
|
+
});
|
|
26
22
|
exports.waitForServerReady = waitForServerReady;
|
|
27
23
|
// Get the Proxy we'll pass to the CLI for verification
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
logger_1.default.trace(
|
|
24
|
+
const createProxy = (config, stateSetupPath, messageTransportPath) => {
|
|
25
|
+
const app = (0, express_1.default)();
|
|
26
|
+
const proxy = new http_proxy_1.default();
|
|
27
|
+
logger_1.default.trace(`Setting up state proxy with path: ${stateSetupPath}`);
|
|
32
28
|
// NOTE: if you change any of these global middleware that consumes the body
|
|
33
29
|
// review the "proxyReq" event reader below
|
|
34
30
|
app.use(body_parser_1.default.json({
|
|
@@ -41,7 +37,7 @@ var createProxy = function (config, stateSetupPath, messageTransportPath) {
|
|
|
41
37
|
app.use(body_parser_1.default.urlencoded({ extended: true }));
|
|
42
38
|
app.use('/{*splat}', body_parser_1.default.raw({ type: '*/*' }));
|
|
43
39
|
// Hooks
|
|
44
|
-
|
|
40
|
+
const hooksState = {
|
|
45
41
|
setupCounter: 0,
|
|
46
42
|
};
|
|
47
43
|
app.use(stateSetupPath, (0, hooks_1.registerHookStateTracking)(hooksState));
|
|
@@ -69,12 +65,12 @@ var createProxy = function (config, stateSetupPath, messageTransportPath) {
|
|
|
69
65
|
// TODO: ensure proxy does not interfere with this
|
|
70
66
|
app.post(messageTransportPath, (0, messages_1.createProxyMessageHandler)(config));
|
|
71
67
|
// Proxy server will respond to Verifier process
|
|
72
|
-
app.all('/{*splat}',
|
|
73
|
-
logger_1.default.debug(
|
|
68
|
+
app.all('/{*splat}', (req, res) => {
|
|
69
|
+
logger_1.default.debug(`Proxying ${req.method}: ${req.path}`);
|
|
74
70
|
proxy.web(req, res, (0, proxyRequest_1.toServerOptions)(config, req));
|
|
75
71
|
});
|
|
76
72
|
// TODO: node is now using ipv6 as a default. This should be customised
|
|
77
|
-
return
|
|
73
|
+
return node_http_1.default
|
|
78
74
|
.createServer(app)
|
|
79
75
|
.listen(undefined, config.proxyHost || '127.0.0.1');
|
|
80
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,65 +1,23 @@
|
|
|
1
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 () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
-
var proxy_1 = require("./proxy");
|
|
42
|
-
chai.use(chai_as_promised_1.default);
|
|
43
|
-
var expect = chai.expect;
|
|
3
|
+
const proxy_1 = require("./proxy");
|
|
44
4
|
// Little function to mock out an Event Emitter
|
|
45
|
-
|
|
46
|
-
on:
|
|
5
|
+
const fakeServer = (event) => ({
|
|
6
|
+
on: (registeredEvent, cb) => {
|
|
47
7
|
if (registeredEvent === event) {
|
|
48
8
|
cb();
|
|
49
9
|
}
|
|
50
10
|
},
|
|
51
|
-
});
|
|
52
|
-
describe('#waitForServerReady',
|
|
53
|
-
|
|
54
|
-
it('returns a successful promise',
|
|
55
|
-
|
|
56
|
-
return expect(res).to.eventually.be.fulfilled;
|
|
11
|
+
});
|
|
12
|
+
describe('#waitForServerReady', () => {
|
|
13
|
+
describe('when the server starts successfully', () => {
|
|
14
|
+
it('returns a successful promise', async () => {
|
|
15
|
+
await (0, proxy_1.waitForServerReady)(fakeServer('listening'));
|
|
57
16
|
});
|
|
58
17
|
});
|
|
59
|
-
|
|
60
|
-
it('returns an error',
|
|
61
|
-
|
|
62
|
-
return expect(res).to.eventually.be.rejected;
|
|
18
|
+
describe('when the server fails to start', () => {
|
|
19
|
+
it('returns an error', async () => {
|
|
20
|
+
await expect((0, proxy_1.waitForServerReady)(fakeServer('error'))).rejects.toBeDefined();
|
|
63
21
|
});
|
|
64
22
|
});
|
|
65
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.spec.ts"],"names":[],"mappings":";;AAEA,mCAA6C;AAE7C,+CAA+C;AAC/C,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;IACrC,EAAE,EAAE,CAAC,eAAuB,EAAE,EAAc,EAAE,EAAE;QAC9C,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC9B,EAAE,EAAE,CAAC;QACP,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;QACnD,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,IAAA,0BAAkB,EAAC,UAAU,CAAC,WAAW,CAAgB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,MAAM,CACV,IAAA,0BAAkB,EAAC,UAAU,CAAC,OAAO,CAAgB,CAAC,CACvD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ProxyOptions } from './types';
|
|
1
|
+
import type { IncomingMessage } from 'node:http';
|
|
2
|
+
import type { ServerOptions } from 'http-proxy';
|
|
3
|
+
import type { ProxyOptions } from './types';
|
|
4
4
|
export declare const toServerOptions: (config: ProxyOptions, req: IncomingMessage) => ServerOptions;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toServerOptions = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const node_stream_1 = require("node:stream");
|
|
5
|
+
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
6
|
+
const parseBody_1 = require("./parseBody");
|
|
7
7
|
// A base URL is always needed for the proxy, even
|
|
8
8
|
// if there are no targets to proxy (e.g. in the case
|
|
9
9
|
// of message pact
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const defaultBaseURL = () => 'http://127.0.0.1/';
|
|
11
|
+
const toServerOptions = (config, req) => {
|
|
12
12
|
// Provide direct support for standard proxy configuration
|
|
13
|
-
|
|
13
|
+
const systemProxy = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
|
|
14
14
|
return {
|
|
15
15
|
changeOrigin: config.changeOrigin === true,
|
|
16
16
|
secure: config.validateSSL === true,
|
|
17
17
|
target: config.providerBaseUrl || defaultBaseURL(),
|
|
18
18
|
agent: systemProxy && new https_proxy_agent_1.HttpsProxyAgent(systemProxy),
|
|
19
|
-
buffer:
|
|
19
|
+
buffer: node_stream_1.Readable.from((0, parseBody_1.parseBody)(req)),
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
exports.toServerOptions = toServerOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyRequest.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"proxyRequest.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AAEvC,yDAAoD;AACpD,2CAAwC;AAGxC,kDAAkD;AAClD,qDAAqD;AACrD,kBAAkB;AAClB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,mBAAmB,CAAC;AAE1C,MAAM,eAAe,GAAG,CAC7B,MAAoB,EACpB,GAAoB,EACL,EAAE;IACjB,0DAA0D;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEtE,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,KAAK,IAAI;QAC1C,MAAM,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI;QACnC,MAAM,EAAE,MAAM,CAAC,eAAe,IAAI,cAAc,EAAE;QAClD,KAAK,EAAE,WAAW,IAAI,IAAI,mCAAe,CAAC,WAAW,CAAC;QACtD,MAAM,EAAE,sBAAQ,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;KACtC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B"}
|
|
@@ -1,129 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
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);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
-
var ownKeys = function(o) {
|
|
31
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
-
var ar = [];
|
|
33
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
-
return ar;
|
|
35
|
-
};
|
|
36
|
-
return ownKeys(o);
|
|
37
|
-
};
|
|
38
|
-
return function (mod) {
|
|
39
|
-
if (mod && mod.__esModule) return mod;
|
|
40
|
-
var result = {};
|
|
41
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
-
__setModuleDefault(result, mod);
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
})();
|
|
46
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
it('forwards option', function () {
|
|
58
|
-
var res = toServerOptions({ changeOrigin: true });
|
|
59
|
-
expect(res.changeOrigin).to.be.true;
|
|
3
|
+
const node_stream_1 = require("node:stream");
|
|
4
|
+
const proxyRequest_1 = require("./proxyRequest");
|
|
5
|
+
describe('#toServerOptions', () => {
|
|
6
|
+
const toServerOptions = (opts = {}, req) =>
|
|
7
|
+
// biome-ignore lint/suspicious/noExplicitAny: minimal request mock object to satisfy the type parameter
|
|
8
|
+
(0, proxyRequest_1.toServerOptions)(opts, req ?? {});
|
|
9
|
+
describe('changeOrigin', () => {
|
|
10
|
+
it('forwards option', () => {
|
|
11
|
+
const res = toServerOptions({ changeOrigin: true });
|
|
12
|
+
expect(res.changeOrigin).toBe(true);
|
|
60
13
|
});
|
|
61
|
-
it('is false by default',
|
|
62
|
-
|
|
63
|
-
expect(res.changeOrigin).
|
|
14
|
+
it('is false by default', () => {
|
|
15
|
+
const res = toServerOptions();
|
|
16
|
+
expect(res.changeOrigin).toBe(false);
|
|
64
17
|
});
|
|
65
18
|
});
|
|
66
|
-
|
|
67
|
-
it('is true when validating ssl',
|
|
68
|
-
|
|
69
|
-
expect(res.secure).
|
|
19
|
+
describe('secure', () => {
|
|
20
|
+
it('is true when validating ssl', () => {
|
|
21
|
+
const res = toServerOptions({ validateSSL: true });
|
|
22
|
+
expect(res.secure).toBe(true);
|
|
70
23
|
});
|
|
71
|
-
it('is false by default',
|
|
72
|
-
|
|
73
|
-
expect(res.secure).
|
|
24
|
+
it('is false by default', () => {
|
|
25
|
+
const res = toServerOptions();
|
|
26
|
+
expect(res.secure).toBe(false);
|
|
74
27
|
});
|
|
75
28
|
});
|
|
76
|
-
|
|
77
|
-
it('uses providerBaseUrl',
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
expect(res.target).
|
|
29
|
+
describe('target', () => {
|
|
30
|
+
it('uses providerBaseUrl', () => {
|
|
31
|
+
const expectedTarget = 'http://test.com';
|
|
32
|
+
const res = toServerOptions({ providerBaseUrl: expectedTarget });
|
|
33
|
+
expect(res.target).toBe(expectedTarget);
|
|
81
34
|
});
|
|
82
|
-
it('uses loopback address by default',
|
|
83
|
-
|
|
84
|
-
expect(res.target).
|
|
35
|
+
it('uses loopback address by default', () => {
|
|
36
|
+
const res = toServerOptions();
|
|
37
|
+
expect(res.target).toBe('http://127.0.0.1/');
|
|
85
38
|
});
|
|
86
39
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
afterEach(
|
|
90
|
-
process.env =
|
|
40
|
+
describe('agent', () => {
|
|
41
|
+
const initialEnv = { ...process.env };
|
|
42
|
+
afterEach(() => {
|
|
43
|
+
process.env = { ...initialEnv };
|
|
91
44
|
});
|
|
92
|
-
it('uses no agent by default',
|
|
93
|
-
|
|
94
|
-
expect(res.agent).
|
|
45
|
+
it('uses no agent by default', () => {
|
|
46
|
+
const res = toServerOptions();
|
|
47
|
+
expect(res.agent).toBeUndefined();
|
|
95
48
|
});
|
|
96
|
-
it('uses HTTPS_PROXY',
|
|
97
|
-
|
|
98
|
-
var expectedProxy = 'http://proxy.host/';
|
|
49
|
+
it('uses HTTPS_PROXY', () => {
|
|
50
|
+
const expectedProxy = 'http://proxy.host/';
|
|
99
51
|
process.env.HTTPS_PROXY = expectedProxy;
|
|
100
|
-
|
|
101
|
-
expect(
|
|
52
|
+
const res = toServerOptions();
|
|
53
|
+
expect(res.agent?.proxy?.toString()).toBe(expectedProxy);
|
|
102
54
|
});
|
|
103
|
-
it('uses HTTP_PROXY',
|
|
104
|
-
|
|
105
|
-
var expectedProxy = 'http://my.proxy/';
|
|
55
|
+
it('uses HTTP_PROXY', () => {
|
|
56
|
+
const expectedProxy = 'http://my.proxy/';
|
|
106
57
|
process.env.HTTP_PROXY = expectedProxy;
|
|
107
|
-
|
|
108
|
-
expect(
|
|
58
|
+
const res = toServerOptions();
|
|
59
|
+
expect(res.agent?.proxy?.toString()).toBe(expectedProxy);
|
|
109
60
|
});
|
|
110
|
-
it('prefers HTTPS_PROXY to HTTP_PROXY',
|
|
111
|
-
var _a, _b;
|
|
61
|
+
it('prefers HTTPS_PROXY to HTTP_PROXY', () => {
|
|
112
62
|
process.env.HTTPS_PROXY = 'http://unused/';
|
|
113
|
-
|
|
63
|
+
const expectedProxy = 'http://expected.proxy/';
|
|
114
64
|
process.env.HTTPS_PROXY = expectedProxy;
|
|
115
|
-
|
|
116
|
-
expect(
|
|
65
|
+
const res = toServerOptions();
|
|
66
|
+
expect(res.agent?.proxy?.toString()).toBe(expectedProxy);
|
|
117
67
|
});
|
|
118
68
|
});
|
|
119
|
-
|
|
120
|
-
it('provides readable of body',
|
|
121
|
-
|
|
122
|
-
expect(res.buffer).
|
|
69
|
+
describe('buffer', () => {
|
|
70
|
+
it('provides readable of body', () => {
|
|
71
|
+
const res = toServerOptions({}, { body: 'a' });
|
|
72
|
+
expect(res.buffer).toBeInstanceOf(node_stream_1.Readable);
|
|
123
73
|
});
|
|
124
|
-
it('provides readable when body is undefined',
|
|
125
|
-
|
|
126
|
-
expect(res.buffer).
|
|
74
|
+
it('provides readable when body is undefined', () => {
|
|
75
|
+
const res = toServerOptions();
|
|
76
|
+
expect(res.buffer).toBeInstanceOf(node_stream_1.Readable);
|
|
127
77
|
});
|
|
128
78
|
});
|
|
129
79
|
});
|