@pact-foundation/pact 10.0.0-beta.9 → 10.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 (285) hide show
  1. package/CHANGELOG.md +2451 -1
  2. package/CODE_OF_CONDUCT.md +1 -1
  3. package/CONTRIBUTING.md +49 -12
  4. package/MIGRATION.md +77 -0
  5. package/README.md +180 -1274
  6. package/RELEASING.md +63 -59
  7. package/package.json +96 -98
  8. package/src/common/jsonTypes.d.ts +5 -0
  9. package/src/common/jsonTypes.js +3 -0
  10. package/src/common/jsonTypes.js.map +1 -0
  11. package/src/common/logger.d.ts +10 -0
  12. package/src/common/logger.js +32 -0
  13. package/src/common/logger.js.map +1 -0
  14. package/src/common/net.d.ts +9 -0
  15. package/src/common/net.js +82 -0
  16. package/src/common/net.js.map +1 -0
  17. package/{common → src/common}/net.spec.d.ts +0 -0
  18. package/src/common/net.spec.js +69 -0
  19. package/src/common/net.spec.js.map +1 -0
  20. package/src/common/request.d.ts +21 -0
  21. package/src/common/request.js +110 -0
  22. package/src/common/request.js.map +1 -0
  23. package/{common → src/common}/request.spec.d.ts +0 -0
  24. package/src/common/request.spec.js +69 -0
  25. package/src/common/request.spec.js.map +1 -0
  26. package/src/common/spec.d.ts +2 -0
  27. package/src/common/spec.js +22 -0
  28. package/src/common/spec.js.map +1 -0
  29. package/{dsl → src/dsl}/apolloGraphql.d.ts +1 -1
  30. package/{dsl → src/dsl}/apolloGraphql.js +4 -1
  31. package/src/dsl/apolloGraphql.js.map +1 -0
  32. package/{dsl → src/dsl}/apolloGraphql.spec.d.ts +0 -0
  33. package/src/dsl/apolloGraphql.spec.js +74 -0
  34. package/src/dsl/apolloGraphql.spec.js.map +1 -0
  35. package/{dsl → src/dsl}/graphql.d.ts +19 -8
  36. package/{dsl → src/dsl}/graphql.js +59 -31
  37. package/src/dsl/graphql.js.map +1 -0
  38. package/{dsl → src/dsl}/graphql.spec.d.ts +0 -0
  39. package/src/dsl/graphql.spec.js +229 -0
  40. package/src/dsl/graphql.spec.js.map +1 -0
  41. package/{dsl → src/dsl}/interaction.d.ts +22 -20
  42. package/src/dsl/interaction.js +144 -0
  43. package/src/dsl/interaction.js.map +1 -0
  44. package/{dsl → src/dsl}/interaction.spec.d.ts +0 -0
  45. package/src/dsl/interaction.spec.js +214 -0
  46. package/src/dsl/interaction.spec.js.map +1 -0
  47. package/src/dsl/matchers.d.ts +143 -0
  48. package/{dsl → src/dsl}/matchers.js +92 -93
  49. package/src/dsl/matchers.js.map +1 -0
  50. package/{dsl → src/dsl}/matchers.spec.d.ts +0 -0
  51. package/src/dsl/matchers.spec.js +668 -0
  52. package/src/dsl/matchers.spec.js.map +1 -0
  53. package/{dsl → src/dsl}/message.d.ts +32 -12
  54. package/{dsl → src/dsl}/message.js +0 -0
  55. package/{dsl → src/dsl}/message.js.map +1 -1
  56. package/src/dsl/mockService.d.ts +13 -0
  57. package/src/dsl/mockService.js +3 -0
  58. package/src/dsl/mockService.js.map +1 -0
  59. package/{dsl → src/dsl}/options.d.ts +7 -6
  60. package/{dsl → src/dsl}/options.js +0 -0
  61. package/{dsl → src/dsl}/options.js.map +1 -1
  62. package/src/dsl/verifier/index.d.ts +1 -0
  63. package/src/dsl/verifier/index.js +18 -0
  64. package/src/dsl/verifier/index.js.map +1 -0
  65. package/src/dsl/verifier/proxy/hooks.d.ts +4 -0
  66. package/src/dsl/verifier/proxy/hooks.js +109 -0
  67. package/src/dsl/verifier/proxy/hooks.js.map +1 -0
  68. package/src/dsl/verifier/proxy/index.d.ts +1 -0
  69. package/src/dsl/verifier/proxy/index.js +18 -0
  70. package/src/dsl/verifier/proxy/index.js.map +1 -0
  71. package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
  72. package/src/dsl/verifier/proxy/parseBody.js +22 -0
  73. package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
  74. package/{dsl/mockService.spec.d.ts → src/dsl/verifier/proxy/parseBody.spec.d.ts} +0 -0
  75. package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
  76. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
  77. package/src/dsl/verifier/proxy/proxy.d.ts +4 -0
  78. package/src/dsl/verifier/proxy/proxy.js +92 -0
  79. package/src/dsl/verifier/proxy/proxy.js.map +1 -0
  80. package/{dsl/publisher.spec.d.ts → src/dsl/verifier/proxy/proxy.spec.d.ts} +0 -0
  81. package/src/dsl/verifier/proxy/proxy.spec.js +33 -0
  82. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -0
  83. package/src/dsl/verifier/proxy/stateHandler/index.d.ts +1 -0
  84. package/src/dsl/verifier/proxy/stateHandler/index.js +18 -0
  85. package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -0
  86. package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -0
  87. package/src/dsl/verifier/proxy/stateHandler/setupStates.js +48 -0
  88. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -0
  89. package/{dsl/verifier.spec.d.ts → src/dsl/verifier/proxy/stateHandler/setupStates.spec.d.ts} +0 -0
  90. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +191 -0
  91. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -0
  92. package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +3 -0
  93. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +14 -0
  94. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -0
  95. package/{httpPact.spec.d.ts → src/dsl/verifier/proxy/stateHandler/stateHandler.spec.d.ts} +0 -0
  96. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +130 -0
  97. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -0
  98. package/src/dsl/verifier/proxy/tracer.d.ts +3 -0
  99. package/src/dsl/verifier/proxy/tracer.js +52 -0
  100. package/src/dsl/verifier/proxy/tracer.js.map +1 -0
  101. package/src/dsl/verifier/proxy/types.d.ts +48 -0
  102. package/src/dsl/verifier/proxy/types.js +3 -0
  103. package/src/dsl/verifier/proxy/types.js.map +1 -0
  104. package/src/dsl/verifier/types.d.ts +3 -0
  105. package/src/dsl/verifier/types.js +3 -0
  106. package/src/dsl/verifier/types.js.map +1 -0
  107. package/src/dsl/verifier/verifier.d.ts +16 -0
  108. package/src/dsl/verifier/verifier.js +129 -0
  109. package/src/dsl/verifier/verifier.js.map +1 -0
  110. package/{messageConsumerPact.spec.d.ts → src/dsl/verifier/verifier.spec.d.ts} +0 -0
  111. package/src/dsl/verifier/verifier.spec.js +172 -0
  112. package/src/dsl/verifier/verifier.spec.js.map +1 -0
  113. package/{errors → src/errors}/configurationError.d.ts +0 -0
  114. package/{errors → src/errors}/configurationError.js +3 -1
  115. package/src/errors/configurationError.js.map +1 -0
  116. package/{errors → src/errors}/graphQLQueryError.d.ts +0 -0
  117. package/{errors → src/errors}/graphQLQueryError.js +3 -1
  118. package/src/errors/graphQLQueryError.js.map +1 -0
  119. package/{errors → src/errors}/matcherError.d.ts +0 -0
  120. package/{errors → src/errors}/matcherError.js +3 -1
  121. package/src/errors/matcherError.js.map +1 -0
  122. package/{errors → src/errors}/verificationError.d.ts +0 -0
  123. package/{errors → src/errors}/verificationError.js +3 -1
  124. package/src/errors/verificationError.js.map +1 -0
  125. package/src/httpPact/ffi.d.ts +15 -0
  126. package/src/httpPact/ffi.js +91 -0
  127. package/src/httpPact/ffi.js.map +1 -0
  128. package/{messageProviderPact.spec.d.ts → src/httpPact/ffi.spec.d.ts} +0 -0
  129. package/src/httpPact/ffi.spec.js +81 -0
  130. package/src/httpPact/ffi.spec.js.map +1 -0
  131. package/{httpPact.d.ts → src/httpPact/index.d.ts} +12 -12
  132. package/src/httpPact/index.js +311 -0
  133. package/src/httpPact/index.js.map +1 -0
  134. package/{pact-web.spec.d.ts → src/httpPact/index.spec.d.ts} +0 -0
  135. package/src/httpPact/index.spec.js +238 -0
  136. package/src/httpPact/index.spec.js.map +1 -0
  137. package/src/httpPact/tracing.d.ts +1 -0
  138. package/src/httpPact/tracing.js +53 -0
  139. package/src/httpPact/tracing.js.map +1 -0
  140. package/{pact.d.ts → src/index.d.ts} +22 -21
  141. package/src/index.js +107 -0
  142. package/src/index.js.map +1 -0
  143. package/src/messageConsumerPact.d.ts +86 -0
  144. package/src/messageConsumerPact.js +222 -0
  145. package/src/messageConsumerPact.js.map +1 -0
  146. package/src/messageConsumerPact.spec.d.ts +1 -0
  147. package/src/messageConsumerPact.spec.js +117 -0
  148. package/src/messageConsumerPact.spec.js.map +1 -0
  149. package/{messageProviderPact.d.ts → src/messageProviderPact.d.ts} +7 -4
  150. package/src/messageProviderPact.js +190 -0
  151. package/src/messageProviderPact.js.map +1 -0
  152. package/src/messageProviderPact.spec.d.ts +1 -0
  153. package/src/messageProviderPact.spec.js +183 -0
  154. package/src/messageProviderPact.spec.js.map +1 -0
  155. package/{pact.integration.spec.d.ts → src/pact.integration.spec.d.ts} +0 -0
  156. package/{pact.integration.spec.js → src/pact.integration.spec.js} +0 -0
  157. package/src/pact.integration.spec.js.map +1 -0
  158. package/src/v3/display.d.ts +6 -0
  159. package/src/v3/display.js +83 -0
  160. package/src/v3/display.js.map +1 -0
  161. package/src/v3/index.d.ts +17 -0
  162. package/src/v3/index.js +47 -0
  163. package/src/v3/index.js.map +1 -0
  164. package/src/v3/matchers.d.ts +182 -0
  165. package/src/v3/matchers.js +443 -0
  166. package/src/v3/matchers.js.map +1 -0
  167. package/src/v3/matchers.spec.d.ts +1 -0
  168. package/src/v3/matchers.spec.js +461 -0
  169. package/src/v3/matchers.spec.js.map +1 -0
  170. package/src/v3/pact.d.ts +21 -0
  171. package/src/v3/pact.js +240 -0
  172. package/src/v3/pact.js.map +1 -0
  173. package/src/v3/types.d.ts +81 -0
  174. package/src/v3/types.js +11 -0
  175. package/src/v3/types.js.map +1 -0
  176. package/{v3 → src/v3}/xml/xmlBuilder.d.ts +2 -2
  177. package/{v3 → src/v3}/xml/xmlBuilder.js +2 -1
  178. package/src/v3/xml/xmlBuilder.js.map +1 -0
  179. package/src/v3/xml/xmlElement.d.ts +27 -0
  180. package/{v3 → src/v3}/xml/xmlElement.js +21 -15
  181. package/src/v3/xml/xmlElement.js.map +1 -0
  182. package/src/v3/xml/xmlElement.spec.d.ts +1 -0
  183. package/src/v3/xml/xmlElement.spec.js +102 -0
  184. package/src/v3/xml/xmlElement.spec.js.map +1 -0
  185. package/{v3 → src/v3}/xml/xmlNode.d.ts +0 -0
  186. package/{v3 → src/v3}/xml/xmlNode.js +1 -0
  187. package/src/v3/xml/xmlNode.js.map +1 -0
  188. package/src/v3/xml/xmlText.d.ts +7 -0
  189. package/{v3 → src/v3}/xml/xmlText.js +4 -1
  190. package/src/v3/xml/xmlText.js.map +1 -0
  191. package/test/helper.d.ts +1 -0
  192. package/test/helper.js +37 -0
  193. package/test/helper.js.map +1 -0
  194. package/ROADMAP.md +0 -20
  195. package/common/logger.d.ts +0 -7
  196. package/common/logger.js +0 -56
  197. package/common/logger.js.map +0 -1
  198. package/common/metadata.d.ts +0 -0
  199. package/common/metadata.js +0 -2
  200. package/common/metadata.js.map +0 -1
  201. package/common/net.d.ts +0 -9
  202. package/common/net.js +0 -48
  203. package/common/net.js.map +0 -1
  204. package/common/net.spec.js +0 -67
  205. package/common/net.spec.js.map +0 -1
  206. package/common/request.d.ts +0 -14
  207. package/common/request.js +0 -47
  208. package/common/request.js.map +0 -1
  209. package/common/request.spec.js +0 -71
  210. package/common/request.spec.js.map +0 -1
  211. package/common/utils.d.ts +0 -2
  212. package/common/utils.js +0 -10
  213. package/common/utils.js.map +0 -1
  214. package/dsl/apolloGraphql.js.map +0 -1
  215. package/dsl/apolloGraphql.spec.js +0 -47
  216. package/dsl/apolloGraphql.spec.js.map +0 -1
  217. package/dsl/graphql.js.map +0 -1
  218. package/dsl/graphql.spec.js +0 -150
  219. package/dsl/graphql.spec.js.map +0 -1
  220. package/dsl/interaction.js +0 -112
  221. package/dsl/interaction.js.map +0 -1
  222. package/dsl/interaction.spec.js +0 -217
  223. package/dsl/interaction.spec.js.map +0 -1
  224. package/dsl/matchers.d.ts +0 -269
  225. package/dsl/matchers.js.map +0 -1
  226. package/dsl/matchers.spec.js +0 -563
  227. package/dsl/matchers.spec.js.map +0 -1
  228. package/dsl/mockService.d.ts +0 -58
  229. package/dsl/mockService.js +0 -74
  230. package/dsl/mockService.js.map +0 -1
  231. package/dsl/mockService.spec.js +0 -126
  232. package/dsl/mockService.spec.js.map +0 -1
  233. package/dsl/publisher.d.ts +0 -6
  234. package/dsl/publisher.js +0 -19
  235. package/dsl/publisher.js.map +0 -1
  236. package/dsl/publisher.spec.js +0 -21
  237. package/dsl/publisher.spec.js.map +0 -1
  238. package/dsl/verifier.d.ts +0 -39
  239. package/dsl/verifier.js +0 -173
  240. package/dsl/verifier.js.map +0 -1
  241. package/dsl/verifier.spec.js +0 -299
  242. package/dsl/verifier.spec.js.map +0 -1
  243. package/errors/configurationError.js.map +0 -1
  244. package/errors/graphQLQueryError.js.map +0 -1
  245. package/errors/matcherError.js.map +0 -1
  246. package/errors/verificationError.js.map +0 -1
  247. package/httpPact.js +0 -206
  248. package/httpPact.js.map +0 -1
  249. package/httpPact.spec.js +0 -337
  250. package/httpPact.spec.js.map +0 -1
  251. package/messageConsumerPact.d.ts +0 -67
  252. package/messageConsumerPact.js +0 -161
  253. package/messageConsumerPact.js.map +0 -1
  254. package/messageConsumerPact.spec.js +0 -161
  255. package/messageConsumerPact.spec.js.map +0 -1
  256. package/messageProviderPact.js +0 -139
  257. package/messageProviderPact.js.map +0 -1
  258. package/messageProviderPact.spec.js +0 -143
  259. package/messageProviderPact.spec.js.map +0 -1
  260. package/pact-web.d.ts +0 -100
  261. package/pact-web.js +0 -151
  262. package/pact-web.js.map +0 -1
  263. package/pact-web.spec.js +0 -191
  264. package/pact-web.spec.js.map +0 -1
  265. package/pact.integration.spec.js.map +0 -1
  266. package/pact.js +0 -74
  267. package/pact.js.map +0 -1
  268. package/v3/index.d.ts +0 -23
  269. package/v3/index.js +0 -33
  270. package/v3/index.js.map +0 -1
  271. package/v3/matchers.d.ts +0 -199
  272. package/v3/matchers.js +0 -305
  273. package/v3/matchers.js.map +0 -1
  274. package/v3/pact.d.ts +0 -47
  275. package/v3/pact.js +0 -101
  276. package/v3/pact.js.map +0 -1
  277. package/v3/verifier.d.ts +0 -27
  278. package/v3/verifier.js +0 -46
  279. package/v3/verifier.js.map +0 -1
  280. package/v3/xml/xmlBuilder.js.map +0 -1
  281. package/v3/xml/xmlElement.d.ts +0 -34
  282. package/v3/xml/xmlElement.js.map +0 -1
  283. package/v3/xml/xmlNode.js.map +0 -1
  284. package/v3/xml/xmlText.d.ts +0 -6
  285. package/v3/xml/xmlText.js.map +0 -1
@@ -4,23 +4,42 @@
4
4
  * For specific matcher types (e.g. IpV6), the values generated are not random
5
5
  * but are fixed, to prevent contract invalidation after each run of the consumer test.
6
6
  */
7
+ var __assign = (this && this.__assign) || function () {
8
+ __assign = Object.assign || function(t) {
9
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
10
+ s = arguments[i];
11
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12
+ t[p] = s[p];
13
+ }
14
+ return t;
15
+ };
16
+ return __assign.apply(this, arguments);
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
7
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.matcherValueOrString = exports.extractPayload = exports.regex = exports.like = exports.string = exports.boolean = exports.integer = exports.decimal = exports.hexadecimal = exports.rfc1123Timestamp = exports.iso8601Time = exports.iso8601Date = exports.iso8601DateTimeWithMillis = exports.iso8601DateTime = exports.ipv6Address = exports.ipv4Address = exports.uuid = exports.email = exports.term = exports.somethingLike = exports.eachLike = exports.validateExample = exports.isMatcher = exports.HEX_FORMAT = exports.IPV6_FORMAT = exports.IPV4_FORMAT = exports.UUID_V4_FORMAT = exports.RFC1123_TIMESTAMP_FORMAT = exports.ISO8601_TIME_FORMAT = exports.ISO8601_DATETIME_WITH_MILLIS_FORMAT = exports.ISO8601_DATETIME_FORMAT = exports.ISO8601_DATE_FORMAT = exports.EMAIL_FORMAT = void 0;
8
23
  var lodash_1 = require("lodash");
9
- var matcherError_1 = require("../errors/matcherError");
24
+ var ramda_1 = require("ramda");
25
+ var matcherError_1 = __importDefault(require("../errors/matcherError"));
10
26
  // Note: The following regexes are Ruby formatted,
11
27
  // so attempting to parse as JS without modification is probably not going to work as intended!
12
28
  /* tslint:disable:max-line-length */
13
- exports.EMAIL_FORMAT = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$";
14
- exports.ISO8601_DATE_FORMAT = "^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)$";
15
- exports.ISO8601_DATETIME_FORMAT = "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)$";
16
- exports.ISO8601_DATETIME_WITH_MILLIS_FORMAT = "^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d{3,}([+-][0-2]\\d(:?[0-5]\\d)?|Z)$";
17
- exports.ISO8601_TIME_FORMAT = "^(T\\d\\d:\\d\\d(:\\d\\d)?(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z)?)?$";
18
- exports.RFC3339_TIMESTAMP_FORMAT = "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s\\d{2}\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s\\d{4}\\s\\d{2}:\\d{2}:\\d{2}\\s(\\+|-)\\d{4}$";
19
- exports.UUID_V4_FORMAT = "^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$";
20
- exports.IPV4_FORMAT = "^(\\d{1,3}\\.)+\\d{1,3}$";
21
- exports.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]))$";
22
- exports.HEX_FORMAT = "^[0-9a-fA-F]+$";
23
- /* tslint:enable */
29
+ exports.EMAIL_FORMAT = '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$';
30
+ exports.ISO8601_DATE_FORMAT = '^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))?)$';
31
+ exports.ISO8601_DATETIME_FORMAT = '^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)$';
32
+ exports.ISO8601_DATETIME_WITH_MILLIS_FORMAT = '^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d(:?[0-5]\\d)?|Z)$';
33
+ exports.ISO8601_TIME_FORMAT = '^(T\\d\\d:\\d\\d(:\\d\\d)?(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z)?)?$';
34
+ exports.RFC1123_TIMESTAMP_FORMAT = '^(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s\\d{2}\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s\\d{4}\\s\\d{2}:\\d{2}:\\d{2}\\s(\\+|-)\\d{4}$';
35
+ exports.UUID_V4_FORMAT = '^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$';
36
+ exports.IPV4_FORMAT = '^(\\d{1,3}\\.)+\\d{1,3}$';
37
+ exports.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]))$';
38
+ exports.HEX_FORMAT = '^[0-9a-fA-F]+$';
39
+ function isMatcher(x) {
40
+ return x != null && x.getValue !== undefined;
41
+ }
42
+ exports.isMatcher = isMatcher;
24
43
  /**
25
44
  * Validates the given example against the regex.
26
45
  *
@@ -29,33 +48,27 @@ exports.HEX_FORMAT = "^[0-9a-fA-F]+$";
29
48
  */
30
49
  function validateExample(example, matcher) {
31
50
  // Note we escape the double \\ as these get sent over the wire as JSON
32
- return new RegExp(matcher.replace("\\\\", "\\")).test(example);
51
+ return new RegExp(matcher.replace('\\\\', '\\')).test(example);
33
52
  }
34
53
  exports.validateExample = validateExample;
35
54
  /**
36
55
  * The eachLike matcher
37
- * @param {any} content
56
+ * @param {any} template
38
57
  * @param {Object} opts
39
58
  * @param {Number} opts.min
40
59
  */
41
- function eachLike(content, opts) {
42
- if (lodash_1.isUndefined(content)) {
43
- throw new matcherError_1.default("Error creating a Pact eachLike. Please provide a content argument");
60
+ function eachLike(template, opts) {
61
+ if ((0, lodash_1.isUndefined)(template)) {
62
+ throw new matcherError_1.default('Error creating a Pact eachLike. Please provide a content argument');
44
63
  }
45
- if (opts && (lodash_1.isNil(opts.min) || opts.min < 1)) {
46
- throw new matcherError_1.default("Error creating a Pact eachLike. Please provide opts.min that is > 0");
64
+ if (opts && ((0, lodash_1.isNil)(opts.min) || opts.min < 1)) {
65
+ throw new matcherError_1.default('Error creating a Pact eachLike. Please provide opts.min that is > 0');
47
66
  }
48
- var min = !lodash_1.isEmpty(opts) && opts ? opts.min : 1;
67
+ var min = !(0, lodash_1.isEmpty)(opts) && opts ? opts.min : 1;
49
68
  return {
50
- contents: content,
51
- getValue: function () {
52
- var data = [];
53
- for (var i = 0; i < min; i++) {
54
- data[i] = content;
55
- }
56
- return data;
57
- },
58
- json_class: "Pact::ArrayLike",
69
+ value: (0, ramda_1.times)(function () { return template; }, min),
70
+ getValue: function () { return (0, ramda_1.times)(function () { return template; }, min); },
71
+ 'pact:matcher:type': 'type',
59
72
  min: min,
60
73
  };
61
74
  }
@@ -65,15 +78,13 @@ exports.eachLike = eachLike;
65
78
  * @param {any} value - the value to be somethingLike
66
79
  */
67
80
  function somethingLike(value) {
68
- if (lodash_1.isNil(value) || lodash_1.isFunction(value)) {
69
- throw new matcherError_1.default("Error creating a Pact somethingLike Match. Value cannot be a function or undefined");
81
+ if ((0, lodash_1.isNil)(value) || (0, lodash_1.isFunction)(value)) {
82
+ throw new matcherError_1.default('Error creating a Pact somethingLike Match. Value cannot be a function or undefined');
70
83
  }
71
84
  return {
72
- contents: value,
73
- getValue: function () {
74
- return value;
75
- },
76
- json_class: "Pact::SomethingLike",
85
+ value: value,
86
+ getValue: function () { return value; },
87
+ 'pact:matcher:type': 'type',
77
88
  };
78
89
  }
79
90
  exports.somethingLike = somethingLike;
@@ -85,27 +96,18 @@ exports.like = somethingLike;
85
96
  * @param {string} opts.matcher - a Regex representing the value
86
97
  */
87
98
  function term(opts) {
88
- var generate = opts.generate;
89
- var matcher = opts.matcher;
90
- if (lodash_1.isNil(generate) || lodash_1.isNil(matcher)) {
99
+ var generate = opts.generate, matcher = opts.matcher;
100
+ if ((0, lodash_1.isNil)(generate) || (0, lodash_1.isNil)(matcher)) {
91
101
  throw new matcherError_1.default("Error creating a Pact Term.\n Please provide an object containing \"generate\" and \"matcher\" properties");
92
102
  }
93
103
  if (!validateExample(generate, matcher)) {
94
- throw new matcherError_1.default("Example '" + generate + "' does not match provided regular expression '" + matcher + "'");
104
+ throw new matcherError_1.default("Example '".concat(generate, "' does not match provided regular expression '").concat(matcher, "'"));
95
105
  }
96
106
  return {
97
- data: {
98
- generate: generate,
99
- matcher: {
100
- json_class: "Regexp",
101
- o: 0,
102
- s: matcher,
103
- },
104
- },
105
- getValue: function () {
106
- return generate;
107
- },
108
- json_class: "Pact::Term",
107
+ getValue: function () { return generate; },
108
+ value: generate,
109
+ regex: matcher,
110
+ 'pact:matcher:type': 'regex',
109
111
  };
110
112
  }
111
113
  exports.term = term;
@@ -116,7 +118,7 @@ exports.regex = term;
116
118
  */
117
119
  function email(address) {
118
120
  return term({
119
- generate: address || "hello@pact.io",
121
+ generate: address || 'hello@pact.io',
120
122
  matcher: exports.EMAIL_FORMAT,
121
123
  });
122
124
  }
@@ -127,7 +129,7 @@ exports.email = email;
127
129
  */
128
130
  function uuid(id) {
129
131
  return term({
130
- generate: id || "ce118b6e-d8e1-11e7-9296-cec278b6b50a",
132
+ generate: id || 'ce118b6e-d8e1-11e7-9296-cec278b6b50a',
131
133
  matcher: exports.UUID_V4_FORMAT,
132
134
  });
133
135
  }
@@ -138,7 +140,7 @@ exports.uuid = uuid;
138
140
  */
139
141
  function ipv4Address(ip) {
140
142
  return term({
141
- generate: ip || "127.0.0.13",
143
+ generate: ip || '127.0.0.13',
142
144
  matcher: exports.IPV4_FORMAT,
143
145
  });
144
146
  }
@@ -149,7 +151,7 @@ exports.ipv4Address = ipv4Address;
149
151
  */
150
152
  function ipv6Address(ip) {
151
153
  return term({
152
- generate: ip || "::ffff:192.0.2.128",
154
+ generate: ip || '::ffff:192.0.2.128',
153
155
  matcher: exports.IPV6_FORMAT,
154
156
  });
155
157
  }
@@ -161,7 +163,7 @@ exports.ipv6Address = ipv6Address;
161
163
  */
162
164
  function iso8601DateTime(date) {
163
165
  return term({
164
- generate: date || "2015-08-06T16:53:10+01:00",
166
+ generate: date || '2015-08-06T16:53:10+01:00',
165
167
  matcher: exports.ISO8601_DATETIME_FORMAT,
166
168
  });
167
169
  }
@@ -172,7 +174,7 @@ exports.iso8601DateTime = iso8601DateTime;
172
174
  */
173
175
  function iso8601DateTimeWithMillis(date) {
174
176
  return term({
175
- generate: date || "2015-08-06T16:53:10.123+01:00",
177
+ generate: date || '2015-08-06T16:53:10.123+01:00',
176
178
  matcher: exports.ISO8601_DATETIME_WITH_MILLIS_FORMAT,
177
179
  });
178
180
  }
@@ -183,7 +185,7 @@ exports.iso8601DateTimeWithMillis = iso8601DateTimeWithMillis;
183
185
  */
184
186
  function iso8601Date(date) {
185
187
  return term({
186
- generate: date || "2013-02-01",
188
+ generate: date || '2013-02-01',
187
189
  matcher: exports.ISO8601_DATE_FORMAT,
188
190
  });
189
191
  }
@@ -194,29 +196,30 @@ exports.iso8601Date = iso8601Date;
194
196
  */
195
197
  function iso8601Time(time) {
196
198
  return term({
197
- generate: time || "T22:44:30.652Z",
199
+ generate: time || 'T22:44:30.652Z',
198
200
  matcher: exports.ISO8601_TIME_FORMAT,
199
201
  });
200
202
  }
201
203
  exports.iso8601Time = iso8601Time;
202
204
  /**
203
- * RFC3339 Timestamp matcher, a subset of ISO8609
204
- * @param {string} date - an RFC3339 Date and Time string, e.g. Mon, 31 Oct 2016 15:21:41 -0400
205
+ * RFC1123 Timestamp matcher "DAY, DD MON YYY hh:mm:ss"
206
+ *
207
+ * @param {string} date - an RFC1123 Date and Time string, e.g. Mon, 31 Oct 2016 15:21:41 -0400
205
208
  */
206
- function rfc3339Timestamp(timestamp) {
209
+ function rfc1123Timestamp(timestamp) {
207
210
  return term({
208
- generate: timestamp || "Mon, 31 Oct 2016 15:21:41 -0400",
209
- matcher: exports.RFC3339_TIMESTAMP_FORMAT,
211
+ generate: timestamp || 'Mon, 31 Oct 2016 15:21:41 -0400',
212
+ matcher: exports.RFC1123_TIMESTAMP_FORMAT,
210
213
  });
211
214
  }
212
- exports.rfc3339Timestamp = rfc3339Timestamp;
215
+ exports.rfc1123Timestamp = rfc1123Timestamp;
213
216
  /**
214
217
  * Hexadecimal Matcher.
215
218
  * @param {string} hex - a hex value.
216
219
  */
217
220
  function hexadecimal(hex) {
218
221
  return term({
219
- generate: hex || "3F",
222
+ generate: hex || '3F',
220
223
  matcher: exports.HEX_FORMAT,
221
224
  });
222
225
  }
@@ -226,7 +229,7 @@ exports.hexadecimal = hexadecimal;
226
229
  * @param {float} float - a decimal value.
227
230
  */
228
231
  function decimal(float) {
229
- return somethingLike(lodash_1.isNil(float) ? 13.01 : float);
232
+ return somethingLike((0, lodash_1.isNil)(float) ? 13.01 : float);
230
233
  }
231
234
  exports.decimal = decimal;
232
235
  /**
@@ -234,7 +237,7 @@ exports.decimal = decimal;
234
237
  * @param {integer} int - an int value.
235
238
  */
236
239
  function integer(int) {
237
- return somethingLike(lodash_1.isNil(int) ? 13 : int);
240
+ return somethingLike((0, lodash_1.isNil)(int) ? 13 : int);
238
241
  }
239
242
  exports.integer = integer;
240
243
  /**
@@ -249,37 +252,33 @@ exports.boolean = boolean;
249
252
  * String Matcher.
250
253
  */
251
254
  function string(value) {
252
- if (value === void 0) { value = "iloveorange"; }
255
+ if (value === void 0) { value = 'iloveorange'; }
253
256
  return somethingLike(value);
254
257
  }
255
258
  exports.string = string;
256
- function isMatcher(x) {
257
- return x != null && x.getValue !== undefined;
258
- }
259
- exports.isMatcher = isMatcher;
260
259
  // Recurse the object removing any underlying matching guff, returning
261
260
  // the raw example content
262
- function extractPayload(obj, stack) {
263
- if (stack === void 0) { stack = {}; }
264
- // special case: top level matching object
265
- // we need to strip the properties
266
- if (isMatcher(obj) && lodash_1.isEmpty(stack)) {
267
- return extractPayload(obj.getValue(), obj.getValue());
261
+ function extractPayload(value) {
262
+ if (isMatcher(value)) {
263
+ return extractPayload(value.getValue());
268
264
  }
269
- // recurse the (remaining) object, replacing Matchers with their
270
- // actual contents
271
- for (var property in obj) {
272
- if (obj.hasOwnProperty(property)) {
273
- var value = obj[property];
274
- if (isMatcher(value)) {
275
- extractPayload(value.getValue(), (stack[property] = value.getValue()));
276
- }
277
- else if (typeof value === "object") {
278
- extractPayload(value, (stack[property] = value));
279
- }
280
- }
265
+ if (Object.prototype.toString.call(value) === '[object Array]') {
266
+ return value.map(extractPayload);
267
+ }
268
+ if (value !== null && typeof value === 'object') {
269
+ return Object.keys(value).reduce(function (acc, propName) {
270
+ var _a;
271
+ return (__assign(__assign({}, acc), (_a = {}, _a[propName] = extractPayload(value[propName]), _a)));
272
+ }, {});
281
273
  }
282
- return stack;
274
+ return value;
283
275
  }
284
276
  exports.extractPayload = extractPayload;
277
+ // Gets a matcher as JSON or the string value if it's not a matcher
278
+ function matcherValueOrString(obj) {
279
+ if (typeof obj === 'string')
280
+ return obj;
281
+ return JSON.stringify(obj);
282
+ }
283
+ exports.matcherValueOrString = matcherValueOrString;
285
284
  //# sourceMappingURL=matchers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../../src/dsl/matchers.ts"],"names":[],"mappings":"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"}
File without changes