@e280/strata 0.0.0-3 → 0.0.0-5
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/package.json +2 -2
- package/s/parts/chronstrata.ts +4 -4
- package/s/parts/strata.ts +6 -4
- package/s/parts/substrata.ts +11 -6
- package/s/parts/types.ts +2 -2
- package/s/parts/utils/process-options.ts +1 -1
- package/x/parts/chronstrata.d.ts +4 -4
- package/x/parts/strata.d.ts +3 -3
- package/x/parts/strata.js +4 -2
- package/x/parts/strata.js.map +1 -1
- package/x/parts/substrata.d.ts +4 -4
- package/x/parts/substrata.js +6 -2
- package/x/parts/substrata.js.map +1 -1
- package/x/parts/types.d.ts +2 -2
- package/x/parts/utils/process-options.js +1 -1
- package/x/parts/utils/process-options.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e280/strata",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-5",
|
|
4
4
|
"description": "state management",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Chase Moskal <chasemoskal@gmail.com>",
|
|
@@ -41,6 +41,6 @@
|
|
|
41
41
|
"url": "https://github.com/e280/strata/issues"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@e280/stz": "^0.0.0-
|
|
44
|
+
"@e280/stz": "^0.0.0-27"
|
|
45
45
|
}
|
|
46
46
|
}
|
package/s/parts/chronstrata.ts
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import {Substrata} from "./substrata.js"
|
|
3
3
|
import {Chronicle, Mutator, Options, Selector, Stratum, Substate} from "./types.js"
|
|
4
4
|
|
|
5
|
-
export class Chronstrata<
|
|
6
|
-
#substrata: Substrata<
|
|
5
|
+
export class Chronstrata<S extends Substate, ParentState extends Substate = any> implements Stratum<S> {
|
|
6
|
+
#substrata: Substrata<Chronicle<S>, ParentState>
|
|
7
7
|
|
|
8
8
|
constructor(
|
|
9
9
|
public limit: number,
|
|
10
10
|
public parent: Stratum<ParentState>,
|
|
11
|
-
public selector: Selector<
|
|
11
|
+
public selector: Selector<Chronicle<S>, ParentState>,
|
|
12
12
|
public options: Options,
|
|
13
13
|
) {
|
|
14
14
|
this.#substrata = parent.substrata(selector)
|
|
@@ -77,7 +77,7 @@ export class Chronstrata<ParentState extends Substate, S extends Substate> imple
|
|
|
77
77
|
})
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
80
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S> {
|
|
81
81
|
return new Substrata(this, selector, this.options)
|
|
82
82
|
}
|
|
83
83
|
}
|
package/s/parts/strata.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
import {debounce, deep, sub} from "@e280/stz"
|
|
2
|
+
import {debounce, deep, sub, tracker} from "@e280/stz"
|
|
3
3
|
|
|
4
|
-
import {strataSetup} from "./utils/setup.js"
|
|
5
4
|
import {Substrata} from "./substrata.js"
|
|
5
|
+
import {strataSetup} from "./utils/setup.js"
|
|
6
6
|
import {Chronstrata} from "./chronstrata.js"
|
|
7
7
|
import {processOptions} from "./utils/process-options.js"
|
|
8
8
|
import {Chronicle, Mutator, Options, Selector, State, Stratum, Substate} from "./types.js"
|
|
@@ -29,6 +29,7 @@ export class Strata<S extends State> implements Stratum<S> {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
get state() {
|
|
32
|
+
tracker.see(this)
|
|
32
33
|
return this.#immutable
|
|
33
34
|
}
|
|
34
35
|
|
|
@@ -51,13 +52,13 @@ export class Strata<S extends State> implements Stratum<S> {
|
|
|
51
52
|
await this.#dispatchMutation()
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
55
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S> {
|
|
55
56
|
return new Substrata(this, selector, this.options)
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
chronstrata<Sub extends Substate>(
|
|
59
60
|
limit: number,
|
|
60
|
-
selector: Selector<
|
|
61
|
+
selector: Selector<Chronicle<Sub>, S>,
|
|
61
62
|
) {
|
|
62
63
|
return new Chronstrata(limit, this, selector, this.options)
|
|
63
64
|
}
|
|
@@ -66,6 +67,7 @@ export class Strata<S extends State> implements Stratum<S> {
|
|
|
66
67
|
this.#mutationLock++
|
|
67
68
|
try { await this.watch.pub(this.#immutable) }
|
|
68
69
|
finally { this.#mutationLock-- }
|
|
70
|
+
tracker.change(this)
|
|
69
71
|
})
|
|
70
72
|
}
|
|
71
73
|
|
package/s/parts/substrata.ts
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
|
|
2
|
-
import {debounce, deep, sub} from "@e280/stz"
|
|
2
|
+
import {debounce, deep, sub, tracker} from "@e280/stz"
|
|
3
|
+
|
|
3
4
|
import {Chronstrata} from "./chronstrata.js"
|
|
4
5
|
import {Chronicle, Mutator, Options, Selector, Stratum, Substate} from "./types.js"
|
|
5
6
|
|
|
6
|
-
export class Substrata<
|
|
7
|
+
export class Substrata<S extends Substate, ParentState extends Substate = any> implements Stratum<S> {
|
|
7
8
|
dispose: () => void
|
|
8
9
|
watch = sub<[state: S]>()
|
|
9
10
|
|
|
10
11
|
#immutable: S
|
|
11
|
-
#dispatchMutation = debounce(0, (state: S) =>
|
|
12
|
+
#dispatchMutation = debounce(0, async(state: S) => {
|
|
13
|
+
await this.watch.pub(state)
|
|
14
|
+
tracker.change(this)
|
|
15
|
+
})
|
|
12
16
|
|
|
13
17
|
constructor(
|
|
14
18
|
private parent: Stratum<ParentState>,
|
|
15
|
-
private selector: Selector<
|
|
19
|
+
private selector: Selector<S, ParentState>,
|
|
16
20
|
private options: Options,
|
|
17
21
|
) {
|
|
18
22
|
|
|
@@ -36,6 +40,7 @@ export class Substrata<ParentState extends Substate, S extends Substate> impleme
|
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
get state(): S {
|
|
43
|
+
tracker.see(this)
|
|
39
44
|
return this.#immutable
|
|
40
45
|
}
|
|
41
46
|
|
|
@@ -44,13 +49,13 @@ export class Substrata<ParentState extends Substate, S extends Substate> impleme
|
|
|
44
49
|
return this.#immutable
|
|
45
50
|
}
|
|
46
51
|
|
|
47
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
52
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S> {
|
|
48
53
|
return new Substrata(this, selector, this.options)
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
chronstrata<Sub extends Substate>(
|
|
52
57
|
limit: number,
|
|
53
|
-
selector: Selector<
|
|
58
|
+
selector: Selector<Chronicle<Sub>, S>,
|
|
54
59
|
) {
|
|
55
60
|
return new Chronstrata(limit, this, selector, this.options)
|
|
56
61
|
}
|
package/s/parts/types.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type Options = {
|
|
|
5
5
|
clone: <X>(x: X) => X
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
export type Selector<
|
|
8
|
+
export type Selector<Sub, S> = (state: S) => Sub
|
|
9
9
|
export type Mutator<S> = (state: S) => void
|
|
10
10
|
|
|
11
11
|
export type State = {}
|
|
@@ -20,7 +20,7 @@ export type Stratum<S extends Substate> = {
|
|
|
20
20
|
readonly state: S
|
|
21
21
|
watch(fn: (s: S) => void): () => void
|
|
22
22
|
mutate(mutator: Mutator<S>): Promise<S>
|
|
23
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
23
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S>
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export type SetupOptions<S extends State> = {
|
package/x/parts/chronstrata.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Substrata } from "./substrata.js";
|
|
2
2
|
import { Chronicle, Mutator, Options, Selector, Stratum, Substate } from "./types.js";
|
|
3
|
-
export declare class Chronstrata<
|
|
3
|
+
export declare class Chronstrata<S extends Substate, ParentState extends Substate = any> implements Stratum<S> {
|
|
4
4
|
#private;
|
|
5
5
|
limit: number;
|
|
6
6
|
parent: Stratum<ParentState>;
|
|
7
|
-
selector: Selector<
|
|
7
|
+
selector: Selector<Chronicle<S>, ParentState>;
|
|
8
8
|
options: Options;
|
|
9
|
-
constructor(limit: number, parent: Stratum<ParentState>, selector: Selector<
|
|
9
|
+
constructor(limit: number, parent: Stratum<ParentState>, selector: Selector<Chronicle<S>, ParentState>, options: Options);
|
|
10
10
|
get state(): S;
|
|
11
11
|
get undoable(): number;
|
|
12
12
|
get redoable(): number;
|
|
@@ -19,5 +19,5 @@ export declare class Chronstrata<ParentState extends Substate, S extends Substat
|
|
|
19
19
|
redo(n?: number): Promise<void>;
|
|
20
20
|
/** wipe past and future snapshots */
|
|
21
21
|
wipe(): Promise<void>;
|
|
22
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
22
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S>;
|
|
23
23
|
}
|
package/x/parts/strata.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { strataSetup } from "./utils/setup.js";
|
|
2
1
|
import { Substrata } from "./substrata.js";
|
|
2
|
+
import { strataSetup } from "./utils/setup.js";
|
|
3
3
|
import { Chronstrata } from "./chronstrata.js";
|
|
4
4
|
import { Chronicle, Mutator, Options, Selector, State, Stratum, Substate } from "./types.js";
|
|
5
5
|
export declare class Strata<S extends State> implements Stratum<S> {
|
|
@@ -12,6 +12,6 @@ export declare class Strata<S extends State> implements Stratum<S> {
|
|
|
12
12
|
get state(): S;
|
|
13
13
|
mutate(mutator: Mutator<S>): Promise<S>;
|
|
14
14
|
overwrite(state: S): Promise<void>;
|
|
15
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
16
|
-
chronstrata<Sub extends Substate>(limit: number, selector: Selector<
|
|
15
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S>;
|
|
16
|
+
chronstrata<Sub extends Substate>(limit: number, selector: Selector<Chronicle<Sub>, S>): Chronstrata<Sub, S>;
|
|
17
17
|
}
|
package/x/parts/strata.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { debounce, deep, sub } from "@e280/stz";
|
|
2
|
-
import { strataSetup } from "./utils/setup.js";
|
|
1
|
+
import { debounce, deep, sub, tracker } from "@e280/stz";
|
|
3
2
|
import { Substrata } from "./substrata.js";
|
|
3
|
+
import { strataSetup } from "./utils/setup.js";
|
|
4
4
|
import { Chronstrata } from "./chronstrata.js";
|
|
5
5
|
import { processOptions } from "./utils/process-options.js";
|
|
6
6
|
export class Strata {
|
|
@@ -21,6 +21,7 @@ export class Strata {
|
|
|
21
21
|
this.#immutable = deep.freeze(this.options.clone(state));
|
|
22
22
|
}
|
|
23
23
|
get state() {
|
|
24
|
+
tracker.see(this);
|
|
24
25
|
return this.#immutable;
|
|
25
26
|
}
|
|
26
27
|
async mutate(mutator) {
|
|
@@ -59,6 +60,7 @@ export class Strata {
|
|
|
59
60
|
finally {
|
|
60
61
|
this.#mutationLock--;
|
|
61
62
|
}
|
|
63
|
+
tracker.change(this);
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
//# sourceMappingURL=strata.js.map
|
package/x/parts/strata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strata.js","sourceRoot":"","sources":["../../s/parts/strata.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"strata.js","sourceRoot":"","sources":["../../s/parts/strata.ts"],"names":[],"mappings":"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"}
|
package/x/parts/substrata.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Chronstrata } from "./chronstrata.js";
|
|
2
2
|
import { Chronicle, Mutator, Options, Selector, Stratum, Substate } from "./types.js";
|
|
3
|
-
export declare class Substrata<
|
|
3
|
+
export declare class Substrata<S extends Substate, ParentState extends Substate = any> implements Stratum<S> {
|
|
4
4
|
#private;
|
|
5
5
|
private parent;
|
|
6
6
|
private selector;
|
|
7
7
|
private options;
|
|
8
8
|
dispose: () => void;
|
|
9
9
|
watch: import("@e280/stz").Sub<[state: S]>;
|
|
10
|
-
constructor(parent: Stratum<ParentState>, selector: Selector<
|
|
10
|
+
constructor(parent: Stratum<ParentState>, selector: Selector<S, ParentState>, options: Options);
|
|
11
11
|
get state(): S;
|
|
12
12
|
mutate(mutator: Mutator<S>): Promise<S>;
|
|
13
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
14
|
-
chronstrata<Sub extends Substate>(limit: number, selector: Selector<
|
|
13
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S>;
|
|
14
|
+
chronstrata<Sub extends Substate>(limit: number, selector: Selector<Chronicle<Sub>, S>): Chronstrata<Sub, S>;
|
|
15
15
|
}
|
package/x/parts/substrata.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { debounce, deep, sub } from "@e280/stz";
|
|
1
|
+
import { debounce, deep, sub, tracker } from "@e280/stz";
|
|
2
2
|
import { Chronstrata } from "./chronstrata.js";
|
|
3
3
|
export class Substrata {
|
|
4
4
|
parent;
|
|
@@ -7,7 +7,10 @@ export class Substrata {
|
|
|
7
7
|
dispose;
|
|
8
8
|
watch = sub();
|
|
9
9
|
#immutable;
|
|
10
|
-
#dispatchMutation = debounce(0, (state) =>
|
|
10
|
+
#dispatchMutation = debounce(0, async (state) => {
|
|
11
|
+
await this.watch.pub(state);
|
|
12
|
+
tracker.change(this);
|
|
13
|
+
});
|
|
11
14
|
constructor(parent, selector, options) {
|
|
12
15
|
this.parent = parent;
|
|
13
16
|
this.selector = selector;
|
|
@@ -29,6 +32,7 @@ export class Substrata {
|
|
|
29
32
|
this.#immutable = deep.freeze(this.options.clone(state));
|
|
30
33
|
}
|
|
31
34
|
get state() {
|
|
35
|
+
tracker.see(this);
|
|
32
36
|
return this.#immutable;
|
|
33
37
|
}
|
|
34
38
|
async mutate(mutator) {
|
package/x/parts/substrata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"substrata.js","sourceRoot":"","sources":["../../s/parts/substrata.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"substrata.js","sourceRoot":"","sources":["../../s/parts/substrata.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAC,MAAM,WAAW,CAAA;AAEtD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAA;AAG5C,MAAM,OAAO,SAAS;IAWX;IACA;IACA;IAZV,OAAO,CAAY;IACnB,KAAK,GAAG,GAAG,EAAc,CAAA;IAEzB,UAAU,CAAG;IACb,iBAAiB,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAC,KAAQ,EAAE,EAAE;QACjD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,YACU,MAA4B,EAC5B,QAAkC,EAClC,OAAgB;QAFhB,WAAM,GAAN,MAAM,CAAsB;QAC5B,aAAQ,GAAR,QAAQ,CAA0B;QAClC,YAAO,GAAP,OAAO,CAAS;QAGzB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;QAExD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAA;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YAC3C,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACjD,IAAI,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;gBAC5B,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;YACxC,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED,YAAY,CAAC,KAAQ;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,KAAK;QACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,OAAO,IAAI,CAAC,UAAU,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAmB;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAC5E,OAAO,IAAI,CAAC,UAAU,CAAA;IACvB,CAAC;IAED,SAAS,CAAuB,QAA0B;QACzD,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;IAED,WAAW,CACT,KAAa,EACb,QAAqC;QAEtC,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5D,CAAC;CACD"}
|
package/x/parts/types.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Substrata } from "./substrata.js";
|
|
|
2
2
|
export type Options = {
|
|
3
3
|
clone: <X>(x: X) => X;
|
|
4
4
|
};
|
|
5
|
-
export type Selector<
|
|
5
|
+
export type Selector<Sub, S> = (state: S) => Sub;
|
|
6
6
|
export type Mutator<S> = (state: S) => void;
|
|
7
7
|
export type State = {};
|
|
8
8
|
export type Substate = {} | null | undefined;
|
|
@@ -14,7 +14,7 @@ export type Stratum<S extends Substate> = {
|
|
|
14
14
|
readonly state: S;
|
|
15
15
|
watch(fn: (s: S) => void): () => void;
|
|
16
16
|
mutate(mutator: Mutator<S>): Promise<S>;
|
|
17
|
-
substrata<Sub extends Substate>(selector: Selector<
|
|
17
|
+
substrata<Sub extends Substate>(selector: Selector<Sub, S>): Substrata<Sub, S>;
|
|
18
18
|
};
|
|
19
19
|
export type SetupOptions<S extends State> = {
|
|
20
20
|
version: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-options.js","sourceRoot":"","sources":["../../../s/parts/utils/process-options.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAyB,EAAW,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,eAAe;
|
|
1
|
+
{"version":3,"file":"process-options.js","sourceRoot":"","sources":["../../../s/parts/utils/process-options.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAyB,EAAW,EAAE,CAAC,CAAC;IACtE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAI,CAAI,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC,CAAA"}
|