@pact-foundation/pact 10.0.0-beta.59 → 10.0.0-beta.60

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/README.md +12 -9
  3. package/package.json +3 -3
  4. package/src/common/logger.js +5 -1
  5. package/src/common/logger.js.map +1 -1
  6. package/src/common/net.js +5 -1
  7. package/src/common/net.js.map +1 -1
  8. package/src/common/request.d.ts +0 -1
  9. package/src/common/request.js +77 -40
  10. package/src/common/request.js.map +1 -1
  11. package/src/dsl/publisher.spec.js +5 -1
  12. package/src/dsl/publisher.spec.js.map +1 -1
  13. package/src/dsl/verifier/index.js +5 -1
  14. package/src/dsl/verifier/index.js.map +1 -1
  15. package/src/dsl/verifier/proxy/index.js +5 -1
  16. package/src/dsl/verifier/proxy/index.js.map +1 -1
  17. package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
  18. package/src/dsl/verifier/proxy/parseBody.js +22 -0
  19. package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
  20. package/src/dsl/verifier/proxy/parseBody.spec.d.ts +1 -0
  21. package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
  22. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
  23. package/src/dsl/verifier/proxy/proxy.js +19 -4
  24. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  25. package/src/dsl/verifier/proxy/stateHandler/index.js +5 -1
  26. package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -1
  27. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +5 -1
  28. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
  29. package/src/dsl/verifier/proxy/types.d.ts +1 -0
  30. package/src/dsl/verifier/verifier.js +8 -1
  31. package/src/dsl/verifier/verifier.js.map +1 -1
  32. package/src/dsl/verifier/verifier.spec.js +5 -1
  33. package/src/dsl/verifier/verifier.spec.js.map +1 -1
  34. package/src/httpPact/index.js +5 -1
  35. package/src/httpPact/index.js.map +1 -1
  36. package/src/index.js +5 -1
  37. package/src/index.js.map +1 -1
  38. package/src/messageConsumerPact.js +5 -1
  39. package/src/messageConsumerPact.js.map +1 -1
  40. package/src/messageProviderPact.js +5 -1
  41. package/src/messageProviderPact.js.map +1 -1
  42. package/src/messageProviderPact.spec.js +5 -1
  43. package/src/messageProviderPact.spec.js.map +1 -1
  44. package/src/v3/index.js +5 -1
  45. package/src/v3/index.js.map +1 -1
  46. package/src/v3/matchers.d.ts +5 -5
  47. package/src/v3/matchers.spec.js +5 -1
  48. package/src/v3/matchers.spec.js.map +1 -1
  49. package/src/v3/xml/xmlElement.spec.js +5 -1
  50. package/src/v3/xml/xmlElement.spec.js.map +1 -1
  51. package/test/helper.js +5 -1
  52. package/test/helper.js.map +1 -1
  53. package/v3/index.js +5 -1
  54. package/v3/index.js.map +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [10.0.0-beta.60](https://github.com/pact-foundation/pact-js/compare/v10.0.0-beta.59...v10.0.0-beta.60) (2022-06-26)
6
+
7
+
8
+ ### Features
9
+
10
+ * modify request body inside of verifier v3 ([#875](https://github.com/pact-foundation/pact-js/issues/875)) ([0fd1a34](https://github.com/pact-foundation/pact-js/commit/0fd1a349dbcc596543d7872c89e6171b9b1cabde))
11
+ * remove pact-web and karma ([2c57330](https://github.com/pact-foundation/pact-js/commit/2c57330f5779cd345ff6213fcd468dd34126823e))
12
+ * support customising the proxy host ([d281d4f](https://github.com/pact-foundation/pact-js/commit/d281d4f7d94b45a98c27ed5fd5f06a5c7649b710))
13
+
5
14
  ## [10.0.0-beta.59](https://github.com/pact-foundation/pact-js/compare/v10.0.0-beta.58...v10.0.0-beta.59) (2022-04-01)
6
15
 
7
16
 
@@ -1224,8 +1233,6 @@ different state phases.
1224
1233
  * **pact-web-types:** Fix issue where typescript types were not exposed in pact-web ([d529082](https://github.com/pact-foundation/pact-js/commit/d529082f0b1e7d969ebdedae091adc54ad4be464))
1225
1234
 
1226
1235
  ### [9.15.2](https://github.com/pact-foundation/pact-js/compare/v9.15.1...v9.15.2) (2021-02-28)
1227
- >>>>>>> master
1228
-
1229
1236
 
1230
1237
  ### Fixes and Improvements
1231
1238
 
package/README.md CHANGED
@@ -55,7 +55,7 @@ Read [Getting started with Pact] for more information for beginners.
55
55
  - [Publishing Pacts to a Broker](#publishing-pacts-to-a-broker)
56
56
  - [Publish in npm scripts](#publish-in-npm-scripts)
57
57
  - [Publish in a custom script](#publish-in-a-custom-script)
58
- - [Pact publishing options](#pact-publishing-options)
58
+ - [Pact publishing options](#pact-publishing-options)
59
59
  - [Publishing Verification Results to a Pact Broker](#publishing-verification-results-to-a-pact-broker)
60
60
  - [Asynchronous API Testing](#asynchronous-api-testing)
61
61
  - [Consumer](#consumer)
@@ -72,14 +72,13 @@ Read [Getting started with Pact] for more information for beginners.
72
72
  - [Examples](#examples)
73
73
  - [HTTP APIs](#http-apis)
74
74
  - [Asynchronous APIs](#asynchronous-apis)
75
+ - [Using Pact in non-Node environments such as Karma](#using-pact-in-non-node-environments-such-as-karma)
75
76
  - [Pact JS V3](#pact-js-v3)
76
77
  - [Using the V3 matching rules](#using-the-v3-matching-rules)
77
78
  - [Array contains matcher](#array-contains-matcher)
78
79
  - [Provider State Injected Values](#provider-state-injected-values)
79
80
  - [Using Pact with XML](#using-pact-with-xml)
80
81
  - [Verifying providers with VerifierV3](#verifying-providers-with-verifierv3)
81
- - [Verification Options with VerifierV3](#verification-options-with-verifierv3)
82
- - [Request Filters](#request-filters)
83
82
  - [Provider state callbacks](#provider-state-callbacks)
84
83
  - [Debugging issues with Pact-JS V3](#debugging-issues-with-pact-js-v3)
85
84
  - [Debugging](#debugging)
@@ -104,10 +103,7 @@ Read [Getting started with Pact] for more information for beginners.
104
103
  ```
105
104
  npm i -S @pact-foundation/pact@latest
106
105
  ```
107
- <<<<<<< HEAD
108
- =======
109
106
 
110
- >>>>>>> master
111
107
  Make sure the `ignore-scripts` option is disabled, pact uses npm scripts to download further dependencies.
112
108
 
113
109
  ### Do Not Track
@@ -204,7 +200,7 @@ The first step is to create a test for your API Consumer. The example below uses
204
200
  1. Validate the expected interactions were made between your consumer and the Mock Service
205
201
  1. Generate the pact(s)
206
202
 
207
- Check out the `examples` folder for examples with Karma Jasmine, Mocha and Jest. The example below is taken from the [integration spec](https://github.com/pact-foundation/pact-js/blob/master/src/pact.integration.spec.ts).
203
+ Check out the `examples` folder for examples with Mocha and Jest. The example below is taken from the [integration spec](https://github.com/pact-foundation/pact-js/blob/master/src/pact.integration.spec.ts).
208
204
 
209
205
  ```javascript
210
206
  const path = require("path")
@@ -984,14 +980,21 @@ The workshop takes you through all of the key concepts using a React consumer an
984
980
  - [Pact with TypeScript + Mocha](https://github.com/pact-foundation/pact-js/tree/master/examples/typescript)
985
981
  - [Pact with Mocha](https://github.com/pact-foundation/pact-js/tree/master/examples/mocha)
986
982
  - [Pact with GraphQL](https://github.com/pact-foundation/pact-js/tree/master/examples/graphql)
987
- - [Pact with Karma + Jasmine](https://github.com/pact-foundation/pact-js/tree/master/examples/karma/jasmine)
988
- - [Pact with Karma + Mocha](https://github.com/pact-foundation/pact-js/tree/master/examples/karma/mocha)
989
983
  - [Pact with React + Jest](https://github.com/pact-foundation/pact-workshop-js)
990
984
 
991
985
  ### Asynchronous APIs
992
986
 
993
987
  - [Asynchronous messages](https://github.com/pact-foundation/pact-js/tree/master/examples/messages)
994
988
  - [Serverless](https://github.com/pact-foundation/pact-js/tree/master/examples/serverless)
989
+
990
+ ## Using Pact in non-Node environments such as Karma
991
+
992
+ Pact requires a Node runtime to be able to start and stop Mock servers, write logs and other things.
993
+
994
+ However, when used within browser or non-Node based environments - such as with Karma or ng-test - this is not possible.
995
+
996
+ You will need a Node based test framework such as Jest or Mocha.
997
+
995
998
  ## Pact JS V3
996
999
 
997
1000
  An initial beta version of Pact-JS with support for V3 specification features and XML matching has
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact",
3
- "version": "10.0.0-beta.59",
3
+ "version": "10.0.0-beta.60",
4
4
  "description": "Pact for all things Javascript",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -100,6 +100,7 @@
100
100
  "@pact-foundation/pact-core": "^13.6.0",
101
101
  "@types/bluebird": "^3.5.20",
102
102
  "@types/express": "^4.17.11",
103
+ "axios": "^0.27.2",
103
104
  "bluebird": "~3.5.1",
104
105
  "body-parser": "^1.18.2",
105
106
  "cli-color": "^1.1.0",
@@ -116,7 +117,6 @@
116
117
  "lodash.omitby": "4.6.0",
117
118
  "pino-pretty": "^6.0.0",
118
119
  "pkginfo": "^0.4.1",
119
- "popsicle": "^9.2.0",
120
120
  "ramda": "^0.26.1",
121
121
  "randexp": "^0.5.3"
122
122
  },
@@ -130,7 +130,7 @@
130
130
  "@types/chai": "^4.1.2",
131
131
  "@types/chai-as-promised": "^7.1.1",
132
132
  "@types/cli-color": "^0.3.29",
133
- "@types/http-proxy": "^1.17.5",
133
+ "@types/http-proxy": "^1.17.9",
134
134
  "@types/lodash": "^4.14.73",
135
135
  "@types/lodash.isnil": "^4.0.3",
136
136
  "@types/mocha": "^8.0.4",
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iFAA2D;AAE3D,mDAA6C;AAE7C,wEAAsD;AAEtD,IAAM,OAAO,GAAG,eAAQ,sBAAO,CAAE,CAAC;AAElC,kBAAe;IACb,SAAS,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAlC,CAAkC;IACxE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;CACjE,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,iFAA2D;AAE3D,mDAA6C;AAE7C,wEAAsD;AAEtD,IAAM,OAAO,GAAG,eAAQ,sBAAO,CAAE,CAAC;AAElC,kBAAe;IACb,SAAS,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAlC,CAAkC;IACxE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;CACjE,CAAC"}
package/src/common/net.js CHANGED
@@ -6,7 +6,11 @@
6
6
  */
7
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
8
  if (k2 === undefined) k2 = k;
9
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
10
14
  }) : (function(o, m, k, k2) {
11
15
  if (k2 === undefined) k2 = k;
12
16
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"net.js","sourceRoot":"","sources":["../../../src/common/net.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAA2B;AAC3B,qCAA+C;AAElC,QAAA,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAEpE,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,IAAY;IAClD,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QAC1B,IAAM,MAAM,GAAG,GAAG;aACf,YAAY,EAAE;aACd,MAAM,CAAC,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACvC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAwB;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,eAAQ,IAAI,wCAA8B,IAAI,CAAE,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AAdF,CAcE,CAAC;AAfQ,QAAA,SAAS,aAejB;AAEE,IAAM,eAAe,GAAG,UAAC,IAAY,EAAE,IAAY;IACxD,OAAA,OAAO,CAAC,OAAO,CACb,kBAAQ;SACL,GAAG,CACF,sBAAc;IACd,yEAAyE;IACzE,gEAAgE;IAChE,UAAC,CAAC,IAAK,OAAA,kBAAQ,CAAC,OAAO,CAAC,IAAA,iBAAS,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAA9C,CAA8C;IACrD,wGAAwG;IACxG,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB;SACA,IAAI,CAAC,UAAC,WAAW;QAChB,oEAAoE;QACpE,IAAI,WAAW,CAAC,KAAK,CAAC,UAAC,UAAU,IAAK,OAAA,CAAC,UAAU,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,EAAE;YAChE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,2BAAoB,IAAI,gCAA6B,CAAC,CACjE,CAAC;SACH;QAED,8EAA8E;QAC9E,OAAO,IAAA,iBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACL;AArBD,CAqBC,CAAC;AAtBS,QAAA,eAAe,mBAsBxB"}
1
+ {"version":3,"file":"net.js","sourceRoot":"","sources":["../../../src/common/net.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAA2B;AAC3B,qCAA+C;AAElC,QAAA,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAEpE,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,IAAY;IAClD,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QAC1B,IAAM,MAAM,GAAG,GAAG;aACf,YAAY,EAAE;aACd,MAAM,CAAC,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACvC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAwB;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,eAAQ,IAAI,wCAA8B,IAAI,CAAE,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AAdF,CAcE,CAAC;AAfQ,QAAA,SAAS,aAejB;AAEE,IAAM,eAAe,GAAG,UAAC,IAAY,EAAE,IAAY;IACxD,OAAA,OAAO,CAAC,OAAO,CACb,kBAAQ;SACL,GAAG,CACF,sBAAc;IACd,yEAAyE;IACzE,gEAAgE;IAChE,UAAC,CAAC,IAAK,OAAA,kBAAQ,CAAC,OAAO,CAAC,IAAA,iBAAS,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAA9C,CAA8C;IACrD,wGAAwG;IACxG,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB;SACA,IAAI,CAAC,UAAC,WAAW;QAChB,oEAAoE;QACpE,IAAI,WAAW,CAAC,KAAK,CAAC,UAAC,UAAU,IAAK,OAAA,CAAC,UAAU,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,EAAE;YAChE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,2BAAoB,IAAI,gCAA6B,CAAC,CACjE,CAAC;SACH;QAED,8EAA8E;QAC9E,OAAO,IAAA,iBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACL;AArBD,CAqBC,CAAC;AAtBS,QAAA,eAAe,mBAsBxB"}
@@ -17,6 +17,5 @@ export declare enum HTTPMethods {
17
17
  }
18
18
  export declare type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'COPY' | 'LOCK' | 'MKCOL' | 'MOVE' | 'PROPFIND' | 'PROPPATCH' | 'UNLOCK' | 'REPORT';
19
19
  export declare class Request {
20
- private readonly transport;
21
20
  send(method: HTTPMethod, url: string, body?: string): Promise<string>;
22
21
  }
@@ -1,26 +1,49 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
40
  };
21
41
  Object.defineProperty(exports, "__esModule", { value: true });
22
42
  exports.Request = exports.HTTPMethods = void 0;
23
- var Popsicle = __importStar(require("popsicle/dist/common"));
43
+ var axios_1 = __importDefault(require("axios"));
44
+ var https_1 = __importDefault(require("https"));
45
+ var ramda_1 = require("ramda");
46
+ var logger_1 = __importDefault(require("./logger"));
24
47
  var HTTPMethods;
25
48
  (function (HTTPMethods) {
26
49
  HTTPMethods["GET"] = "GET";
@@ -41,29 +64,43 @@ var HTTPMethods;
41
64
  })(HTTPMethods = exports.HTTPMethods || (exports.HTTPMethods = {}));
42
65
  var Request = /** @class */ (function () {
43
66
  function Request() {
44
- this.transport = Popsicle.createTransport({
45
- maxBufferSize: Infinity,
46
- rejectUnauthorized: false,
47
- type: 'text',
48
- });
49
67
  }
50
68
  Request.prototype.send = function (method, url, body) {
51
- var opts = {
52
- body: body,
53
- headers: {
54
- 'Content-Type': 'application/json',
55
- 'X-Pact-Mock-Service': 'true',
56
- },
57
- method: method,
58
- timeout: 10000,
59
- transport: this.transport,
60
- url: url,
61
- };
62
- return Popsicle.request(opts).then(function (res) {
63
- if (res.status >= 200 && res.status < 400) {
64
- return res.body;
65
- }
66
- return Promise.reject(res.body);
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var res, e_1;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0:
74
+ _a.trys.push([0, 3, , 4]);
75
+ return [4 /*yield*/, (0, axios_1.default)(url, {
76
+ data: body,
77
+ headers: {
78
+ 'Content-Type': 'application/json',
79
+ 'X-Pact-Mock-Service': 'true',
80
+ },
81
+ httpsAgent: new https_1.default.Agent({
82
+ keepAlive: true,
83
+ rejectUnauthorized: false,
84
+ }),
85
+ method: method,
86
+ timeout: 10000,
87
+ url: url,
88
+ maxBodyLength: Infinity,
89
+ })];
90
+ case 1:
91
+ res = _a.sent();
92
+ if (res.status >= 200 && res.status < 400) {
93
+ return [2 /*return*/, res.data];
94
+ }
95
+ return [4 /*yield*/, Promise.reject(res.data)];
96
+ case 2: return [2 /*return*/, _a.sent()];
97
+ case 3:
98
+ e_1 = _a.sent();
99
+ logger_1.default.error("error making http request: ".concat(e_1.message));
100
+ return [2 /*return*/, Promise.reject((0, ramda_1.pathOr)(e_1.message, ['response', 'data'], e_1))];
101
+ case 4: return [2 /*return*/];
102
+ }
103
+ });
67
104
  });
68
105
  };
69
106
  return Request;
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/common/request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6DAAiD;AAGjD,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AACnB,CAAC,EAhBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAgBtB;AAmBD;IAAA;QACmB,cAAS,GAAG,QAAQ,CAAC,eAAe,CAAC;YACpD,aAAa,EAAE,QAAQ;YACvB,kBAAkB,EAAE,KAAK;YACzB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IAsBL,CAAC;IApBQ,sBAAI,GAAX,UAAY,MAAkB,EAAE,GAAW,EAAE,IAAa;QACxD,IAAM,IAAI,GAAG;YACX,IAAI,MAAA;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,qBAAqB,EAAE,MAAM;aAC9B;YACD,MAAM,QAAA;YACN,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,KAAA;SACJ,CAAC;QAEF,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,GAAa;YAC/C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;gBACzC,OAAO,GAAG,CAAC,IAAI,CAAC;aACjB;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IACH,cAAC;AAAD,CAAC,AA3BD,IA2BC;AA3BY,0BAAO"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/common/request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,gDAA0B;AAC1B,+BAA+B;AAC/B,oDAA8B;AAE9B,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AACnB,CAAC,EAhBW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAgBtB;AAmBD;IAAA;IAgCA,CAAC;IA/Bc,sBAAI,GAAjB,UACE,MAAkB,EAClB,GAAW,EACX,IAAa;;;;;;;wBAGC,qBAAM,IAAA,eAAK,EAAC,GAAG,EAAE;gCAC3B,IAAI,EAAE,IAAI;gCACV,OAAO,EAAE;oCACP,cAAc,EAAE,kBAAkB;oCAClC,qBAAqB,EAAE,MAAM;iCAC9B;gCACD,UAAU,EAAE,IAAI,eAAK,CAAC,KAAK,CAAC;oCAC1B,SAAS,EAAE,IAAI;oCACf,kBAAkB,EAAE,KAAK;iCAC1B,CAAC;gCACF,MAAM,QAAA;gCACN,OAAO,EAAE,KAAK;gCACd,GAAG,KAAA;gCACH,aAAa,EAAE,QAAQ;6BACxB,CAAC,EAAA;;wBAdI,GAAG,GAAG,SAcV;wBAEF,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;4BACzC,sBAAO,GAAG,CAAC,IAAI,EAAC;yBACjB;wBACM,qBAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAA;4BAArC,sBAAO,SAA8B,EAAC;;;wBAEtC,gBAAM,CAAC,KAAK,CAAC,qCAA8B,GAAC,CAAC,OAAO,CAAE,CAAC,CAAC;wBACxD,sBAAO,OAAO,CAAC,MAAM,CAAC,IAAA,cAAM,EAAC,GAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,GAAC,CAAC,CAAC,EAAC;;;;;KAErE;IACH,cAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCY,0BAAO"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.spec.js","sourceRoot":"","sources":["../../../src/dsl/publisher.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAoE;AACpE,yCAA6B;AAC7B,sEAA8C;AAE9C,yCAAwC;AAExC,IAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,IAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,WAAW,EAAE;IACpB,QAAQ,CAAC,cAAc,EAAE;QACvB,EAAE,CAAC,mCAAmC,EAAE;YACtC,IAAM,CAAC,GAAG,IAAI,qBAAS,CAAC;gBACtB,eAAe,EAAE,OAAO;gBACxB,UAAU,EAAE,gBAAgB;gBAC5B,eAAe,EAAE,EAAE;aACpB,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"publisher.spec.js","sourceRoot":"","sources":["../../../src/dsl/publisher.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAoE;AACpE,yCAA6B;AAC7B,sEAA8C;AAE9C,yCAAwC;AAExC,IAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,IAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,WAAW,EAAE;IACpB,QAAQ,CAAC,cAAc,EAAE;QACvB,EAAE,CAAC,mCAAmC,EAAE;YACtC,IAAM,CAAC,GAAG,IAAI,qBAAS,CAAC;gBACtB,eAAe,EAAE,OAAO;gBACxB,UAAU,EAAE,gBAAgB;gBAC5B,eAAe,EAAE,EAAE;aACpB,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="node" />
2
+ import * as http from 'http';
3
+ interface ReqBodyExtended extends http.IncomingMessage {
4
+ body?: Buffer | Record<string, unknown>;
5
+ }
6
+ export declare const parseBody: (proxyReq: http.ClientRequest, req: ReqBodyExtended) => void;
7
+ export {};
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseBody = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ var parseBody = function (proxyReq, req) {
6
+ if (!req.body || !Object.keys(req.body).length) {
7
+ return;
8
+ }
9
+ var bodyData;
10
+ if (Buffer.isBuffer(req.body)) {
11
+ bodyData = req.body;
12
+ }
13
+ else if (typeof req.body === 'object') {
14
+ bodyData = JSON.stringify(req.body);
15
+ }
16
+ if (bodyData) {
17
+ proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData));
18
+ proxyReq.write(bodyData);
19
+ }
20
+ };
21
+ exports.parseBody = parseBody;
22
+ //# sourceMappingURL=parseBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseBody.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.ts"],"names":[],"mappings":";;;AAMA,8DAA8D;AACvD,IAAM,SAAS,GAAG,UACvB,QAA4B,EAC5B,GAAoB;IAEpB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;QAC9C,OAAO;KACR;IAED,IAAI,QAAQ,CAAC;IAEb,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC7B,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;KACrB;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QACvC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC1B;AACH,CAAC,CAAC;AApBW,QAAA,SAAS,aAoBpB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (_) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ var __importDefault = (this && this.__importDefault) || function (mod) {
62
+ return (mod && mod.__esModule) ? mod : { "default": mod };
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ var chai_1 = __importDefault(require("chai"));
66
+ var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
67
+ var sinon_1 = __importDefault(require("sinon"));
68
+ var http = __importStar(require("http"));
69
+ var parseBody_1 = require("./parseBody");
70
+ chai_1.default.use(chai_as_promised_1.default);
71
+ var expect = chai_1.default.expect;
72
+ describe('Verifier', function () {
73
+ afterEach(function () {
74
+ sinon_1.default.restore();
75
+ });
76
+ describe('#parseBody', function () {
77
+ var proxyReq;
78
+ beforeEach(function () {
79
+ proxyReq = sinon_1.default.createStubInstance(http.ClientRequest);
80
+ });
81
+ describe('when request body exists', function () {
82
+ it('it writes the request if the body is a buffer', function () { return __awaiter(void 0, void 0, void 0, function () {
83
+ var req;
84
+ return __generator(this, function (_a) {
85
+ req = { body: '' };
86
+ req.body = Buffer.from('foo');
87
+ (0, parseBody_1.parseBody)(proxyReq, req);
88
+ expect(proxyReq.setHeader).to.have.been.called;
89
+ expect(proxyReq.write).to.have.been.called;
90
+ return [2 /*return*/];
91
+ });
92
+ }); });
93
+ it('it writes the request if the body is an object', function () { return __awaiter(void 0, void 0, void 0, function () {
94
+ var req;
95
+ return __generator(this, function (_a) {
96
+ req = { body: { foo: 'bar' } };
97
+ (0, parseBody_1.parseBody)(proxyReq, req);
98
+ expect(proxyReq.setHeader).to.have.been.called;
99
+ expect(proxyReq.write).to.have.been.called;
100
+ return [2 /*return*/];
101
+ });
102
+ }); });
103
+ });
104
+ describe('when request body does not exist', function () {
105
+ it('it does not invoke the request rewrite', function () { return __awaiter(void 0, void 0, void 0, function () {
106
+ var req;
107
+ return __generator(this, function (_a) {
108
+ req = 'foo';
109
+ (0, parseBody_1.parseBody)(proxyReq, req);
110
+ expect(proxyReq.setHeader).to.have.not.been.called;
111
+ expect(proxyReq.write).to.have.not.been.called;
112
+ return [2 /*return*/];
113
+ });
114
+ }); });
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=parseBody.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseBody.spec.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/parseBody.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAwB;AACxB,sEAA8C;AAC9C,gDAA0B;AAC1B,yCAA6B;AAE7B,yCAAwC;AAExC,cAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,cAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,UAAU,EAAE;IACnB,SAAS,CAAC;QACR,eAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE;QACrB,IAAI,QAAa,CAAC;QAElB,UAAU,CAAC;YACT,QAAQ,GAAG,eAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE;YACnC,EAAE,CAAC,+CAA+C,EAAE;;;oBAC5C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC9B,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAC5C,CAAC,CAAC;YAEH,EAAE,CAAC,gDAAgD,EAAE;;;oBAC7C,GAAG,GAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1C,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC/C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAC5C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kCAAkC,EAAE;YAC3C,EAAE,CAAC,wCAAwC,EAAE;;;oBACrC,GAAG,GAAQ,KAAK,CAAC;oBACvB,IAAA,qBAAS,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBAEzB,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;oBACnD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;;iBAChD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -31,6 +35,7 @@ var logger_1 = __importDefault(require("../../../common/logger"));
31
35
  var stateHandler_1 = require("./stateHandler/stateHandler");
32
36
  var hooks_1 = require("./hooks");
33
37
  var tracer_1 = require("./tracer");
38
+ var parseBody_1 = require("./parseBody");
34
39
  // Listens for the server start event
35
40
  var waitForServerReady = function (server) {
36
41
  return new Promise(function (resolve, reject) {
@@ -46,8 +51,17 @@ var createProxy = function (config, stateSetupPath) {
46
51
  var app = (0, express_1.default)();
47
52
  var proxy = new http_proxy_1.default();
48
53
  logger_1.default.trace("Setting up state proxy with path: ".concat(stateSetupPath));
49
- app.use(stateSetupPath, body_parser_1.default.json());
50
- app.use(stateSetupPath, body_parser_1.default.urlencoded({ extended: true }));
54
+ // NOTE: if you change any of these global middleware that consumes the body
55
+ // review the "proxyReq" event reader below
56
+ app.use(body_parser_1.default.json({
57
+ type: [
58
+ 'application/json',
59
+ 'application/json; charset=utf-8',
60
+ 'application/json; charset=utf8',
61
+ ],
62
+ }));
63
+ app.use(body_parser_1.default.urlencoded({ extended: true }));
64
+ app.use('/*', body_parser_1.default.raw({ type: '*/*' }));
51
65
  (0, hooks_1.registerBeforeHook)(app, config, stateSetupPath);
52
66
  (0, hooks_1.registerAfterHook)(app, config, stateSetupPath);
53
67
  // Trace req/res logging
@@ -64,13 +78,14 @@ var createProxy = function (config, stateSetupPath) {
64
78
  app.post(stateSetupPath, (0, stateHandler_1.createProxyStateHandler)(config));
65
79
  // Proxy server will respond to Verifier process
66
80
  app.all('/*', function (req, res) {
67
- logger_1.default.debug("Proxying ".concat(req.path));
81
+ logger_1.default.debug("Proxying ".concat(req.method, ": ").concat(req.path));
68
82
  proxy.web(req, res, {
69
83
  changeOrigin: config.changeOrigin === true,
70
84
  secure: config.validateSSL === true,
71
85
  target: config.providerBaseUrl,
72
86
  });
73
87
  });
88
+ proxy.on('proxyReq', function (proxyReq, req) { return (0, parseBody_1.parseBody)(proxyReq, req); });
74
89
  return http.createServer(app).listen();
75
90
  };
76
91
  exports.createProxy = createProxy;
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA8B;AAC9B,0DAAmC;AACnC,4DAAqC;AACrC,yCAA6B;AAG7B,kEAA4C;AAC5C,4DAAsE;AACtE,iCAAgE;AAChE,mCAAqE;AAErE,qCAAqC;AAC9B,IAAM,kBAAkB,GAAG,UAAC,MAAmB;IACpD,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QAC1B,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,EAAf,CAAe,CAAC,CAAC;QAC9C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;YACjB,OAAA,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAA9D,CAA8D,CAC/D,CAAC;IACJ,CAAC,CAAC;AALF,CAKE,CAAC;AANQ,QAAA,kBAAkB,sBAM1B;AAEL,uDAAuD;AAChD,IAAM,WAAW,GAAG,UACzB,MAAoB,EACpB,cAAsB;IAEtB,IAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,IAAM,KAAK,GAAG,IAAI,oBAAS,EAAE,CAAC;IAC9B,gBAAM,CAAC,KAAK,CAAC,4CAAqC,cAAc,CAAE,CAAC,CAAC;IAEpE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,IAAA,0BAAkB,EAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAChD,IAAA,yBAAiB,EAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IAE/C,wBAAwB;IACxB,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE;QAC9D,gBAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAmB,GAAE,CAAC,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,IAAA,6BAAoB,GAAE,CAAC,CAAC;KACjC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE;QACtC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC/B;IAED,+BAA+B;IAC/B,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAA,sCAAuB,EAAC,MAAM,CAAC,CAAC,CAAC;IAE1D,gDAAgD;IAChD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAC,GAAG,EAAE,GAAG;QACrB,gBAAM,CAAC,KAAK,CAAC,mBAAY,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;QAErC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YAClB,YAAY,EAAE,MAAM,CAAC,YAAY,KAAK,IAAI;YAC1C,MAAM,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI;YACnC,MAAM,EAAE,MAAM,CAAC,eAAe;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AACzC,CAAC,CAAC;AAxCW,QAAA,WAAW,eAwCtB"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/proxy.ts"],"names":[],"mappings":"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"}