@pact-foundation/pact 12.3.0 → 12.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 CHANGED
@@ -2,6 +2,20 @@
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
+ ## [12.4.0](https://github.com/pact-foundation/pact-js/compare/v12.3.1...v12.4.0) (2024-03-25)
6
+
7
+
8
+ ### Features
9
+
10
+ * **corporate proxy:** support in verifier ([f3ec1be](https://github.com/pact-foundation/pact-js/commit/f3ec1be2029c365e1888798f8a78935a0ed3f74c))
11
+
12
+ ### [12.3.1](https://github.com/pact-foundation/pact-js/compare/v12.3.0...v12.3.1) (2024-03-25)
13
+
14
+
15
+ ### Fixes and Improvements
16
+
17
+ * update to latest pact-core 14.3.3 ([34d8a4b](https://github.com/pact-foundation/pact-js/commit/34d8a4bc9fba6f98590509e1bb1c78b3377792e5))
18
+
5
19
  ## [12.3.0](https://github.com/pact-foundation/pact-js/compare/v12.2.0...v12.3.0) (2024-02-28)
6
20
 
7
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact",
3
- "version": "12.3.0",
3
+ "version": "12.4.0",
4
4
  "description": "Pact for all things Javascript",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -95,7 +95,7 @@
95
95
  ]
96
96
  },
97
97
  "dependencies": {
98
- "@pact-foundation/pact-core": "^14.3.0",
98
+ "@pact-foundation/pact-core": "^14.3.3",
99
99
  "@types/express": "^4.17.11",
100
100
  "axios": "^1.6.1",
101
101
  "body-parser": "^1.20.0",
@@ -104,6 +104,7 @@
104
104
  "graphql": "^14.0.0",
105
105
  "graphql-tag": "^2.9.1",
106
106
  "http-proxy": "^1.18.1",
107
+ "https-proxy-agent": "^7.0.4",
107
108
  "js-base64": "^3.6.1",
108
109
  "lodash": "^4.17.21",
109
110
  "lodash.isfunction": "3.0.8",
@@ -4,5 +4,5 @@ import * as http from 'http';
4
4
  interface ReqBodyExtended extends http.IncomingMessage {
5
5
  body?: Buffer | Record<string, unknown>;
6
6
  }
7
- export declare const parseBody: (proxyReq: http.ClientRequest, req: ReqBodyExtended) => void;
7
+ export declare const parseBody: (req: ReqBodyExtended) => Buffer;
8
8
  export {};
@@ -1,21 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseBody = void 0;
4
- var parseBody = function (proxyReq, req) {
4
+ var parseBody = function (req) {
5
+ var bodyData = Buffer.alloc(0);
5
6
  if (!req.body || !Object.keys(req.body).length) {
6
- return;
7
+ return bodyData;
7
8
  }
8
- var bodyData;
9
9
  if (Buffer.isBuffer(req.body)) {
10
10
  bodyData = req.body;
11
11
  }
12
12
  else if (typeof req.body === 'object') {
13
- bodyData = JSON.stringify(req.body);
14
- }
15
- if (bodyData) {
16
- proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
17
- proxyReq.write(bodyData);
13
+ bodyData = Buffer.from(JSON.stringify(req.body));
18
14
  }
15
+ return bodyData;
19
16
  };
20
17
  exports.parseBody = parseBody;
21
18
  //# sourceMappingURL=parseBody.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseBody.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.ts"],"names":[],"mappings":";;;AAMO,IAAM,SAAS,GAAG,UACvB,QAA4B,EAC5B,GAAoB;IAEpB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;QAC9C,OAAO;KACR;IAED,IAAI,QAAQ,CAAC;IAEb,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7B,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;KACrB;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QACvC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC;AApBW,QAAA,SAAS,aAoBpB"}
1
+ {"version":3,"file":"parseBody.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.ts"],"names":[],"mappings":";;;AAMO,IAAM,SAAS,GAAG,UAAC,GAAoB;IAC5C,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;QAC9C,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7B,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;KACrB;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QACvC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;KAClD;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAdW,QAAA,SAAS,aAcpB"}
@@ -1,27 +1,4 @@
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -64,51 +41,43 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
64
41
  Object.defineProperty(exports, "__esModule", { value: true });
65
42
  var chai_1 = __importDefault(require("chai"));
66
43
  var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
67
- var sinon_1 = __importDefault(require("sinon"));
68
- var http = __importStar(require("http"));
69
44
  var parseBody_1 = require("./parseBody");
70
45
  chai_1.default.use(chai_as_promised_1.default);
71
46
  var expect = chai_1.default.expect;
72
47
  describe('Verifier', function () {
73
- afterEach(function () {
74
- sinon_1.default.restore();
75
- });
76
48
  describe('#parseBody', function () {
77
- var proxyReq;
78
- beforeEach(function () {
79
- proxyReq = sinon_1.default.createStubInstance(http.ClientRequest);
80
- });
81
49
  describe('when request body exists', function () {
82
- it('it writes the request if the body is a buffer', function () { return __awaiter(void 0, void 0, void 0, function () {
83
- var req;
50
+ it('it returns the request body buffer', function () { return __awaiter(void 0, void 0, void 0, function () {
51
+ var req, body;
84
52
  return __generator(this, function (_a) {
85
53
  req = { body: '' };
86
54
  req.body = Buffer.from('foo');
87
- (0, parseBody_1.parseBody)(proxyReq, req);
88
- expect(proxyReq.setHeader).to.have.been.called;
89
- expect(proxyReq.write).to.have.been.called;
55
+ body = (0, parseBody_1.parseBody)(req);
56
+ expect(body).to.be.instanceOf(Buffer);
57
+ expect(body.toString()).to.eq('foo');
90
58
  return [2 /*return*/];
91
59
  });
92
60
  }); });
93
- it('it writes the request if the body is an object', function () { return __awaiter(void 0, void 0, void 0, function () {
94
- var req;
61
+ it('it returns a buffer of the request body object', function () { return __awaiter(void 0, void 0, void 0, function () {
62
+ var req, body;
95
63
  return __generator(this, function (_a) {
96
64
  req = { body: { foo: 'bar' } };
97
- (0, parseBody_1.parseBody)(proxyReq, req);
98
- expect(proxyReq.setHeader).to.have.been.called;
99
- expect(proxyReq.write).to.have.been.called;
65
+ body = (0, parseBody_1.parseBody)(req);
66
+ expect(body).to.be.instanceOf(Buffer);
67
+ expect(body.toString()).to.eq(JSON.stringify(req.body));
100
68
  return [2 /*return*/];
101
69
  });
102
70
  }); });
103
71
  });
104
72
  describe('when request body does not exist', function () {
105
- it('it does not invoke the request rewrite', function () { return __awaiter(void 0, void 0, void 0, function () {
106
- var req;
73
+ it('returns an empty buffer', function () { return __awaiter(void 0, void 0, void 0, function () {
74
+ var req, body;
107
75
  return __generator(this, function (_a) {
108
76
  req = 'foo';
109
- (0, parseBody_1.parseBody)(proxyReq, req);
110
- expect(proxyReq.setHeader).to.have.not.been.called;
111
- expect(proxyReq.write).to.have.not.been.called;
77
+ body = (0, parseBody_1.parseBody)(req);
78
+ expect(body).to.be.instanceOf(Buffer);
79
+ expect(body).to.not.have.length;
80
+ expect(body.toString()).to.be.empty;
112
81
  return [2 /*return*/];
113
82
  });
114
83
  }); });
@@ -1 +1 @@
1
- {"version":3,"file":"parseBody.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,gDAA0B;AAC1B,yCAA6B;AAE7B,yCAAwC;AAExC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,UAAU,EAAE;IACnB,SAAS,CAAC;QACR,eAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE;QACrB,IAAI,QAAa,CAAC;QAElB,UAAU,CAAC;YACT,QAAQ,GAAG,eAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,EAAE,CAAC,+CAA+C,EAAE;;;oBAC5C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAC5C,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE;;;oBAC7C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1C,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kCAAkC,EAAE;YAC3C,EAAE,CAAC,wCAAwC,EAAE;;;oBACrC,GAAG,GAAQ,KAAK,CAAC;oBACvB,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAChD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"parseBody.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAE9C,yCAAwC;AAExC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,UAAU,EAAE;IACnB,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,0BAA0B,EAAE;YACnC,EAAE,CAAC,oCAAoC,EAAE;;;oBACjC,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAExB,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;oBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;;iBACtC,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE;;;oBAC7C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;oBAEpC,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;oBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;;;iBACzD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kCAAkC,EAAE;YAC3C,EAAE,CAAC,yBAAyB,EAAE;;;oBACtB,GAAG,GAAQ,KAAK,CAAC;oBAEjB,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;oBAE5B,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;;;iBACrC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -35,12 +35,8 @@ var logger_1 = __importDefault(require("../../../common/logger"));
35
35
  var stateHandler_1 = require("./stateHandler/stateHandler");
36
36
  var hooks_1 = require("./hooks");
37
37
  var tracer_1 = require("./tracer");
38
- var parseBody_1 = require("./parseBody");
39
38
  var messages_1 = require("./messages");
40
- // A base URL is always needed for the proxy, even
41
- // if there are no targets to proxy (e.g. in the case
42
- // of message pact
43
- var defaultBaseURL = function () { return 'http://127.0.0.1/'; };
39
+ var proxyRequest_1 = require("./proxyRequest");
44
40
  // Listens for the server start event
45
41
  var waitForServerReady = function (server) {
46
42
  return new Promise(function (resolve, reject) {
@@ -87,13 +83,8 @@ var createProxy = function (config, stateSetupPath, messageTransportPath) {
87
83
  // Proxy server will respond to Verifier process
88
84
  app.all('/*', function (req, res) {
89
85
  logger_1.default.debug("Proxying ".concat(req.method, ": ").concat(req.path));
90
- proxy.web(req, res, {
91
- changeOrigin: config.changeOrigin === true,
92
- secure: config.validateSSL === true,
93
- target: config.providerBaseUrl || defaultBaseURL(),
94
- });
86
+ proxy.web(req, res, (0, proxyRequest_1.toServerOptions)(config, req));
95
87
  });
96
- proxy.on('proxyReq', function (proxyReq, req) { return (0, parseBody_1.parseBody)(proxyReq, req); });
97
88
  // TODO: node is now using ipv6 as a default. This should be customised
98
89
  return http
99
90
  .createServer(app)
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ServerOptions } from 'http-proxy';
2
+ import { IncomingMessage } from 'http';
3
+ import { ProxyOptions } from './types';
4
+ export declare const toServerOptions: (config: ProxyOptions, req: IncomingMessage) => ServerOptions;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toServerOptions = void 0;
4
+ var https_proxy_agent_1 = require("https-proxy-agent");
5
+ var stream_1 = require("stream");
6
+ var parseBody_1 = require("./parseBody");
7
+ // A base URL is always needed for the proxy, even
8
+ // if there are no targets to proxy (e.g. in the case
9
+ // of message pact
10
+ var defaultBaseURL = function () { return 'http://127.0.0.1/'; };
11
+ var toServerOptions = function (config, req) {
12
+ // Provide direct support for standard proxy configuration
13
+ var systemProxy = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
14
+ return {
15
+ changeOrigin: config.changeOrigin === true,
16
+ secure: config.validateSSL === true,
17
+ target: config.providerBaseUrl || defaultBaseURL(),
18
+ agent: systemProxy && new https_proxy_agent_1.HttpsProxyAgent(systemProxy),
19
+ buffer: stream_1.Readable.from((0, parseBody_1.parseBody)(req)),
20
+ };
21
+ };
22
+ exports.toServerOptions = toServerOptions;
23
+ //# sourceMappingURL=proxyRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyRequest.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAEpD,iCAAkC;AAGlC,yCAAwC;AAExC,kDAAkD;AAClD,qDAAqD;AACrD,kBAAkB;AAClB,IAAM,cAAc,GAAG,cAAM,OAAA,mBAAmB,EAAnB,CAAmB,CAAC;AAE1C,IAAM,eAAe,GAAG,UAC7B,MAAoB,EACpB,GAAoB;IAEpB,0DAA0D;IAC1D,IAAM,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,iBAAQ,CAAC,IAAI,CAAC,IAAA,qBAAS,EAAC,GAAG,CAAC,CAAC;KACtC,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,100 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var chai_1 = __importDefault(require("chai"));
18
+ var stream_1 = require("stream");
19
+ var proxyRequest_1 = require("./proxyRequest");
20
+ var expect = chai_1.default.expect;
21
+ describe('#toServerOptions', function () {
22
+ var toServerOptions = function (opts, req) {
23
+ if (opts === void 0) { opts = {}; }
24
+ return (0, proxyRequest_1.toServerOptions)(opts, req !== null && req !== void 0 ? req : {});
25
+ };
26
+ context('changeOrigin', function () {
27
+ it('forwards option', function () {
28
+ var res = toServerOptions({ changeOrigin: true });
29
+ expect(res.changeOrigin).to.be.true;
30
+ });
31
+ it('is false by default', function () {
32
+ var res = toServerOptions();
33
+ expect(res.changeOrigin).to.be.false;
34
+ });
35
+ });
36
+ context('secure', function () {
37
+ it('is true when validating ssl', function () {
38
+ var res = toServerOptions({ validateSSL: true });
39
+ expect(res.secure).to.be.true;
40
+ });
41
+ it('is false by default', function () {
42
+ var res = toServerOptions();
43
+ expect(res.secure).to.be.false;
44
+ });
45
+ });
46
+ context('target', function () {
47
+ it('uses providerBaseUrl', function () {
48
+ var expectedTarget = 'http://test.com';
49
+ var res = toServerOptions({ providerBaseUrl: expectedTarget });
50
+ expect(res.target).to.eq(expectedTarget);
51
+ });
52
+ it('uses loopback address by default', function () {
53
+ var res = toServerOptions();
54
+ expect(res.target).to.eq('http://127.0.0.1/');
55
+ });
56
+ });
57
+ context('agent', function () {
58
+ var initialEnv = __assign({}, process.env);
59
+ afterEach(function () {
60
+ process.env = __assign({}, initialEnv);
61
+ });
62
+ it('uses no agent by default', function () {
63
+ var res = toServerOptions();
64
+ expect(res.agent).to.be.undefined;
65
+ });
66
+ it('uses HTTPS_PROXY', function () {
67
+ var _a, _b;
68
+ var expectedProxy = 'http://proxy.host/';
69
+ process.env.HTTPS_PROXY = expectedProxy;
70
+ var res = toServerOptions();
71
+ expect((_b = (_a = res.agent) === null || _a === void 0 ? void 0 : _a.proxy) === null || _b === void 0 ? void 0 : _b.toString()).to.eq(expectedProxy);
72
+ });
73
+ it('uses HTTP_PROXY', function () {
74
+ var _a, _b;
75
+ var expectedProxy = 'http://my.proxy/';
76
+ process.env.HTTP_PROXY = expectedProxy;
77
+ var res = toServerOptions();
78
+ expect((_b = (_a = res.agent) === null || _a === void 0 ? void 0 : _a.proxy) === null || _b === void 0 ? void 0 : _b.toString()).to.eq(expectedProxy);
79
+ });
80
+ it('prefers HTTPS_PROXY to HTTP_PROXY', function () {
81
+ var _a, _b;
82
+ process.env.HTTPS_PROXY = 'http://unused/';
83
+ var expectedProxy = 'http://expected.proxy/';
84
+ process.env.HTTPS_PROXY = expectedProxy;
85
+ var res = toServerOptions();
86
+ expect((_b = (_a = res.agent) === null || _a === void 0 ? void 0 : _a.proxy) === null || _b === void 0 ? void 0 : _b.toString()).to.eq(expectedProxy);
87
+ });
88
+ });
89
+ context('buffer', function () {
90
+ it('provides readable of body', function () {
91
+ var res = toServerOptions({}, { body: 'a' });
92
+ expect(res.buffer).to.be.instanceOf(stream_1.Readable);
93
+ });
94
+ it('provides readable when body is undefined', function () {
95
+ var res = toServerOptions();
96
+ expect(res.buffer).to.be.instanceOf(stream_1.Readable);
97
+ });
98
+ });
99
+ });
100
+ //# sourceMappingURL=proxyRequest.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxyRequest.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxyRequest.spec.ts"],"names":[],"mappings":"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"}