@bessemer/cornerstone 0.5.79 → 0.5.81
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/dist/object/object-diff.d.ts +12 -10
- package/dist/object/object-diff.d.ts.map +1 -1
- package/dist/object/object-diff.js +5 -0
- package/dist/object/object-diff.js.map +1 -1
- package/dist/object/object-path.d.ts +3 -2
- package/dist/object/object-path.d.ts.map +1 -1
- package/dist/object/object-path.js +6 -1
- package/dist/object/object-path.js.map +1 -1
- package/dist/object/type-path-type.d.ts +2 -1
- package/dist/object/type-path-type.d.ts.map +1 -1
- package/package.json +1 -1
@@ -1,37 +1,39 @@
|
|
1
1
|
import { ObjectPath } from '@bessemer/cornerstone/object/object-path';
|
2
|
-
import { ObjectPathType, TypePathGet } from '@bessemer/cornerstone/object/type-path-type';
|
2
|
+
import { ConstrainTypePath, ObjectPathType, TypePathGet, TypePathType } from '@bessemer/cornerstone/object/type-path-type';
|
3
|
+
import { TypePath } from '@bessemer/cornerstone/object/type-path';
|
3
4
|
export declare enum ObjectDiffType {
|
4
5
|
Add = "Add",
|
5
6
|
Remove = "Remove",
|
6
7
|
Update = "Update",
|
7
8
|
Move = "Move"
|
8
9
|
}
|
9
|
-
export type AddObjectDiff<N, T extends
|
10
|
+
export type AddObjectDiff<N, T extends TypePathType> = {
|
10
11
|
type: ObjectDiffType.Add;
|
11
12
|
path: ObjectPath<T>;
|
12
13
|
value: TypePathGet<T, N>;
|
13
14
|
};
|
14
|
-
export type RemoveObjectDiff<N, T extends
|
15
|
+
export type RemoveObjectDiff<N, T extends TypePathType> = {
|
15
16
|
type: ObjectDiffType.Remove;
|
16
17
|
path: ObjectPath<T>;
|
17
18
|
originalValue: TypePathGet<T, N>;
|
18
19
|
};
|
19
|
-
export type UpdateObjectDiff<N, T extends
|
20
|
+
export type UpdateObjectDiff<N, T extends TypePathType> = {
|
20
21
|
type: ObjectDiffType.Update;
|
21
22
|
path: ObjectPath<T>;
|
22
23
|
value: TypePathGet<T, N>;
|
23
24
|
originalValue: TypePathGet<T, N>;
|
24
25
|
};
|
25
|
-
export type MoveObjectDiff<N, T extends
|
26
|
+
export type MoveObjectDiff<N, T extends TypePathType> = {
|
26
27
|
type: ObjectDiffType.Move;
|
27
28
|
path: ObjectPath<T>;
|
28
29
|
value: TypePathGet<T, N>;
|
29
30
|
position: number;
|
30
31
|
originalPosition: number;
|
31
32
|
};
|
32
|
-
export type ObjectDiffEntry<N, T extends
|
33
|
-
export type ObjectDiff<N> = Array<ObjectDiffEntry<N
|
34
|
-
export declare const add: <N, T extends ObjectPathType>(path: ObjectPath<T
|
35
|
-
export declare const remove: <N, T extends ObjectPathType>(path: ObjectPath<T
|
36
|
-
export declare const update: <N, T extends ObjectPathType>(path: ObjectPath<T
|
33
|
+
export type ObjectDiffEntry<N, T extends TypePathType = TypePathType> = AddObjectDiff<N, T> | RemoveObjectDiff<N, T> | UpdateObjectDiff<N, T> | MoveObjectDiff<N, T>;
|
34
|
+
export type ObjectDiff<N> = Array<ObjectDiffEntry<N>>;
|
35
|
+
export declare const add: <N, T extends ObjectPathType = ObjectPathType>(path: ObjectPath<ConstrainTypePath<T, N>>, value: TypePathGet<T, N>) => AddObjectDiff<N, T>;
|
36
|
+
export declare const remove: <N, T extends ObjectPathType = ObjectPathType>(path: ObjectPath<ConstrainTypePath<T, N>>, originalValue: TypePathGet<T, N>) => RemoveObjectDiff<N, T>;
|
37
|
+
export declare const update: <N, T extends ObjectPathType = ObjectPathType>(path: ObjectPath<ConstrainTypePath<T, N>>, value: TypePathGet<T, N>, originalValue: TypePathGet<T, N>) => UpdateObjectDiff<N, T>;
|
38
|
+
export declare const matchesPath: <N, T extends TypePathType>(diff: ObjectDiffEntry<N>, path: TypePath<T>) => diff is ObjectDiffEntry<N, T>;
|
37
39
|
//# sourceMappingURL=object-diff.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"object-diff.d.ts","sourceRoot":"","sources":["../../src/object/object-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;
|
1
|
+
{"version":3,"file":"object-diff.d.ts","sourceRoot":"","sources":["../../src/object/object-diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAA;AAC1H,OAAO,EAA8B,QAAQ,EAAE,MAAM,wCAAwC,CAAA;AAE7F,oBAAY,cAAc;IACxB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,IAAI;IACrD,IAAI,EAAE,cAAc,CAAC,GAAG,CAAA;IACxB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,IAAI;IACxD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAA;IAC3B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACnB,aAAa,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,IAAI;IACxD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAA;IAC3B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,aAAa,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,IAAI;IACtD,IAAI,EAAE,cAAc,CAAC,IAAI,CAAA;IACzB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACnB,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,YAAY,GAAG,YAAY,IAChE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GACtB,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GACtB,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAExB,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAErD,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,EAC9D,MAAM,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACzC,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KACvB,aAAa,CAAC,CAAC,EAAE,CAAC,CAEpB,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,EACjE,MAAM,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACzC,eAAe,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAC/B,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAEvB,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,EACjE,MAAM,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACzC,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EACxB,eAAe,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAC/B,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAEvB,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,SAAS,YAAY,EAAE,MAAM,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,KAAG,IAAI,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAEhI,CAAA"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
// src/object/object-diff.ts
|
2
|
+
import { matches as typePathMatches } from "@bessemer/cornerstone/object/type-path";
|
2
3
|
var ObjectDiffType = /* @__PURE__ */ ((ObjectDiffType2) => {
|
3
4
|
ObjectDiffType2["Add"] = "Add";
|
4
5
|
ObjectDiffType2["Remove"] = "Remove";
|
@@ -15,9 +16,13 @@ var remove = (path, originalValue) => {
|
|
15
16
|
var update = (path, value, originalValue) => {
|
16
17
|
return { type: "Update" /* Update */, path, value, originalValue };
|
17
18
|
};
|
19
|
+
var matchesPath = (diff, path) => {
|
20
|
+
return typePathMatches(diff.path, path);
|
21
|
+
};
|
18
22
|
export {
|
19
23
|
ObjectDiffType,
|
20
24
|
add,
|
25
|
+
matchesPath,
|
21
26
|
remove,
|
22
27
|
update
|
23
28
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/object/object-diff.ts"],"sourcesContent":["import { ObjectPath } from '@bessemer/cornerstone/object/object-path'\nimport { ObjectPathType, TypePathGet } from '@bessemer/cornerstone/object/type-path-type'\n\nexport enum ObjectDiffType {\n Add = 'Add',\n Remove = 'Remove',\n Update = 'Update',\n Move = 'Move',\n}\n\nexport type AddObjectDiff<N, T extends
|
1
|
+
{"version":3,"sources":["../../src/object/object-diff.ts"],"sourcesContent":["import { ObjectPath } from '@bessemer/cornerstone/object/object-path'\nimport { ConstrainTypePath, ObjectPathType, TypePathGet, TypePathType } from '@bessemer/cornerstone/object/type-path-type'\nimport { matches as typePathMatches, TypePath } from '@bessemer/cornerstone/object/type-path'\n\nexport enum ObjectDiffType {\n Add = 'Add',\n Remove = 'Remove',\n Update = 'Update',\n Move = 'Move',\n}\n\nexport type AddObjectDiff<N, T extends TypePathType> = {\n type: ObjectDiffType.Add\n path: ObjectPath<T>\n value: TypePathGet<T, N>\n}\n\nexport type RemoveObjectDiff<N, T extends TypePathType> = {\n type: ObjectDiffType.Remove\n path: ObjectPath<T>\n originalValue: TypePathGet<T, N>\n}\n\nexport type UpdateObjectDiff<N, T extends TypePathType> = {\n type: ObjectDiffType.Update\n path: ObjectPath<T>\n value: TypePathGet<T, N>\n originalValue: TypePathGet<T, N>\n}\n\nexport type MoveObjectDiff<N, T extends TypePathType> = {\n type: ObjectDiffType.Move\n path: ObjectPath<T>\n value: TypePathGet<T, N>\n position: number\n originalPosition: number\n}\n\nexport type ObjectDiffEntry<N, T extends TypePathType = TypePathType> =\n | AddObjectDiff<N, T>\n | RemoveObjectDiff<N, T>\n | UpdateObjectDiff<N, T>\n | MoveObjectDiff<N, T>\n\nexport type ObjectDiff<N> = Array<ObjectDiffEntry<N>>\n\nexport const add = <N, T extends ObjectPathType = ObjectPathType>(\n path: ObjectPath<ConstrainTypePath<T, N>>,\n value: TypePathGet<T, N>\n): AddObjectDiff<N, T> => {\n return { type: ObjectDiffType.Add, path, value }\n}\n\nexport const remove = <N, T extends ObjectPathType = ObjectPathType>(\n path: ObjectPath<ConstrainTypePath<T, N>>,\n originalValue: TypePathGet<T, N>\n): RemoveObjectDiff<N, T> => {\n return { type: ObjectDiffType.Remove, path, originalValue }\n}\n\nexport const update = <N, T extends ObjectPathType = ObjectPathType>(\n path: ObjectPath<ConstrainTypePath<T, N>>,\n value: TypePathGet<T, N>,\n originalValue: TypePathGet<T, N>\n): UpdateObjectDiff<N, T> => {\n return { type: ObjectDiffType.Update, path, value, originalValue }\n}\n\nexport const matchesPath = <N, T extends TypePathType>(diff: ObjectDiffEntry<N>, path: TypePath<T>): diff is ObjectDiffEntry<N, T> => {\n return typePathMatches(diff.path, path)\n}\n"],"mappings":";AAEA,SAAS,WAAW,uBAAiC;AAE9C,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,UAAO;AAJG,SAAAA;AAAA,GAAA;AA0CL,IAAM,MAAM,CACjB,MACA,UACwB;AACxB,SAAO,EAAE,MAAM,iBAAoB,MAAM,MAAM;AACjD;AAEO,IAAM,SAAS,CACpB,MACA,kBAC2B;AAC3B,SAAO,EAAE,MAAM,uBAAuB,MAAM,cAAc;AAC5D;AAEO,IAAM,SAAS,CACpB,MACA,OACA,kBAC2B;AAC3B,SAAO,EAAE,MAAM,uBAAuB,MAAM,OAAO,cAAc;AACnE;AAEO,IAAM,cAAc,CAA4B,MAA0B,SAAqD;AACpI,SAAO,gBAAgB,KAAK,MAAM,IAAI;AACxC;","names":["ObjectDiffType"]}
|
@@ -2,12 +2,13 @@ import Zod from 'zod';
|
|
2
2
|
import { NominalType } from '@bessemer/cornerstone/types';
|
3
3
|
import { InferObjectPath, ObjectPathConcreteType, ObjectPathType, ParseObjectPath, TypePathGet, TypePathType } from '@bessemer/cornerstone/object/type-path-type';
|
4
4
|
import { TypePath } from '@bessemer/cornerstone/object/type-path';
|
5
|
-
export type ObjectPath<T extends
|
5
|
+
export type ObjectPath<T extends TypePathType = TypePathType> = NominalType<ObjectPathConcreteType, ['TypePath', T]>;
|
6
6
|
export declare const of: <T extends ObjectPathConcreteType>(value: T) => ObjectPath<InferObjectPath<T>>;
|
7
7
|
export declare const fromString: <T extends string>(path: T) => ObjectPath<ParseObjectPath<T>>;
|
8
8
|
export declare const Schema: Zod.ZodPipe<Zod.ZodUnion<readonly [Zod.ZodArray<Zod.ZodString>, Zod.ZodString]>, Zod.ZodTransform<ObjectPath<ObjectPathType>, string | string[]>>;
|
9
9
|
export declare const getValue: <T extends ObjectPathType, N>(path: ObjectPath<T>, object: N) => TypePathGet<T, N>;
|
10
10
|
export declare const applyValue: <T extends ObjectPathType, N>(path: ObjectPath<T>, object: N, valueToApply: TypePathGet<T, N>) => N;
|
11
11
|
export declare const applyAnyValue: (path: ObjectPath, object: unknown, valueToApply: unknown) => unknown;
|
12
|
-
export declare const
|
12
|
+
export declare const matches: <IntersectingPath extends TypePathType>(targetPath: ObjectPath, matchingPath: TypePath<IntersectingPath>) => targetPath is ObjectPath<IntersectingPath>;
|
13
|
+
export declare const intersect: <TargetPath extends TypePathType, IntersectingPath extends TypePathType>(targetPath: ObjectPath<TargetPath>, intersectingPath: TypePath<IntersectingPath>) => ObjectPath;
|
13
14
|
//# sourceMappingURL=object-path.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"object-path.d.ts","sourceRoot":"","sources":["../../src/object/object-path.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACb,MAAM,6CAA6C,CAAA;AACpD,OAAO,
|
1
|
+
{"version":3,"file":"object-path.d.ts","sourceRoot":"","sources":["../../src/object/object-path.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACb,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAKL,QAAQ,EACT,MAAM,wCAAwC,CAAA;AAM/C,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,WAAW,CAAC,sBAAsB,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;AAEpH,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,sBAAsB,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAE5F,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,EAAE,MAAM,CAAC,KAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAanF,CAAA;AAED,eAAO,MAAM,MAAM,mJAMjB,CAAA;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAEtG,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,cAAc,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,cAAc,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAEzH,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,UAAU,EAAE,QAAQ,OAAO,EAAE,cAAc,OAAO,KAAG,OAkBxF,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,gBAAgB,SAAS,YAAY,EAC3D,YAAY,UAAU,EACtB,cAAc,QAAQ,CAAC,gBAAgB,CAAC,KACvC,UAAU,IAAI,UAAU,CAAC,gBAAgB,CAE3C,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,SAAS,YAAY,EAAE,gBAAgB,SAAS,YAAY,EAC9F,YAAY,UAAU,CAAC,UAAU,CAAC,EAClC,kBAAkB,QAAQ,CAAC,gBAAgB,CAAC,KAC3C,UAEF,CAAA"}
|
@@ -3,7 +3,8 @@ import Zod from "zod";
|
|
3
3
|
import {
|
4
4
|
fromString as typePathFromString,
|
5
5
|
getValue as typePathGetValue,
|
6
|
-
intersect as typePathIntersect
|
6
|
+
intersect as typePathIntersect,
|
7
|
+
matches as typePathMatches
|
7
8
|
} from "@bessemer/cornerstone/object/type-path";
|
8
9
|
import { isEmpty, only } from "@bessemer/cornerstone/array";
|
9
10
|
import { assert } from "@bessemer/cornerstone/assertion";
|
@@ -54,6 +55,9 @@ var applyAnyValue = (path, object, valueToApply) => {
|
|
54
55
|
}
|
55
56
|
});
|
56
57
|
};
|
58
|
+
var matches = (targetPath, matchingPath) => {
|
59
|
+
return typePathMatches(targetPath, matchingPath);
|
60
|
+
};
|
57
61
|
var intersect = (targetPath, intersectingPath) => {
|
58
62
|
return typePathIntersect(targetPath, intersectingPath);
|
59
63
|
};
|
@@ -64,6 +68,7 @@ export {
|
|
64
68
|
fromString,
|
65
69
|
getValue,
|
66
70
|
intersect,
|
71
|
+
matches,
|
67
72
|
of
|
68
73
|
};
|
69
74
|
//# sourceMappingURL=object-path.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/object/object-path.ts"],"sourcesContent":["import Zod from 'zod'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport {\n InferObjectPath,\n ObjectPathConcreteType,\n ObjectPathType,\n ParseObjectPath,\n TypePathGet,\n TypePathType,\n} from '@bessemer/cornerstone/object/type-path-type'\nimport {\n fromString as typePathFromString,\n getValue as typePathGetValue,\n intersect as typePathIntersect,\n TypePath,\n} from '@bessemer/cornerstone/object/type-path'\nimport { isEmpty, only } from '@bessemer/cornerstone/array'\nimport { assert } from '@bessemer/cornerstone/assertion'\nimport { produce } from 'immer'\nimport { isObject } from '@bessemer/cornerstone/object'\n\nexport type ObjectPath<T extends
|
1
|
+
{"version":3,"sources":["../../src/object/object-path.ts"],"sourcesContent":["import Zod from 'zod'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport {\n InferObjectPath,\n ObjectPathConcreteType,\n ObjectPathType,\n ParseObjectPath,\n TypePathGet,\n TypePathType,\n} from '@bessemer/cornerstone/object/type-path-type'\nimport {\n fromString as typePathFromString,\n getValue as typePathGetValue,\n intersect as typePathIntersect,\n matches as typePathMatches,\n TypePath,\n} from '@bessemer/cornerstone/object/type-path'\nimport { isEmpty, only } from '@bessemer/cornerstone/array'\nimport { assert } from '@bessemer/cornerstone/assertion'\nimport { produce } from 'immer'\nimport { isObject } from '@bessemer/cornerstone/object'\n\nexport type ObjectPath<T extends TypePathType = TypePathType> = NominalType<ObjectPathConcreteType, ['TypePath', T]>\n\nexport const of = <T extends ObjectPathConcreteType>(value: T): ObjectPath<InferObjectPath<T>> => {\n return value as ObjectPath<InferObjectPath<T>>\n}\n\nexport const fromString = <T extends string>(path: T): ObjectPath<ParseObjectPath<T>> => {\n const typePath = typePathFromString(path)\n\n typePath.forEach((it) => {\n assert(it !== '*', () => 'ObjectPaths do not allow for wildcard selectors')\n if (Array.isArray(it)) {\n assert(it.length === 1, () => 'ObjectPaths do not allow for multiple index selectors or array slices')\n const value = only<string | number>(it)\n assert(value !== '*', () => 'ObjectPaths do not allow for wildcard selectors')\n }\n })\n\n return typePath as ObjectPath<ParseObjectPath<T>>\n}\n\nexport const Schema = Zod.union([Zod.array(Zod.string()), Zod.string()]).transform((it) => {\n if (Array.isArray(it)) {\n return of(it)\n } else {\n return fromString(it)\n }\n})\n\nexport const getValue = <T extends ObjectPathType, N>(path: ObjectPath<T>, object: N): TypePathGet<T, N> => {\n return typePathGetValue(path, object)\n}\n\nexport const applyValue = <T extends ObjectPathType, N>(path: ObjectPath<T>, object: N, valueToApply: TypePathGet<T, N>): N => {\n return applyAnyValue(path, object, valueToApply) as N\n}\n\nexport const applyAnyValue = (path: ObjectPath, object: unknown, valueToApply: unknown): unknown => {\n if (isEmpty(path)) {\n return valueToApply\n }\n\n return produce(object, (draft) => {\n const rest = path.slice(0, -1)\n const last = path[path.length - 1]!\n const parent = getValue(of(rest), draft) as any\n\n assert(isObject(parent) || Array.isArray(parent), () => `Unable to apply value: ${valueToApply} at ObjectPath: ${path} against object: ${object}`)\n if (Array.isArray(last)) {\n const index = only(last)\n parent[index] = valueToApply\n } else {\n parent[last] = valueToApply\n }\n })\n}\n\nexport const matches = <IntersectingPath extends TypePathType>(\n targetPath: ObjectPath,\n matchingPath: TypePath<IntersectingPath>\n): targetPath is ObjectPath<IntersectingPath> => {\n return typePathMatches(targetPath, matchingPath)\n}\n\nexport const intersect = <TargetPath extends TypePathType, IntersectingPath extends TypePathType>(\n targetPath: ObjectPath<TargetPath>,\n intersectingPath: TypePath<IntersectingPath>\n): ObjectPath => {\n return typePathIntersect(targetPath, intersectingPath) as ObjectPath\n}\n"],"mappings":";AAAA,OAAO,SAAS;AAUhB;AAAA,EACE,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,OAEN;AACP,SAAS,SAAS,YAAY;AAC9B,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAIlB,IAAM,KAAK,CAAmC,UAA6C;AAChG,SAAO;AACT;AAEO,IAAM,aAAa,CAAmB,SAA4C;AACvF,QAAM,WAAW,mBAAmB,IAAI;AAExC,WAAS,QAAQ,CAAC,OAAO;AACvB,WAAO,OAAO,KAAK,MAAM,iDAAiD;AAC1E,QAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,aAAO,GAAG,WAAW,GAAG,MAAM,uEAAuE;AACrG,YAAM,QAAQ,KAAsB,EAAE;AACtC,aAAO,UAAU,KAAK,MAAM,iDAAiD;AAAA,IAC/E;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEO,IAAM,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO;AACzF,MAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,WAAO,GAAG,EAAE;AAAA,EACd,OAAO;AACL,WAAO,WAAW,EAAE;AAAA,EACtB;AACF,CAAC;AAEM,IAAM,WAAW,CAA8B,MAAqB,WAAiC;AAC1G,SAAO,iBAAiB,MAAM,MAAM;AACtC;AAEO,IAAM,aAAa,CAA8B,MAAqB,QAAW,iBAAuC;AAC7H,SAAO,cAAc,MAAM,QAAQ,YAAY;AACjD;AAEO,IAAM,gBAAgB,CAAC,MAAkB,QAAiB,iBAAmC;AAClG,MAAI,QAAQ,IAAI,GAAG;AACjB,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,QAAQ,CAAC,UAAU;AAChC,UAAM,OAAO,KAAK,MAAM,GAAG,EAAE;AAC7B,UAAM,OAAO,KAAK,KAAK,SAAS,CAAC;AACjC,UAAM,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK;AAEvC,WAAO,SAAS,MAAM,KAAK,MAAM,QAAQ,MAAM,GAAG,MAAM,0BAA0B,YAAY,mBAAmB,IAAI,oBAAoB,MAAM,EAAE;AACjJ,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,YAAM,QAAQ,KAAK,IAAI;AACvB,aAAO,KAAK,IAAI;AAAA,IAClB,OAAO;AACL,aAAO,IAAI,IAAI;AAAA,IACjB;AAAA,EACF,CAAC;AACH;AAEO,IAAM,UAAU,CACrB,YACA,iBAC+C;AAC/C,SAAO,gBAAgB,YAAY,YAAY;AACjD;AAEO,IAAM,YAAY,CACvB,YACA,qBACe;AACf,SAAO,kBAAkB,YAAY,gBAAgB;AACvD;","names":[]}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { Arrayable } from 'type-fest';
|
2
2
|
export type TypePathParse<TPath extends string, TValue extends any> = TypePathGet<ParseTypePath<TPath>, TValue>;
|
3
|
+
export type ConstrainTypePath<TPath extends TypePathType, TValue> = [TypePathGet<TPath, TValue>] extends [never] ? never : TPath;
|
4
|
+
export type TypePathGet<TSelectors extends TypePathType, TValue> = TSelectors['length'] extends 0 ? TValue : TSelectors extends [infer TFirst, ...infer TRest] ? TFirst extends AnyTypePathSelectorType | AnyTypePathSelectorType[] ? TRest extends TypePathType ? TypePathGet<TRest, ExtractSelection<TFirst, TValue>> : ExtractSelection<TFirst, TValue> : [] : [];
|
3
5
|
export type NameSelector = string;
|
4
6
|
export type IndexSelector = Array<number>;
|
5
7
|
export type WildcardSelector = '*';
|
@@ -51,7 +53,6 @@ type ExtractRecordSelection<TSelector extends AnyTypePathSelectorType, TValue ex
|
|
51
53
|
type ExtractArraySelection<TSelector extends AnyTypePathSelectorType, TValue extends AnyArray> = TSelector extends AnyWildcardSelectorType ? TValue : TSelector extends IndexSelectorType<infer TIndex> ? PickArray<TIndex, TValue> : TSelector extends ArraySliceSelectorType<infer TStart, infer TEnd> ? Slice<TValue, OrDefault<TStart, 0>, OrDefault<TEnd, TValue['length']>> : TSelector extends NameSelectorType<infer TKey> ? PickArrayField<TValue, TKey> : TSelector extends WildcardSelectorType ? TValue : [];
|
52
54
|
type ExtractMultipleArraySelections<TSelectors extends AnyTypePathSelectorType[], TValue extends AnyArray> = TSelectors['length'] extends 0 ? [] : TSelectors extends [infer TFirst, ...infer TRest] ? TFirst extends AnyTypePathSelectorType ? TRest extends AnyTypePathSelectorType[] ? [ExtractArraySelection<TFirst, TValue>, ...ExtractMultipleArraySelections<TRest, TValue>] : ExtractArraySelection<TFirst, TValue> : [] : [];
|
53
55
|
type ExtractSelection<TSelector extends AnyTypePathSelectorType | AnyTypePathSelectorType[], TValue> = TValue extends any ? TValue extends undefined ? undefined : TValue extends null ? undefined : TValue extends AnyArray ? TSelector extends AnyTypePathSelectorType[] ? TSelector['length'] extends 1 ? ExtractArraySelection<TSelector[0], Extract<TValue, AnyArray>> : ExtractMultipleArraySelections<TSelector, Extract<TValue, AnyArray>> : TSelector extends AnyTypePathSelectorType ? ExtractArraySelection<TSelector, Extract<TValue, AnyArray>> : never : TValue extends AnyRecord ? TSelector extends AnyTypePathSelectorType ? ExtractRecordSelection<TSelector, Extract<TValue, AnyRecord>> : never : never : never;
|
54
|
-
export type TypePathGet<TSelectors extends TypePathType, TValue> = TSelectors['length'] extends 0 ? TValue : TSelectors extends [infer TFirst, ...infer TRest] ? TFirst extends AnyTypePathSelectorType | AnyTypePathSelectorType[] ? TRest extends TypePathType ? TypePathGet<TRest, ExtractSelection<TFirst, TValue>> : ExtractSelection<TFirst, TValue> : [] : [];
|
55
56
|
type AnyRecord = Record<PropertyKey, any>;
|
56
57
|
type AnyArray = any[];
|
57
58
|
type StripWhitespace<T extends string> = T extends ` ${infer TRest}` ? StripWhitespace<TRest> : T extends `${infer TRest} ` ? StripWhitespace<TRest> : T;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"type-path-type.d.ts","sourceRoot":"","sources":["../../src/object/type-path-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;
|
1
|
+
{"version":3,"file":"type-path-type.d.ts","sourceRoot":"","sources":["../../src/object/type-path-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;AAC/G,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,YAAY,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAA;AAChI,MAAM,MAAM,WAAW,CAAC,UAAU,SAAS,YAAY,EAAE,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC7F,MAAM,GACN,UAAU,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GACjD,MAAM,SAAS,uBAAuB,GAAG,uBAAuB,EAAE,GAChE,KAAK,SAAS,YAAY,GACxB,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACpD,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,EAAE,GACJ,EAAE,CAAA;AAGN,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAClC,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,CAAC,CAAA;AAEzC,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,aAAa,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,qBAAqB,CAAA;AAC5F,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAC9D,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAE1D,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS,MAAM;IACnD,IAAI,EAAE,cAAc,CAAA;IACpB,GAAG,EAAE,IAAI,CAAA;CACV;AACD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;CAAG;AACxE,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,MAAM;IACtD,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;CACd;AACD,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB,CAAC,MAAM,CAAC;CAAG;AAC1E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAA;CACzB;AACD,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;CAAG;AACxE,MAAM,WAAW,sBAAsB,CACrC,MAAM,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACrC,IAAI,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,EACnC,KAAK,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK;IAEpC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,IAAI,CAAA;IACT,IAAI,EAAE,KAAK,CAAA;CACZ;AACD,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAAG;AAEtF,KAAK,yBAAyB,GAAG,oBAAoB,GAAG,mBAAmB,CAAA;AAC3E,KAAK,uBAAuB,GAAG,yBAAyB,GAAG,oBAAoB,GAAG,uBAAuB,CAAA;AAEzG,KAAK,oBAAoB,CAAC,MAAM,SAAS,MAAM,IAC7C,MAAM,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,IAAI,MAAM,IAAI,SAAS,MAAM,IAAI,MAAM,KAAK,SAAS,MAAM,EAAE,GACtG,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAC3C,MAAM,SAAS,IAAI,MAAM,IAAI,SAAS,MAAM,IAAI,MAAM,KAAK,SAAS,MAAM,EAAE,GAC5E,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAC1C,MAAM,SAAS,KAAK,MAAM,KAAK,SAAS,MAAM,EAAE,GAChD,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAC3C,MAAM,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,GAC5E,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,GAC3C,MAAM,SAAS,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,GAC9C,sBAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAC1C,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,EAAE,GAClD,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GACpC,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,EAAE,GAClD,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GACpC,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,EAAE,GACpC,oBAAoB,GACpB,MAAM,SAAS,GAAG,MAAM,MAAM,SAAS,MAAM,EAAE,GAC/C,iBAAiB,CAAC,MAAM,CAAC,GACzB,KAAK,CAAA;AAEX,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,GACvE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,GAChE,CAAC,SAAS,GAAG,MAAM,MAAM,EAAE,GAC3B,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,GAC9B,EAAE,CAAA;AAEN,KAAK,cAAc,CAAC,UAAU,SAAS,MAAM,IAAI,UAAU,SAAS,GAAG,GACnE,CAAC,oBAAoB,CAAC,GACtB,UAAU,SAAS,IAAI,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,GACpD,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,GAC1D,UAAU,SAAS,IAAI,MAAM,IAAI,IAAI,MAAM,KAAK,EAAE,GAClD,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,GACzD,UAAU,SAAS,IAAI,MAAM,IAAI,EAAE,GACnC,cAAc,CAAC,IAAI,CAAC,GACpB,UAAU,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,KAAK,EAAE,GACjD,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,GACzD,UAAU,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,GACjE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,GAClF,UAAU,SAAS,EAAE,GACrB,EAAE,GACF,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAA;AAElC,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAA;AAEvE,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GACxD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,yBAAyB,GAClD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,GAC3B,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,yBAAyB,EAAE,GAC/C,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GACtB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK,GACP,KAAK,GACP,KAAK;CACV,GACD,KAAK,CAAA;AAET,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,MAAM,IAAI,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;AAEpG,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,CAAA;AACxE,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,oBAAoB,IAAI,cAAc,CAAA;AAChF,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,oBAAoB,IAAI,YAAY,CAAA;AAE5E,KAAK,sBAAsB,CAAC,SAAS,SAAS,uBAAuB,EAAE,MAAM,SAAS,SAAS,IAAI,SAAS,SAAS,uBAAuB,GACxI,KAAK,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,GAC3B,SAAS,SAAS,gBAAgB,CAAC,MAAM,IAAI,CAAC,GAC9C,IAAI,SAAS,MAAM,MAAM,GACvB,MAAM,CAAC,IAAI,CAAC,GACZ,KAAK,GACP,KAAK,CAAA;AAET,KAAK,qBAAqB,CAAC,SAAS,SAAS,uBAAuB,EAAE,MAAM,SAAS,QAAQ,IAAI,SAAS,SAAS,uBAAuB,GACtI,MAAM,GACN,SAAS,SAAS,iBAAiB,CAAC,MAAM,MAAM,CAAC,GACjD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GACzB,SAAS,SAAS,sBAAsB,CAAC,MAAM,MAAM,EAAE,MAAM,IAAI,CAAC,GAClE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GACtE,SAAS,SAAS,gBAAgB,CAAC,MAAM,IAAI,CAAC,GAC9C,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,GAC5B,SAAS,SAAS,oBAAoB,GACtC,MAAM,GACN,EAAE,CAAA;AAEN,KAAK,8BAA8B,CAAC,UAAU,SAAS,uBAAuB,EAAE,EAAE,MAAM,SAAS,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,GACvI,EAAE,GACF,UAAU,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GACjD,MAAM,SAAS,uBAAuB,GACpC,KAAK,SAAS,uBAAuB,EAAE,GACrC,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACzF,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,EAAE,GACJ,EAAE,CAAA;AAEN,KAAK,gBAAgB,CAAC,SAAS,SAAS,uBAAuB,GAAG,uBAAuB,EAAE,EAAE,MAAM,IAAI,MAAM,SAAS,GAAG,GACrH,MAAM,SAAS,SAAS,GACtB,SAAS,GACT,MAAM,SAAS,IAAI,GACnB,SAAS,GACT,MAAM,SAAS,QAAQ,GACvB,SAAS,SAAS,uBAAuB,EAAE,GACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC3B,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAC9D,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GACtE,SAAS,SAAS,uBAAuB,GACzC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAC3D,KAAK,GACP,MAAM,SAAS,SAAS,GACxB,SAAS,SAAS,uBAAuB,GACvC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,GAC7D,KAAK,GACP,KAAK,GACP,KAAK,CAAA;AAET,KAAK,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;AACzC,KAAK,QAAQ,GAAG,GAAG,EAAE,CAAA;AACrB,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,KAAK,EAAE,GAChE,eAAe,CAAC,KAAK,CAAC,GACtB,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,GAC3B,eAAe,CAAC,KAAK,CAAC,GACtB,CAAC,CAAA;AACL,KAAK,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,IAAI,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;AACxH,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,EAAE,SAAS,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5F,KAAK,SAAS,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,SAAS,GAAG,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GACpF,KAAK,GACL,MAAM,SAAS,CAAC,GAAG,MAAM,KAAK,EAAE,MAAM,KAAK,CAAC,GAC5C,MAAM,SAAS,KAAK,CAAC,QAAQ,CAAC,GAC5B,KAAK,GACL,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAC1B,MAAM,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC7B,CAAC,GAAG,SAAS,GACb,KAAK,CAAA;AAET,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAEpI,KAAK,QAAQ,CAAC,GAAG,SAAS,OAAO,EAAE,EAAE,CAAC,SAAS,MAAM,EAAE,IAAI,SAAS,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAC1H,IAAI,GACJ,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpD,KAAK,KAAK,CAAC,GAAG,SAAS,OAAO,EAAE,EAAE,KAAK,SAAS,MAAM,GAAG,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS;IAC5I,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,GAAG,MAAM,IAAI;CACd,GACG,IAAI,GACJ,EAAE,CAAA;AAEN,KAAK,cAAc,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,GACtG,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAC7D,IAAI,SAAS,EAAE,GACf,EAAE,GACF,IAAI,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC3B,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,GAC3E,EAAE,CAAA;AAEN,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA"}
|