effect 3.9.2 → 3.10.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/Arbitrary/package.json +6 -0
- package/FastCheck/package.json +6 -0
- package/JSONSchema/package.json +6 -0
- package/ParseResult/package.json +6 -0
- package/Pretty/package.json +6 -0
- package/Schema/package.json +6 -0
- package/SchemaAST/package.json +6 -0
- package/TSubscriptionRef/package.json +6 -0
- package/dist/cjs/Arbitrary.js +490 -0
- package/dist/cjs/Arbitrary.js.map +1 -0
- package/dist/cjs/Effect.js +247 -16
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/FastCheck.js +17 -0
- package/dist/cjs/FastCheck.js.map +1 -0
- package/dist/cjs/Inspectable.js +43 -3
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/JSONSchema.js +418 -0
- package/dist/cjs/JSONSchema.js.map +1 -0
- package/dist/cjs/ParseResult.js +1539 -0
- package/dist/cjs/ParseResult.js.map +1 -0
- package/dist/cjs/Predicate.js +3 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/Pretty.js +183 -0
- package/dist/cjs/Pretty.js.map +1 -0
- package/dist/cjs/Schema.js +5529 -0
- package/dist/cjs/Schema.js.map +1 -0
- package/dist/cjs/SchemaAST.js +2365 -0
- package/dist/cjs/SchemaAST.js.map +1 -0
- package/dist/cjs/Stream.js +17 -3
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/TPubSub.js +9 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSubscriptionRef.js +96 -0
- package/dist/cjs/TSubscriptionRef.js.map +1 -0
- package/dist/cjs/index.js +18 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/cause.js +2 -2
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/core.js +4 -4
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +14 -12
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/logger.js +7 -6
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/redacted.js +4 -0
- package/dist/cjs/internal/redacted.js.map +1 -1
- package/dist/cjs/internal/schema/errors.js +116 -0
- package/dist/cjs/internal/schema/errors.js.map +1 -0
- package/dist/cjs/internal/schema/filters.js +41 -0
- package/dist/cjs/internal/schema/filters.js.map +1 -0
- package/dist/cjs/internal/schema/util.js +96 -0
- package/dist/cjs/internal/schema/util.js.map +1 -0
- package/dist/cjs/internal/stm/core.js +2 -3
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +1 -2
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js +6 -2
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSubscriptionRef.js +178 -0
- package/dist/cjs/internal/stm/tSubscriptionRef.js.map +1 -0
- package/dist/cjs/internal/stream.js +36 -16
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/cjs/internal/version.js.map +1 -1
- package/dist/dts/Arbitrary.d.ts +45 -0
- package/dist/dts/Arbitrary.d.ts.map +1 -0
- package/dist/dts/Effect.d.ts +298 -30
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/FastCheck.d.ts +9 -0
- package/dist/dts/FastCheck.d.ts.map +1 -0
- package/dist/dts/Inspectable.d.ts +28 -0
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/JSONSchema.d.ts +181 -0
- package/dist/dts/JSONSchema.d.ts.map +1 -0
- package/dist/dts/ParseResult.d.ts +551 -0
- package/dist/dts/ParseResult.d.ts.map +1 -0
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/Pretty.d.ts +26 -0
- package/dist/dts/Pretty.d.ts.map +1 -0
- package/dist/dts/Schema.d.ts +4562 -0
- package/dist/dts/Schema.d.ts.map +1 -0
- package/dist/dts/SchemaAST.d.ts +1321 -0
- package/dist/dts/SchemaAST.d.ts.map +1 -0
- package/dist/dts/Stream.d.ts +67 -2
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +8 -0
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +7 -7
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +2 -1
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSubscriptionRef.d.ts +251 -0
- package/dist/dts/TSubscriptionRef.d.ts.map +1 -0
- package/dist/dts/index.d.ts +32 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
- package/dist/dts/internal/schema/errors.d.ts +2 -0
- package/dist/dts/internal/schema/errors.d.ts.map +1 -0
- package/dist/dts/internal/schema/filters.d.ts +2 -0
- package/dist/dts/internal/schema/filters.d.ts.map +1 -0
- package/dist/dts/internal/schema/util.d.ts +2 -0
- package/dist/dts/internal/schema/util.d.ts.map +1 -0
- package/dist/dts/internal/stm/tRef.d.ts +3 -1
- package/dist/dts/internal/stm/tRef.d.ts.map +1 -1
- package/dist/dts/internal/stm/tSubscriptionRef.d.ts +2 -0
- package/dist/dts/internal/stm/tSubscriptionRef.d.ts.map +1 -0
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Arbitrary.js +472 -0
- package/dist/esm/Arbitrary.js.map +1 -0
- package/dist/esm/Effect.js +256 -18
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/FastCheck.js +9 -0
- package/dist/esm/FastCheck.js.map +1 -0
- package/dist/esm/Inspectable.js +39 -2
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/JSONSchema.js +408 -0
- package/dist/esm/JSONSchema.js.map +1 -0
- package/dist/esm/ParseResult.js +1503 -0
- package/dist/esm/ParseResult.js.map +1 -0
- package/dist/esm/Predicate.js +2 -1
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/Pretty.js +173 -0
- package/dist/esm/Pretty.js.map +1 -0
- package/dist/esm/Schema.js +5328 -0
- package/dist/esm/Schema.js.map +1 -0
- package/dist/esm/SchemaAST.js +2300 -0
- package/dist/esm/SchemaAST.js.map +1 -0
- package/dist/esm/Stream.js +14 -0
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/TPubSub.js +8 -0
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSubscriptionRef.js +87 -0
- package/dist/esm/TSubscriptionRef.js.map +1 -0
- package/dist/esm/index.js +32 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/cause.js +3 -3
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/core.js +4 -4
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +14 -12
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/logger.js +7 -6
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/redacted.js +4 -0
- package/dist/esm/internal/redacted.js.map +1 -1
- package/dist/esm/internal/schema/errors.js +87 -0
- package/dist/esm/internal/schema/errors.js.map +1 -0
- package/dist/esm/internal/schema/filters.js +35 -0
- package/dist/esm/internal/schema/filters.js.map +1 -0
- package/dist/esm/internal/schema/util.js +78 -0
- package/dist/esm/internal/schema/util.js.map +1 -0
- package/dist/esm/internal/stm/core.js +1 -2
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js +1 -2
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js +5 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSubscriptionRef.js +166 -0
- package/dist/esm/internal/stm/tSubscriptionRef.js.map +1 -0
- package/dist/esm/internal/stream.js +33 -15
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/internal/version.js.map +1 -1
- package/package.json +68 -1
- package/src/Arbitrary.ts +563 -0
- package/src/Effect.ts +302 -31
- package/src/FastCheck.ts +9 -0
- package/src/Inspectable.ts +56 -2
- package/src/JSONSchema.ts +601 -0
- package/src/ParseResult.ts +2027 -0
- package/src/Predicate.ts +3 -1
- package/src/Pretty.ts +204 -0
- package/src/Schema.ts +10388 -0
- package/src/SchemaAST.ts +2827 -0
- package/src/Stream.ts +77 -9
- package/src/TPubSub.ts +9 -0
- package/src/TQueue.ts +7 -7
- package/src/TRef.ts +2 -1
- package/src/TSubscriptionRef.ts +284 -0
- package/src/index.ts +40 -0
- package/src/internal/cause.ts +3 -3
- package/src/internal/core-effect.ts +2 -2
- package/src/internal/core.ts +4 -4
- package/src/internal/fiberRuntime.ts +14 -12
- package/src/internal/logger.ts +7 -6
- package/src/internal/redacted.ts +4 -0
- package/src/internal/schema/errors.ts +189 -0
- package/src/internal/schema/filters.ts +86 -0
- package/src/internal/schema/util.ts +113 -0
- package/src/internal/stm/core.ts +1 -2
- package/src/internal/stm/tPubSub.ts +1 -0
- package/src/internal/stm/tQueue.ts +2 -2
- package/src/internal/stm/tRef.ts +7 -2
- package/src/internal/stm/tSubscriptionRef.ts +286 -0
- package/src/internal/stream.ts +97 -20
- package/src/internal/version.ts +1 -1
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.makeLazy = exports.make = exports.getConstraints = exports.combineConstraints = exports.StringConstraints = exports.NumberConstraints = exports.IntegerConstraints = exports.BigIntConstraints = exports.ArrayConstraints = void 0;
|
|
7
|
+
var Arr = _interopRequireWildcard(require("./Array.js"));
|
|
8
|
+
var FastCheck = _interopRequireWildcard(require("./FastCheck.js"));
|
|
9
|
+
var errors_ = _interopRequireWildcard(require("./internal/schema/errors.js"));
|
|
10
|
+
var filters_ = _interopRequireWildcard(require("./internal/schema/filters.js"));
|
|
11
|
+
var util_ = _interopRequireWildcard(require("./internal/schema/util.js"));
|
|
12
|
+
var Option = _interopRequireWildcard(require("./Option.js"));
|
|
13
|
+
var Predicate = _interopRequireWildcard(require("./Predicate.js"));
|
|
14
|
+
var AST = _interopRequireWildcard(require("./SchemaAST.js"));
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
|
+
/**
|
|
18
|
+
* @since 3.10.0
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Returns a LazyArbitrary for the `A` type of the provided schema.
|
|
23
|
+
*
|
|
24
|
+
* @category arbitrary
|
|
25
|
+
* @since 3.10.0
|
|
26
|
+
*/
|
|
27
|
+
const makeLazy = schema => go(schema.ast, {
|
|
28
|
+
maxDepth: 2
|
|
29
|
+
}, []);
|
|
30
|
+
/**
|
|
31
|
+
* Returns a fast-check Arbitrary for the `A` type of the provided schema.
|
|
32
|
+
*
|
|
33
|
+
* @category arbitrary
|
|
34
|
+
* @since 3.10.0
|
|
35
|
+
*/
|
|
36
|
+
exports.makeLazy = makeLazy;
|
|
37
|
+
const make = schema => makeLazy(schema)(FastCheck);
|
|
38
|
+
exports.make = make;
|
|
39
|
+
const getArbitraryAnnotation = /*#__PURE__*/AST.getAnnotation(AST.ArbitraryAnnotationId);
|
|
40
|
+
const getRefinementFromArbitrary = (ast, ctx, path) => {
|
|
41
|
+
const constraints = combineConstraints(ctx.constraints, getConstraints(ast));
|
|
42
|
+
return go(ast.from, constraints ? {
|
|
43
|
+
...ctx,
|
|
44
|
+
constraints
|
|
45
|
+
} : ctx, path);
|
|
46
|
+
};
|
|
47
|
+
const getSuspendedContext = (ctx, ast) => {
|
|
48
|
+
if (ctx.depthIdentifier !== undefined) {
|
|
49
|
+
return ctx;
|
|
50
|
+
}
|
|
51
|
+
const depthIdentifier = AST.getIdentifierAnnotation(ast).pipe(Option.orElse(() => AST.getIdentifierAnnotation(ast.f())), Option.getOrElse(() => "SuspendDefaultDepthIdentifier"));
|
|
52
|
+
return {
|
|
53
|
+
...ctx,
|
|
54
|
+
depthIdentifier
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
const getSuspendedArray = (fc, depthIdentifier, maxDepth, item, constraints) => {
|
|
58
|
+
let minLength = 1;
|
|
59
|
+
let maxLength = 2;
|
|
60
|
+
if (constraints && constraints.minLength !== undefined && constraints.minLength > minLength) {
|
|
61
|
+
minLength = constraints.minLength;
|
|
62
|
+
if (minLength > maxLength) {
|
|
63
|
+
maxLength = minLength;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return fc.oneof({
|
|
67
|
+
maxDepth,
|
|
68
|
+
depthIdentifier
|
|
69
|
+
}, fc.constant([]), fc.array(item, {
|
|
70
|
+
minLength,
|
|
71
|
+
maxLength
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
const go = (ast, ctx, path) => {
|
|
75
|
+
const hook = getArbitraryAnnotation(ast);
|
|
76
|
+
if (Option.isSome(hook)) {
|
|
77
|
+
switch (ast._tag) {
|
|
78
|
+
case "Declaration":
|
|
79
|
+
return hook.value(...ast.typeParameters.map(p => go(p, ctx, path)), ctx);
|
|
80
|
+
case "Refinement":
|
|
81
|
+
return hook.value(getRefinementFromArbitrary(ast, ctx, path), ctx);
|
|
82
|
+
default:
|
|
83
|
+
return hook.value(ctx);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
switch (ast._tag) {
|
|
87
|
+
case "Declaration":
|
|
88
|
+
{
|
|
89
|
+
throw new Error(errors_.getArbitraryMissingAnnotationErrorMessage(path, ast));
|
|
90
|
+
}
|
|
91
|
+
case "Literal":
|
|
92
|
+
return fc => fc.constant(ast.literal);
|
|
93
|
+
case "UniqueSymbol":
|
|
94
|
+
return fc => fc.constant(ast.symbol);
|
|
95
|
+
case "UndefinedKeyword":
|
|
96
|
+
return fc => fc.constant(undefined);
|
|
97
|
+
case "NeverKeyword":
|
|
98
|
+
return () => {
|
|
99
|
+
throw new Error(errors_.getArbitraryUnsupportedErrorMessage(path, ast));
|
|
100
|
+
};
|
|
101
|
+
case "UnknownKeyword":
|
|
102
|
+
case "AnyKeyword":
|
|
103
|
+
case "VoidKeyword":
|
|
104
|
+
return fc => fc.anything();
|
|
105
|
+
case "StringKeyword":
|
|
106
|
+
return fc => {
|
|
107
|
+
if (ctx.constraints) {
|
|
108
|
+
switch (ctx.constraints._tag) {
|
|
109
|
+
case "StringConstraints":
|
|
110
|
+
return fc.string(ctx.constraints.constraints);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return fc.string();
|
|
114
|
+
};
|
|
115
|
+
case "NumberKeyword":
|
|
116
|
+
return fc => {
|
|
117
|
+
if (ctx.constraints) {
|
|
118
|
+
switch (ctx.constraints._tag) {
|
|
119
|
+
case "NumberConstraints":
|
|
120
|
+
return fc.float(ctx.constraints.constraints);
|
|
121
|
+
case "IntegerConstraints":
|
|
122
|
+
return fc.integer(ctx.constraints.constraints);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return fc.float();
|
|
126
|
+
};
|
|
127
|
+
case "BooleanKeyword":
|
|
128
|
+
return fc => fc.boolean();
|
|
129
|
+
case "BigIntKeyword":
|
|
130
|
+
return fc => {
|
|
131
|
+
if (ctx.constraints) {
|
|
132
|
+
switch (ctx.constraints._tag) {
|
|
133
|
+
case "BigIntConstraints":
|
|
134
|
+
return fc.bigInt(ctx.constraints.constraints);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return fc.bigInt();
|
|
138
|
+
};
|
|
139
|
+
case "SymbolKeyword":
|
|
140
|
+
return fc => fc.string().map(s => Symbol.for(s));
|
|
141
|
+
case "ObjectKeyword":
|
|
142
|
+
return fc => fc.oneof(fc.object(), fc.array(fc.anything()));
|
|
143
|
+
case "TemplateLiteral":
|
|
144
|
+
{
|
|
145
|
+
return fc => {
|
|
146
|
+
const string = fc.string({
|
|
147
|
+
maxLength: 5
|
|
148
|
+
});
|
|
149
|
+
const number = fc.float({
|
|
150
|
+
noDefaultInfinity: true
|
|
151
|
+
}).filter(n => !Number.isNaN(n));
|
|
152
|
+
const components = [fc.constant(ast.head)];
|
|
153
|
+
for (const span of ast.spans) {
|
|
154
|
+
if (AST.isStringKeyword(span.type)) {
|
|
155
|
+
components.push(string);
|
|
156
|
+
} else {
|
|
157
|
+
components.push(number);
|
|
158
|
+
}
|
|
159
|
+
components.push(fc.constant(span.literal));
|
|
160
|
+
}
|
|
161
|
+
return fc.tuple(...components).map(spans => spans.join(""));
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
case "TupleType":
|
|
165
|
+
{
|
|
166
|
+
const elements = [];
|
|
167
|
+
let hasOptionals = false;
|
|
168
|
+
let i = 0;
|
|
169
|
+
for (const element of ast.elements) {
|
|
170
|
+
elements.push(go(element.type, ctx, path.concat(i++)));
|
|
171
|
+
if (element.isOptional) {
|
|
172
|
+
hasOptionals = true;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const rest = ast.rest.map(annotatedAST => go(annotatedAST.type, ctx, path));
|
|
176
|
+
return fc => {
|
|
177
|
+
// ---------------------------------------------
|
|
178
|
+
// handle elements
|
|
179
|
+
// ---------------------------------------------
|
|
180
|
+
let output = fc.tuple(...elements.map(arb => arb(fc)));
|
|
181
|
+
if (hasOptionals) {
|
|
182
|
+
const indexes = fc.tuple(...ast.elements.map(element => element.isOptional ? fc.boolean() : fc.constant(true)));
|
|
183
|
+
output = output.chain(tuple => indexes.map(booleans => {
|
|
184
|
+
for (const [i, b] of booleans.reverse().entries()) {
|
|
185
|
+
if (!b) {
|
|
186
|
+
tuple.splice(booleans.length - i, 1);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return tuple;
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
// ---------------------------------------------
|
|
193
|
+
// handle rest element
|
|
194
|
+
// ---------------------------------------------
|
|
195
|
+
if (Arr.isNonEmptyReadonlyArray(rest)) {
|
|
196
|
+
const [head, ...tail] = rest;
|
|
197
|
+
const item = head(fc);
|
|
198
|
+
const constraints = ctx.constraints && ctx.constraints._tag === "ArrayConstraints" ? ctx.constraints.constraints : undefined;
|
|
199
|
+
output = output.chain(as => {
|
|
200
|
+
return (ctx.depthIdentifier !== undefined ? getSuspendedArray(fc, ctx.depthIdentifier, ctx.maxDepth, item, constraints) : fc.array(item, constraints)).map(rest => [...as, ...rest]);
|
|
201
|
+
});
|
|
202
|
+
// ---------------------------------------------
|
|
203
|
+
// handle post rest elements
|
|
204
|
+
// ---------------------------------------------
|
|
205
|
+
for (let j = 0; j < tail.length; j++) {
|
|
206
|
+
output = output.chain(as => tail[j](fc).map(a => [...as, a]));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return output;
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
case "TypeLiteral":
|
|
213
|
+
{
|
|
214
|
+
const propertySignaturesTypes = ast.propertySignatures.map(ps => go(ps.type, ctx, path.concat(ps.name)));
|
|
215
|
+
const indexSignatures = ast.indexSignatures.map(is => [go(is.parameter, ctx, path), go(is.type, ctx, path)]);
|
|
216
|
+
return fc => {
|
|
217
|
+
const arbs = {};
|
|
218
|
+
const requiredKeys = [];
|
|
219
|
+
// ---------------------------------------------
|
|
220
|
+
// handle property signatures
|
|
221
|
+
// ---------------------------------------------
|
|
222
|
+
for (let i = 0; i < propertySignaturesTypes.length; i++) {
|
|
223
|
+
const ps = ast.propertySignatures[i];
|
|
224
|
+
const name = ps.name;
|
|
225
|
+
if (!ps.isOptional) {
|
|
226
|
+
requiredKeys.push(name);
|
|
227
|
+
}
|
|
228
|
+
arbs[name] = propertySignaturesTypes[i](fc);
|
|
229
|
+
}
|
|
230
|
+
let output = fc.record(arbs, {
|
|
231
|
+
requiredKeys
|
|
232
|
+
});
|
|
233
|
+
// ---------------------------------------------
|
|
234
|
+
// handle index signatures
|
|
235
|
+
// ---------------------------------------------
|
|
236
|
+
for (let i = 0; i < indexSignatures.length; i++) {
|
|
237
|
+
const key = indexSignatures[i][0](fc);
|
|
238
|
+
const value = indexSignatures[i][1](fc);
|
|
239
|
+
output = output.chain(o => {
|
|
240
|
+
const item = fc.tuple(key, value);
|
|
241
|
+
const arr = ctx.depthIdentifier !== undefined ? getSuspendedArray(fc, ctx.depthIdentifier, ctx.maxDepth, item) : fc.array(item);
|
|
242
|
+
return arr.map(tuples => ({
|
|
243
|
+
...Object.fromEntries(tuples),
|
|
244
|
+
...o
|
|
245
|
+
}));
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
return output;
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
case "Union":
|
|
252
|
+
{
|
|
253
|
+
const types = ast.types.map(member => go(member, ctx, path));
|
|
254
|
+
return fc => fc.oneof(...types.map(arb => arb(fc)));
|
|
255
|
+
}
|
|
256
|
+
case "Enums":
|
|
257
|
+
{
|
|
258
|
+
if (ast.enums.length === 0) {
|
|
259
|
+
throw new Error(errors_.getArbitraryEmptyEnumErrorMessage(path));
|
|
260
|
+
}
|
|
261
|
+
return fc => fc.oneof(...ast.enums.map(([_, value]) => fc.constant(value)));
|
|
262
|
+
}
|
|
263
|
+
case "Refinement":
|
|
264
|
+
{
|
|
265
|
+
const from = getRefinementFromArbitrary(ast, ctx, path);
|
|
266
|
+
return fc => from(fc).filter(a => Option.isNone(ast.filter(a, AST.defaultParseOption, ast)));
|
|
267
|
+
}
|
|
268
|
+
case "Suspend":
|
|
269
|
+
{
|
|
270
|
+
const get = util_.memoizeThunk(() => {
|
|
271
|
+
return go(ast.f(), getSuspendedContext(ctx, ast), path);
|
|
272
|
+
});
|
|
273
|
+
return fc => fc.constant(null).chain(() => get()(fc));
|
|
274
|
+
}
|
|
275
|
+
case "Transformation":
|
|
276
|
+
return go(ast.to, ctx, path);
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
/** @internal */
|
|
280
|
+
class NumberConstraints {
|
|
281
|
+
_tag = "NumberConstraints";
|
|
282
|
+
constraints;
|
|
283
|
+
constructor(options) {
|
|
284
|
+
this.constraints = {};
|
|
285
|
+
if (Predicate.isNumber(options.min)) {
|
|
286
|
+
this.constraints.min = Math.fround(options.min);
|
|
287
|
+
}
|
|
288
|
+
if (Predicate.isNumber(options.max)) {
|
|
289
|
+
this.constraints.max = Math.fround(options.max);
|
|
290
|
+
}
|
|
291
|
+
if (Predicate.isBoolean(options.noNaN)) {
|
|
292
|
+
this.constraints.noNaN = options.noNaN;
|
|
293
|
+
}
|
|
294
|
+
if (Predicate.isBoolean(options.noDefaultInfinity)) {
|
|
295
|
+
this.constraints.noDefaultInfinity = options.noDefaultInfinity;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/** @internal */
|
|
300
|
+
exports.NumberConstraints = NumberConstraints;
|
|
301
|
+
class StringConstraints {
|
|
302
|
+
_tag = "StringConstraints";
|
|
303
|
+
constraints;
|
|
304
|
+
constructor(options) {
|
|
305
|
+
this.constraints = {};
|
|
306
|
+
if (Predicate.isNumber(options.minLength)) {
|
|
307
|
+
this.constraints.minLength = options.minLength;
|
|
308
|
+
}
|
|
309
|
+
if (Predicate.isNumber(options.maxLength)) {
|
|
310
|
+
this.constraints.maxLength = options.maxLength;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/** @internal */
|
|
315
|
+
exports.StringConstraints = StringConstraints;
|
|
316
|
+
class IntegerConstraints {
|
|
317
|
+
_tag = "IntegerConstraints";
|
|
318
|
+
constraints;
|
|
319
|
+
constructor(options) {
|
|
320
|
+
this.constraints = {};
|
|
321
|
+
if (Predicate.isNumber(options.min)) {
|
|
322
|
+
this.constraints.min = options.min;
|
|
323
|
+
}
|
|
324
|
+
if (Predicate.isNumber(options.max)) {
|
|
325
|
+
this.constraints.max = options.max;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
/** @internal */
|
|
330
|
+
exports.IntegerConstraints = IntegerConstraints;
|
|
331
|
+
class ArrayConstraints {
|
|
332
|
+
_tag = "ArrayConstraints";
|
|
333
|
+
constraints;
|
|
334
|
+
constructor(options) {
|
|
335
|
+
this.constraints = {};
|
|
336
|
+
if (Predicate.isNumber(options.minLength)) {
|
|
337
|
+
this.constraints.minLength = options.minLength;
|
|
338
|
+
}
|
|
339
|
+
if (Predicate.isNumber(options.maxLength)) {
|
|
340
|
+
this.constraints.maxLength = options.maxLength;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
/** @internal */
|
|
345
|
+
exports.ArrayConstraints = ArrayConstraints;
|
|
346
|
+
class BigIntConstraints {
|
|
347
|
+
_tag = "BigIntConstraints";
|
|
348
|
+
constraints;
|
|
349
|
+
constructor(options) {
|
|
350
|
+
this.constraints = {};
|
|
351
|
+
if (Predicate.isBigInt(options.min)) {
|
|
352
|
+
this.constraints.min = options.min;
|
|
353
|
+
}
|
|
354
|
+
if (Predicate.isBigInt(options.max)) {
|
|
355
|
+
this.constraints.max = options.max;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/** @internal */
|
|
360
|
+
exports.BigIntConstraints = BigIntConstraints;
|
|
361
|
+
const getConstraints = ast => {
|
|
362
|
+
const TypeAnnotationId = ast.annotations[AST.SchemaIdAnnotationId];
|
|
363
|
+
const jsonSchema = ast.annotations[AST.JSONSchemaAnnotationId];
|
|
364
|
+
switch (TypeAnnotationId) {
|
|
365
|
+
// int
|
|
366
|
+
case filters_.IntSchemaId:
|
|
367
|
+
return new IntegerConstraints({});
|
|
368
|
+
// number
|
|
369
|
+
case filters_.GreaterThanSchemaId:
|
|
370
|
+
case filters_.GreaterThanOrEqualToSchemaId:
|
|
371
|
+
case filters_.LessThanSchemaId:
|
|
372
|
+
case filters_.LessThanOrEqualToSchemaId:
|
|
373
|
+
case filters_.BetweenSchemaId:
|
|
374
|
+
return new NumberConstraints({
|
|
375
|
+
min: jsonSchema.exclusiveMinimum ?? jsonSchema.minimum,
|
|
376
|
+
max: jsonSchema.exclusiveMaximum ?? jsonSchema.maximum
|
|
377
|
+
});
|
|
378
|
+
// bigint
|
|
379
|
+
case filters_.GreaterThanBigintSchemaId:
|
|
380
|
+
case filters_.GreaterThanOrEqualToBigIntSchemaId:
|
|
381
|
+
case filters_.LessThanBigIntSchemaId:
|
|
382
|
+
case filters_.LessThanOrEqualToBigIntSchemaId:
|
|
383
|
+
case filters_.BetweenBigintSchemaId:
|
|
384
|
+
{
|
|
385
|
+
const constraints = ast.annotations[TypeAnnotationId];
|
|
386
|
+
return new BigIntConstraints(constraints);
|
|
387
|
+
}
|
|
388
|
+
// string
|
|
389
|
+
case filters_.MinLengthSchemaId:
|
|
390
|
+
case filters_.MaxLengthSchemaId:
|
|
391
|
+
case filters_.LengthSchemaId:
|
|
392
|
+
return new StringConstraints(jsonSchema);
|
|
393
|
+
// array
|
|
394
|
+
case filters_.MinItemsSchemaId:
|
|
395
|
+
case filters_.MaxItemsSchemaId:
|
|
396
|
+
case filters_.ItemsCountSchemaId:
|
|
397
|
+
return new ArrayConstraints({
|
|
398
|
+
minLength: jsonSchema.minItems,
|
|
399
|
+
maxLength: jsonSchema.maxItems
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
/** @internal */
|
|
404
|
+
exports.getConstraints = getConstraints;
|
|
405
|
+
const combineConstraints = (c1, c2) => {
|
|
406
|
+
if (c1 === undefined) {
|
|
407
|
+
return c2;
|
|
408
|
+
}
|
|
409
|
+
if (c2 === undefined) {
|
|
410
|
+
return c1;
|
|
411
|
+
}
|
|
412
|
+
switch (c1._tag) {
|
|
413
|
+
case "ArrayConstraints":
|
|
414
|
+
{
|
|
415
|
+
switch (c2._tag) {
|
|
416
|
+
case "ArrayConstraints":
|
|
417
|
+
return new ArrayConstraints({
|
|
418
|
+
minLength: getMax(c1.constraints.minLength, c2.constraints.minLength),
|
|
419
|
+
maxLength: getMin(c1.constraints.maxLength, c2.constraints.maxLength)
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
case "NumberConstraints":
|
|
425
|
+
{
|
|
426
|
+
switch (c2._tag) {
|
|
427
|
+
case "NumberConstraints":
|
|
428
|
+
return new NumberConstraints({
|
|
429
|
+
min: getMax(c1.constraints.min, c2.constraints.min),
|
|
430
|
+
max: getMin(c1.constraints.max, c2.constraints.max),
|
|
431
|
+
noNaN: getOr(c1.constraints.noNaN, c2.constraints.noNaN),
|
|
432
|
+
noDefaultInfinity: getOr(c1.constraints.noDefaultInfinity, c2.constraints.noDefaultInfinity)
|
|
433
|
+
});
|
|
434
|
+
case "IntegerConstraints":
|
|
435
|
+
return new IntegerConstraints({
|
|
436
|
+
min: getMax(c1.constraints.min, c2.constraints.min),
|
|
437
|
+
max: getMin(c1.constraints.max, c2.constraints.max)
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
break;
|
|
441
|
+
}
|
|
442
|
+
case "BigIntConstraints":
|
|
443
|
+
{
|
|
444
|
+
switch (c2._tag) {
|
|
445
|
+
case "BigIntConstraints":
|
|
446
|
+
return new BigIntConstraints({
|
|
447
|
+
min: getMax(c1.constraints.min, c2.constraints.min),
|
|
448
|
+
max: getMin(c1.constraints.max, c2.constraints.max)
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
break;
|
|
452
|
+
}
|
|
453
|
+
case "StringConstraints":
|
|
454
|
+
{
|
|
455
|
+
switch (c2._tag) {
|
|
456
|
+
case "StringConstraints":
|
|
457
|
+
return new StringConstraints({
|
|
458
|
+
minLength: getMax(c1.constraints.minLength, c2.constraints.minLength),
|
|
459
|
+
maxLength: getMin(c1.constraints.maxLength, c2.constraints.maxLength)
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
break;
|
|
463
|
+
}
|
|
464
|
+
case "IntegerConstraints":
|
|
465
|
+
{
|
|
466
|
+
switch (c2._tag) {
|
|
467
|
+
case "NumberConstraints":
|
|
468
|
+
case "IntegerConstraints":
|
|
469
|
+
{
|
|
470
|
+
return new IntegerConstraints({
|
|
471
|
+
min: getMax(c1.constraints.min, c2.constraints.min),
|
|
472
|
+
max: getMin(c1.constraints.max, c2.constraints.max)
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
break;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
exports.combineConstraints = combineConstraints;
|
|
481
|
+
const getOr = (a, b) => {
|
|
482
|
+
return a === undefined ? b : b === undefined ? a : a || b;
|
|
483
|
+
};
|
|
484
|
+
function getMax(n1, n2) {
|
|
485
|
+
return n1 === undefined ? n2 : n2 === undefined ? n1 : n1 <= n2 ? n2 : n1;
|
|
486
|
+
}
|
|
487
|
+
function getMin(n1, n2) {
|
|
488
|
+
return n1 === undefined ? n2 : n2 === undefined ? n1 : n1 <= n2 ? n1 : n2;
|
|
489
|
+
}
|
|
490
|
+
//# sourceMappingURL=Arbitrary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Arbitrary.js","names":["Arr","_interopRequireWildcard","require","FastCheck","errors_","filters_","util_","Option","Predicate","AST","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","makeLazy","schema","go","ast","maxDepth","exports","make","getArbitraryAnnotation","getAnnotation","ArbitraryAnnotationId","getRefinementFromArbitrary","ctx","path","constraints","combineConstraints","getConstraints","from","getSuspendedContext","depthIdentifier","undefined","getIdentifierAnnotation","pipe","orElse","f","getOrElse","getSuspendedArray","fc","item","minLength","maxLength","oneof","constant","array","hook","isSome","_tag","value","typeParameters","map","p","Error","getArbitraryMissingAnnotationErrorMessage","literal","symbol","getArbitraryUnsupportedErrorMessage","anything","string","float","integer","boolean","bigInt","s","Symbol","for","object","number","noDefaultInfinity","filter","Number","isNaN","components","head","span","spans","isStringKeyword","type","push","tuple","join","elements","hasOptionals","element","concat","isOptional","rest","annotatedAST","output","arb","indexes","chain","booleans","b","reverse","entries","splice","length","isNonEmptyReadonlyArray","tail","as","j","propertySignaturesTypes","propertySignatures","ps","name","indexSignatures","is","parameter","arbs","requiredKeys","record","key","o","arr","tuples","fromEntries","types","member","enums","getArbitraryEmptyEnumErrorMessage","_","isNone","defaultParseOption","memoizeThunk","to","NumberConstraints","constructor","options","isNumber","min","Math","fround","max","isBoolean","noNaN","StringConstraints","IntegerConstraints","ArrayConstraints","BigIntConstraints","isBigInt","TypeAnnotationId","annotations","SchemaIdAnnotationId","jsonSchema","JSONSchemaAnnotationId","IntSchemaId","GreaterThanSchemaId","GreaterThanOrEqualToSchemaId","LessThanSchemaId","LessThanOrEqualToSchemaId","BetweenSchemaId","exclusiveMinimum","minimum","exclusiveMaximum","maximum","GreaterThanBigintSchemaId","GreaterThanOrEqualToBigIntSchemaId","LessThanBigIntSchemaId","LessThanOrEqualToBigIntSchemaId","BetweenBigintSchemaId","MinLengthSchemaId","MaxLengthSchemaId","LengthSchemaId","MinItemsSchemaId","MaxItemsSchemaId","ItemsCountSchemaId","minItems","maxItems","c1","c2","getMax","getMin","getOr","n1","n2"],"sources":["../../src/Arbitrary.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|