@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,58 @@
|
|
|
1
|
+
import { weighted } from "../../Distribution/index.js";
|
|
2
|
+
import { toStreamFromTrace } from "../../Random/index.js";
|
|
3
|
+
import { Children, Kind, Meta } from "../../Types.js";
|
|
4
|
+
import { never } from "../../Utility/Core.js";
|
|
5
|
+
import { Schema } from "./Schema.js";
|
|
6
|
+
function Fabricator(context, source) {
|
|
7
|
+
var _ref, _ref1;
|
|
8
|
+
var _meta_weights, _meta_weights1;
|
|
9
|
+
const { schema, algorithm, trace } = context;
|
|
10
|
+
const meta = schema[Meta];
|
|
11
|
+
const rehydrated = Schema(schema);
|
|
12
|
+
if (meta.produce) {
|
|
13
|
+
const stream = toStreamFromTrace(algorithm, trace);
|
|
14
|
+
const produce = meta.produce;
|
|
15
|
+
return {
|
|
16
|
+
[Kind]: "undefinable",
|
|
17
|
+
[Meta]: meta,
|
|
18
|
+
trace,
|
|
19
|
+
[Children]: source,
|
|
20
|
+
fabricate: ()=>produce({
|
|
21
|
+
random: stream,
|
|
22
|
+
clock: trace.clock
|
|
23
|
+
}),
|
|
24
|
+
schema: rehydrated
|
|
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.undefined) ? _ref : 1,
|
|
31
|
+
"undefined"
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
null != (_ref1 = null == (_meta_weights1 = meta.weights) ? void 0 : _meta_weights1.value) ? _ref1 : 1,
|
|
35
|
+
"value"
|
|
36
|
+
]
|
|
37
|
+
], stream, "T.undefinable");
|
|
38
|
+
const fabricate = ()=>{
|
|
39
|
+
const picked = pick();
|
|
40
|
+
switch(picked){
|
|
41
|
+
case "value":
|
|
42
|
+
return source.fabricate();
|
|
43
|
+
case "undefined":
|
|
44
|
+
return;
|
|
45
|
+
default:
|
|
46
|
+
return never(picked);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
[Kind]: "undefinable",
|
|
51
|
+
[Meta]: meta,
|
|
52
|
+
trace,
|
|
53
|
+
[Children]: source,
|
|
54
|
+
fabricate,
|
|
55
|
+
schema: rehydrated
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export { Fabricator };
|
|
@@ -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]: "undefinable",
|
|
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]: "undefinable",
|
|
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.undefinable.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 isUndefinableSchema(candidate) {
|
|
34
|
+
return "undefinable" === candidate[Kind];
|
|
35
|
+
}
|
|
36
|
+
export { Schema, isUndefinableSchema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Kind, Meta } from "../../Types.js";
|
|
2
|
+
import { Schema } from "./Schema.js";
|
|
3
|
+
function Fabricator(context) {
|
|
4
|
+
const { schema, trace } = context;
|
|
5
|
+
const rehydrated = Schema({
|
|
6
|
+
...schema
|
|
7
|
+
});
|
|
8
|
+
return {
|
|
9
|
+
[Kind]: "undefined",
|
|
10
|
+
[Meta]: schema[Meta],
|
|
11
|
+
trace,
|
|
12
|
+
fabricate: ()=>void 0,
|
|
13
|
+
schema: rehydrated
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
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]: "undefined",
|
|
7
|
+
adapt: (adapter, produce)=>Schema(withAdaptations(schema, adapter, produce))
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export { Schema };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const OWN_ROOT = normalizeLocation(new URL("..", import.meta.url).href);
|
|
2
|
+
function stripPosition(text) {
|
|
3
|
+
return text.replace(/:\d+:\d+/g, "");
|
|
4
|
+
}
|
|
5
|
+
function extractLocation(frameLine) {
|
|
6
|
+
const trimmed = frameLine.trim().replace(/^at\s+/, "");
|
|
7
|
+
const parenthesized = trimmed.match(/\(([^()]*)\)$/);
|
|
8
|
+
return parenthesized ? parenthesized[1] : trimmed;
|
|
9
|
+
}
|
|
10
|
+
function decode(text) {
|
|
11
|
+
try {
|
|
12
|
+
return decodeURIComponent(text);
|
|
13
|
+
} catch {
|
|
14
|
+
return text;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function normalizeLocation(location) {
|
|
18
|
+
const isUrl = location.startsWith("file://");
|
|
19
|
+
const path = isUrl ? decode(location.slice(7)) : location;
|
|
20
|
+
return path.replace(/\\/g, "/").replace(/^\/?([A-Za-z]):\//, (_, letter)=>`/${letter.toUpperCase()}:/`);
|
|
21
|
+
}
|
|
22
|
+
function directoryOf(location) {
|
|
23
|
+
const cut = location.lastIndexOf("/");
|
|
24
|
+
return -1 === cut ? location : location.slice(0, cut + 1);
|
|
25
|
+
}
|
|
26
|
+
function relativize(root, file) {
|
|
27
|
+
if (!file.startsWith("/")) return file;
|
|
28
|
+
const from = root.split("/").filter(Boolean);
|
|
29
|
+
const to = file.split("/").filter(Boolean);
|
|
30
|
+
let shared = 0;
|
|
31
|
+
while(shared < from.length && shared < to.length && from[shared] === to[shared])shared++;
|
|
32
|
+
const traversals = Array(from.length - shared).fill("..");
|
|
33
|
+
return [
|
|
34
|
+
...traversals,
|
|
35
|
+
...to.slice(shared)
|
|
36
|
+
].join("/");
|
|
37
|
+
}
|
|
38
|
+
function isOwnFrame(location) {
|
|
39
|
+
return location.startsWith(OWN_ROOT);
|
|
40
|
+
}
|
|
41
|
+
function firstExternalFrame(stack) {
|
|
42
|
+
var _ref, _locations_find;
|
|
43
|
+
const locations = stack.split("\n").filter((line)=>line.trim().startsWith("at ")).map(extractLocation).map(normalizeLocation);
|
|
44
|
+
return null != (_ref = null != (_locations_find = locations.find((location)=>!isOwnFrame(location))) ? _locations_find : locations[locations.length - 1]) ? _ref : stack;
|
|
45
|
+
}
|
|
46
|
+
function resolveCallerFile() {
|
|
47
|
+
var _stack;
|
|
48
|
+
if ("function" == typeof Error.captureStackTrace) {
|
|
49
|
+
var _captured_stack;
|
|
50
|
+
const captured = {};
|
|
51
|
+
Error.captureStackTrace(captured);
|
|
52
|
+
return stripPosition(firstExternalFrame(null != (_captured_stack = captured.stack) ? _captured_stack : ""));
|
|
53
|
+
}
|
|
54
|
+
return stripPosition(null != (_stack = new Error().stack) ? _stack : "");
|
|
55
|
+
}
|
|
56
|
+
export { directoryOf, normalizeLocation, relativize, resolveCallerFile };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function sfc32(a, b, c, d) {
|
|
2
|
+
return ()=>{
|
|
3
|
+
a |= 0;
|
|
4
|
+
b |= 0;
|
|
5
|
+
c |= 0;
|
|
6
|
+
d |= 0;
|
|
7
|
+
const t = (a + b | 0) + d | 0;
|
|
8
|
+
d = d + 1 | 0;
|
|
9
|
+
a = b ^ b >>> 9;
|
|
10
|
+
b = c + (c << 3) | 0;
|
|
11
|
+
c = c << 21 | c >>> 11;
|
|
12
|
+
c = c + t | 0;
|
|
13
|
+
return (t >>> 0) / 4294967296;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export { sfc32 };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { FabricatorError } from "../Error/index.js";
|
|
2
|
+
import { Layer, MAX_TIME } from "../Types.js";
|
|
3
|
+
import { inline } from "../Utility/Core.js";
|
|
4
|
+
import { cyrb128 } from "../Utility/Digest.js";
|
|
5
|
+
import { directoryOf, normalizeLocation, relativize, resolveCallerFile } from "./CallSite.js";
|
|
6
|
+
import { sfc32 } from "./Generator/sfc32.js";
|
|
7
|
+
function defaultAlgorithm(seed) {
|
|
8
|
+
return sfc32(...cyrb128(seed));
|
|
9
|
+
}
|
|
10
|
+
function randomSeed() {
|
|
11
|
+
return (0x100000000 * Math.random() >>> 0).toString(10);
|
|
12
|
+
}
|
|
13
|
+
function deriveClock(algorithm, seed) {
|
|
14
|
+
const stream = toStream(algorithm, JSON.stringify([
|
|
15
|
+
seed,
|
|
16
|
+
"clock"
|
|
17
|
+
]));
|
|
18
|
+
return Math.trunc((2 * stream.next() - 1) * MAX_TIME);
|
|
19
|
+
}
|
|
20
|
+
function envSeed() {
|
|
21
|
+
var _ref, _ref1;
|
|
22
|
+
const env = "object" == typeof process ? process.env : void 0;
|
|
23
|
+
return null != (_ref = null != (_ref1 = null == env ? void 0 : env["FABRICATOR_SEED"]) ? _ref1 : null == env ? void 0 : env["SEED"]) ? _ref : null == env ? void 0 : env["RANDOM_SEED"];
|
|
24
|
+
}
|
|
25
|
+
function encode(trace) {
|
|
26
|
+
return JSON.stringify([
|
|
27
|
+
trace.seed,
|
|
28
|
+
trace.clock,
|
|
29
|
+
trace.root,
|
|
30
|
+
trace.file,
|
|
31
|
+
trace.path,
|
|
32
|
+
trace.kind,
|
|
33
|
+
trace.ordinal
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
function normalizeSeed(seed) {
|
|
37
|
+
if (void 0 === seed) {
|
|
38
|
+
const fromEnv = envSeed();
|
|
39
|
+
return void 0 === fromEnv ? [] : [
|
|
40
|
+
fromEnv
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
return "string" == typeof seed ? [
|
|
44
|
+
seed
|
|
45
|
+
] : [
|
|
46
|
+
...seed
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
function Random_layer(seed) {
|
|
50
|
+
return {
|
|
51
|
+
[Layer]: seed
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function isLayered(value) {
|
|
55
|
+
return "object" == typeof value && null !== value && Layer in value;
|
|
56
|
+
}
|
|
57
|
+
function resolveAttribution(attribution) {
|
|
58
|
+
const policy = null != attribution ? attribution : {
|
|
59
|
+
kind: "call site"
|
|
60
|
+
};
|
|
61
|
+
switch(policy.kind){
|
|
62
|
+
case "none":
|
|
63
|
+
return policy;
|
|
64
|
+
case "rooted":
|
|
65
|
+
{
|
|
66
|
+
const root = normalizeLocation(policy.root);
|
|
67
|
+
if (!root.startsWith("/")) throw new FabricatorError.InvalidAttributionRootError(policy.root);
|
|
68
|
+
return toRooted(root);
|
|
69
|
+
}
|
|
70
|
+
case "call site":
|
|
71
|
+
{
|
|
72
|
+
const root = directoryOf(resolveCallerFile());
|
|
73
|
+
return toRooted(root);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function toRooted(root) {
|
|
78
|
+
return {
|
|
79
|
+
kind: "rooted",
|
|
80
|
+
root: root.endsWith("/") ? root : `${root}/`
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function toStream(algorithm, seed) {
|
|
84
|
+
const generator = algorithm(seed);
|
|
85
|
+
let iterations = 0;
|
|
86
|
+
return {
|
|
87
|
+
seed,
|
|
88
|
+
get iterations () {
|
|
89
|
+
return iterations;
|
|
90
|
+
},
|
|
91
|
+
next: ()=>{
|
|
92
|
+
iterations++;
|
|
93
|
+
return generator();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function toStreamFromTrace(algorithm, trace) {
|
|
98
|
+
return toStream(algorithm, encode(trace));
|
|
99
|
+
}
|
|
100
|
+
function toRandomSource(options) {
|
|
101
|
+
var _options_algorithm;
|
|
102
|
+
let seed = normalizeSeed(options.seed);
|
|
103
|
+
let algorithm = null != (_options_algorithm = options.algorithm) ? _options_algorithm : defaultAlgorithm;
|
|
104
|
+
let attribution = resolveAttribution(options.attribution);
|
|
105
|
+
const clock = options.clock;
|
|
106
|
+
let constructionOrdinals = new Map();
|
|
107
|
+
function nextConstructionOrdinal(file) {
|
|
108
|
+
var _constructionOrdinals_get;
|
|
109
|
+
const ordinal = null != (_constructionOrdinals_get = constructionOrdinals.get(file)) ? _constructionOrdinals_get : 0;
|
|
110
|
+
constructionOrdinals.set(file, ordinal + 1);
|
|
111
|
+
return ordinal;
|
|
112
|
+
}
|
|
113
|
+
function toRoot(kind, pins = {}) {
|
|
114
|
+
var _pins_root, _pins_clock;
|
|
115
|
+
const replaying = void 0 !== pins.root;
|
|
116
|
+
const root = null != (_pins_root = pins.root) ? _pins_root : kind;
|
|
117
|
+
const file = replaying || void 0 !== pins.file ? pins.file : resolveRootFile(kind);
|
|
118
|
+
const ordinal = inline(()=>{
|
|
119
|
+
if (replaying || void 0 !== pins.ordinal) return pins.ordinal;
|
|
120
|
+
if ("unattributed" === root) return;
|
|
121
|
+
return nextConstructionOrdinal(file);
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
seed,
|
|
125
|
+
clock: null != (_pins_clock = pins.clock) ? _pins_clock : clock,
|
|
126
|
+
root,
|
|
127
|
+
file,
|
|
128
|
+
ordinal
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function resolveRootFile(kind) {
|
|
132
|
+
if ("attributed" !== kind) return;
|
|
133
|
+
if ("none" === attribution.kind) return;
|
|
134
|
+
return relativize(attribution.root, resolveCallerFile());
|
|
135
|
+
}
|
|
136
|
+
function fork(childSeed) {
|
|
137
|
+
return toRandomSource({
|
|
138
|
+
seed: childSeed,
|
|
139
|
+
algorithm,
|
|
140
|
+
attribution,
|
|
141
|
+
clock
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
toRoot,
|
|
146
|
+
algorithm,
|
|
147
|
+
seed,
|
|
148
|
+
fork
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
export { Random_layer as layer, defaultAlgorithm, deriveClock, encode, isLayered, normalizeSeed, randomSeed, resolveAttribution, toRandomSource, toStream, toStreamFromTrace };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Adaptation, Kind, Meta } from "../Types.js";
|
|
2
|
+
import { isPlainObject, never } from "../Utility/Core.js";
|
|
3
|
+
function toSchema(value) {
|
|
4
|
+
const adaptations = value[Adaptation];
|
|
5
|
+
return adaptations ? {
|
|
6
|
+
[Kind]: value[Kind],
|
|
7
|
+
[Meta]: value[Meta],
|
|
8
|
+
[Adaptation]: adaptations
|
|
9
|
+
} : {
|
|
10
|
+
[Kind]: value[Kind],
|
|
11
|
+
[Meta]: value[Meta]
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function violatesKind(kind, value) {
|
|
15
|
+
switch(kind){
|
|
16
|
+
case "object":
|
|
17
|
+
return !isPlainObject(value);
|
|
18
|
+
case "array":
|
|
19
|
+
return !Array.isArray(value);
|
|
20
|
+
case "record":
|
|
21
|
+
return !isPlainObject(value);
|
|
22
|
+
case "tuple":
|
|
23
|
+
return !Array.isArray(value);
|
|
24
|
+
case "string":
|
|
25
|
+
return "string" != typeof value;
|
|
26
|
+
case "number":
|
|
27
|
+
return "number" != typeof value;
|
|
28
|
+
case "boolean":
|
|
29
|
+
return "boolean" != typeof value;
|
|
30
|
+
case "bigint":
|
|
31
|
+
return "bigint" != typeof value;
|
|
32
|
+
case "symbol":
|
|
33
|
+
return "symbol" != typeof value;
|
|
34
|
+
case "date":
|
|
35
|
+
return !(value instanceof Date);
|
|
36
|
+
case "undefined":
|
|
37
|
+
return void 0 !== value;
|
|
38
|
+
case "null":
|
|
39
|
+
return null !== value;
|
|
40
|
+
case "nullable":
|
|
41
|
+
return false;
|
|
42
|
+
case "nullish":
|
|
43
|
+
return false;
|
|
44
|
+
case "always":
|
|
45
|
+
return false;
|
|
46
|
+
case "opaque":
|
|
47
|
+
return false;
|
|
48
|
+
case "recursive":
|
|
49
|
+
return false;
|
|
50
|
+
case "recursive.self":
|
|
51
|
+
return false;
|
|
52
|
+
case "enum":
|
|
53
|
+
return false;
|
|
54
|
+
case "choice":
|
|
55
|
+
return false;
|
|
56
|
+
case "object.compute":
|
|
57
|
+
return false;
|
|
58
|
+
case "object.omittable":
|
|
59
|
+
return false;
|
|
60
|
+
case "object.optional":
|
|
61
|
+
return false;
|
|
62
|
+
case "undefinable":
|
|
63
|
+
return false;
|
|
64
|
+
default:
|
|
65
|
+
return never(kind);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export { toSchema, violatesKind };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as __rspack_external__Primitive_index_js_8ad84a20 from "../Primitive/index.js";
|
|
2
|
+
import { deepMerge } from "../Utility/DeepMerge.js";
|
|
3
|
+
const Registry = (registrations)=>{
|
|
4
|
+
const extend = (types)=>Registry(deepMerge(registrations, types({
|
|
5
|
+
T: registrations,
|
|
6
|
+
augment: deepMerge
|
|
7
|
+
})));
|
|
8
|
+
return {
|
|
9
|
+
...registrations,
|
|
10
|
+
extend
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
const registry = Registry({}).extend(()=>{
|
|
14
|
+
const { Primitive: _, ...builders } = __rspack_external__Primitive_index_js_8ad84a20;
|
|
15
|
+
return builders;
|
|
16
|
+
});
|
|
17
|
+
export { registry };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const Kind = Symbol.for("fabricator:kind");
|
|
2
|
+
const Meta = Symbol.for("fabricator:meta");
|
|
3
|
+
const Produces = Symbol.for("fabricator:produces");
|
|
4
|
+
const Replace = Symbol.for("fabricator:replace");
|
|
5
|
+
const Fixed = Symbol.for("fabricator:fixed");
|
|
6
|
+
const Layer = Symbol.for("fabricator:layer");
|
|
7
|
+
const Children = Symbol.for("fabricator:children");
|
|
8
|
+
const Adaptation = Symbol.for("fabricator:adaptation");
|
|
9
|
+
const Omitted = Symbol.for("fabricator:omitted");
|
|
10
|
+
const MAX_TIME = 8640000000000000;
|
|
11
|
+
export { Adaptation, Children, Fixed, Kind, Layer, MAX_TIME, Meta, Omitted, Produces, Replace };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Replace } from "../Types.js";
|
|
2
|
+
function inline(fn) {
|
|
3
|
+
return fn();
|
|
4
|
+
}
|
|
5
|
+
function never(_) {}
|
|
6
|
+
function isArray(candidate) {
|
|
7
|
+
return Array.isArray(candidate);
|
|
8
|
+
}
|
|
9
|
+
const POLLUTION_KEYS = Object.freeze(new Set([
|
|
10
|
+
"__proto__",
|
|
11
|
+
"constructor",
|
|
12
|
+
"prototype"
|
|
13
|
+
]));
|
|
14
|
+
function isPollutionKey(key) {
|
|
15
|
+
return POLLUTION_KEYS.has(key);
|
|
16
|
+
}
|
|
17
|
+
function isPlainObject(value) {
|
|
18
|
+
if ("object" != typeof value) return false;
|
|
19
|
+
if (null === value) return false;
|
|
20
|
+
const proto = Object.getPrototypeOf(value);
|
|
21
|
+
return proto === Object.prototype || null === proto;
|
|
22
|
+
}
|
|
23
|
+
function mergeableKeys(source) {
|
|
24
|
+
return Reflect.ownKeys(source).filter((key)=>{
|
|
25
|
+
if (key === Replace) return false;
|
|
26
|
+
if ("symbol" == typeof key) return true;
|
|
27
|
+
return !isPollutionKey(key);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function replace(value) {
|
|
31
|
+
return {
|
|
32
|
+
...value,
|
|
33
|
+
[Replace]: true
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export { inline, isArray, isPlainObject, isPollutionKey, mergeableKeys, never, replace };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Replace } from "../Types.js";
|
|
2
|
+
import { isPlainObject, mergeableKeys } from "./Core.js";
|
|
3
|
+
function deepMerge(a, b) {
|
|
4
|
+
const result = {};
|
|
5
|
+
if (Replace in b && true === b[Replace]) {
|
|
6
|
+
for (const key of mergeableKeys(b))result[key] = b[key];
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
for (const key of mergeableKeys(a))result[key] = a[key];
|
|
10
|
+
for (const key of mergeableKeys(b)){
|
|
11
|
+
const bValue = b[key];
|
|
12
|
+
const aValue = result[key];
|
|
13
|
+
if (isPlainObject(aValue) && isPlainObject(bValue)) result[key] = deepMerge(aValue, bValue);
|
|
14
|
+
else result[key] = bValue;
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
export { deepMerge };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
function cyrb128(str) {
|
|
2
|
+
let h1 = 1779033703;
|
|
3
|
+
let h2 = 3144134277;
|
|
4
|
+
let h3 = 1013904242;
|
|
5
|
+
let h4 = 2773480762;
|
|
6
|
+
for(let i = 0; i < str.length; i++){
|
|
7
|
+
const k = str.charCodeAt(i);
|
|
8
|
+
h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
|
|
9
|
+
h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
|
|
10
|
+
h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
|
|
11
|
+
h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
|
|
12
|
+
}
|
|
13
|
+
h1 = Math.imul(h3 ^ h1 >>> 18, 597399067);
|
|
14
|
+
h2 = Math.imul(h4 ^ h2 >>> 22, 2869860233);
|
|
15
|
+
h3 = Math.imul(h1 ^ h3 >>> 17, 951274213);
|
|
16
|
+
h4 = Math.imul(h2 ^ h4 >>> 19, 2716044179);
|
|
17
|
+
h1 ^= h2 ^ h3 ^ h4;
|
|
18
|
+
h2 ^= h1;
|
|
19
|
+
h3 ^= h1;
|
|
20
|
+
h4 ^= h1;
|
|
21
|
+
return [
|
|
22
|
+
h1 >>> 0,
|
|
23
|
+
h2 >>> 0,
|
|
24
|
+
h3 >>> 0,
|
|
25
|
+
h4 >>> 0
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
export { cyrb128 };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Replace } from "../Types.js";
|
|
2
|
+
import { mergeableKeys } from "./Core.js";
|
|
3
|
+
function shallowMerge(a, b) {
|
|
4
|
+
const result = {};
|
|
5
|
+
if (Replace in b && true === b[Replace]) {
|
|
6
|
+
for (const key of mergeableKeys(b))result[key] = b[key];
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
for (const key of mergeableKeys(a))result[key] = a[key];
|
|
10
|
+
for (const key of mergeableKeys(b))result[key] = b[key];
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
export { shallowMerge };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { instantiate, overlay, toStack } from "./Instance/Core.js";
|
|
2
|
+
function initialize(config) {
|
|
3
|
+
return instantiate(overlay({}, null != config ? config : {}), toStack()).instance;
|
|
4
|
+
}
|
|
5
|
+
export { Adaptation, Omitted } from "./Types.js";
|
|
6
|
+
export { layer } from "./Random/index.js";
|
|
7
|
+
export { FabricatorError } from "./Error/index.js";
|
|
8
|
+
export { drive } from "./Adapter/Core.js";
|
|
9
|
+
export { registry } from "./Schema/Registry.js";
|
|
10
|
+
export { effectiveDiscrete, toBound } from "./Bound.js";
|
|
11
|
+
export { initialize };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Children, Kind, Meta, Produces } from "./Types.js";
|
|
2
|
+
export { isPlainObject } from "./Utility/Core.js";
|
|
3
|
+
export { plan, resolve } from "./Enumeration/Plan.js";
|
|
4
|
+
export { defaultAlgorithm, encode, randomSeed, toRandomSource, toStream, toStreamFromTrace } from "./Random/index.js";
|
|
5
|
+
export { directoryOf, normalizeLocation, relativize } from "./Random/CallSite.js";
|