@pact-foundation/pact 16.3.1 → 16.4.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 +7 -0
- package/CONTRIBUTING.md +2 -2
- package/package.json +16 -24
- 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 +1 -1
- package/src/common/matchingRules.js +21 -21
- 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 +41 -53
- 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 +26 -26
- 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 -18
- 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 +81 -66
- 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 +77 -70
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +1 -1
- package/src/dsl/matchers.js +19 -31
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +199 -208
- 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 +84 -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 +2 -2
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +31 -76
- 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 +14 -14
- 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 +49 -64
- 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 -159
- 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 -85
- 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 +1 -1
- package/src/dsl/verifier/verifier.js +49 -56
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +76 -93
- 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 +30 -31
- 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 +75 -125
- 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.js +1 -1
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +3 -3
- package/src/messageConsumerPact.js +50 -51
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +50 -49
- 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 +75 -66
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +243 -313
- 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 +15 -15
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +8 -8
- 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/matchers.d.ts +2 -2
- package/src/v3/matchers.js +112 -147
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +168 -187
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.d.ts +2 -2
- package/src/v3/pact.js +103 -151
- package/src/v3/pact.js.map +1 -1
- package/src/v3/types.d.ts +1 -1
- package/src/v3/xml/xmlBuilder.d.ts +1 -3
- package/src/v3/xml/xmlBuilder.js +7 -9
- package/src/v3/xml/xmlBuilder.js.map +1 -1
- package/src/v3/xml/xmlElement.d.ts +2 -2
- package/src/v3/xml/xmlElement.js +24 -41
- package/src/v3/xml/xmlElement.js.map +1 -1
- package/src/v3/xml/xmlElement.spec.js +23 -25
- package/src/v3/xml/xmlElement.spec.js.map +1 -1
- package/src/v3/xml/xmlNode.js +2 -5
- package/src/v3/xml/xmlNode.js.map +1 -1
- package/src/v3/xml/xmlText.d.ts +1 -1
- package/src/v3/xml/xmlText.js +9 -25
- package/src/v3/xml/xmlText.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 +48 -93
- package/src/v4/http/index.js.map +1 -1
- 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 +2 -2
- package/src/v4/http/interactionWithPluginRequest.js +11 -8
- 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 +2 -2
- package/src/v4/http/interactionWithRequest.js +11 -8
- package/src/v4/http/interactionWithRequest.js.map +1 -1
- 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 +3 -3
- package/src/v4/http/requestBuilder.js +32 -34
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.d.ts +2 -2
- package/src/v4/http/requestWithPluginBuilder.js +26 -46
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.d.ts +3 -3
- package/src/v4/http/responseBuilder.js +24 -25
- package/src/v4/http/responseBuilder.js.map +1 -1
- 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/types.d.ts +3 -2
- 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 +4 -4
- package/src/v4/index.js +31 -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
|
@@ -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,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/C,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"}
|
|
@@ -32,88 +32,43 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
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
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
37
|
};
|
|
74
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
39
|
+
const chai = __importStar(require("chai"));
|
|
40
|
+
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
+
const parseBody_1 = require("./parseBody");
|
|
78
42
|
chai.use(chai_as_promised_1.default);
|
|
79
|
-
|
|
80
|
-
describe('Verifier',
|
|
81
|
-
describe('#parseBody',
|
|
82
|
-
describe('when request body exists',
|
|
83
|
-
it('it returns the request body buffer',
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
body = (0, parseBody_1.parseBody)(req);
|
|
99
|
-
expect(body).to.be.instanceOf(Buffer);
|
|
100
|
-
expect(body.toString()).to.eq(JSON.stringify(req.body));
|
|
101
|
-
return [2 /*return*/];
|
|
102
|
-
});
|
|
103
|
-
}); });
|
|
43
|
+
const { expect } = chai;
|
|
44
|
+
describe('Verifier', () => {
|
|
45
|
+
describe('#parseBody', () => {
|
|
46
|
+
describe('when request body exists', () => {
|
|
47
|
+
it('it returns the request body buffer', async () => {
|
|
48
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock — only body is needed to exercise parseBody
|
|
49
|
+
const req = { body: '' };
|
|
50
|
+
req.body = Buffer.from('foo');
|
|
51
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
52
|
+
expect(body).to.be.instanceOf(Buffer);
|
|
53
|
+
expect(body.toString()).to.eq('foo');
|
|
54
|
+
});
|
|
55
|
+
it('it returns a buffer of the request body object', async () => {
|
|
56
|
+
// biome-ignore lint/suspicious/noExplicitAny: partial mock — only body is needed to exercise parseBody
|
|
57
|
+
const req = { body: { foo: 'bar' } };
|
|
58
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
59
|
+
expect(body).to.be.instanceOf(Buffer);
|
|
60
|
+
expect(body.toString()).to.eq(JSON.stringify(req.body));
|
|
61
|
+
});
|
|
104
62
|
});
|
|
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
|
-
}); });
|
|
63
|
+
describe('when request body does not exist', () => {
|
|
64
|
+
it('returns an empty buffer', async () => {
|
|
65
|
+
// biome-ignore lint/suspicious/noExplicitAny: passing a non-object to test the absent-body branch
|
|
66
|
+
const req = 'foo';
|
|
67
|
+
const body = (0, parseBody_1.parseBody)(req);
|
|
68
|
+
expect(body).to.be.instanceOf(Buffer);
|
|
69
|
+
expect(body).to.not.have.length;
|
|
70
|
+
expect(body.toString()).to.be.empty;
|
|
71
|
+
});
|
|
117
72
|
});
|
|
118
73
|
});
|
|
119
74
|
});
|
|
@@ -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,2CAA6B;AAC7B,wEAA8C;AAE9C,2CAAwC;AAExC,IAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAExB,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,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACvC,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,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,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,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;YACtC,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 express_1 = __importDefault(require("express"));
|
|
8
|
+
const http_proxy_1 = __importDefault(require("http-proxy"));
|
|
9
|
+
const body_parser_1 = __importDefault(require("body-parser"));
|
|
10
|
+
const node_http_1 = __importDefault(require("node:http"));
|
|
11
|
+
const logger_1 = __importDefault(require("../../../common/logger"));
|
|
12
|
+
const stateHandler_1 = require("./stateHandler/stateHandler");
|
|
13
|
+
const hooks_1 = require("./hooks");
|
|
14
|
+
const tracer_1 = require("./tracer");
|
|
15
|
+
const messages_1 = require("./messages");
|
|
16
|
+
const proxyRequest_1 = require("./proxyRequest");
|
|
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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"}
|
|
@@ -36,29 +36,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const chai = __importStar(require("chai"));
|
|
40
|
+
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
|
+
const proxy_1 = require("./proxy");
|
|
42
42
|
chai.use(chai_as_promised_1.default);
|
|
43
|
-
|
|
43
|
+
const { expect } = chai;
|
|
44
44
|
// Little function to mock out an Event Emitter
|
|
45
|
-
|
|
46
|
-
on:
|
|
45
|
+
const fakeServer = (event) => ({
|
|
46
|
+
on: (registeredEvent, cb) => {
|
|
47
47
|
if (registeredEvent === event) {
|
|
48
48
|
cb();
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
|
-
});
|
|
52
|
-
describe('#waitForServerReady',
|
|
53
|
-
context('when the server starts successfully',
|
|
54
|
-
it('returns a successful promise',
|
|
55
|
-
|
|
51
|
+
});
|
|
52
|
+
describe('#waitForServerReady', () => {
|
|
53
|
+
context('when the server starts successfully', () => {
|
|
54
|
+
it('returns a successful promise', () => {
|
|
55
|
+
const res = (0, proxy_1.waitForServerReady)(fakeServer('listening'));
|
|
56
56
|
return expect(res).to.eventually.be.fulfilled;
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
|
-
context('when the server fails to start',
|
|
60
|
-
it('returns an error',
|
|
61
|
-
|
|
59
|
+
context('when the server fails to start', () => {
|
|
60
|
+
it('returns an error', () => {
|
|
61
|
+
const res = (0, proxy_1.waitForServerReady)(fakeServer('error'));
|
|
62
62
|
return expect(res).to.eventually.be.rejected;
|
|
63
63
|
});
|
|
64
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"proxy.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,wEAA8C;AAI9C,mCAA6C;AAE7C,IAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAExB,+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,OAAO,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,UAAU,CAAC,WAAW,CAAgB,CAAC,CAAC;YAEvE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,UAAU,CAAC,OAAO,CAAgB,CAAC,CAAC;YAEnE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ServerOptions } from 'http-proxy';
|
|
2
|
-
import { IncomingMessage } from 'http';
|
|
3
|
-
import { ProxyOptions } from './types';
|
|
1
|
+
import type { ServerOptions } from 'http-proxy';
|
|
2
|
+
import type { IncomingMessage } from 'node:http';
|
|
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 https_proxy_agent_1 = require("https-proxy-agent");
|
|
5
|
+
const node_stream_1 = require("node:stream");
|
|
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":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"proxyRequest.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,6CAAuC;AAGvC,2CAAwC;AAExC,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,15 +1,4 @@
|
|
|
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
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -44,86 +33,82 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
44
33
|
};
|
|
45
34
|
})();
|
|
46
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
describe('#toServerOptions',
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
var res = toServerOptions({ changeOrigin: true });
|
|
36
|
+
const chai = __importStar(require("chai"));
|
|
37
|
+
const node_stream_1 = require("node:stream");
|
|
38
|
+
const proxyRequest_1 = require("./proxyRequest");
|
|
39
|
+
const { expect } = chai;
|
|
40
|
+
describe('#toServerOptions', () => {
|
|
41
|
+
const toServerOptions = (opts = {}, req) =>
|
|
42
|
+
// biome-ignore lint/suspicious/noExplicitAny: minimal request mock object to satisfy the type parameter
|
|
43
|
+
(0, proxyRequest_1.toServerOptions)(opts, req ?? {});
|
|
44
|
+
context('changeOrigin', () => {
|
|
45
|
+
it('forwards option', () => {
|
|
46
|
+
const res = toServerOptions({ changeOrigin: true });
|
|
59
47
|
expect(res.changeOrigin).to.be.true;
|
|
60
48
|
});
|
|
61
|
-
it('is false by default',
|
|
62
|
-
|
|
49
|
+
it('is false by default', () => {
|
|
50
|
+
const res = toServerOptions();
|
|
63
51
|
expect(res.changeOrigin).to.be.false;
|
|
64
52
|
});
|
|
65
53
|
});
|
|
66
|
-
context('secure',
|
|
67
|
-
it('is true when validating ssl',
|
|
68
|
-
|
|
54
|
+
context('secure', () => {
|
|
55
|
+
it('is true when validating ssl', () => {
|
|
56
|
+
const res = toServerOptions({ validateSSL: true });
|
|
69
57
|
expect(res.secure).to.be.true;
|
|
70
58
|
});
|
|
71
|
-
it('is false by default',
|
|
72
|
-
|
|
59
|
+
it('is false by default', () => {
|
|
60
|
+
const res = toServerOptions();
|
|
73
61
|
expect(res.secure).to.be.false;
|
|
74
62
|
});
|
|
75
63
|
});
|
|
76
|
-
context('target',
|
|
77
|
-
it('uses providerBaseUrl',
|
|
78
|
-
|
|
79
|
-
|
|
64
|
+
context('target', () => {
|
|
65
|
+
it('uses providerBaseUrl', () => {
|
|
66
|
+
const expectedTarget = 'http://test.com';
|
|
67
|
+
const res = toServerOptions({ providerBaseUrl: expectedTarget });
|
|
80
68
|
expect(res.target).to.eq(expectedTarget);
|
|
81
69
|
});
|
|
82
|
-
it('uses loopback address by default',
|
|
83
|
-
|
|
70
|
+
it('uses loopback address by default', () => {
|
|
71
|
+
const res = toServerOptions();
|
|
84
72
|
expect(res.target).to.eq('http://127.0.0.1/');
|
|
85
73
|
});
|
|
86
74
|
});
|
|
87
|
-
context('agent',
|
|
88
|
-
|
|
89
|
-
afterEach(
|
|
90
|
-
process.env =
|
|
75
|
+
context('agent', () => {
|
|
76
|
+
const initialEnv = { ...process.env };
|
|
77
|
+
afterEach(() => {
|
|
78
|
+
process.env = { ...initialEnv };
|
|
91
79
|
});
|
|
92
|
-
it('uses no agent by default',
|
|
93
|
-
|
|
80
|
+
it('uses no agent by default', () => {
|
|
81
|
+
const res = toServerOptions();
|
|
94
82
|
expect(res.agent).to.be.undefined;
|
|
95
83
|
});
|
|
96
|
-
it('uses HTTPS_PROXY',
|
|
97
|
-
|
|
98
|
-
var expectedProxy = 'http://proxy.host/';
|
|
84
|
+
it('uses HTTPS_PROXY', () => {
|
|
85
|
+
const expectedProxy = 'http://proxy.host/';
|
|
99
86
|
process.env.HTTPS_PROXY = expectedProxy;
|
|
100
|
-
|
|
101
|
-
expect(
|
|
87
|
+
const res = toServerOptions();
|
|
88
|
+
expect(res.agent?.proxy?.toString()).to.eq(expectedProxy);
|
|
102
89
|
});
|
|
103
|
-
it('uses HTTP_PROXY',
|
|
104
|
-
|
|
105
|
-
var expectedProxy = 'http://my.proxy/';
|
|
90
|
+
it('uses HTTP_PROXY', () => {
|
|
91
|
+
const expectedProxy = 'http://my.proxy/';
|
|
106
92
|
process.env.HTTP_PROXY = expectedProxy;
|
|
107
|
-
|
|
108
|
-
expect(
|
|
93
|
+
const res = toServerOptions();
|
|
94
|
+
expect(res.agent?.proxy?.toString()).to.eq(expectedProxy);
|
|
109
95
|
});
|
|
110
|
-
it('prefers HTTPS_PROXY to HTTP_PROXY',
|
|
111
|
-
var _a, _b;
|
|
96
|
+
it('prefers HTTPS_PROXY to HTTP_PROXY', () => {
|
|
112
97
|
process.env.HTTPS_PROXY = 'http://unused/';
|
|
113
|
-
|
|
98
|
+
const expectedProxy = 'http://expected.proxy/';
|
|
114
99
|
process.env.HTTPS_PROXY = expectedProxy;
|
|
115
|
-
|
|
116
|
-
expect(
|
|
100
|
+
const res = toServerOptions();
|
|
101
|
+
expect(res.agent?.proxy?.toString()).to.eq(expectedProxy);
|
|
117
102
|
});
|
|
118
103
|
});
|
|
119
|
-
context('buffer',
|
|
120
|
-
it('provides readable of body',
|
|
121
|
-
|
|
122
|
-
expect(res.buffer).to.be.instanceOf(
|
|
104
|
+
context('buffer', () => {
|
|
105
|
+
it('provides readable of body', () => {
|
|
106
|
+
const res = toServerOptions({}, { body: 'a' });
|
|
107
|
+
expect(res.buffer).to.be.instanceOf(node_stream_1.Readable);
|
|
123
108
|
});
|
|
124
|
-
it('provides readable when body is undefined',
|
|
125
|
-
|
|
126
|
-
expect(res.buffer).to.be.instanceOf(
|
|
109
|
+
it('provides readable when body is undefined', () => {
|
|
110
|
+
const res = toServerOptions();
|
|
111
|
+
expect(res.buffer).to.be.instanceOf(node_stream_1.Readable);
|
|
127
112
|
});
|
|
128
113
|
});
|
|
129
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyRequest.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxyRequest.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ProxyOptions, ProviderState } from '../types';
|
|
2
|
-
import { JsonMap } from '../../../../common/jsonTypes';
|
|
3
|
-
export declare const setupStates: (state: ProviderState, config: ProxyOptions) => Promise<JsonMap |
|
|
1
|
+
import type { ProxyOptions, ProviderState } from '../types';
|
|
2
|
+
import type { JsonMap } from '../../../../common/jsonTypes';
|
|
3
|
+
export declare const setupStates: (state: ProviderState, config: ProxyOptions) => Promise<JsonMap | undefined>;
|
|
@@ -4,45 +4,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.setupStates = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
fn.teardown !== undefined;
|
|
11
|
-
};
|
|
7
|
+
const logger_1 = __importDefault(require("../../../../common/logger"));
|
|
8
|
+
const isStateFuncWithSetup = (fn) => fn.setup !== undefined ||
|
|
9
|
+
fn.teardown !== undefined;
|
|
12
10
|
// Transform a regular state function to one with the setup/teardown functions
|
|
13
|
-
|
|
14
|
-
return isStateFuncWithSetup(fn) ? fn : { setup: fn };
|
|
15
|
-
};
|
|
11
|
+
const transformStateFunc = (fn) => isStateFuncWithSetup(fn) ? fn : { setup: fn };
|
|
16
12
|
// Lookup the handler based on the description
|
|
17
|
-
|
|
18
|
-
logger_1.default.debug(
|
|
19
|
-
|
|
13
|
+
const setupStates = (state, config) => {
|
|
14
|
+
logger_1.default.debug(`setting up state '${JSON.stringify(state)}'`);
|
|
15
|
+
const handler = config.stateHandlers
|
|
20
16
|
? config.stateHandlers[state.state]
|
|
21
17
|
: null;
|
|
22
18
|
if (!handler) {
|
|
23
19
|
if (state.action === 'setup') {
|
|
24
|
-
logger_1.default.warn(
|
|
20
|
+
logger_1.default.warn(`no state handler found for state: "${state.state}"`);
|
|
25
21
|
}
|
|
26
|
-
return Promise.resolve();
|
|
22
|
+
return Promise.resolve(undefined);
|
|
27
23
|
}
|
|
28
|
-
|
|
24
|
+
const stateFn = transformStateFunc(handler);
|
|
29
25
|
switch (state.action) {
|
|
30
26
|
case 'setup':
|
|
31
27
|
if (stateFn.setup) {
|
|
32
|
-
logger_1.default.debug(
|
|
28
|
+
logger_1.default.debug(`setting up state '${state.state}'`);
|
|
33
29
|
return stateFn.setup(state.params);
|
|
34
30
|
}
|
|
35
31
|
break;
|
|
36
32
|
case 'teardown':
|
|
37
33
|
if (stateFn.teardown) {
|
|
38
|
-
logger_1.default.debug(
|
|
34
|
+
logger_1.default.debug(`tearing down state '${state.state}'`);
|
|
39
35
|
return stateFn.teardown(state.params);
|
|
40
36
|
}
|
|
41
37
|
break;
|
|
42
38
|
default:
|
|
43
|
-
logger_1.default.debug(
|
|
39
|
+
logger_1.default.debug(`unknown state action '${state.action}' received, ignoring`);
|
|
44
40
|
}
|
|
45
|
-
return Promise.resolve();
|
|
41
|
+
return Promise.resolve(undefined);
|
|
46
42
|
};
|
|
47
43
|
exports.setupStates = setupStates;
|
|
48
44
|
//# sourceMappingURL=setupStates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupStates.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/setupStates.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"setupStates.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/setupStates.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAU/C,MAAM,oBAAoB,GAAG,CAC3B,EAAkC,EACR,EAAE,CAC3B,EAAyB,CAAC,KAAK,KAAK,SAAS;IAC7C,EAAyB,CAAC,QAAQ,KAAK,SAAS,CAAC;AAEpD,8EAA8E;AAC9E,MAAM,kBAAkB,GAAG,CAAC,EAAgB,EAAsB,EAAE,CAClE,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAEhD,8CAA8C;AACvC,MAAM,WAAW,GAAG,CACzB,KAAoB,EACpB,MAAoB,EACU,EAAE;IAChC,gBAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa;QAClC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC7B,gBAAM,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,gBAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAClD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;YACD,MAAM;QACR,KAAK,UAAU;YACb,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,gBAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBACpD,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,MAAM;QACR;YACE,gBAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,MAAM,sBAAsB,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC,CAAC;AApCW,QAAA,WAAW,eAoCtB"}
|