effect 3.9.2 → 3.10.1

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 (207) hide show
  1. package/Arbitrary/package.json +6 -0
  2. package/FastCheck/package.json +6 -0
  3. package/JSONSchema/package.json +6 -0
  4. package/ParseResult/package.json +6 -0
  5. package/Pretty/package.json +6 -0
  6. package/Schema/package.json +6 -0
  7. package/SchemaAST/package.json +6 -0
  8. package/TSubscriptionRef/package.json +6 -0
  9. package/dist/cjs/Arbitrary.js +490 -0
  10. package/dist/cjs/Arbitrary.js.map +1 -0
  11. package/dist/cjs/Effect.js +247 -16
  12. package/dist/cjs/Effect.js.map +1 -1
  13. package/dist/cjs/FastCheck.js +17 -0
  14. package/dist/cjs/FastCheck.js.map +1 -0
  15. package/dist/cjs/Inspectable.js +43 -3
  16. package/dist/cjs/Inspectable.js.map +1 -1
  17. package/dist/cjs/JSONSchema.js +418 -0
  18. package/dist/cjs/JSONSchema.js.map +1 -0
  19. package/dist/cjs/ParseResult.js +1539 -0
  20. package/dist/cjs/ParseResult.js.map +1 -0
  21. package/dist/cjs/Predicate.js +3 -1
  22. package/dist/cjs/Predicate.js.map +1 -1
  23. package/dist/cjs/Pretty.js +183 -0
  24. package/dist/cjs/Pretty.js.map +1 -0
  25. package/dist/cjs/Schema.js +5529 -0
  26. package/dist/cjs/Schema.js.map +1 -0
  27. package/dist/cjs/SchemaAST.js +2365 -0
  28. package/dist/cjs/SchemaAST.js.map +1 -0
  29. package/dist/cjs/Stream.js +17 -3
  30. package/dist/cjs/Stream.js.map +1 -1
  31. package/dist/cjs/TPubSub.js +9 -1
  32. package/dist/cjs/TPubSub.js.map +1 -1
  33. package/dist/cjs/TQueue.js.map +1 -1
  34. package/dist/cjs/TRef.js.map +1 -1
  35. package/dist/cjs/TSubscriptionRef.js +96 -0
  36. package/dist/cjs/TSubscriptionRef.js.map +1 -0
  37. package/dist/cjs/index.js +18 -2
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/internal/cause.js +2 -2
  40. package/dist/cjs/internal/cause.js.map +1 -1
  41. package/dist/cjs/internal/channel/channelExecutor.js +160 -161
  42. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  43. package/dist/cjs/internal/core.js +4 -4
  44. package/dist/cjs/internal/core.js.map +1 -1
  45. package/dist/cjs/internal/fiberRuntime.js +14 -12
  46. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  47. package/dist/cjs/internal/logger.js +7 -6
  48. package/dist/cjs/internal/logger.js.map +1 -1
  49. package/dist/cjs/internal/redacted.js +4 -0
  50. package/dist/cjs/internal/redacted.js.map +1 -1
  51. package/dist/cjs/internal/schema/errors.js +116 -0
  52. package/dist/cjs/internal/schema/errors.js.map +1 -0
  53. package/dist/cjs/internal/schema/filters.js +41 -0
  54. package/dist/cjs/internal/schema/filters.js.map +1 -0
  55. package/dist/cjs/internal/schema/util.js +96 -0
  56. package/dist/cjs/internal/schema/util.js.map +1 -0
  57. package/dist/cjs/internal/stm/core.js +2 -3
  58. package/dist/cjs/internal/stm/core.js.map +1 -1
  59. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  60. package/dist/cjs/internal/stm/tQueue.js +1 -2
  61. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  62. package/dist/cjs/internal/stm/tRef.js +6 -2
  63. package/dist/cjs/internal/stm/tRef.js.map +1 -1
  64. package/dist/cjs/internal/stm/tSubscriptionRef.js +178 -0
  65. package/dist/cjs/internal/stm/tSubscriptionRef.js.map +1 -0
  66. package/dist/cjs/internal/stream.js +36 -16
  67. package/dist/cjs/internal/stream.js.map +1 -1
  68. package/dist/cjs/internal/version.js +1 -1
  69. package/dist/cjs/internal/version.js.map +1 -1
  70. package/dist/dts/Arbitrary.d.ts +45 -0
  71. package/dist/dts/Arbitrary.d.ts.map +1 -0
  72. package/dist/dts/Effect.d.ts +298 -30
  73. package/dist/dts/Effect.d.ts.map +1 -1
  74. package/dist/dts/FastCheck.d.ts +9 -0
  75. package/dist/dts/FastCheck.d.ts.map +1 -0
  76. package/dist/dts/Inspectable.d.ts +28 -0
  77. package/dist/dts/Inspectable.d.ts.map +1 -1
  78. package/dist/dts/JSONSchema.d.ts +181 -0
  79. package/dist/dts/JSONSchema.d.ts.map +1 -0
  80. package/dist/dts/ParseResult.d.ts +551 -0
  81. package/dist/dts/ParseResult.d.ts.map +1 -0
  82. package/dist/dts/Predicate.d.ts.map +1 -1
  83. package/dist/dts/Pretty.d.ts +26 -0
  84. package/dist/dts/Pretty.d.ts.map +1 -0
  85. package/dist/dts/Schema.d.ts +4562 -0
  86. package/dist/dts/Schema.d.ts.map +1 -0
  87. package/dist/dts/SchemaAST.d.ts +1321 -0
  88. package/dist/dts/SchemaAST.d.ts.map +1 -0
  89. package/dist/dts/Stream.d.ts +67 -2
  90. package/dist/dts/Stream.d.ts.map +1 -1
  91. package/dist/dts/TPubSub.d.ts +8 -0
  92. package/dist/dts/TPubSub.d.ts.map +1 -1
  93. package/dist/dts/TQueue.d.ts +7 -7
  94. package/dist/dts/TQueue.d.ts.map +1 -1
  95. package/dist/dts/TRef.d.ts +2 -1
  96. package/dist/dts/TRef.d.ts.map +1 -1
  97. package/dist/dts/TSubscriptionRef.d.ts +251 -0
  98. package/dist/dts/TSubscriptionRef.d.ts.map +1 -0
  99. package/dist/dts/index.d.ts +32 -0
  100. package/dist/dts/index.d.ts.map +1 -1
  101. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  102. package/dist/dts/internal/schema/errors.d.ts +2 -0
  103. package/dist/dts/internal/schema/errors.d.ts.map +1 -0
  104. package/dist/dts/internal/schema/filters.d.ts +2 -0
  105. package/dist/dts/internal/schema/filters.d.ts.map +1 -0
  106. package/dist/dts/internal/schema/util.d.ts +2 -0
  107. package/dist/dts/internal/schema/util.d.ts.map +1 -0
  108. package/dist/dts/internal/stm/tRef.d.ts +3 -1
  109. package/dist/dts/internal/stm/tRef.d.ts.map +1 -1
  110. package/dist/dts/internal/stm/tSubscriptionRef.d.ts +2 -0
  111. package/dist/dts/internal/stm/tSubscriptionRef.d.ts.map +1 -0
  112. package/dist/dts/internal/stream.d.ts.map +1 -1
  113. package/dist/esm/Arbitrary.js +472 -0
  114. package/dist/esm/Arbitrary.js.map +1 -0
  115. package/dist/esm/Effect.js +256 -18
  116. package/dist/esm/Effect.js.map +1 -1
  117. package/dist/esm/FastCheck.js +9 -0
  118. package/dist/esm/FastCheck.js.map +1 -0
  119. package/dist/esm/Inspectable.js +39 -2
  120. package/dist/esm/Inspectable.js.map +1 -1
  121. package/dist/esm/JSONSchema.js +408 -0
  122. package/dist/esm/JSONSchema.js.map +1 -0
  123. package/dist/esm/ParseResult.js +1503 -0
  124. package/dist/esm/ParseResult.js.map +1 -0
  125. package/dist/esm/Predicate.js +2 -1
  126. package/dist/esm/Predicate.js.map +1 -1
  127. package/dist/esm/Pretty.js +173 -0
  128. package/dist/esm/Pretty.js.map +1 -0
  129. package/dist/esm/Schema.js +5328 -0
  130. package/dist/esm/Schema.js.map +1 -0
  131. package/dist/esm/SchemaAST.js +2300 -0
  132. package/dist/esm/SchemaAST.js.map +1 -0
  133. package/dist/esm/Stream.js +14 -0
  134. package/dist/esm/Stream.js.map +1 -1
  135. package/dist/esm/TPubSub.js +8 -0
  136. package/dist/esm/TPubSub.js.map +1 -1
  137. package/dist/esm/TQueue.js.map +1 -1
  138. package/dist/esm/TRef.js.map +1 -1
  139. package/dist/esm/TSubscriptionRef.js +87 -0
  140. package/dist/esm/TSubscriptionRef.js.map +1 -0
  141. package/dist/esm/index.js +32 -0
  142. package/dist/esm/index.js.map +1 -1
  143. package/dist/esm/internal/cause.js +3 -3
  144. package/dist/esm/internal/cause.js.map +1 -1
  145. package/dist/esm/internal/channel/channelExecutor.js +160 -161
  146. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  147. package/dist/esm/internal/core.js +4 -4
  148. package/dist/esm/internal/core.js.map +1 -1
  149. package/dist/esm/internal/fiberRuntime.js +14 -12
  150. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  151. package/dist/esm/internal/logger.js +7 -6
  152. package/dist/esm/internal/logger.js.map +1 -1
  153. package/dist/esm/internal/redacted.js +4 -0
  154. package/dist/esm/internal/redacted.js.map +1 -1
  155. package/dist/esm/internal/schema/errors.js +87 -0
  156. package/dist/esm/internal/schema/errors.js.map +1 -0
  157. package/dist/esm/internal/schema/filters.js +35 -0
  158. package/dist/esm/internal/schema/filters.js.map +1 -0
  159. package/dist/esm/internal/schema/util.js +78 -0
  160. package/dist/esm/internal/schema/util.js.map +1 -0
  161. package/dist/esm/internal/stm/core.js +1 -2
  162. package/dist/esm/internal/stm/core.js.map +1 -1
  163. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  164. package/dist/esm/internal/stm/tQueue.js +1 -2
  165. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  166. package/dist/esm/internal/stm/tRef.js +5 -1
  167. package/dist/esm/internal/stm/tRef.js.map +1 -1
  168. package/dist/esm/internal/stm/tSubscriptionRef.js +166 -0
  169. package/dist/esm/internal/stm/tSubscriptionRef.js.map +1 -0
  170. package/dist/esm/internal/stream.js +33 -15
  171. package/dist/esm/internal/stream.js.map +1 -1
  172. package/dist/esm/internal/version.js +1 -1
  173. package/dist/esm/internal/version.js.map +1 -1
  174. package/package.json +68 -1
  175. package/src/Arbitrary.ts +563 -0
  176. package/src/Effect.ts +302 -31
  177. package/src/FastCheck.ts +9 -0
  178. package/src/Inspectable.ts +56 -2
  179. package/src/JSONSchema.ts +601 -0
  180. package/src/ParseResult.ts +2027 -0
  181. package/src/Predicate.ts +3 -1
  182. package/src/Pretty.ts +204 -0
  183. package/src/Schema.ts +10388 -0
  184. package/src/SchemaAST.ts +2827 -0
  185. package/src/Stream.ts +77 -9
  186. package/src/TPubSub.ts +9 -0
  187. package/src/TQueue.ts +7 -7
  188. package/src/TRef.ts +2 -1
  189. package/src/TSubscriptionRef.ts +284 -0
  190. package/src/index.ts +40 -0
  191. package/src/internal/cause.ts +3 -3
  192. package/src/internal/channel/channelExecutor.ts +213 -214
  193. package/src/internal/core-effect.ts +2 -2
  194. package/src/internal/core.ts +4 -4
  195. package/src/internal/fiberRuntime.ts +14 -12
  196. package/src/internal/logger.ts +7 -6
  197. package/src/internal/redacted.ts +4 -0
  198. package/src/internal/schema/errors.ts +189 -0
  199. package/src/internal/schema/filters.ts +86 -0
  200. package/src/internal/schema/util.ts +113 -0
  201. package/src/internal/stm/core.ts +1 -2
  202. package/src/internal/stm/tPubSub.ts +1 -0
  203. package/src/internal/stm/tQueue.ts +2 -2
  204. package/src/internal/stm/tRef.ts +7 -2
  205. package/src/internal/stm/tSubscriptionRef.ts +286 -0
  206. package/src/internal/stream.ts +97 -20
  207. package/src/internal/version.ts +1 -1
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Arbitrary.js",
3
+ "module": "../dist/esm/Arbitrary.js",
4
+ "types": "../dist/dts/Arbitrary.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/FastCheck.js",
3
+ "module": "../dist/esm/FastCheck.js",
4
+ "types": "../dist/dts/FastCheck.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/JSONSchema.js",
3
+ "module": "../dist/esm/JSONSchema.js",
4
+ "types": "../dist/dts/JSONSchema.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/ParseResult.js",
3
+ "module": "../dist/esm/ParseResult.js",
4
+ "types": "../dist/dts/ParseResult.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Pretty.js",
3
+ "module": "../dist/esm/Pretty.js",
4
+ "types": "../dist/dts/Pretty.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Schema.js",
3
+ "module": "../dist/esm/Schema.js",
4
+ "types": "../dist/dts/Schema.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/SchemaAST.js",
3
+ "module": "../dist/esm/SchemaAST.js",
4
+ "types": "../dist/dts/SchemaAST.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/TSubscriptionRef.js",
3
+ "module": "../dist/esm/TSubscriptionRef.js",
4
+ "types": "../dist/dts/TSubscriptionRef.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -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":[]}