@ghostry/fabricator 0.0.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.
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/esm/Adapter/Core.js +47 -0
- package/dist/esm/Adapter/Types.js +1 -0
- package/dist/esm/Bound.js +81 -0
- package/dist/esm/Distribution/index.js +200 -0
- package/dist/esm/Enumeration/Enumerate.js +103 -0
- package/dist/esm/Enumeration/Plan.js +286 -0
- package/dist/esm/Enumeration/Types.js +1 -0
- package/dist/esm/Error/index.js +201 -0
- package/dist/esm/Fabricator/Constructor.js +328 -0
- package/dist/esm/Fabricator/Types.js +1 -0
- package/dist/esm/Instance/Core.js +119 -0
- package/dist/esm/Instance/Types.js +1 -0
- package/dist/esm/Primitive/always/Fabricator.js +13 -0
- package/dist/esm/Primitive/always/Registry.js +11 -0
- package/dist/esm/Primitive/always/Schema.js +10 -0
- package/dist/esm/Primitive/always/Types.js +1 -0
- package/dist/esm/Primitive/always/index.js +5 -0
- package/dist/esm/Primitive/array/Fabricator.js +45 -0
- package/dist/esm/Primitive/array/Registry.js +26 -0
- package/dist/esm/Primitive/array/Schema.js +17 -0
- package/dist/esm/Primitive/array/Types.js +1 -0
- package/dist/esm/Primitive/array/index.js +5 -0
- package/dist/esm/Primitive/bigint/Fabricator.js +54 -0
- package/dist/esm/Primitive/bigint/Registry.js +31 -0
- package/dist/esm/Primitive/bigint/Schema.js +17 -0
- package/dist/esm/Primitive/bigint/Types.js +1 -0
- package/dist/esm/Primitive/bigint/index.js +5 -0
- package/dist/esm/Primitive/boolean/Fabricator.js +44 -0
- package/dist/esm/Primitive/boolean/Outcomes.js +5 -0
- package/dist/esm/Primitive/boolean/Registry.js +11 -0
- package/dist/esm/Primitive/boolean/Schema.js +33 -0
- package/dist/esm/Primitive/boolean/Types.js +1 -0
- package/dist/esm/Primitive/boolean/index.js +6 -0
- package/dist/esm/Primitive/choice/Fabricator.js +37 -0
- package/dist/esm/Primitive/choice/Registry.js +38 -0
- package/dist/esm/Primitive/choice/Schema.js +17 -0
- package/dist/esm/Primitive/choice/Types.js +1 -0
- package/dist/esm/Primitive/choice/index.js +5 -0
- package/dist/esm/Primitive/date/Fabricator.js +86 -0
- package/dist/esm/Primitive/date/Registry.js +61 -0
- package/dist/esm/Primitive/date/Schema.js +17 -0
- package/dist/esm/Primitive/date/Types.js +1 -0
- package/dist/esm/Primitive/date/index.js +5 -0
- package/dist/esm/Primitive/enum/Fabricator.js +33 -0
- package/dist/esm/Primitive/enum/Registry.js +33 -0
- package/dist/esm/Primitive/enum/Schema.js +17 -0
- package/dist/esm/Primitive/enum/Types.js +1 -0
- package/dist/esm/Primitive/enum/index.js +5 -0
- package/dist/esm/Primitive/index.js +24 -0
- package/dist/esm/Primitive/namespace.js +21 -0
- package/dist/esm/Primitive/null/Fabricator.js +14 -0
- package/dist/esm/Primitive/null/Registry.js +8 -0
- package/dist/esm/Primitive/null/Schema.js +10 -0
- package/dist/esm/Primitive/null/Types.js +1 -0
- package/dist/esm/Primitive/null/index.js +5 -0
- package/dist/esm/Primitive/nullable/Fabricator.js +58 -0
- package/dist/esm/Primitive/nullable/Outcomes.js +5 -0
- package/dist/esm/Primitive/nullable/Registry.js +13 -0
- package/dist/esm/Primitive/nullable/Schema.js +36 -0
- package/dist/esm/Primitive/nullable/Types.js +1 -0
- package/dist/esm/Primitive/nullable/index.js +6 -0
- package/dist/esm/Primitive/nullish/Fabricator.js +64 -0
- package/dist/esm/Primitive/nullish/Outcomes.js +6 -0
- package/dist/esm/Primitive/nullish/Registry.js +13 -0
- package/dist/esm/Primitive/nullish/Schema.js +36 -0
- package/dist/esm/Primitive/nullish/Types.js +1 -0
- package/dist/esm/Primitive/nullish/index.js +6 -0
- package/dist/esm/Primitive/number/Fabricator.js +73 -0
- package/dist/esm/Primitive/number/Registry.js +59 -0
- package/dist/esm/Primitive/number/Schema.js +18 -0
- package/dist/esm/Primitive/number/Types.js +1 -0
- package/dist/esm/Primitive/number/defaults.js +21 -0
- package/dist/esm/Primitive/number/index.js +5 -0
- package/dist/esm/Primitive/object/Fabricator.js +77 -0
- package/dist/esm/Primitive/object/Registry.js +146 -0
- package/dist/esm/Primitive/object/Schema.js +18 -0
- package/dist/esm/Primitive/object/Types.js +1 -0
- package/dist/esm/Primitive/object/compute/Fabricator.js +24 -0
- package/dist/esm/Primitive/object/compute/Registry.js +15 -0
- package/dist/esm/Primitive/object/compute/Schema.js +13 -0
- package/dist/esm/Primitive/object/compute/Types.js +1 -0
- package/dist/esm/Primitive/object/compute/index.js +5 -0
- package/dist/esm/Primitive/object/index.js +9 -0
- package/dist/esm/Primitive/object/omittable/Fabricator.js +57 -0
- package/dist/esm/Primitive/object/omittable/Outcomes.js +5 -0
- package/dist/esm/Primitive/object/omittable/Registry.js +13 -0
- package/dist/esm/Primitive/object/omittable/Schema.js +36 -0
- package/dist/esm/Primitive/object/omittable/Types.js +1 -0
- package/dist/esm/Primitive/object/omittable/index.js +6 -0
- package/dist/esm/Primitive/object/optional/Fabricator.js +55 -0
- package/dist/esm/Primitive/object/optional/Outcomes.js +6 -0
- package/dist/esm/Primitive/object/optional/Registry.js +13 -0
- package/dist/esm/Primitive/object/optional/Schema.js +36 -0
- package/dist/esm/Primitive/object/optional/Types.js +1 -0
- package/dist/esm/Primitive/object/optional/index.js +6 -0
- package/dist/esm/Primitive/opaque/Fabricator.js +19 -0
- package/dist/esm/Primitive/opaque/Registry.js +11 -0
- package/dist/esm/Primitive/opaque/Schema.js +10 -0
- package/dist/esm/Primitive/opaque/Types.js +1 -0
- package/dist/esm/Primitive/opaque/index.js +5 -0
- package/dist/esm/Primitive/record/Fabricator.js +55 -0
- package/dist/esm/Primitive/record/Registry.js +26 -0
- package/dist/esm/Primitive/record/Schema.js +17 -0
- package/dist/esm/Primitive/record/Types.js +1 -0
- package/dist/esm/Primitive/record/index.js +5 -0
- package/dist/esm/Primitive/recursive/Fabricator.js +33 -0
- package/dist/esm/Primitive/recursive/Registry.js +20 -0
- package/dist/esm/Primitive/recursive/Schema.js +10 -0
- package/dist/esm/Primitive/recursive/Terminate.js +236 -0
- package/dist/esm/Primitive/recursive/Types.js +1 -0
- package/dist/esm/Primitive/recursive/index.js +7 -0
- package/dist/esm/Primitive/recursive/self/Fabricator.js +15 -0
- package/dist/esm/Primitive/recursive/self/Registry.js +9 -0
- package/dist/esm/Primitive/recursive/self/Schema.js +10 -0
- package/dist/esm/Primitive/recursive/self/Types.js +1 -0
- package/dist/esm/Primitive/recursive/self/index.js +5 -0
- package/dist/esm/Primitive/string/Constants.js +73 -0
- package/dist/esm/Primitive/string/Fabricator.js +109 -0
- package/dist/esm/Primitive/string/Registry.js +25 -0
- package/dist/esm/Primitive/string/Schema.js +18 -0
- package/dist/esm/Primitive/string/Types.js +1 -0
- package/dist/esm/Primitive/string/index.js +6 -0
- package/dist/esm/Primitive/symbol/Fabricator.js +33 -0
- package/dist/esm/Primitive/symbol/Registry.js +17 -0
- package/dist/esm/Primitive/symbol/Schema.js +17 -0
- package/dist/esm/Primitive/symbol/Types.js +1 -0
- package/dist/esm/Primitive/symbol/index.js +5 -0
- package/dist/esm/Primitive/tuple/Fabricator.js +33 -0
- package/dist/esm/Primitive/tuple/Registry.js +13 -0
- package/dist/esm/Primitive/tuple/Schema.js +17 -0
- package/dist/esm/Primitive/tuple/Types.js +1 -0
- package/dist/esm/Primitive/tuple/index.js +5 -0
- package/dist/esm/Primitive/undefinable/Fabricator.js +58 -0
- package/dist/esm/Primitive/undefinable/Outcomes.js +5 -0
- package/dist/esm/Primitive/undefinable/Registry.js +13 -0
- package/dist/esm/Primitive/undefinable/Schema.js +36 -0
- package/dist/esm/Primitive/undefinable/Types.js +1 -0
- package/dist/esm/Primitive/undefinable/index.js +6 -0
- package/dist/esm/Primitive/undefined/Fabricator.js +16 -0
- package/dist/esm/Primitive/undefined/Registry.js +8 -0
- package/dist/esm/Primitive/undefined/Schema.js +10 -0
- package/dist/esm/Primitive/undefined/Types.js +1 -0
- package/dist/esm/Primitive/undefined/index.js +5 -0
- package/dist/esm/Random/CallSite.js +56 -0
- package/dist/esm/Random/Generator/sfc32.js +16 -0
- package/dist/esm/Random/Types.js +1 -0
- package/dist/esm/Random/index.js +151 -0
- package/dist/esm/Schema/Core.js +68 -0
- package/dist/esm/Schema/Registry.js +17 -0
- package/dist/esm/Schema/Types.js +1 -0
- package/dist/esm/Types.js +11 -0
- package/dist/esm/Utility/Core.js +36 -0
- package/dist/esm/Utility/DeepMerge.js +18 -0
- package/dist/esm/Utility/Digest.js +28 -0
- package/dist/esm/Utility/ShallowMerge.js +13 -0
- package/dist/esm/Utility/Types.js +1 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/internal.js +5 -0
- package/dist/types/Adapter/Core.d.ts +64 -0
- package/dist/types/Adapter/Types.d.ts +145 -0
- package/dist/types/Bound.d.ts +68 -0
- package/dist/types/Distribution/index.d.ts +157 -0
- package/dist/types/Enumeration/Enumerate.d.ts +35 -0
- package/dist/types/Enumeration/Plan.d.ts +44 -0
- package/dist/types/Enumeration/Types.d.ts +86 -0
- package/dist/types/Error/index.d.ts +541 -0
- package/dist/types/Fabricator/Constructor.d.ts +43 -0
- package/dist/types/Fabricator/Types.d.ts +150 -0
- package/dist/types/Instance/Core.d.ts +98 -0
- package/dist/types/Instance/Types.d.ts +167 -0
- package/dist/types/Primitive/always/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/always/Registry.d.ts +3 -0
- package/dist/types/Primitive/always/Schema.d.ts +19 -0
- package/dist/types/Primitive/always/Types.d.ts +23 -0
- package/dist/types/Primitive/always/index.d.ts +5 -0
- package/dist/types/Primitive/array/Fabricator.d.ts +22 -0
- package/dist/types/Primitive/array/Registry.d.ts +18 -0
- package/dist/types/Primitive/array/Schema.d.ts +23 -0
- package/dist/types/Primitive/array/Types.d.ts +44 -0
- package/dist/types/Primitive/array/index.d.ts +5 -0
- package/dist/types/Primitive/bigint/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/bigint/Registry.d.ts +19 -0
- package/dist/types/Primitive/bigint/Schema.d.ts +27 -0
- package/dist/types/Primitive/bigint/Types.d.ts +33 -0
- package/dist/types/Primitive/bigint/index.d.ts +5 -0
- package/dist/types/Primitive/boolean/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/boolean/Outcomes.d.ts +12 -0
- package/dist/types/Primitive/boolean/Registry.d.ts +14 -0
- package/dist/types/Primitive/boolean/Schema.d.ts +28 -0
- package/dist/types/Primitive/boolean/Types.d.ts +26 -0
- package/dist/types/Primitive/boolean/index.d.ts +6 -0
- package/dist/types/Primitive/choice/Fabricator.d.ts +32 -0
- package/dist/types/Primitive/choice/Registry.d.ts +38 -0
- package/dist/types/Primitive/choice/Schema.d.ts +24 -0
- package/dist/types/Primitive/choice/Types.d.ts +35 -0
- package/dist/types/Primitive/choice/index.d.ts +5 -0
- package/dist/types/Primitive/date/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/date/Registry.d.ts +82 -0
- package/dist/types/Primitive/date/Schema.d.ts +28 -0
- package/dist/types/Primitive/date/Types.d.ts +34 -0
- package/dist/types/Primitive/date/index.d.ts +5 -0
- package/dist/types/Primitive/enum/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/enum/Registry.d.ts +39 -0
- package/dist/types/Primitive/enum/Schema.d.ts +23 -0
- package/dist/types/Primitive/enum/Types.d.ts +44 -0
- package/dist/types/Primitive/enum/index.d.ts +5 -0
- package/dist/types/Primitive/index.d.ts +28 -0
- package/dist/types/Primitive/namespace.d.ts +38 -0
- package/dist/types/Primitive/null/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/null/Registry.d.ts +3 -0
- package/dist/types/Primitive/null/Schema.d.ts +16 -0
- package/dist/types/Primitive/null/Types.d.ts +15 -0
- package/dist/types/Primitive/null/index.d.ts +5 -0
- package/dist/types/Primitive/nullable/Fabricator.d.ts +31 -0
- package/dist/types/Primitive/nullable/Outcomes.d.ts +9 -0
- package/dist/types/Primitive/nullable/Registry.d.ts +3 -0
- package/dist/types/Primitive/nullable/Schema.d.ts +36 -0
- package/dist/types/Primitive/nullable/Types.d.ts +48 -0
- package/dist/types/Primitive/nullable/index.d.ts +6 -0
- package/dist/types/Primitive/nullish/Fabricator.d.ts +36 -0
- package/dist/types/Primitive/nullish/Outcomes.d.ts +9 -0
- package/dist/types/Primitive/nullish/Registry.d.ts +3 -0
- package/dist/types/Primitive/nullish/Schema.d.ts +36 -0
- package/dist/types/Primitive/nullish/Types.d.ts +58 -0
- package/dist/types/Primitive/nullish/index.d.ts +6 -0
- package/dist/types/Primitive/number/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/number/Registry.d.ts +52 -0
- package/dist/types/Primitive/number/Schema.d.ts +32 -0
- package/dist/types/Primitive/number/Types.d.ts +56 -0
- package/dist/types/Primitive/number/defaults.d.ts +18 -0
- package/dist/types/Primitive/number/index.d.ts +5 -0
- package/dist/types/Primitive/object/Fabricator.d.ts +56 -0
- package/dist/types/Primitive/object/Registry.d.ts +23 -0
- package/dist/types/Primitive/object/Schema.d.ts +41 -0
- package/dist/types/Primitive/object/Types.d.ts +85 -0
- package/dist/types/Primitive/object/compute/Fabricator.d.ts +31 -0
- package/dist/types/Primitive/object/compute/Registry.d.ts +4 -0
- package/dist/types/Primitive/object/compute/Schema.d.ts +21 -0
- package/dist/types/Primitive/object/compute/Types.d.ts +56 -0
- package/dist/types/Primitive/object/compute/index.d.ts +5 -0
- package/dist/types/Primitive/object/index.d.ts +8 -0
- package/dist/types/Primitive/object/omittable/Fabricator.d.ts +37 -0
- package/dist/types/Primitive/object/omittable/Outcomes.d.ts +9 -0
- package/dist/types/Primitive/object/omittable/Registry.d.ts +3 -0
- package/dist/types/Primitive/object/omittable/Schema.d.ts +32 -0
- package/dist/types/Primitive/object/omittable/Types.d.ts +57 -0
- package/dist/types/Primitive/object/omittable/index.d.ts +6 -0
- package/dist/types/Primitive/object/optional/Fabricator.d.ts +45 -0
- package/dist/types/Primitive/object/optional/Outcomes.d.ts +9 -0
- package/dist/types/Primitive/object/optional/Registry.d.ts +3 -0
- package/dist/types/Primitive/object/optional/Schema.d.ts +32 -0
- package/dist/types/Primitive/object/optional/Types.d.ts +72 -0
- package/dist/types/Primitive/object/optional/index.d.ts +6 -0
- package/dist/types/Primitive/opaque/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/opaque/Registry.d.ts +12 -0
- package/dist/types/Primitive/opaque/Schema.d.ts +22 -0
- package/dist/types/Primitive/opaque/Types.d.ts +18 -0
- package/dist/types/Primitive/opaque/index.d.ts +5 -0
- package/dist/types/Primitive/record/Fabricator.d.ts +25 -0
- package/dist/types/Primitive/record/Registry.d.ts +17 -0
- package/dist/types/Primitive/record/Schema.d.ts +27 -0
- package/dist/types/Primitive/record/Types.d.ts +85 -0
- package/dist/types/Primitive/record/index.d.ts +5 -0
- package/dist/types/Primitive/recursive/Fabricator.d.ts +47 -0
- package/dist/types/Primitive/recursive/Registry.d.ts +22 -0
- package/dist/types/Primitive/recursive/Schema.d.ts +21 -0
- package/dist/types/Primitive/recursive/Terminate.d.ts +20 -0
- package/dist/types/Primitive/recursive/Types.d.ts +82 -0
- package/dist/types/Primitive/recursive/index.d.ts +6 -0
- package/dist/types/Primitive/recursive/self/Fabricator.d.ts +29 -0
- package/dist/types/Primitive/recursive/self/Registry.d.ts +7 -0
- package/dist/types/Primitive/recursive/self/Schema.d.ts +20 -0
- package/dist/types/Primitive/recursive/self/Types.d.ts +28 -0
- package/dist/types/Primitive/recursive/self/index.d.ts +5 -0
- package/dist/types/Primitive/string/Constants.d.ts +58 -0
- package/dist/types/Primitive/string/Fabricator.d.ts +24 -0
- package/dist/types/Primitive/string/Registry.d.ts +44 -0
- package/dist/types/Primitive/string/Schema.d.ts +65 -0
- package/dist/types/Primitive/string/Types.d.ts +77 -0
- package/dist/types/Primitive/string/index.d.ts +6 -0
- package/dist/types/Primitive/symbol/Fabricator.d.ts +24 -0
- package/dist/types/Primitive/symbol/Registry.d.ts +16 -0
- package/dist/types/Primitive/symbol/Schema.d.ts +24 -0
- package/dist/types/Primitive/symbol/Types.d.ts +19 -0
- package/dist/types/Primitive/symbol/index.d.ts +5 -0
- package/dist/types/Primitive/tuple/Fabricator.d.ts +37 -0
- package/dist/types/Primitive/tuple/Registry.d.ts +3 -0
- package/dist/types/Primitive/tuple/Schema.d.ts +24 -0
- package/dist/types/Primitive/tuple/Types.d.ts +53 -0
- package/dist/types/Primitive/tuple/index.d.ts +5 -0
- package/dist/types/Primitive/undefinable/Fabricator.d.ts +31 -0
- package/dist/types/Primitive/undefinable/Outcomes.d.ts +9 -0
- package/dist/types/Primitive/undefinable/Registry.d.ts +3 -0
- package/dist/types/Primitive/undefinable/Schema.d.ts +36 -0
- package/dist/types/Primitive/undefinable/Types.d.ts +48 -0
- package/dist/types/Primitive/undefinable/index.d.ts +6 -0
- package/dist/types/Primitive/undefined/Fabricator.d.ts +19 -0
- package/dist/types/Primitive/undefined/Registry.d.ts +3 -0
- package/dist/types/Primitive/undefined/Schema.d.ts +16 -0
- package/dist/types/Primitive/undefined/Types.d.ts +15 -0
- package/dist/types/Primitive/undefined/index.d.ts +5 -0
- package/dist/types/Random/CallSite.d.ts +59 -0
- package/dist/types/Random/Generator/sfc32.d.ts +10 -0
- package/dist/types/Random/Types.d.ts +384 -0
- package/dist/types/Random/index.d.ts +107 -0
- package/dist/types/Schema/Core.d.ts +44 -0
- package/dist/types/Schema/Registry.d.ts +20 -0
- package/dist/types/Schema/Types.d.ts +70 -0
- package/dist/types/Types.d.ts +78 -0
- package/dist/types/Utility/Core.d.ts +35 -0
- package/dist/types/Utility/DeepMerge.d.ts +14 -0
- package/dist/types/Utility/Digest.d.ts +9 -0
- package/dist/types/Utility/ShallowMerge.d.ts +6 -0
- package/dist/types/Utility/Types.d.ts +4 -0
- package/dist/types/index.d.ts +186 -0
- package/dist/types/internal.d.ts +64 -0
- package/package.json +53 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Kind, Meta } from "../../Types.js";
|
|
2
|
+
function Schema(schema) {
|
|
3
|
+
return {
|
|
4
|
+
...schema,
|
|
5
|
+
[Kind]: "object",
|
|
6
|
+
as: (produce)=>Schema({
|
|
7
|
+
...schema,
|
|
8
|
+
[Meta]: {
|
|
9
|
+
...schema[Meta],
|
|
10
|
+
produce
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function isObjectSchema(candidate) {
|
|
16
|
+
return "object" === candidate[Kind];
|
|
17
|
+
}
|
|
18
|
+
export { Schema, isObjectSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FabricatorError } from "../../../Error/index.js";
|
|
2
|
+
import { violatesKind } from "../../../Schema/Core.js";
|
|
3
|
+
import { Kind, Meta } from "../../../Types.js";
|
|
4
|
+
function isObjectComputeFabricator(candidate) {
|
|
5
|
+
return "object.compute" === candidate[Kind];
|
|
6
|
+
}
|
|
7
|
+
function Fabricator(context) {
|
|
8
|
+
const { schema, trace } = context;
|
|
9
|
+
return {
|
|
10
|
+
[Kind]: "object.compute",
|
|
11
|
+
[Meta]: schema[Meta],
|
|
12
|
+
trace,
|
|
13
|
+
fabricate: (params)=>{
|
|
14
|
+
if (!params) throw new FabricatorError.DetachedComputeError();
|
|
15
|
+
const resolved = schema[Meta].resolve({
|
|
16
|
+
fabricated: params.fabricated
|
|
17
|
+
});
|
|
18
|
+
const sourceKind = schema[Meta].source[Kind];
|
|
19
|
+
if (violatesKind(sourceKind, resolved)) throw new FabricatorError.ComputeResultMismatchError(sourceKind, resolved);
|
|
20
|
+
return resolved;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export { Fabricator, isObjectComputeFabricator };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Kind, Meta } from "../../../Types.js";
|
|
2
|
+
import { Schema } from "./Schema.js";
|
|
3
|
+
function make() {
|
|
4
|
+
return (source)=>({
|
|
5
|
+
as: (resolve)=>Schema({
|
|
6
|
+
[Kind]: "object.compute",
|
|
7
|
+
[Meta]: {
|
|
8
|
+
source,
|
|
9
|
+
resolve
|
|
10
|
+
}
|
|
11
|
+
})
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
const Registry = make;
|
|
15
|
+
export default Registry;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { withAdaptations } from "../../../Adapter/Core.js";
|
|
2
|
+
import { Kind } from "../../../Types.js";
|
|
3
|
+
function Schema(schema) {
|
|
4
|
+
return {
|
|
5
|
+
...schema,
|
|
6
|
+
[Kind]: "object.compute",
|
|
7
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function isObjectComputeSchema(candidate) {
|
|
11
|
+
return "object.compute" === candidate[Kind];
|
|
12
|
+
}
|
|
13
|
+
export { Schema, isObjectComputeSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as __rspack_external__optional_index_js_f05de486 from "./optional/index.js";
|
|
2
|
+
import * as __rspack_external__compute_index_js_a8316ce7 from "./compute/index.js";
|
|
3
|
+
import * as __rspack_external__omittable_index_js_42741170 from "./omittable/index.js";
|
|
4
|
+
export * from "./Types.js";
|
|
5
|
+
export * from "./Schema.js";
|
|
6
|
+
export * from "./Fabricator.js";
|
|
7
|
+
export * from "./Registry.js";
|
|
8
|
+
export { default } from "./Registry.js";
|
|
9
|
+
export { __rspack_external__compute_index_js_a8316ce7 as compute, __rspack_external__omittable_index_js_42741170 as omittable, __rspack_external__optional_index_js_f05de486 as optional };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { weighted } from "../../../Distribution/index.js";
|
|
2
|
+
import { toStreamFromTrace } from "../../../Random/index.js";
|
|
3
|
+
import { Children, Kind, Meta, Omitted } from "../../../Types.js";
|
|
4
|
+
import { never } from "../../../Utility/Core.js";
|
|
5
|
+
function isObjectOmittableFabricator(candidate) {
|
|
6
|
+
return "object.omittable" === candidate[Kind];
|
|
7
|
+
}
|
|
8
|
+
function Fabricator(context, source) {
|
|
9
|
+
var _ref, _ref1;
|
|
10
|
+
var _meta_weights, _meta_weights1;
|
|
11
|
+
const { schema, algorithm, trace } = context;
|
|
12
|
+
const meta = schema[Meta];
|
|
13
|
+
if (meta.produce) {
|
|
14
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
15
|
+
const produce = meta.produce;
|
|
16
|
+
return {
|
|
17
|
+
[Kind]: "object.omittable",
|
|
18
|
+
[Meta]: meta,
|
|
19
|
+
trace,
|
|
20
|
+
[Children]: source,
|
|
21
|
+
fabricate: ()=>produce({
|
|
22
|
+
random: stream,
|
|
23
|
+
clock: trace.clock
|
|
24
|
+
})
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
28
|
+
const pick = weighted([
|
|
29
|
+
[
|
|
30
|
+
null != (_ref = null == (_meta_weights = meta.weights) ? void 0 : _meta_weights.omitted) ? _ref : 1,
|
|
31
|
+
"omitted"
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
null != (_ref1 = null == (_meta_weights1 = meta.weights) ? void 0 : _meta_weights1.value) ? _ref1 : 1,
|
|
35
|
+
"value"
|
|
36
|
+
]
|
|
37
|
+
], stream, "T.omittable");
|
|
38
|
+
const fabricate = ()=>{
|
|
39
|
+
const picked = pick();
|
|
40
|
+
switch(picked){
|
|
41
|
+
case "value":
|
|
42
|
+
return source.fabricate();
|
|
43
|
+
case "omitted":
|
|
44
|
+
return Omitted;
|
|
45
|
+
default:
|
|
46
|
+
never(picked);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
[Kind]: "object.omittable",
|
|
51
|
+
[Meta]: meta,
|
|
52
|
+
trace,
|
|
53
|
+
[Children]: source,
|
|
54
|
+
fabricate
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export { Fabricator, isObjectOmittableFabricator };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { toSchema } from "../../../Schema/Core.js";
|
|
2
|
+
import { Kind, Meta } from "../../../Types.js";
|
|
3
|
+
import { Schema } from "./Schema.js";
|
|
4
|
+
function Registry(definition) {
|
|
5
|
+
const normalized = toSchema(definition);
|
|
6
|
+
return Schema({
|
|
7
|
+
[Kind]: "object.omittable",
|
|
8
|
+
[Meta]: {
|
|
9
|
+
definition: normalized
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export default Registry;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { withAdaptations } from "../../../Adapter/Core.js";
|
|
2
|
+
import { assertDrawableKeyedWeights } from "../../../Distribution/index.js";
|
|
3
|
+
import { Kind, Meta } from "../../../Types.js";
|
|
4
|
+
import { outcomes } from "./Outcomes.js";
|
|
5
|
+
function Schema(schema) {
|
|
6
|
+
return {
|
|
7
|
+
...schema,
|
|
8
|
+
[Kind]: "object.omittable",
|
|
9
|
+
as: (produce)=>Schema({
|
|
10
|
+
...schema,
|
|
11
|
+
[Meta]: {
|
|
12
|
+
...schema[Meta],
|
|
13
|
+
produce
|
|
14
|
+
}
|
|
15
|
+
}),
|
|
16
|
+
weighted: (weights)=>{
|
|
17
|
+
const merged = {
|
|
18
|
+
...schema[Meta].weights,
|
|
19
|
+
...weights
|
|
20
|
+
};
|
|
21
|
+
assertDrawableKeyedWeights("T.omittable.weighted", outcomes, merged);
|
|
22
|
+
return Schema({
|
|
23
|
+
...schema,
|
|
24
|
+
[Meta]: {
|
|
25
|
+
...schema[Meta],
|
|
26
|
+
weights: merged
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function isObjectOmittableSchema(candidate) {
|
|
34
|
+
return "object.omittable" === candidate[Kind];
|
|
35
|
+
}
|
|
36
|
+
export { Schema, isObjectOmittableSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { weighted } from "../../../Distribution/index.js";
|
|
2
|
+
import { toStreamFromTrace } from "../../../Random/index.js";
|
|
3
|
+
import { Children, Kind, Meta, Omitted } from "../../../Types.js";
|
|
4
|
+
function isObjectOptionalFabricator(candidate) {
|
|
5
|
+
return "object.optional" === candidate[Kind];
|
|
6
|
+
}
|
|
7
|
+
function Fabricator(context, source) {
|
|
8
|
+
var _ref, _ref1, _ref2;
|
|
9
|
+
var _meta_weights, _meta_weights1, _meta_weights2;
|
|
10
|
+
const { schema, algorithm, trace } = context;
|
|
11
|
+
const meta = schema[Meta];
|
|
12
|
+
if (meta.produce) {
|
|
13
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
14
|
+
const produce = meta.produce;
|
|
15
|
+
return {
|
|
16
|
+
[Kind]: "object.optional",
|
|
17
|
+
[Meta]: meta,
|
|
18
|
+
trace,
|
|
19
|
+
[Children]: source,
|
|
20
|
+
fabricate: ()=>produce({
|
|
21
|
+
random: stream,
|
|
22
|
+
clock: trace.clock
|
|
23
|
+
})
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
27
|
+
const pick = weighted([
|
|
28
|
+
[
|
|
29
|
+
null != (_ref = null == (_meta_weights = meta.weights) ? void 0 : _meta_weights.omitted) ? _ref : 1,
|
|
30
|
+
"omitted"
|
|
31
|
+
],
|
|
32
|
+
[
|
|
33
|
+
null != (_ref1 = null == (_meta_weights1 = meta.weights) ? void 0 : _meta_weights1.undefined) ? _ref1 : 1,
|
|
34
|
+
"undefined"
|
|
35
|
+
],
|
|
36
|
+
[
|
|
37
|
+
null != (_ref2 = null == (_meta_weights2 = meta.weights) ? void 0 : _meta_weights2.value) ? _ref2 : 1,
|
|
38
|
+
"value"
|
|
39
|
+
]
|
|
40
|
+
], stream, "T.optional");
|
|
41
|
+
const fabricate = ()=>{
|
|
42
|
+
const outcome = pick();
|
|
43
|
+
if ("omitted" === outcome) return Omitted;
|
|
44
|
+
if ("undefined" === outcome) return;
|
|
45
|
+
return source.fabricate();
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
[Kind]: "object.optional",
|
|
49
|
+
[Meta]: meta,
|
|
50
|
+
trace,
|
|
51
|
+
[Children]: source,
|
|
52
|
+
fabricate
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export { Fabricator, isObjectOptionalFabricator };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { toSchema } from "../../../Schema/Core.js";
|
|
2
|
+
import { Kind, Meta } from "../../../Types.js";
|
|
3
|
+
import { Schema } from "./Schema.js";
|
|
4
|
+
function Registry(definition) {
|
|
5
|
+
const normalized = toSchema(definition);
|
|
6
|
+
return Schema({
|
|
7
|
+
[Kind]: "object.optional",
|
|
8
|
+
[Meta]: {
|
|
9
|
+
definition: normalized
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export default Registry;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { withAdaptations } from "../../../Adapter/Core.js";
|
|
2
|
+
import { assertDrawableKeyedWeights } from "../../../Distribution/index.js";
|
|
3
|
+
import { Kind, Meta } from "../../../Types.js";
|
|
4
|
+
import { outcomes } from "./Outcomes.js";
|
|
5
|
+
function Schema(schema) {
|
|
6
|
+
return {
|
|
7
|
+
...schema,
|
|
8
|
+
[Kind]: "object.optional",
|
|
9
|
+
as: (produce)=>Schema({
|
|
10
|
+
...schema,
|
|
11
|
+
[Meta]: {
|
|
12
|
+
...schema[Meta],
|
|
13
|
+
produce
|
|
14
|
+
}
|
|
15
|
+
}),
|
|
16
|
+
weighted: (weights)=>{
|
|
17
|
+
const merged = {
|
|
18
|
+
...schema[Meta].weights,
|
|
19
|
+
...weights
|
|
20
|
+
};
|
|
21
|
+
assertDrawableKeyedWeights("T.optional.weighted", outcomes, merged);
|
|
22
|
+
return Schema({
|
|
23
|
+
...schema,
|
|
24
|
+
[Meta]: {
|
|
25
|
+
...schema[Meta],
|
|
26
|
+
weights: merged
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
},
|
|
30
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function isObjectOptionalSchema(candidate) {
|
|
34
|
+
return "object.optional" === candidate[Kind];
|
|
35
|
+
}
|
|
36
|
+
export { Schema, isObjectOptionalSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { toStreamFromTrace } from "../../Random/index.js";
|
|
2
|
+
import { Kind, Meta } from "../../Types.js";
|
|
3
|
+
import { Schema } from "./Schema.js";
|
|
4
|
+
function Fabricator(context) {
|
|
5
|
+
const { schema, algorithm, trace } = context;
|
|
6
|
+
const meta = schema[Meta];
|
|
7
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
8
|
+
return {
|
|
9
|
+
[Kind]: "opaque",
|
|
10
|
+
[Meta]: meta,
|
|
11
|
+
trace,
|
|
12
|
+
fabricate: ()=>meta.produce({
|
|
13
|
+
random: stream,
|
|
14
|
+
clock: trace.clock
|
|
15
|
+
}),
|
|
16
|
+
schema: Schema(schema)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export { Fabricator };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { withAdaptations } from "../../Adapter/Core.js";
|
|
2
|
+
import { Kind } from "../../Types.js";
|
|
3
|
+
function Schema(schema) {
|
|
4
|
+
return {
|
|
5
|
+
...schema,
|
|
6
|
+
[Kind]: "opaque",
|
|
7
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export { Schema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { toStreamFromTrace } from "../../Random/index.js";
|
|
2
|
+
import { Children, Kind, Meta } from "../../Types.js";
|
|
3
|
+
import { Schema } from "./Schema.js";
|
|
4
|
+
function Fabricator(context, key, value) {
|
|
5
|
+
const { schema, algorithm, trace } = context;
|
|
6
|
+
const meta = schema[Meta];
|
|
7
|
+
const rehydrated = Schema(schema);
|
|
8
|
+
if (meta.produce) {
|
|
9
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
10
|
+
const produce = meta.produce;
|
|
11
|
+
return {
|
|
12
|
+
[Kind]: "record",
|
|
13
|
+
[Meta]: meta,
|
|
14
|
+
trace,
|
|
15
|
+
[Children]: {
|
|
16
|
+
key,
|
|
17
|
+
value
|
|
18
|
+
},
|
|
19
|
+
fabricate: ()=>produce({
|
|
20
|
+
random: stream,
|
|
21
|
+
clock: trace.clock
|
|
22
|
+
}),
|
|
23
|
+
schema: rehydrated
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
27
|
+
const { max, minTried = 0 } = meta.whereby.size;
|
|
28
|
+
const fabricate = ()=>{
|
|
29
|
+
const size = minTried + Math.floor(stream.next() * (max - minTried + 1));
|
|
30
|
+
const fabricated = {};
|
|
31
|
+
for(let i = 0; i < size; i++){
|
|
32
|
+
const k = key.fabricate();
|
|
33
|
+
const v = value.fabricate();
|
|
34
|
+
Object.defineProperty(fabricated, k, {
|
|
35
|
+
value: v,
|
|
36
|
+
enumerable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
configurable: true
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return fabricated;
|
|
42
|
+
};
|
|
43
|
+
return {
|
|
44
|
+
[Kind]: "record",
|
|
45
|
+
[Meta]: meta,
|
|
46
|
+
trace,
|
|
47
|
+
[Children]: {
|
|
48
|
+
key,
|
|
49
|
+
value
|
|
50
|
+
},
|
|
51
|
+
fabricate,
|
|
52
|
+
schema: rehydrated
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export { Fabricator };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { toSchema } from "../../Schema/Core.js";
|
|
2
|
+
import { Kind, Meta } from "../../Types.js";
|
|
3
|
+
import { Schema } from "./Schema.js";
|
|
4
|
+
function Registry(key, value) {
|
|
5
|
+
const normalizedKey = toSchema(key);
|
|
6
|
+
const normalizedValue = toSchema(value);
|
|
7
|
+
return {
|
|
8
|
+
whereby: (whereby)=>Schema({
|
|
9
|
+
[Kind]: "record",
|
|
10
|
+
[Meta]: {
|
|
11
|
+
whereby,
|
|
12
|
+
key: normalizedKey,
|
|
13
|
+
value: normalizedValue
|
|
14
|
+
}
|
|
15
|
+
}),
|
|
16
|
+
as: (produce)=>Schema({
|
|
17
|
+
[Kind]: "record",
|
|
18
|
+
[Meta]: {
|
|
19
|
+
produce,
|
|
20
|
+
key: normalizedKey,
|
|
21
|
+
value: normalizedValue
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export default Registry;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { withAdaptations } from "../../Adapter/Core.js";
|
|
2
|
+
import { Kind, Meta } from "../../Types.js";
|
|
3
|
+
function Schema(schema) {
|
|
4
|
+
return {
|
|
5
|
+
...schema,
|
|
6
|
+
[Kind]: "record",
|
|
7
|
+
as: (produce)=>Schema({
|
|
8
|
+
...schema,
|
|
9
|
+
[Meta]: {
|
|
10
|
+
...schema[Meta],
|
|
11
|
+
produce
|
|
12
|
+
}
|
|
13
|
+
}),
|
|
14
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export { Schema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { toStreamFromTrace } from "../../Random/index.js";
|
|
2
|
+
import { Kind, Meta } from "../../Types.js";
|
|
3
|
+
import { Schema } from "./Schema.js";
|
|
4
|
+
function Fabricator(context, forkSource, make) {
|
|
5
|
+
const { schema, algorithm, trace } = context;
|
|
6
|
+
const meta = schema[Meta];
|
|
7
|
+
const rehydrated = Schema(schema);
|
|
8
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
9
|
+
const privateSource = forkSource(stream.seed);
|
|
10
|
+
function fabricateAt(depth) {
|
|
11
|
+
const atMax = depth >= meta.depth.max;
|
|
12
|
+
const target = atMax ? meta.terminal : meta.body;
|
|
13
|
+
const construction = privateSource.toRoot("counted");
|
|
14
|
+
const context = {
|
|
15
|
+
toTrace: (path, kind)=>({
|
|
16
|
+
...construction,
|
|
17
|
+
path,
|
|
18
|
+
kind
|
|
19
|
+
}),
|
|
20
|
+
algorithm,
|
|
21
|
+
self: atMax ? void 0 : ()=>fabricateAt(depth + 1)
|
|
22
|
+
};
|
|
23
|
+
return make(target, [], context).fabricate();
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
[Kind]: "recursive",
|
|
27
|
+
[Meta]: meta,
|
|
28
|
+
trace,
|
|
29
|
+
fabricate: ()=>fabricateAt(0),
|
|
30
|
+
schema: rehydrated
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export { Fabricator };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { toSchema } from "../../Schema/Core.js";
|
|
2
|
+
import { Kind, Meta } from "../../Types.js";
|
|
3
|
+
import self_0 from "./self/index.js";
|
|
4
|
+
import { Schema } from "./Schema.js";
|
|
5
|
+
import { terminate } from "./Terminate.js";
|
|
6
|
+
function Registry(body) {
|
|
7
|
+
const placeholder = self_0();
|
|
8
|
+
const resolvedBody = toSchema(body(placeholder));
|
|
9
|
+
return {
|
|
10
|
+
whereby: (config)=>Schema({
|
|
11
|
+
[Kind]: "recursive",
|
|
12
|
+
[Meta]: {
|
|
13
|
+
body: resolvedBody,
|
|
14
|
+
depth: config.depth,
|
|
15
|
+
terminal: config.terminal ? toSchema(config.terminal) : terminate(resolvedBody)
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export default Registry;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { withAdaptations } from "../../Adapter/Core.js";
|
|
2
|
+
import { Kind } from "../../Types.js";
|
|
3
|
+
function Schema(schema) {
|
|
4
|
+
return {
|
|
5
|
+
...schema,
|
|
6
|
+
[Kind]: "recursive",
|
|
7
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export { Schema };
|