@pact-foundation/pact 15.0.0 → 16.0.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.
Files changed (116) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +1 -2
  3. package/package.json +38 -34
  4. package/scripts/ci/release.sh +2 -1
  5. package/src/common/graphQL/configurationError.d.ts +2 -0
  6. package/src/common/graphQL/configurationError.js +27 -0
  7. package/src/common/graphQL/configurationError.js.map +1 -0
  8. package/src/common/graphQL/graphQL.d.ts +15 -0
  9. package/src/common/graphQL/graphQL.js +50 -0
  10. package/src/common/graphQL/graphQL.js.map +1 -0
  11. package/src/common/graphQL/graphQLQueryError.d.ts +2 -0
  12. package/src/common/graphQL/graphQLQueryError.js +27 -0
  13. package/src/common/graphQL/graphQLQueryError.js.map +1 -0
  14. package/src/common/graphQL/types.d.ts +4 -0
  15. package/src/common/graphQL/types.js +9 -0
  16. package/src/common/graphQL/types.js.map +1 -0
  17. package/src/dsl/graphql.d.ts +1 -3
  18. package/src/dsl/graphql.js +4 -8
  19. package/src/dsl/graphql.js.map +1 -1
  20. package/src/dsl/interaction.d.ts +4 -4
  21. package/src/dsl/interaction.js.map +1 -1
  22. package/src/dsl/matchers.d.ts +26 -26
  23. package/src/dsl/matchers.js +6 -6
  24. package/src/dsl/matchers.js.map +1 -1
  25. package/src/dsl/message.d.ts +4 -3
  26. package/src/dsl/options.d.ts +4 -4
  27. package/src/dsl/verifier/proxy/messages.js +55 -1
  28. package/src/dsl/verifier/proxy/messages.js.map +1 -1
  29. package/src/dsl/verifier/proxy/proxy.js +2 -2
  30. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  31. package/src/httpPact/ffi.js.map +1 -1
  32. package/src/httpPact/index.d.ts +7 -7
  33. package/src/httpPact/index.js +1 -1
  34. package/src/httpPact/index.js.map +1 -1
  35. package/src/httpPact/index.spec.js.map +1 -1
  36. package/src/index.d.ts +17 -4
  37. package/src/index.js +19 -5
  38. package/src/index.js.map +1 -1
  39. package/src/messageProviderPact.js +1 -1
  40. package/src/messageProviderPact.js.map +1 -1
  41. package/src/pact.integration.spec.js +0 -1
  42. package/src/pact.integration.spec.js.map +1 -1
  43. package/src/v3/graphql/graphQL.d.ts +90 -0
  44. package/src/v3/graphql/graphQL.js +175 -0
  45. package/src/v3/graphql/graphQL.js.map +1 -0
  46. package/src/v3/graphql/index.d.ts +4 -0
  47. package/src/v3/graphql/index.js +21 -0
  48. package/src/v3/graphql/index.js.map +1 -0
  49. package/src/v3/index.d.ts +1 -0
  50. package/src/v3/index.js +1 -0
  51. package/src/v3/index.js.map +1 -1
  52. package/src/v3/matchers.js +6 -6
  53. package/src/v3/matchers.js.map +1 -1
  54. package/src/v3/matchers.spec.js +33 -14
  55. package/src/v3/matchers.spec.js.map +1 -1
  56. package/src/v3/types.d.ts +1 -12
  57. package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +35 -0
  58. package/src/v4/graphql/graphQLInteractionWithRequest.js +57 -0
  59. package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -0
  60. package/src/v4/graphql/graphQLRequestBuilder.d.ts +9 -0
  61. package/src/v4/graphql/graphQLRequestBuilder.js +42 -0
  62. package/src/v4/graphql/graphQLRequestBuilder.js.map +1 -0
  63. package/src/v4/graphql/index.d.ts +19 -0
  64. package/src/v4/graphql/index.js +47 -0
  65. package/src/v4/graphql/index.js.map +1 -0
  66. package/src/v4/graphql/types.d.ts +30 -0
  67. package/src/v4/graphql/types.js +9 -0
  68. package/src/v4/graphql/types.js.map +1 -0
  69. package/src/v4/http/index.d.ts +4 -88
  70. package/src/v4/http/index.js +3 -271
  71. package/src/v4/http/index.js.map +1 -1
  72. package/src/v4/http/interactionWithCompleteRequest.d.ts +10 -0
  73. package/src/v4/http/interactionWithCompleteRequest.js +19 -0
  74. package/src/v4/http/interactionWithCompleteRequest.js.map +1 -0
  75. package/src/v4/http/interactionWithPlugin.d.ts +12 -0
  76. package/src/v4/http/interactionWithPlugin.js +30 -0
  77. package/src/v4/http/interactionWithPlugin.js.map +1 -0
  78. package/src/v4/http/interactionWithPluginRequest.d.ts +10 -0
  79. package/src/v4/http/interactionWithPluginRequest.js +24 -0
  80. package/src/v4/http/interactionWithPluginRequest.js.map +1 -0
  81. package/src/v4/http/interactionWithPluginResponse.d.ts +9 -0
  82. package/src/v4/http/interactionWithPluginResponse.js +58 -0
  83. package/src/v4/http/interactionWithPluginResponse.js.map +1 -0
  84. package/src/v4/http/interactionWithRequest.d.ts +10 -0
  85. package/src/v4/http/interactionWithRequest.js +24 -0
  86. package/src/v4/http/interactionWithRequest.js.map +1 -0
  87. package/src/v4/http/interactionWithResponse.d.ts +9 -0
  88. package/src/v4/http/interactionWithResponse.js +58 -0
  89. package/src/v4/http/interactionWithResponse.js.map +1 -0
  90. package/src/v4/http/requestBuilder.d.ts +13 -0
  91. package/src/v4/http/requestBuilder.js +60 -0
  92. package/src/v4/http/requestBuilder.js.map +1 -0
  93. package/src/v4/http/requestWithPluginBuilder.d.ts +12 -0
  94. package/src/v4/http/requestWithPluginBuilder.js +56 -0
  95. package/src/v4/http/requestWithPluginBuilder.js.map +1 -0
  96. package/src/v4/http/responseBuilder.d.ts +12 -0
  97. package/src/v4/http/responseBuilder.js +38 -0
  98. package/src/v4/http/responseBuilder.js.map +1 -0
  99. package/src/v4/http/responseWithPluginBuilder.d.ts +5 -0
  100. package/src/v4/http/responseWithPluginBuilder.js +32 -0
  101. package/src/v4/http/responseWithPluginBuilder.js.map +1 -0
  102. package/src/v4/http/types.d.ts +4 -3
  103. package/src/v4/http/unconfiguredInteraction.d.ts +16 -0
  104. package/src/v4/http/unconfiguredInteraction.js +47 -0
  105. package/src/v4/http/unconfiguredInteraction.js.map +1 -0
  106. package/src/v4/index.d.ts +7 -1
  107. package/src/v4/index.js +40 -3
  108. package/src/v4/index.js.map +1 -1
  109. package/src/v4/message/asynchronousMessage.d.ts +68 -0
  110. package/src/v4/message/asynchronousMessage.js +278 -0
  111. package/src/v4/message/asynchronousMessage.js.map +1 -0
  112. package/src/v4/message/index.d.ts +13 -3
  113. package/src/v4/message/index.js +50 -8
  114. package/src/v4/message/index.js.map +1 -1
  115. package/src/v4/message/types.d.ts +37 -5
  116. package/src/v4/types.d.ts +4 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,43 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [16.0.0](https://github.com/pact-foundation/pact-js/compare/v15.0.1...v16.0.0) (2025-10-07)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * Rename Matchers to MatchersV2 to to avoid type overlap. remove AnyTemplate from V3 types
11
+ * **deps:** min node >=20
12
+ * export PactV4 / MatchersV3 as Pact / Matchers. Pact / Matchers renamaed to PactV2 / MatchersV2
13
+ * **deps:** min node >=20, update express wildcard 5.x splat
14
+
15
+ ### Features
16
+
17
+ * add GraphQL support to PactV4 ([4fe838c](https://github.com/pact-foundation/pact-js/commit/4fe838cd0a6ef9934d01cc4f2ad8958e1bb00fca))
18
+ * export PactV4 / MatchersV3 as Pact / Matchers. Pact / Matchers renamaed to PactV2 / MatchersV2 ([f1ce98e](https://github.com/pact-foundation/pact-js/commit/f1ce98e68486f85d42d14cbd000b5b1730c251f0))
19
+ * initial scaffolding for async messages ([041fa19](https://github.com/pact-foundation/pact-js/commit/041fa19e3b19f8767f2e5ec59b4b421af1885576))
20
+ * support GraphQL for PactV3 ([6d077f4](https://github.com/pact-foundation/pact-js/commit/6d077f4b5c11489fd940f7181317229c3527d18c)), closes [#1093](https://github.com/pact-foundation/pact-js/issues/1093)
21
+
22
+
23
+ ### Fixes and Improvements
24
+
25
+ * **deps:** explictly add router package, removed in express 5.x ([f99e01b](https://github.com/pact-foundation/pact-js/commit/f99e01be965f1a10508e2b453c122517154891ad))
26
+ * **deps:** min node >=20 ([228d197](https://github.com/pact-foundation/pact-js/commit/228d197d7c4d8c943853db145eedcc84eca2b225))
27
+ * **deps:** min node >=20, update express wildcard 5.x splat ([ef6d3d2](https://github.com/pact-foundation/pact-js/commit/ef6d3d24a92aa63782b3bb829cf3648508ab3759))
28
+ * **deps:** update dependency axios to v1.12.0 [security] ([#1561](https://github.com/pact-foundation/pact-js/issues/1561)) ([75fad7c](https://github.com/pact-foundation/pact-js/commit/75fad7c2b1bdb7ad38da11341cf0546999d0b912))
29
+ * **deps:** update dependency body-parser to v2 ([#1433](https://github.com/pact-foundation/pact-js/issues/1433)) ([357095a](https://github.com/pact-foundation/pact-js/commit/357095a06dab9ef3e7391bc5a4e811e649f6a577))
30
+ * **deps:** update dependency ramda to ^0.31.0 ([#1507](https://github.com/pact-foundation/pact-js/issues/1507)) ([61c33c0](https://github.com/pact-foundation/pact-js/commit/61c33c0bd572e4413394393c2b25300c174b2a57))
31
+ * examples/e2e/package.json & examples/e2e/package-lock.json to reduce vulnerabilities ([#1472](https://github.com/pact-foundation/pact-js/issues/1472)) ([1732a0f](https://github.com/pact-foundation/pact-js/commit/1732a0f41a570e9d1eeacff1192eb7341cb8b3b7))
32
+ * mock backend to return the example value provided in date and time v3 matchers ([#1405](https://github.com/pact-foundation/pact-js/issues/1405)) ([5f47e5d](https://github.com/pact-foundation/pact-js/commit/5f47e5da3e6de5b1121896e909bdede6d24afb58))
33
+ * Rename Matchers to MatchersV2 to to avoid type overlap. remove AnyTemplate from V3 types ([c2fe8f5](https://github.com/pact-foundation/pact-js/commit/c2fe8f5c7175db133f1ed19c71b43a35846f5a30))
34
+
35
+ ## [15.0.1](https://github.com/pact-foundation/pact-js/compare/v15.0.0...v15.0.1) (2025-03-24)
36
+
37
+
38
+ ### Fixes and Improvements
39
+
40
+ * **deps:** add graphql back to dependency block ([#1425](https://github.com/pact-foundation/pact-js/issues/1425)) ([98fa621](https://github.com/pact-foundation/pact-js/commit/98fa6215eb1e2f2efcadaabcc28b6c8859da0067))
41
+
5
42
  ## [15.0.0](https://github.com/pact-foundation/pact-js/compare/v13.2.0...v15.0.0) (2025-03-24)
6
43
 
7
44
 
package/README.md CHANGED
@@ -12,7 +12,6 @@
12
12
  [![Coverage Status](https://coveralls.io/repos/github/pact-foundation/pact-js/badge.svg?branch=master)](https://coveralls.io/github/pact-foundation/pact-js?branch=master)
13
13
  [![Code Climate](https://codeclimate.com/github/pact-foundation/pact-js/badges/gpa.svg)](https://codeclimate.com/github/pact-foundation/pact-js)
14
14
  [![Issue Count](https://codeclimate.com/github/pact-foundation/pact-js/badges/issue_count.svg)](https://codeclimate.com/github/pact-foundation/pact-js)
15
- [![Known Vulnerabilities](https://snyk.io/test/github/pact-foundation/pact-js/badge.svg?targetFile=package.json)](https://snyk.io/test/github/pact-foundation/pact-js?targetFile=package.json)
16
15
  [![license](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/pact-foundation/pact-js/blob/master/LICENSE)
17
16
  [![slack](https://slack.pact.io/badge.svg)](https://slack.pact.io)
18
17
 
@@ -91,7 +90,7 @@ Learn the key Pact JS features in 60 minutes: https://github.com/pact-foundation
91
90
  ## Installation
92
91
 
93
92
  ```shell
94
- npm i -S @pact-foundation/pact@latest
93
+ npm install --save-dev @pact-foundation/pact
95
94
 
96
95
  # 🚀 now write some tests!
97
96
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "description": "Pact for all things Javascript",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -10,12 +10,14 @@
10
10
  "predist": "npm run clean",
11
11
  "dist": "tsc && copyfiles package.json ./dist",
12
12
  "install-plugins": "./scripts/install-plugins",
13
+ "fix": "npm run format:fix && npm run lint:fix",
13
14
  "lint": "eslint --config .eslintrc.json \"{src,test}/**/*.ts\"",
14
15
  "lint:fix": "npm run lint -- --fix",
15
16
  "format:base": "prettier \"{src,test,examples}/**/*.{ts,js}\"",
16
17
  "format:fix": "npm run format:base -- --write",
17
18
  "format:check": "npm run format:base -- --check",
18
19
  "release": "commit-and-tag-version",
20
+ "check": "npm run format:check && npm run lint && npm run test",
19
21
  "test": "mocha",
20
22
  "coverage": "nyc npm run test",
21
23
  "pretest": "npm run install-plugins",
@@ -31,7 +33,7 @@
31
33
  "url": "git+https://github.com/pact-foundation/pact-js.git"
32
34
  },
33
35
  "engines": {
34
- "node": ">=16"
36
+ "node": ">=20"
35
37
  },
36
38
  "keywords": [
37
39
  "pact",
@@ -101,59 +103,61 @@
101
103
  ]
102
104
  },
103
105
  "dependencies": {
104
- "@pact-foundation/pact-core": "^16.0.0",
105
- "axios": "^1.8.4",
106
- "body-parser": "^1.20.3",
106
+ "@pact-foundation/pact-core": "^17.0.0",
107
+ "axios": "^1.12.2",
108
+ "body-parser": "^2.2.0",
107
109
  "chalk": "4.1.2",
108
- "express": "^4.21.1",
109
- "graphql-tag": "^2.9.1",
110
+ "express": "^5.1.0",
111
+ "graphql": "^16.11.0",
112
+ "graphql-tag": "^2.12.6",
110
113
  "http-proxy": "^1.18.1",
111
- "https-proxy-agent": "^7.0.4",
112
- "js-base64": "^3.6.1",
114
+ "https-proxy-agent": "^7.0.6",
115
+ "js-base64": "^3.7.8",
113
116
  "lodash": "^4.17.21",
114
- "ramda": "^0.30.0",
115
- "randexp": "^0.5.3"
117
+ "ramda": "^0.31.3",
118
+ "randexp": "^0.5.3",
119
+ "router": "^2.2.0"
116
120
  },
117
121
  "devDependencies": {
118
- "@babel/cli": "7.26.4",
119
- "@babel/core": "7.26.10",
120
- "@babel/preset-env": "7.26.9",
122
+ "@babel/cli": "7.28.3",
123
+ "@babel/core": "7.28.4",
124
+ "@babel/preset-env": "7.28.3",
121
125
  "@pact-foundation/pact-js-prettier-config": "1.0.0",
122
- "@types/chai": "5.2.1",
126
+ "@types/chai": "5.2.2",
123
127
  "@types/chai-as-promised": "8.0.2",
124
- "@types/express": "4.17.21",
128
+ "@types/express": "4.17.23",
125
129
  "@types/http-proxy": "1.17.16",
126
- "@types/lodash": "4.17.16",
130
+ "@types/lodash": "4.17.20",
127
131
  "@types/mocha": "10.0.10",
128
132
  "@types/nock": "11.1.0",
129
- "@types/node": "22.13.13",
130
- "@types/ramda": "0.30.2",
133
+ "@types/node": "22.18.8",
134
+ "@types/ramda": "0.31.1",
131
135
  "@types/sinon": "17.0.4",
132
- "@types/sinon-chai": "2.7.42",
136
+ "@types/sinon-chai": "4.0.0",
133
137
  "@typescript-eslint/eslint-plugin": "5.62.0",
134
138
  "@typescript-eslint/parser": "5.62.0",
135
- "chai": "5.2.0",
136
- "chai-as-promised": "8.0.1",
137
- "commit-and-tag-version": "12.5.0",
139
+ "chai": "6.2.0",
140
+ "chai-as-promised": "8.0.2",
141
+ "commit-and-tag-version": "12.6.0",
138
142
  "copyfiles": "2.4.1",
139
143
  "eslint": "8.57.1",
140
144
  "eslint-config-airbnb-base": "15.0.0",
141
145
  "eslint-config-airbnb-typescript": "17.1.0",
142
- "eslint-config-prettier": "10.1.1",
143
- "eslint-import-resolver-typescript": "4.2.2",
144
- "eslint-plugin-chai-friendly": "1.0.1",
145
- "eslint-plugin-import": "2.31.0",
146
+ "eslint-config-prettier": "10.1.8",
147
+ "eslint-import-resolver-typescript": "4.4.2",
148
+ "eslint-plugin-chai-friendly": "1.1.0",
149
+ "eslint-plugin-import": "2.32.0",
146
150
  "eslint-plugin-mocha": "10.5.0",
147
- "mocha": "11.1.0",
148
- "nock": "14.0.1",
151
+ "mocha": "11.7.4",
152
+ "nock": "14.0.10",
149
153
  "nyc": "17.1.0",
150
- "prettier": "3.5.3",
154
+ "prettier": "3.6.2",
151
155
  "proxyquire": "2.1.3",
152
156
  "rimraf": "6.0.1",
153
- "sinon": "19.0.4",
154
- "sinon-chai": "4.0.0",
157
+ "sinon": "21.0.0",
158
+ "sinon-chai": "4.0.1",
155
159
  "source-map-support": "0.5.21",
156
- "tsx": "4.19.3",
157
- "typescript": "5.8.2"
160
+ "tsx": "4.20.6",
161
+ "typescript": "5.9.3"
158
162
  }
159
163
  }
@@ -30,9 +30,10 @@ RELEASE_NOTES="${RELEASE_NOTES//$'\r'/'%0D'}"
30
30
  echo "::set-output name=notes::$RELEASE_NOTES"
31
31
 
32
32
  npm ci
33
- "$SCRIPT_DIR"/build-and-test.sh
34
33
 
34
+ # run release first prior to test, so dist folder has the right version
35
35
  npm run release
36
+ "$SCRIPT_DIR"/build-and-test.sh
36
37
 
37
38
  # Emit version to next step
38
39
  VERSION="$("$SCRIPT_DIR/lib/get-version.sh")"
@@ -0,0 +1,2 @@
1
+ export declare class ConfigurationError extends Error {
2
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ConfigurationError = void 0;
19
+ var ConfigurationError = /** @class */ (function (_super) {
20
+ __extends(ConfigurationError, _super);
21
+ function ConfigurationError() {
22
+ return _super !== null && _super.apply(this, arguments) || this;
23
+ }
24
+ return ConfigurationError;
25
+ }(Error));
26
+ exports.ConfigurationError = ConfigurationError;
27
+ //# sourceMappingURL=configurationError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configurationError.js","sourceRoot":"","sources":["../../../../src/common/graphQL/configurationError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAAwC,sCAAK;IAA7C;;IAA+C,CAAC;IAAD,yBAAC;AAAD,CAAC,AAAhD,CAAwC,KAAK,GAAG;AAAnC,gDAAkB"}
@@ -0,0 +1,15 @@
1
+ import { ASTNode } from 'graphql';
2
+ import { OperationType } from './types';
3
+ export interface GraphQLVariables {
4
+ [name: string]: unknown;
5
+ }
6
+ /**
7
+ * Accepts a raw or pre-parsed query, validating in the former case, and
8
+ * returns a normalized raw query.
9
+ * @param query {string|ASTNode} the query to validate
10
+ * @param type the operation type
11
+ */
12
+ export declare function validateQuery(query: string | ASTNode, type: OperationType): string;
13
+ export declare const escapeSpace: (s: string) => string;
14
+ export declare const escapeRegexChars: (s: string) => string;
15
+ export declare const escapeGraphQlQuery: (s: string) => string;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.escapeGraphQlQuery = exports.escapeRegexChars = exports.escapeSpace = void 0;
7
+ exports.validateQuery = validateQuery;
8
+ var graphql_1 = require("graphql");
9
+ var graphql_tag_1 = __importDefault(require("graphql-tag"));
10
+ var graphQLQueryError_1 = require("./graphQLQueryError");
11
+ var configurationError_1 = require("./configurationError");
12
+ /**
13
+ * Accepts a raw or pre-parsed query, validating in the former case, and
14
+ * returns a normalized raw query.
15
+ * @param query {string|ASTNode} the query to validate
16
+ * @param type the operation type
17
+ */
18
+ function validateQuery(query, type) {
19
+ if (!query) {
20
+ throw new configurationError_1.ConfigurationError("You must provide a GraphQL ".concat(type, "."));
21
+ }
22
+ if (typeof query !== 'string') {
23
+ if ((query === null || query === void 0 ? void 0 : query.kind) === 'Document') {
24
+ // Already parsed, store in string form
25
+ return (0, graphql_1.print)(query);
26
+ }
27
+ throw new configurationError_1.ConfigurationError('You must provide a either a string or parsed GraphQL.');
28
+ }
29
+ else {
30
+ // String, so validate it
31
+ try {
32
+ (0, graphql_tag_1.default)(query);
33
+ }
34
+ catch (e) {
35
+ throw new graphQLQueryError_1.GraphQLQueryError("GraphQL ".concat(type, " is invalid: ").concat(e.message));
36
+ }
37
+ return query;
38
+ }
39
+ }
40
+ var escapeSpace = function (s) { return s.replace(/\s+/g, '\\s*'); };
41
+ exports.escapeSpace = escapeSpace;
42
+ var escapeRegexChars = function (s) {
43
+ return s.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
44
+ };
45
+ exports.escapeRegexChars = escapeRegexChars;
46
+ var escapeGraphQlQuery = function (s) {
47
+ return (0, exports.escapeSpace)((0, exports.escapeRegexChars)(s));
48
+ };
49
+ exports.escapeGraphQlQuery = escapeGraphQlQuery;
50
+ //# sourceMappingURL=graphQL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphQL.js","sourceRoot":"","sources":["../../../../src/common/graphQL/graphQL.ts"],"names":[],"mappings":";;;;;;AAgBA,sCA0BC;AA1CD,mCAAyC;AACzC,4DAA8B;AAC9B,yDAAwD;AACxD,2DAA0D;AAO1D;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,KAAuB,EACvB,IAAmB;IAEnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,uCAAkB,CAAC,qCAA8B,IAAI,MAAG,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,UAAU,EAAE,CAAC;YAC/B,uCAAuC;YACvC,OAAO,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,uCAAkB,CAC1B,uDAAuD,CACxD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,IAAI,CAAC;YACH,IAAA,qBAAG,EAAC,KAAK,CAAC,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,qCAAiB,CAAC,kBAAW,IAAI,0BAAgB,CAAC,CAAC,OAAO,CAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,IAAM,WAAW,GAAG,UAAC,CAAS,IAAa,OAAA,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAzB,CAAyB,CAAC;AAA/D,QAAA,WAAW,eAAoD;AAErE,IAAM,gBAAgB,GAAG,UAAC,CAAS;IACxC,OAAA,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC;AAA1C,CAA0C,CAAC;AADhC,QAAA,gBAAgB,oBACgB;AAEtC,IAAM,kBAAkB,GAAG,UAAC,CAAS;IAC1C,OAAA,IAAA,mBAAW,EAAC,IAAA,wBAAgB,EAAC,CAAC,CAAC,CAAC;AAAhC,CAAgC,CAAC;AADtB,QAAA,kBAAkB,sBACI"}
@@ -0,0 +1,2 @@
1
+ export declare class GraphQLQueryError extends Error {
2
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.GraphQLQueryError = void 0;
19
+ var GraphQLQueryError = /** @class */ (function (_super) {
20
+ __extends(GraphQLQueryError, _super);
21
+ function GraphQLQueryError() {
22
+ return _super !== null && _super.apply(this, arguments) || this;
23
+ }
24
+ return GraphQLQueryError;
25
+ }(Error));
26
+ exports.GraphQLQueryError = GraphQLQueryError;
27
+ //# sourceMappingURL=graphQLQueryError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphQLQueryError.js","sourceRoot":"","sources":["../../../../src/common/graphQL/graphQLQueryError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;IAAuC,qCAAK;IAA5C;;IAA8C,CAAC;IAAD,wBAAC;AAAD,CAAC,AAA/C,CAAuC,KAAK,GAAG;AAAlC,8CAAiB"}
@@ -0,0 +1,4 @@
1
+ export declare enum OperationType {
2
+ Mutation = "Mutation",
3
+ Query = "Query"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OperationType = void 0;
4
+ var OperationType;
5
+ (function (OperationType) {
6
+ OperationType["Mutation"] = "Mutation";
7
+ OperationType["Query"] = "Query";
8
+ })(OperationType || (exports.OperationType = OperationType = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/common/graphQL/types.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACjB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
@@ -1,7 +1,5 @@
1
1
  import { Interaction, InteractionStateComplete } from './interaction';
2
- export interface GraphQLVariables {
3
- [name: string]: unknown;
4
- }
2
+ import { GraphQLVariables } from '../common/graphQL/graphQL';
5
3
  /**
6
4
  * GraphQL interface
7
5
  */
@@ -26,16 +26,12 @@ exports.GraphQLInteraction = void 0;
26
26
  */
27
27
  var lodash_1 = require("lodash");
28
28
  var ramda_1 = require("ramda");
29
- var graphql_tag_1 = __importDefault(require("graphql-tag"));
30
29
  var interaction_1 = require("./interaction");
31
30
  var matchers_1 = require("./matchers");
32
31
  var graphQLQueryError_1 = __importDefault(require("../errors/graphQLQueryError"));
33
32
  var configurationError_1 = __importDefault(require("../errors/configurationError"));
34
- var escapeSpace = function (s) { return s.replace(/\s+/g, '\\s*'); };
35
- var escapeRegexChars = function (s) {
36
- return s.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
37
- };
38
- var escapeGraphQlQuery = function (s) { return escapeSpace(escapeRegexChars(s)); };
33
+ var graphQL_1 = require("../common/graphQL/graphQL");
34
+ var types_1 = require("../common/graphQL/types");
39
35
  /**
40
36
  * GraphQL interface
41
37
  */
@@ -115,7 +111,7 @@ var GraphQLInteraction = /** @class */ (function (_super) {
115
111
  operationName: this.operation,
116
112
  query: (0, matchers_1.regex)({
117
113
  generate: this.query,
118
- matcher: escapeGraphQlQuery(this.query),
114
+ matcher: (0, graphQL_1.escapeGraphQlQuery)(this.query),
119
115
  }),
120
116
  variables: this.variables,
121
117
  }),
@@ -129,7 +125,7 @@ var GraphQLInteraction = /** @class */ (function (_super) {
129
125
  throw new configurationError_1.default("You must provide a GraphQL ".concat(type, "."));
130
126
  }
131
127
  try {
132
- (0, graphql_tag_1.default)(query);
128
+ (0, graphQL_1.validateQuery)(query, type === 'query' ? types_1.OperationType.Query : types_1.OperationType.Mutation);
133
129
  }
134
130
  catch (e) {
135
131
  throw new graphQLQueryError_1.default("GraphQL ".concat(type, " is invalid: ").concat(e.message));
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/dsl/graphql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/dsl/graphql.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,iCAAoD;AACpD,+BAA+B;AAC/B,6CAAsE;AACtE,uCAAmC;AACnC,kFAA4D;AAC5D,oFAA8D;AAC9D,qDAImC;AACnC,iDAAwD;AAExD;;GAEG;AACH;IAAwC,sCAAW;IAAnD;;QACY,eAAS,GAAmB,SAAS,CAAC;QAEtC,eAAS,GAAsB,SAAS,CAAC;;IAkHrD,CAAC;IA9GC;;OAEG;IACI,0CAAa,GAApB,UAAqB,SAAwB;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,0CAAa,GAApB,UAAqB,SAA2B;QAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,sCAAS,GAAhB,UAAiB,KAAa;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,yCAAY,GAAnB,UAAoB,QAAgB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACI,iCAAI,GAAX;QACE,gBAAK,CAAC,IAAI,WAAE,CAAC;QAEb,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,4BAAkB,CAAC,mCAAmC,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,2BAAiB,CACzB,+CAA+C,CAChD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAA,eAAM,EACzB;YACE,IAAI,EAAE,IAAA,cAAM,EAAC,oBAAW,EAAE;gBACxB,aAAa,EAAE,IAAI,CAAC,SAAS;gBAC7B,KAAK,EAAE,IAAA,gBAAK,EAAC;oBACX,QAAQ,EAAE,IAAI,CAAC,KAAK;oBACpB,OAAO,EAAE,IAAA,4BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC;iBACxC,CAAC;gBACF,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC;YACF,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,MAAM,EAAE,MAAM;SACf,EACD,IAAI,CAAC,KAAK,CAAC,OAAO,CACnB,CAAC;QAEF,OAAO,IAAI,CAAC,KAAiC,CAAC;IAChD,CAAC;IAEO,4CAAe,GAAvB,UAAwB,KAAa,EAAE,IAAY;QACjD,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,4BAAkB,CAAC,qCAA8B,IAAI,MAAG,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC;YACH,IAAA,uBAAa,EACX,KAAK,EACL,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAa,CAAC,QAAQ,CAChE,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,2BAAiB,CAAC,kBAAW,IAAI,0BAAgB,CAAC,CAAC,OAAO,CAAE,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,OAAO,IAAI,CAAC;IACd,CAAC;IACH,yBAAC;AAAD,CAAC,AArHD,CAAwC,yBAAW,GAqHlD;AArHY,gDAAkB"}
@@ -3,17 +3,17 @@
3
3
  * @module Interaction
4
4
  */
5
5
  import { HTTPMethods, HTTPMethod } from '../common/request';
6
- import { Matcher, AnyTemplate } from './matchers';
6
+ import { MatcherV2, AnyTemplate } from './matchers';
7
7
  interface QueryObject {
8
- [name: string]: string | Matcher<string> | string[];
8
+ [name: string]: string | MatcherV2<string> | string[];
9
9
  }
10
10
  export type Query = string | QueryObject;
11
11
  export type Headers = {
12
- [header: string]: string | Matcher<string> | (Matcher<string> | string)[];
12
+ [header: string]: string | MatcherV2<string> | (MatcherV2<string> | string)[];
13
13
  };
14
14
  export interface RequestOptions {
15
15
  method: HTTPMethods | HTTPMethod;
16
- path: string | Matcher<string>;
16
+ path: string | MatcherV2<string>;
17
17
  query?: Query;
18
18
  headers?: Headers;
19
19
  body?: AnyTemplate;
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/dsl/interaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../../src/dsl/interaction.ts"],"names":[],"mappings":"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"}
@@ -14,18 +14,18 @@ export declare const UUID_V4_FORMAT = "^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12
14
14
  export declare const IPV4_FORMAT = "^(\\d{1,3}\\.)+\\d{1,3}$";
15
15
  export declare const IPV6_FORMAT = "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$";
16
16
  export declare const HEX_FORMAT = "^[0-9a-fA-F]+$";
17
- export interface Matcher<T> {
17
+ export interface MatcherV2<T> {
18
18
  value?: T;
19
19
  'pact:matcher:type': string;
20
20
  getValue(): T;
21
21
  }
22
- export interface ArrayMatcher<T> extends Matcher<T> {
22
+ export interface ArrayMatcher<T> extends MatcherV2<T> {
23
23
  'pact:matcher:type': string;
24
24
  min?: number;
25
25
  max?: number;
26
26
  }
27
- export declare function isMatcher(x: unknown): x is Matcher<AnyTemplate>;
28
- export type AnyTemplate = AnyJson | Matcher<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate;
27
+ export declare function isMatcher(x: unknown): x is MatcherV2<AnyTemplate>;
28
+ export type AnyTemplate = AnyJson | MatcherV2<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate;
29
29
  export type InterfaceToTemplate<O> = {
30
30
  [K in keyof O]: AnyTemplate;
31
31
  };
@@ -53,8 +53,8 @@ export declare function eachLike<T>(template: T, opts?: {
53
53
  * The somethingLike matcher
54
54
  * @param {any} value - the value to be somethingLike
55
55
  */
56
- export declare function somethingLike<T>(value: T): Matcher<T>;
57
- export interface RegexMatcher<T> extends Matcher<T> {
56
+ export declare function somethingLike<T>(value: T): MatcherV2<T>;
57
+ export interface RegexMatcher<T> extends MatcherV2<T> {
58
58
  regex: string;
59
59
  }
60
60
  /**
@@ -71,72 +71,72 @@ export declare function term(opts: {
71
71
  * Email address matcher.
72
72
  * @param {string} address - a email address to use as an example
73
73
  */
74
- export declare function email(address?: string): Matcher<string>;
74
+ export declare function email(address?: string): MatcherV2<string>;
75
75
  /**
76
76
  * UUID v4 matcher.
77
77
  * @param {string} id - a UUID to use as an example.
78
78
  */
79
- export declare function uuid(id?: string): Matcher<string>;
79
+ export declare function uuid(id?: string): MatcherV2<string>;
80
80
  /**
81
81
  * IPv4 matcher.
82
82
  * @param {string} ip - an IPv4 address to use as an example. Defaults to `127.0.0.13`
83
83
  */
84
- export declare function ipv4Address(ip?: string): Matcher<string>;
84
+ export declare function ipv4Address(ip?: string): MatcherV2<string>;
85
85
  /**
86
86
  * IPv6 matcher.
87
87
  * @param {string} ip - an IPv6 address to use as an example. Defaults to '::ffff:192.0.2.128'
88
88
  */
89
- export declare function ipv6Address(ip?: string): Matcher<string>;
89
+ export declare function ipv6Address(ip?: string): MatcherV2<string>;
90
90
  /**
91
91
  * ISO8601 DateTime matcher.
92
92
  * @param {string} date - an ISO8601 Date and Time string
93
93
  * e.g. 2015-08-06T16:53:10+01:00 are valid
94
94
  */
95
- export declare function iso8601DateTime(date?: string): Matcher<string>;
95
+ export declare function iso8601DateTime(date?: string): MatcherV2<string>;
96
96
  /**
97
97
  * ISO8601 DateTime matcher with required millisecond precision
98
98
  * @param {string} date - an ISO8601 Date and Time string, e.g. 2015-08-06T16:53:10.123+01:00
99
99
  */
100
- export declare function iso8601DateTimeWithMillis(date?: string): Matcher<string>;
100
+ export declare function iso8601DateTimeWithMillis(date?: string): MatcherV2<string>;
101
101
  /**
102
102
  * ISO8601 Date matcher.
103
103
  * @param {string} date - a basic yyyy-MM-dd date string e.g. 2000-09-31
104
104
  */
105
- export declare function iso8601Date(date?: string): Matcher<string>;
105
+ export declare function iso8601Date(date?: string): MatcherV2<string>;
106
106
  /**
107
- * ISO8601 Time Matcher, matches a pattern of the format "'T'HH:mm:ss".
107
+ * ISO8601 Time MatcherV2, matches a pattern of the format "'T'HH:mm:ss".
108
108
  * @param {string} date - a ISO8601 formatted time string e.g. T22:44:30.652Z
109
109
  */
110
- export declare function iso8601Time(time?: string): Matcher<string>;
110
+ export declare function iso8601Time(time?: string): MatcherV2<string>;
111
111
  /**
112
112
  * RFC1123 Timestamp matcher "DAY, DD MON YYY hh:mm:ss"
113
113
  *
114
114
  * @param {string} date - an RFC1123 Date and Time string, e.g. Mon, 31 Oct 2016 15:21:41 -0400
115
115
  */
116
- export declare function rfc1123Timestamp(timestamp?: string): Matcher<string>;
116
+ export declare function rfc1123Timestamp(timestamp?: string): MatcherV2<string>;
117
117
  /**
118
- * Hexadecimal Matcher.
118
+ * Hexadecimal MatcherV2.
119
119
  * @param {string} hex - a hex value.
120
120
  */
121
- export declare function hexadecimal(hex?: string): Matcher<string>;
121
+ export declare function hexadecimal(hex?: string): MatcherV2<string>;
122
122
  /**
123
- * Decimal Matcher.
123
+ * Decimal MatcherV2.
124
124
  * @param {float} float - a decimal value.
125
125
  */
126
- export declare function decimal(float?: number): Matcher<number>;
126
+ export declare function decimal(float?: number): MatcherV2<number>;
127
127
  /**
128
- * Integer Matcher.
128
+ * Integer MatcherV2.
129
129
  * @param {integer} int - an int value.
130
130
  */
131
- export declare function integer(int?: number): Matcher<number>;
131
+ export declare function integer(int?: number): MatcherV2<number>;
132
132
  /**
133
- * Boolean Matcher.
133
+ * Boolean MatcherV2.
134
134
  */
135
- export declare function boolean(value?: boolean): Matcher<boolean>;
135
+ export declare function boolean(value?: boolean): MatcherV2<boolean>;
136
136
  /**
137
- * String Matcher.
137
+ * String MatcherV2.
138
138
  */
139
- export declare function string(value?: string): Matcher<string>;
139
+ export declare function string(value?: string): MatcherV2<string>;
140
140
  export { somethingLike as like };
141
141
  export { term as regex };
142
142
  export declare function extractPayload(value: AnyTemplate): AnyJson;