@pact-foundation/pact 10.0.0-beta.9 → 10.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2444 -1
- package/CODE_OF_CONDUCT.md +1 -1
- package/CONTRIBUTING.md +49 -12
- package/MIGRATION.md +77 -0
- package/README.md +180 -1274
- package/RELEASING.md +63 -59
- package/package.json +95 -97
- package/src/common/jsonTypes.d.ts +5 -0
- package/src/common/jsonTypes.js +3 -0
- package/src/common/jsonTypes.js.map +1 -0
- package/src/common/logger.d.ts +10 -0
- package/src/common/logger.js +32 -0
- package/src/common/logger.js.map +1 -0
- package/src/common/net.d.ts +9 -0
- package/src/common/net.js +82 -0
- package/src/common/net.js.map +1 -0
- package/{common → src/common}/net.spec.d.ts +0 -0
- package/src/common/net.spec.js +69 -0
- package/src/common/net.spec.js.map +1 -0
- package/src/common/request.d.ts +21 -0
- package/src/common/request.js +110 -0
- package/src/common/request.js.map +1 -0
- package/{common → src/common}/request.spec.d.ts +0 -0
- package/src/common/request.spec.js +69 -0
- package/src/common/request.spec.js.map +1 -0
- package/src/common/spec.d.ts +2 -0
- package/src/common/spec.js +22 -0
- package/src/common/spec.js.map +1 -0
- package/{dsl → src/dsl}/apolloGraphql.d.ts +1 -1
- package/{dsl → src/dsl}/apolloGraphql.js +4 -1
- package/src/dsl/apolloGraphql.js.map +1 -0
- package/{dsl → src/dsl}/apolloGraphql.spec.d.ts +0 -0
- package/src/dsl/apolloGraphql.spec.js +74 -0
- package/src/dsl/apolloGraphql.spec.js.map +1 -0
- package/{dsl → src/dsl}/graphql.d.ts +19 -8
- package/{dsl → src/dsl}/graphql.js +59 -31
- package/src/dsl/graphql.js.map +1 -0
- package/{dsl → src/dsl}/graphql.spec.d.ts +0 -0
- package/src/dsl/graphql.spec.js +229 -0
- package/src/dsl/graphql.spec.js.map +1 -0
- package/{dsl → src/dsl}/interaction.d.ts +22 -20
- package/src/dsl/interaction.js +144 -0
- package/src/dsl/interaction.js.map +1 -0
- package/{dsl → src/dsl}/interaction.spec.d.ts +0 -0
- package/src/dsl/interaction.spec.js +214 -0
- package/src/dsl/interaction.spec.js.map +1 -0
- package/src/dsl/matchers.d.ts +143 -0
- package/{dsl → src/dsl}/matchers.js +92 -93
- package/src/dsl/matchers.js.map +1 -0
- package/{dsl → src/dsl}/matchers.spec.d.ts +0 -0
- package/src/dsl/matchers.spec.js +668 -0
- package/src/dsl/matchers.spec.js.map +1 -0
- package/{dsl → src/dsl}/message.d.ts +32 -12
- package/{dsl → src/dsl}/message.js +0 -0
- package/{dsl → src/dsl}/message.js.map +1 -1
- package/src/dsl/mockService.d.ts +13 -0
- package/src/dsl/mockService.js +3 -0
- package/src/dsl/mockService.js.map +1 -0
- package/{dsl → src/dsl}/options.d.ts +7 -6
- package/{dsl → src/dsl}/options.js +0 -0
- package/{dsl → src/dsl}/options.js.map +1 -1
- package/src/dsl/verifier/index.d.ts +1 -0
- package/src/dsl/verifier/index.js +18 -0
- package/src/dsl/verifier/index.js.map +1 -0
- package/src/dsl/verifier/proxy/hooks.d.ts +4 -0
- package/src/dsl/verifier/proxy/hooks.js +109 -0
- package/src/dsl/verifier/proxy/hooks.js.map +1 -0
- package/src/dsl/verifier/proxy/index.d.ts +1 -0
- package/src/dsl/verifier/proxy/index.js +18 -0
- package/src/dsl/verifier/proxy/index.js.map +1 -0
- package/src/dsl/verifier/proxy/parseBody.d.ts +7 -0
- package/src/dsl/verifier/proxy/parseBody.js +22 -0
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -0
- package/{dsl/mockService.spec.d.ts → src/dsl/verifier/proxy/parseBody.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js +118 -0
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/proxy.d.ts +4 -0
- package/src/dsl/verifier/proxy/proxy.js +92 -0
- package/src/dsl/verifier/proxy/proxy.js.map +1 -0
- package/{dsl/publisher.spec.d.ts → src/dsl/verifier/proxy/proxy.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/proxy.spec.js +33 -0
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/stateHandler/index.d.ts +1 -0
- package/src/dsl/verifier/proxy/stateHandler/index.js +18 -0
- package/src/dsl/verifier/proxy/stateHandler/index.js.map +1 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js +48 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -0
- package/{dsl/verifier.spec.d.ts → src/dsl/verifier/proxy/stateHandler/setupStates.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +191 -0
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +3 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +14 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -0
- package/{httpPact.spec.d.ts → src/dsl/verifier/proxy/stateHandler/stateHandler.spec.d.ts} +0 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +130 -0
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -0
- package/src/dsl/verifier/proxy/tracer.d.ts +3 -0
- package/src/dsl/verifier/proxy/tracer.js +52 -0
- package/src/dsl/verifier/proxy/tracer.js.map +1 -0
- package/src/dsl/verifier/proxy/types.d.ts +48 -0
- package/src/dsl/verifier/proxy/types.js +3 -0
- package/src/dsl/verifier/proxy/types.js.map +1 -0
- package/src/dsl/verifier/types.d.ts +3 -0
- package/src/dsl/verifier/types.js +3 -0
- package/src/dsl/verifier/types.js.map +1 -0
- package/src/dsl/verifier/verifier.d.ts +16 -0
- package/src/dsl/verifier/verifier.js +129 -0
- package/src/dsl/verifier/verifier.js.map +1 -0
- package/{messageConsumerPact.spec.d.ts → src/dsl/verifier/verifier.spec.d.ts} +0 -0
- package/src/dsl/verifier/verifier.spec.js +172 -0
- package/src/dsl/verifier/verifier.spec.js.map +1 -0
- package/{errors → src/errors}/configurationError.d.ts +0 -0
- package/{errors → src/errors}/configurationError.js +3 -1
- package/src/errors/configurationError.js.map +1 -0
- package/{errors → src/errors}/graphQLQueryError.d.ts +0 -0
- package/{errors → src/errors}/graphQLQueryError.js +3 -1
- package/src/errors/graphQLQueryError.js.map +1 -0
- package/{errors → src/errors}/matcherError.d.ts +0 -0
- package/{errors → src/errors}/matcherError.js +3 -1
- package/src/errors/matcherError.js.map +1 -0
- package/{errors → src/errors}/verificationError.d.ts +0 -0
- package/{errors → src/errors}/verificationError.js +3 -1
- package/src/errors/verificationError.js.map +1 -0
- package/src/httpPact/ffi.d.ts +15 -0
- package/src/httpPact/ffi.js +91 -0
- package/src/httpPact/ffi.js.map +1 -0
- package/{messageProviderPact.spec.d.ts → src/httpPact/ffi.spec.d.ts} +0 -0
- package/src/httpPact/ffi.spec.js +81 -0
- package/src/httpPact/ffi.spec.js.map +1 -0
- package/{httpPact.d.ts → src/httpPact/index.d.ts} +12 -12
- package/src/httpPact/index.js +311 -0
- package/src/httpPact/index.js.map +1 -0
- package/{pact-web.spec.d.ts → src/httpPact/index.spec.d.ts} +0 -0
- package/src/httpPact/index.spec.js +238 -0
- package/src/httpPact/index.spec.js.map +1 -0
- package/src/httpPact/tracing.d.ts +1 -0
- package/src/httpPact/tracing.js +53 -0
- package/src/httpPact/tracing.js.map +1 -0
- package/{pact.d.ts → src/index.d.ts} +22 -21
- package/src/index.js +107 -0
- package/src/index.js.map +1 -0
- package/src/messageConsumerPact.d.ts +86 -0
- package/src/messageConsumerPact.js +222 -0
- package/src/messageConsumerPact.js.map +1 -0
- package/src/messageConsumerPact.spec.d.ts +1 -0
- package/src/messageConsumerPact.spec.js +117 -0
- package/src/messageConsumerPact.spec.js.map +1 -0
- package/{messageProviderPact.d.ts → src/messageProviderPact.d.ts} +7 -4
- package/src/messageProviderPact.js +190 -0
- package/src/messageProviderPact.js.map +1 -0
- package/src/messageProviderPact.spec.d.ts +1 -0
- package/src/messageProviderPact.spec.js +183 -0
- package/src/messageProviderPact.spec.js.map +1 -0
- package/{pact.integration.spec.d.ts → src/pact.integration.spec.d.ts} +0 -0
- package/{pact.integration.spec.js → src/pact.integration.spec.js} +0 -0
- package/src/pact.integration.spec.js.map +1 -0
- package/src/v3/display.d.ts +6 -0
- package/src/v3/display.js +83 -0
- package/src/v3/display.js.map +1 -0
- package/src/v3/index.d.ts +17 -0
- package/src/v3/index.js +47 -0
- package/src/v3/index.js.map +1 -0
- package/src/v3/matchers.d.ts +182 -0
- package/src/v3/matchers.js +443 -0
- package/src/v3/matchers.js.map +1 -0
- package/src/v3/matchers.spec.d.ts +1 -0
- package/src/v3/matchers.spec.js +461 -0
- package/src/v3/matchers.spec.js.map +1 -0
- package/src/v3/pact.d.ts +21 -0
- package/src/v3/pact.js +240 -0
- package/src/v3/pact.js.map +1 -0
- package/src/v3/types.d.ts +81 -0
- package/src/v3/types.js +11 -0
- package/src/v3/types.js.map +1 -0
- package/{v3 → src/v3}/xml/xmlBuilder.d.ts +2 -2
- package/{v3 → src/v3}/xml/xmlBuilder.js +2 -1
- package/src/v3/xml/xmlBuilder.js.map +1 -0
- package/src/v3/xml/xmlElement.d.ts +27 -0
- package/{v3 → src/v3}/xml/xmlElement.js +21 -15
- package/src/v3/xml/xmlElement.js.map +1 -0
- package/src/v3/xml/xmlElement.spec.d.ts +1 -0
- package/src/v3/xml/xmlElement.spec.js +102 -0
- package/src/v3/xml/xmlElement.spec.js.map +1 -0
- package/{v3 → src/v3}/xml/xmlNode.d.ts +0 -0
- package/{v3 → src/v3}/xml/xmlNode.js +1 -0
- package/src/v3/xml/xmlNode.js.map +1 -0
- package/src/v3/xml/xmlText.d.ts +7 -0
- package/{v3 → src/v3}/xml/xmlText.js +4 -1
- package/src/v3/xml/xmlText.js.map +1 -0
- package/test/helper.d.ts +1 -0
- package/test/helper.js +37 -0
- package/test/helper.js.map +1 -0
- package/ROADMAP.md +0 -20
- package/common/logger.d.ts +0 -7
- package/common/logger.js +0 -56
- package/common/logger.js.map +0 -1
- package/common/metadata.d.ts +0 -0
- package/common/metadata.js +0 -2
- package/common/metadata.js.map +0 -1
- package/common/net.d.ts +0 -9
- package/common/net.js +0 -48
- package/common/net.js.map +0 -1
- package/common/net.spec.js +0 -67
- package/common/net.spec.js.map +0 -1
- package/common/request.d.ts +0 -14
- package/common/request.js +0 -47
- package/common/request.js.map +0 -1
- package/common/request.spec.js +0 -71
- package/common/request.spec.js.map +0 -1
- package/common/utils.d.ts +0 -2
- package/common/utils.js +0 -10
- package/common/utils.js.map +0 -1
- package/dsl/apolloGraphql.js.map +0 -1
- package/dsl/apolloGraphql.spec.js +0 -47
- package/dsl/apolloGraphql.spec.js.map +0 -1
- package/dsl/graphql.js.map +0 -1
- package/dsl/graphql.spec.js +0 -150
- package/dsl/graphql.spec.js.map +0 -1
- package/dsl/interaction.js +0 -112
- package/dsl/interaction.js.map +0 -1
- package/dsl/interaction.spec.js +0 -217
- package/dsl/interaction.spec.js.map +0 -1
- package/dsl/matchers.d.ts +0 -269
- package/dsl/matchers.js.map +0 -1
- package/dsl/matchers.spec.js +0 -563
- package/dsl/matchers.spec.js.map +0 -1
- package/dsl/mockService.d.ts +0 -58
- package/dsl/mockService.js +0 -74
- package/dsl/mockService.js.map +0 -1
- package/dsl/mockService.spec.js +0 -126
- package/dsl/mockService.spec.js.map +0 -1
- package/dsl/publisher.d.ts +0 -6
- package/dsl/publisher.js +0 -19
- package/dsl/publisher.js.map +0 -1
- package/dsl/publisher.spec.js +0 -21
- package/dsl/publisher.spec.js.map +0 -1
- package/dsl/verifier.d.ts +0 -39
- package/dsl/verifier.js +0 -173
- package/dsl/verifier.js.map +0 -1
- package/dsl/verifier.spec.js +0 -299
- package/dsl/verifier.spec.js.map +0 -1
- package/errors/configurationError.js.map +0 -1
- package/errors/graphQLQueryError.js.map +0 -1
- package/errors/matcherError.js.map +0 -1
- package/errors/verificationError.js.map +0 -1
- package/httpPact.js +0 -206
- package/httpPact.js.map +0 -1
- package/httpPact.spec.js +0 -337
- package/httpPact.spec.js.map +0 -1
- package/messageConsumerPact.d.ts +0 -67
- package/messageConsumerPact.js +0 -161
- package/messageConsumerPact.js.map +0 -1
- package/messageConsumerPact.spec.js +0 -161
- package/messageConsumerPact.spec.js.map +0 -1
- package/messageProviderPact.js +0 -139
- package/messageProviderPact.js.map +0 -1
- package/messageProviderPact.spec.js +0 -143
- package/messageProviderPact.spec.js.map +0 -1
- package/pact-web.d.ts +0 -100
- package/pact-web.js +0 -151
- package/pact-web.js.map +0 -1
- package/pact-web.spec.js +0 -191
- package/pact-web.spec.js.map +0 -1
- package/pact.integration.spec.js.map +0 -1
- package/pact.js +0 -74
- package/pact.js.map +0 -1
- package/v3/index.d.ts +0 -23
- package/v3/index.js +0 -33
- package/v3/index.js.map +0 -1
- package/v3/matchers.d.ts +0 -199
- package/v3/matchers.js +0 -305
- package/v3/matchers.js.map +0 -1
- package/v3/pact.d.ts +0 -47
- package/v3/pact.js +0 -101
- package/v3/pact.js.map +0 -1
- package/v3/verifier.d.ts +0 -27
- package/v3/verifier.js +0 -46
- package/v3/verifier.js.map +0 -1
- package/v3/xml/xmlBuilder.js.map +0 -1
- package/v3/xml/xmlElement.d.ts +0 -34
- package/v3/xml/xmlElement.js.map +0 -1
- package/v3/xml/xmlNode.js.map +0 -1
- package/v3/xml/xmlText.d.ts +0 -6
- 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
|
|
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 =
|
|
14
|
-
exports.ISO8601_DATE_FORMAT =
|
|
15
|
-
exports.ISO8601_DATETIME_FORMAT =
|
|
16
|
-
exports.ISO8601_DATETIME_WITH_MILLIS_FORMAT =
|
|
17
|
-
exports.ISO8601_TIME_FORMAT =
|
|
18
|
-
exports.
|
|
19
|
-
exports.UUID_V4_FORMAT =
|
|
20
|
-
exports.IPV4_FORMAT =
|
|
21
|
-
exports.IPV6_FORMAT =
|
|
22
|
-
exports.HEX_FORMAT =
|
|
23
|
-
|
|
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(
|
|
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}
|
|
56
|
+
* @param {any} template
|
|
38
57
|
* @param {Object} opts
|
|
39
58
|
* @param {Number} opts.min
|
|
40
59
|
*/
|
|
41
|
-
function eachLike(
|
|
42
|
-
if (lodash_1.isUndefined(
|
|
43
|
-
throw new matcherError_1.default(
|
|
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(
|
|
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
|
-
|
|
51
|
-
getValue: function () {
|
|
52
|
-
|
|
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(
|
|
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
|
-
|
|
73
|
-
getValue: function () {
|
|
74
|
-
|
|
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
|
-
|
|
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 '"
|
|
104
|
+
throw new matcherError_1.default("Example '".concat(generate, "' does not match provided regular expression '").concat(matcher, "'"));
|
|
95
105
|
}
|
|
96
106
|
return {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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 ||
|
|
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 ||
|
|
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 ||
|
|
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 ||
|
|
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 ||
|
|
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 ||
|
|
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 ||
|
|
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 ||
|
|
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
|
-
*
|
|
204
|
-
*
|
|
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
|
|
209
|
+
function rfc1123Timestamp(timestamp) {
|
|
207
210
|
return term({
|
|
208
|
-
generate: timestamp ||
|
|
209
|
-
matcher: exports.
|
|
211
|
+
generate: timestamp || 'Mon, 31 Oct 2016 15:21:41 -0400',
|
|
212
|
+
matcher: exports.RFC1123_TIMESTAMP_FORMAT,
|
|
210
213
|
});
|
|
211
214
|
}
|
|
212
|
-
exports.
|
|
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 ||
|
|
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 =
|
|
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(
|
|
263
|
-
if (
|
|
264
|
-
|
|
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
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
|
|
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
|