@alloy-js/core 0.15.0 → 0.17.0
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/CHANGELOG.md +23 -0
- package/dist/src/binder.d.ts +18 -235
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +85 -386
- package/dist/src/components/Block.d.ts +1 -1
- package/dist/src/components/Block.d.ts.map +1 -1
- package/dist/src/components/Block.js +3 -1
- package/dist/src/components/Declaration.d.ts +1 -1
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +5 -4
- package/dist/src/components/For.d.ts +1 -1
- package/dist/src/components/For.d.ts.map +1 -1
- package/dist/src/components/For.js +1 -1
- package/dist/src/components/Indent.d.ts +1 -1
- package/dist/src/components/Indent.d.ts.map +1 -1
- package/dist/src/components/List.d.ts +1 -1
- package/dist/src/components/List.d.ts.map +1 -1
- package/dist/src/components/List.js +2 -1
- package/dist/src/components/MemberDeclaration.d.ts +1 -1
- package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
- package/dist/src/components/MemberDeclaration.js +3 -4
- package/dist/src/components/MemberScope.d.ts +1 -1
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js +0 -2
- package/dist/src/components/Prose.d.ts +1 -1
- package/dist/src/components/Prose.d.ts.map +1 -1
- package/dist/src/components/ReferenceOrContent.d.ts +1 -1
- package/dist/src/components/ReferenceOrContent.d.ts.map +1 -1
- package/dist/src/components/Scope.d.ts +1 -1
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js +3 -6
- package/dist/src/components/Show.d.ts +1 -1
- package/dist/src/components/Show.d.ts.map +1 -1
- package/dist/src/components/StatementList.d.ts +1 -1
- package/dist/src/components/StatementList.d.ts.map +1 -1
- package/dist/src/components/StatementList.js +1 -1
- package/dist/src/components/Switch.d.ts +1 -1
- package/dist/src/components/Switch.d.ts.map +1 -1
- package/dist/src/components/Switch.js +1 -1
- package/dist/src/components/Wrap.d.ts +1 -1
- package/dist/src/components/Wrap.d.ts.map +1 -1
- package/dist/src/context/assignment.d.ts +1 -1
- package/dist/src/context/assignment.d.ts.map +1 -1
- package/dist/src/context/binder.d.ts +2 -2
- package/dist/src/context/binder.d.ts.map +1 -1
- package/dist/src/context/declaration.d.ts +1 -1
- package/dist/src/context/declaration.d.ts.map +1 -1
- package/dist/src/context/member-declaration.d.ts +1 -1
- package/dist/src/context/member-declaration.d.ts.map +1 -1
- package/dist/src/context/member-declaration.js +0 -1
- package/dist/src/context/member-scope.d.ts +1 -1
- package/dist/src/context/member-scope.d.ts.map +1 -1
- package/dist/src/context/name-policy.d.ts +1 -1
- package/dist/src/context/name-policy.d.ts.map +1 -1
- package/dist/src/context/scope.d.ts +1 -1
- package/dist/src/context/scope.d.ts.map +1 -1
- package/dist/src/context/source-directory.d.ts +1 -1
- package/dist/src/context/source-directory.d.ts.map +1 -1
- package/dist/src/context/source-file.d.ts +2 -2
- package/dist/src/context/source-file.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/jsx-runtime.d.ts +12 -3
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +6 -2
- package/dist/src/reactive-union-set.d.ts +29 -0
- package/dist/src/reactive-union-set.d.ts.map +1 -0
- package/dist/src/reactive-union-set.js +183 -0
- package/dist/src/refkey.d.ts +36 -0
- package/dist/src/refkey.d.ts.map +1 -1
- package/dist/src/refkey.js +40 -0
- package/dist/src/scheduler.d.ts +2 -2
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +27 -6
- package/dist/src/slot.d.ts +1 -1
- package/dist/src/slot.d.ts.map +1 -1
- package/dist/src/stc.d.ts +1 -1
- package/dist/src/stc.d.ts.map +1 -1
- package/dist/src/sti.d.ts +1 -1
- package/dist/src/sti.d.ts.map +1 -1
- package/dist/src/sti.js +1 -1
- package/dist/src/symbols/index.d.ts +6 -0
- package/dist/src/symbols/index.d.ts.map +1 -0
- package/dist/src/symbols/index.js +5 -0
- package/dist/src/symbols/output-scope.d.ts +116 -0
- package/dist/src/symbols/output-scope.d.ts.map +1 -0
- package/dist/src/symbols/output-scope.js +246 -0
- package/dist/src/symbols/output-symbol.d.ts +134 -0
- package/dist/src/symbols/output-symbol.d.ts.map +1 -0
- package/dist/src/symbols/output-symbol.js +379 -0
- package/dist/src/symbols/symbol-flow.d.ts +13 -0
- package/dist/src/symbols/symbol-flow.d.ts.map +1 -0
- package/dist/src/symbols/symbol-flow.js +74 -0
- package/dist/src/symbols/symbol-slot.d.ts +12 -0
- package/dist/src/symbols/symbol-slot.d.ts.map +1 -0
- package/dist/src/symbols/symbol-slot.js +36 -0
- package/dist/src/symbols/symbol-table.d.ts +14 -0
- package/dist/src/symbols/symbol-table.d.ts.map +1 -0
- package/dist/src/symbols/symbol-table.js +42 -0
- package/dist/src/tap.d.ts +2 -1
- package/dist/src/tap.d.ts.map +1 -1
- package/dist/src/tracer.d.ts +181 -0
- package/dist/src/tracer.d.ts.map +1 -0
- package/dist/src/tracer.js +441 -0
- package/dist/src/tsdoc-metadata.json +1 -1
- package/dist/test/components/slot.test.js +5 -7
- package/dist/test/reactive-union-set.test.d.ts +2 -0
- package/dist/test/reactive-union-set.test.d.ts.map +1 -0
- package/dist/test/reactive-union-set.test.js +170 -0
- package/dist/test/symbols/output-scope.test.d.ts +2 -0
- package/dist/test/symbols/output-scope.test.d.ts.map +1 -0
- package/dist/test/symbols/output-scope.test.js +342 -0
- package/dist/test/symbols/output-symbol.test.d.ts +2 -0
- package/dist/test/symbols/output-symbol.test.d.ts.map +1 -0
- package/dist/test/symbols/output-symbol.test.js +446 -0
- package/dist/test/symbols/resolution.test.d.ts +2 -0
- package/dist/test/symbols/resolution.test.d.ts.map +1 -0
- package/dist/test/symbols/resolution.test.js +140 -0
- package/dist/test/symbols/utils.d.ts +24 -0
- package/dist/test/symbols/utils.d.ts.map +1 -0
- package/dist/test/symbols/utils.js +46 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/binder.ts +148 -672
- package/src/components/Block.tsx +4 -1
- package/src/components/Declaration.tsx +6 -6
- package/src/components/For.tsx +1 -1
- package/src/components/Indent.tsx +1 -1
- package/src/components/List.tsx +1 -1
- package/src/components/MemberDeclaration.tsx +4 -4
- package/src/components/MemberScope.tsx +2 -5
- package/src/components/Prose.tsx +1 -1
- package/src/components/ReferenceOrContent.tsx +1 -1
- package/src/components/Scope.tsx +2 -6
- package/src/components/Show.tsx +1 -1
- package/src/components/StatementList.tsx +2 -1
- package/src/components/Switch.tsx +1 -1
- package/src/components/Wrap.tsx +1 -1
- package/src/context/assignment.ts +1 -1
- package/src/context/binder.ts +2 -2
- package/src/context/declaration.ts +1 -1
- package/src/context/member-declaration.ts +1 -1
- package/src/context/member-scope.ts +1 -1
- package/src/context/name-policy.ts +1 -1
- package/src/context/scope.ts +1 -1
- package/src/context/source-directory.ts +1 -1
- package/src/context/source-file.ts +2 -2
- package/src/index.ts +15 -0
- package/src/jsx-runtime.ts +18 -2
- package/src/reactive-union-set.ts +238 -0
- package/src/refkey.ts +40 -0
- package/src/scheduler.ts +31 -6
- package/src/slot.ts +1 -1
- package/src/stc.ts +3 -3
- package/src/sti.ts +5 -5
- package/src/symbols/index.ts +5 -0
- package/src/symbols/output-scope.ts +323 -0
- package/src/symbols/output-symbol.ts +512 -0
- package/src/symbols/symbol-flow.ts +104 -0
- package/src/symbols/symbol-slot.tsx +47 -0
- package/src/symbols/symbol-table.ts +72 -0
- package/src/tap.ts +2 -1
- package/src/tracer.ts +440 -0
- package/temp/api.json +4172 -1582
- package/test/components/slot.test.tsx +8 -11
- package/test/reactive-union-set.test.tsx +191 -0
- package/test/symbols/output-scope.test.ts +302 -0
- package/test/symbols/output-symbol.test.ts +459 -0
- package/test/symbols/resolution.test.ts +172 -0
- package/test/symbols/utils.ts +95 -0
- package/dist/test/symbols.test.d.ts +0 -2
- package/dist/test/symbols.test.d.ts.map +0 -1
- package/dist/test/symbols.test.js +0 -884
- package/test/symbols.test.ts +0 -1006
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { effect } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { ITERATE_KEY, ReactiveFlags, shallowReactive, shallowReadonly, track, TrackOpTypes, trigger, TriggerOpTypes } from "@vue/reactivity";
|
|
3
|
+
export class ReactiveUnionSet extends Set {
|
|
4
|
+
_refcounts = new Map();
|
|
5
|
+
_indexes = [];
|
|
6
|
+
[ReactiveFlags.IS_REACTIVE] = true;
|
|
7
|
+
_handleAdd(value) {
|
|
8
|
+
value = this._onAdd ? this._onAdd(value) : value;
|
|
9
|
+
for (const index of this._indexes) {
|
|
10
|
+
index.add(value);
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
_handleDelete(value) {
|
|
15
|
+
if (this._onDelete) {
|
|
16
|
+
this._onDelete(value);
|
|
17
|
+
}
|
|
18
|
+
for (const index of this._indexes) {
|
|
19
|
+
index.delete(value);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
constructor(options = {}) {
|
|
24
|
+
super();
|
|
25
|
+
this._subsets = new Set();
|
|
26
|
+
this._onAdd = options.onAdd;
|
|
27
|
+
this._onDelete = options.onDelete;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
get size() {
|
|
31
|
+
track(this, TrackOpTypes.ITERATE, ITERATE_KEY);
|
|
32
|
+
return super.size;
|
|
33
|
+
}
|
|
34
|
+
[Symbol.iterator]() {
|
|
35
|
+
track(this, TrackOpTypes.ITERATE, ITERATE_KEY);
|
|
36
|
+
return super[Symbol.iterator]();
|
|
37
|
+
}
|
|
38
|
+
keys() {
|
|
39
|
+
track(this, TrackOpTypes.ITERATE, ITERATE_KEY);
|
|
40
|
+
return super.keys();
|
|
41
|
+
}
|
|
42
|
+
values() {
|
|
43
|
+
track(this, TrackOpTypes.ITERATE, ITERATE_KEY);
|
|
44
|
+
return super.values();
|
|
45
|
+
}
|
|
46
|
+
entries() {
|
|
47
|
+
track(this, TrackOpTypes.ITERATE, ITERATE_KEY);
|
|
48
|
+
return super.entries();
|
|
49
|
+
}
|
|
50
|
+
add(item) {
|
|
51
|
+
if (this._refcounts.has(item)) {
|
|
52
|
+
this._refcounts.set(item, this._refcounts.get(item) + 1);
|
|
53
|
+
} else {
|
|
54
|
+
this._refcounts.set(item, 1);
|
|
55
|
+
super.add(item);
|
|
56
|
+
this._handleAdd(item);
|
|
57
|
+
trigger(this, TriggerOpTypes.ADD, item, item);
|
|
58
|
+
}
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
delete(item) {
|
|
62
|
+
const count = this._refcounts.get(item);
|
|
63
|
+
if (count === undefined) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (count > 1) {
|
|
67
|
+
this._refcounts.set(item, count - 1);
|
|
68
|
+
} else {
|
|
69
|
+
this._refcounts.delete(item);
|
|
70
|
+
super.delete(item);
|
|
71
|
+
this._handleDelete(item);
|
|
72
|
+
trigger(this, TriggerOpTypes.DELETE, undefined, item);
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
addSubset(subset, options = {}) {
|
|
77
|
+
if (this._subsets.has(subset)) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const {
|
|
81
|
+
onAdd,
|
|
82
|
+
onDelete
|
|
83
|
+
} = options;
|
|
84
|
+
this._subsets.add(subset);
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Contains a map of the previous values and their mapped values
|
|
88
|
+
* that were added to the parent set.
|
|
89
|
+
*/
|
|
90
|
+
const prevValues = new Map();
|
|
91
|
+
effect(() => {
|
|
92
|
+
for (const [prevSourceValue, prevTargetValue] of prevValues) {
|
|
93
|
+
if (!subset.has(prevSourceValue)) {
|
|
94
|
+
onDelete?.(prevSourceValue);
|
|
95
|
+
prevValues.delete(prevSourceValue);
|
|
96
|
+
this.delete(prevTargetValue);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
for (const value of subset) {
|
|
100
|
+
if (!prevValues.has(value)) {
|
|
101
|
+
if (onAdd) {
|
|
102
|
+
const added = onAdd(value);
|
|
103
|
+
prevValues.set(value, added);
|
|
104
|
+
} else {
|
|
105
|
+
this.add(value);
|
|
106
|
+
prevValues.set(value, value);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
createDerivedSet(mapper) {
|
|
113
|
+
const set = shallowReactive(new Set());
|
|
114
|
+
const refcounts = new Map();
|
|
115
|
+
function ref(value) {
|
|
116
|
+
if (refcounts.has(value)) {
|
|
117
|
+
const count = refcounts.get(value) + 1;
|
|
118
|
+
refcounts.set(value, count);
|
|
119
|
+
return count;
|
|
120
|
+
} else {
|
|
121
|
+
refcounts.set(value, 1);
|
|
122
|
+
set.add(value);
|
|
123
|
+
return 1;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function unref(value) {
|
|
127
|
+
const count = refcounts.get(value);
|
|
128
|
+
if (count > 1) {
|
|
129
|
+
refcounts.set(value, count - 1);
|
|
130
|
+
return count - 1;
|
|
131
|
+
} else {
|
|
132
|
+
refcounts.delete(value);
|
|
133
|
+
set.delete(value);
|
|
134
|
+
return 0;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
this._indexes.push({
|
|
138
|
+
add: value => {
|
|
139
|
+
effect(prev => {
|
|
140
|
+
for (const id of [prev].flat()) {
|
|
141
|
+
unref(id);
|
|
142
|
+
}
|
|
143
|
+
const mappedValue = mapper(value);
|
|
144
|
+
for (const id of [mappedValue].flat()) {
|
|
145
|
+
ref(id);
|
|
146
|
+
}
|
|
147
|
+
return mappedValue;
|
|
148
|
+
});
|
|
149
|
+
},
|
|
150
|
+
delete: value => {
|
|
151
|
+
const mappedValue = mapper(value);
|
|
152
|
+
for (const id of [mappedValue].flat()) {
|
|
153
|
+
unref(id);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
return shallowReadonly(set);
|
|
158
|
+
}
|
|
159
|
+
createIndex(mapper) {
|
|
160
|
+
const index = shallowReactive(new Map());
|
|
161
|
+
this._indexes.push({
|
|
162
|
+
add: value => {
|
|
163
|
+
effect(oldValue => {
|
|
164
|
+
for (const id of [oldValue].flat()) {
|
|
165
|
+
index.delete(id);
|
|
166
|
+
}
|
|
167
|
+
const mappedValue = mapper(value);
|
|
168
|
+
for (const id of [mappedValue].flat()) {
|
|
169
|
+
index.set(id, value);
|
|
170
|
+
}
|
|
171
|
+
return mappedValue;
|
|
172
|
+
});
|
|
173
|
+
},
|
|
174
|
+
delete: value => {
|
|
175
|
+
const mappedValue = mapper(value);
|
|
176
|
+
for (const id of [mappedValue].flat()) {
|
|
177
|
+
index.delete(id);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
return shallowReadonly(index);
|
|
182
|
+
}
|
|
183
|
+
}
|
package/dist/src/refkey.d.ts
CHANGED
|
@@ -4,6 +4,42 @@ export type Refkey = {
|
|
|
4
4
|
[RefkeySym]: true;
|
|
5
5
|
};
|
|
6
6
|
export declare function isRefkey(value: unknown): value is Refkey;
|
|
7
|
+
/**
|
|
8
|
+
* Create a refkey for the provided arguments. Passing no arguments returns a
|
|
9
|
+
* fresh refkey that is guaranteed to be unique. Otherwise, the arguments passed
|
|
10
|
+
* will be used to create a refkey for those values. Providing the same
|
|
11
|
+
* arguments will always return the same refkey.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
*
|
|
15
|
+
* Values are compared using the SameValueZero algorithm, which considers
|
|
16
|
+
* objects the same if they are reference identical, and primitives the same if
|
|
17
|
+
* they are the same value, with the exception of `NaN`, which is always considered
|
|
18
|
+
* equal to other `NaN` values, and `-0`, which is considered identical to `+0`
|
|
19
|
+
*/
|
|
7
20
|
export declare function refkey(...args: unknown[]): Refkey;
|
|
21
|
+
/**
|
|
22
|
+
* Create a refkey for an instantiation of a symbol.
|
|
23
|
+
*
|
|
24
|
+
* @param base - The refkey of the symbol holding the instantiation.
|
|
25
|
+
* @param member - The refkey of the non-instantiated member symbol (either the
|
|
26
|
+
* instance or static member symbol)
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
*
|
|
30
|
+
* Refkeys for instantiated and copied members are a composite refkey of the
|
|
31
|
+
* owner's refkey and the member's refkey. So for example, given a refkey for an
|
|
32
|
+
* instantiation of a class `rk1`, and a refkey for the instance member of that
|
|
33
|
+
* class `rk2`, the refkey for the instantiated static member is
|
|
34
|
+
* `refkey(rk1, rk2)`. This function will return the same refkey given those
|
|
35
|
+
* same parameters.
|
|
36
|
+
*
|
|
37
|
+
* When a static member symbol `rk3` is owned by another static or instance
|
|
38
|
+
* member symbol (i.e. the outer symbol is itself a member container), the
|
|
39
|
+
* refkey of the instaniated static member is still just the composite of the
|
|
40
|
+
* instantiated variable refkey and the refkey of the inner member
|
|
41
|
+
* `refkey(rk1, rk3)`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function memberRefkey(base: Refkey, member: Refkey): Refkey;
|
|
8
44
|
export {};
|
|
9
45
|
//# sourceMappingURL=refkey.d.ts.map
|
package/dist/src/refkey.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refkey.d.ts","sourceRoot":"","sources":["../../src/refkey.ts"],"names":[],"mappings":"AAgBA,QAAA,MAAM,SAAS,EAAE,OAAO,MAAiB,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAaxD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMxD;
|
|
1
|
+
{"version":3,"file":"refkey.d.ts","sourceRoot":"","sources":["../../src/refkey.ts"],"names":[],"mappings":"AAgBA,QAAA,MAAM,SAAS,EAAE,OAAO,MAAiB,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,CAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAaxD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMxD;AAcD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAWjD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjE"}
|
package/dist/src/refkey.js
CHANGED
|
@@ -31,6 +31,20 @@ function getKey(value) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
const knownRefkeys = new Map();
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Create a refkey for the provided arguments. Passing no arguments returns a
|
|
37
|
+
* fresh refkey that is guaranteed to be unique. Otherwise, the arguments passed
|
|
38
|
+
* will be used to create a refkey for those values. Providing the same
|
|
39
|
+
* arguments will always return the same refkey.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
*
|
|
43
|
+
* Values are compared using the SameValueZero algorithm, which considers
|
|
44
|
+
* objects the same if they are reference identical, and primitives the same if
|
|
45
|
+
* they are the same value, with the exception of `NaN`, which is always considered
|
|
46
|
+
* equal to other `NaN` values, and `-0`, which is considered identical to `+0`
|
|
47
|
+
*/
|
|
34
48
|
export function refkey(...args) {
|
|
35
49
|
const keys = args.length === 0 ? [getKey({})] : args.map(v => getKey(v));
|
|
36
50
|
const compositeKey = keys.map(v => v.key).join("\u2063");
|
|
@@ -40,4 +54,30 @@ export function refkey(...args) {
|
|
|
40
54
|
const key = createRefkey(compositeKey);
|
|
41
55
|
knownRefkeys.set(compositeKey, key);
|
|
42
56
|
return key;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Create a refkey for an instantiation of a symbol.
|
|
61
|
+
*
|
|
62
|
+
* @param base - The refkey of the symbol holding the instantiation.
|
|
63
|
+
* @param member - The refkey of the non-instantiated member symbol (either the
|
|
64
|
+
* instance or static member symbol)
|
|
65
|
+
*
|
|
66
|
+
* @remarks
|
|
67
|
+
*
|
|
68
|
+
* Refkeys for instantiated and copied members are a composite refkey of the
|
|
69
|
+
* owner's refkey and the member's refkey. So for example, given a refkey for an
|
|
70
|
+
* instantiation of a class `rk1`, and a refkey for the instance member of that
|
|
71
|
+
* class `rk2`, the refkey for the instantiated static member is
|
|
72
|
+
* `refkey(rk1, rk2)`. This function will return the same refkey given those
|
|
73
|
+
* same parameters.
|
|
74
|
+
*
|
|
75
|
+
* When a static member symbol `rk3` is owned by another static or instance
|
|
76
|
+
* member symbol (i.e. the outer symbol is itself a member container), the
|
|
77
|
+
* refkey of the instaniated static member is still just the composite of the
|
|
78
|
+
* instantiated variable refkey and the refkey of the inner member
|
|
79
|
+
* `refkey(rk1, rk3)`.
|
|
80
|
+
*/
|
|
81
|
+
export function memberRefkey(base, member) {
|
|
82
|
+
return refkey(base, member);
|
|
43
83
|
}
|
package/dist/src/scheduler.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ReactiveEffectRunner } from "@vue/reactivity";
|
|
|
2
2
|
export interface QueueJob {
|
|
3
3
|
(): any;
|
|
4
4
|
}
|
|
5
|
-
export declare function scheduler(jobGetter: () => ReactiveEffectRunner): () => void;
|
|
6
|
-
export declare function queueJob(job: QueueJob): void;
|
|
5
|
+
export declare function scheduler(jobGetter: () => ReactiveEffectRunner, immediate?: boolean): () => void;
|
|
6
|
+
export declare function queueJob(job: QueueJob, immediate?: boolean): void;
|
|
7
7
|
export declare function flushJobs(): void;
|
|
8
8
|
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,GAAG,CAAC;CACT;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,GAAG,CAAC;CACT;AAID,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,oBAAoB,EACrC,SAAS,UAAQ,cAKlB;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,UAAQ,QASxD;AAED,wBAAgB,SAAS,SAKxB"}
|
package/dist/src/scheduler.js
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
1
|
+
const immediateQueue = new Set();
|
|
1
2
|
const queue = new Set();
|
|
2
|
-
export function scheduler(jobGetter) {
|
|
3
|
+
export function scheduler(jobGetter, immediate = false) {
|
|
3
4
|
return () => {
|
|
4
|
-
queueJob(jobGetter());
|
|
5
|
+
queueJob(jobGetter(), immediate);
|
|
5
6
|
};
|
|
6
7
|
}
|
|
7
|
-
export function queueJob(job) {
|
|
8
|
+
export function queueJob(job, immediate = false) {
|
|
9
|
+
// if we have an immediate job, we don't need to queue the normal job.
|
|
8
10
|
// the set is serving an important purpose here in deduping the effects we run
|
|
9
11
|
// (which in effect coalesces multiple update effects together).
|
|
10
|
-
|
|
12
|
+
if (immediate) {
|
|
13
|
+
immediateQueue.add(job);
|
|
14
|
+
} else {
|
|
15
|
+
queue.add(job);
|
|
16
|
+
}
|
|
11
17
|
}
|
|
12
18
|
export function flushJobs() {
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
let job;
|
|
20
|
+
while ((job = takeJob()) !== null) {
|
|
15
21
|
job();
|
|
16
22
|
}
|
|
23
|
+
}
|
|
24
|
+
function takeJob() {
|
|
25
|
+
if (immediateQueue.size > 0) {
|
|
26
|
+
// return first item in immediateQueue
|
|
27
|
+
const job = immediateQueue.values().next().value;
|
|
28
|
+
immediateQueue.delete(job);
|
|
29
|
+
return job;
|
|
30
|
+
}
|
|
31
|
+
if (queue.size > 0) {
|
|
32
|
+
// return first item in queue
|
|
33
|
+
const job = queue.values().next().value;
|
|
34
|
+
queue.delete(job);
|
|
35
|
+
return job;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
17
38
|
}
|
package/dist/src/slot.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Ref } from "@vue/reactivity";
|
|
2
|
-
import { OutputSymbol } from "./binder.js";
|
|
3
2
|
import { Children, Component, ComponentDefinition } from "./jsx-runtime.js";
|
|
3
|
+
import { OutputSymbol } from "./symbols/output-symbol.js";
|
|
4
4
|
export interface SlotInstance extends ComponentDefinition {
|
|
5
5
|
}
|
|
6
6
|
export interface SlotDefinition<TSlotProps> {
|
package/dist/src/slot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../src/slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../../src/slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,mBAAmB,EAGpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,WAAW,YAAa,SAAQ,mBAAmB;CAAG;AAE5D,MAAM,WAAW,cAAc,CAAC,UAAU;IACxC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,CACJ,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,cAAc,CAAC,EAAE,QAAQ,GACxB,mBAAmB,CAAC;CACxB;AAED,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;AAInC,wBAAgB,UAAU,CACxB,UAAU,EACV,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAC3D,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,GAAG,CAAC,OAAO,CAAC,GAAG,OAAO,EAC3B,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAsB7C;AAED,eAAO,MAAM,gBAAgB,EAAE,CAAC,MAAM,IAAI,CAAC,EAAO,CAAC;AAEnD,wBAAgB,OAAO,CAAC,CAAC,EACvB,SAAS,EAAE,MAAM,OAAO,EACxB,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,QAkB1B;AAED,wBAAgB,MAAM,CACpB,SAAS,EAAE,MAAM,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,EAC9C,OAAO,EAAE,MAAM,QAShB"}
|
package/dist/src/stc.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Children, ComponentCreator, ComponentDefinition } from "
|
|
1
|
+
import type { Children, ComponentCreator, ComponentDefinition } from "./jsx-runtime.js";
|
|
2
2
|
export type MakeChildrenOptional<T extends object> = T extends {
|
|
3
3
|
children?: any;
|
|
4
4
|
} ? Omit<T, "children"> & Partial<Pick<T, "children">> : T;
|
package/dist/src/stc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stc.d.ts","sourceRoot":"","sources":["../../src/stc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stc.d.ts","sourceRoot":"","sources":["../../src/stc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC/C,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAC1B,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAClD,CAAC,CAAC;AAEN,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,IAAI,CACvC,GAAG,IAAI,EAAE,OAAO,SAAS,CAAC,GAAG,EAAE,GAC7B,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAClE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAC/B,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE5B,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG;IACzD,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,CAAC,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,wBAAgB,GAAG,CAAC,CAAC,SAAS,EAAE,EAC9B,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAChC,YAAY,CAAC,CAAC,CAAC,CAyCjB"}
|
package/dist/src/sti.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Children, IntrinsicElementBase, JSX } from "
|
|
1
|
+
import { type Children, type IntrinsicElementBase, type JSX } from "./jsx-runtime.js";
|
|
2
2
|
export type StiSignature<T extends keyof JSX.IntrinsicElements> = (...args: unknown extends T ? [] : {} extends Omit<JSX.IntrinsicElements[T], "children"> ? [
|
|
3
3
|
props?: JSX.IntrinsicElements[T]
|
|
4
4
|
] : [props: JSX.IntrinsicElements[T]]) => StiComponentCreator<T>;
|
package/dist/src/sti.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sti.d.ts","sourceRoot":"","sources":["../../src/sti.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sti.d.ts","sourceRoot":"","sources":["../../src/sti.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,oBAAoB,EACzB,KAAK,GAAG,EACT,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IAAI,CAChE,GAAG,IAAI,EAAE,OAAO,SAAS,CAAC,GAAG,EAAE,GAC7B,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GACrD;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;CAAC,GAClC,CAAC,KAAK,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAChC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE5B,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IACnE,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG;IAChC,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC;AAEJ,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,EACvD,IAAI,EAAE,CAAC,GACN,YAAY,CAAC,CAAC,CAAC,CAgCjB"}
|
package/dist/src/sti.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/symbols/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ReactiveFlags } from "@vue/reactivity";
|
|
2
|
+
import type { Binder } from "../binder.js";
|
|
3
|
+
import type { ReactiveUnionSetOptions } from "../reactive-union-set.js";
|
|
4
|
+
import type { Refkey } from "../refkey.js";
|
|
5
|
+
import { OutputSymbol } from "./output-symbol.js";
|
|
6
|
+
import { SymbolTable } from "./symbol-table.js";
|
|
7
|
+
/**
|
|
8
|
+
* Flags that describe an output scope.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum OutputScopeFlags {
|
|
11
|
+
None = 0,
|
|
12
|
+
/**
|
|
13
|
+
* This scope is a static member scope.
|
|
14
|
+
*/
|
|
15
|
+
StaticMemberScope = 1,
|
|
16
|
+
/**
|
|
17
|
+
* This scope is an instance member scope.
|
|
18
|
+
*/
|
|
19
|
+
InstanceMemberScope = 2,
|
|
20
|
+
/**
|
|
21
|
+
* This scope is transient, and only exists to be merged with other scopes.
|
|
22
|
+
*/
|
|
23
|
+
Transient = 4,
|
|
24
|
+
/**
|
|
25
|
+
* This scope is a member scope. Scopes with this flag will have an `owner`
|
|
26
|
+
* property that points to the symbol whose member this scope holds.
|
|
27
|
+
*/
|
|
28
|
+
MemberScope = 3
|
|
29
|
+
}
|
|
30
|
+
export interface OutputScopeOptions {
|
|
31
|
+
flags?: OutputScopeFlags;
|
|
32
|
+
kind?: string;
|
|
33
|
+
metadata?: Record<string, unknown>;
|
|
34
|
+
parent?: OutputScope;
|
|
35
|
+
owner?: OutputSymbol;
|
|
36
|
+
binder?: Binder;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A container of symbols accessible within some scope in your output code.
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
*
|
|
43
|
+
* Scopes form a tree. All scopes except the global scope have a parent scope
|
|
44
|
+
* identified by `parent`. Scopes can have nested scopes which can be accessed
|
|
45
|
+
* using the `children` property. Whether a child scope can be accessed from
|
|
46
|
+
* the parent scope is determined by each language's scoping rules.
|
|
47
|
+
*
|
|
48
|
+
* This interface is the base implementation of scope. Generally, most languages
|
|
49
|
+
* will have subtypes of this interface that provide additional metadata about
|
|
50
|
+
* the scope. For example, TypeScript scopes need to track whether the scope
|
|
51
|
+
* represents a package, module, class, function, etc.
|
|
52
|
+
*
|
|
53
|
+
* Scopes are reactive values, which allows you to observe changes to the scope
|
|
54
|
+
* within a reactive context.
|
|
55
|
+
*/
|
|
56
|
+
export declare class OutputScope {
|
|
57
|
+
#private;
|
|
58
|
+
/**
|
|
59
|
+
* The name of the scope.
|
|
60
|
+
*/
|
|
61
|
+
get name(): string;
|
|
62
|
+
set name(name: string);
|
|
63
|
+
/**
|
|
64
|
+
* The unique id of this scope.
|
|
65
|
+
*/
|
|
66
|
+
get id(): number;
|
|
67
|
+
/**
|
|
68
|
+
* The kind of scope. Subtypes will likely provide a set of known scope kinds.
|
|
69
|
+
* The kind is not used by the binder itself.
|
|
70
|
+
*/
|
|
71
|
+
get kind(): string;
|
|
72
|
+
/**
|
|
73
|
+
* The flags that describe this scope.
|
|
74
|
+
*/
|
|
75
|
+
get flags(): OutputScopeFlags;
|
|
76
|
+
set flags(flags: OutputScopeFlags);
|
|
77
|
+
get metadata(): Record<string, unknown>;
|
|
78
|
+
/**
|
|
79
|
+
* The container of this scope. This is only defined for scopes which don't
|
|
80
|
+
* have the {@link OutputScopeFlags.StaticMemberScope} or
|
|
81
|
+
* {@link OutputScopeFlags.InstanceMemberScope} flag.
|
|
82
|
+
*/
|
|
83
|
+
get parent(): OutputScope | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* The symbol that owns this scope. This is only defined for scopes that have
|
|
86
|
+
* the {@link OutputScopeFlags.StaticMemberScope} or
|
|
87
|
+
* {@link OutputScopeFlags.InstanceMemberScope} flag.
|
|
88
|
+
*/
|
|
89
|
+
get owner(): OutputSymbol | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* The symbols defined within this scope.
|
|
92
|
+
*/
|
|
93
|
+
get symbols(): SymbolTable;
|
|
94
|
+
/**
|
|
95
|
+
* The symbols defined within this scope, indexed by refkey.
|
|
96
|
+
*/
|
|
97
|
+
get symbolsByRefkey(): ReadonlyMap<Refkey, OutputSymbol>;
|
|
98
|
+
get symbolNames(): ReadonlySet<string>;
|
|
99
|
+
/**
|
|
100
|
+
* The scopes nested within this scope.
|
|
101
|
+
*/
|
|
102
|
+
get children(): Set<OutputScope>;
|
|
103
|
+
/**
|
|
104
|
+
* The binder that created this scope.
|
|
105
|
+
*/
|
|
106
|
+
get binder(): Binder | undefined;
|
|
107
|
+
[ReactiveFlags.SKIP]: this;
|
|
108
|
+
constructor(name: string, options?: OutputScopeOptions);
|
|
109
|
+
moveSymbolsFrom(source: OutputScope, options?: ReactiveUnionSetOptions<OutputSymbol>): void;
|
|
110
|
+
copySymbolsFrom(source: OutputScope, options?: ReactiveUnionSetOptions<OutputSymbol>): void;
|
|
111
|
+
clone(options?: {
|
|
112
|
+
parent?: OutputScope;
|
|
113
|
+
owner?: OutputSymbol;
|
|
114
|
+
}): OutputScope;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=output-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-scope.d.ts","sourceRoot":"","sources":["../../../src/symbols/output-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAOd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQ3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,IAAI;IAER;;OAEG;IACH,iBAAiB,IAAS;IAE1B;;OAEG;IACH,mBAAmB,IAAS;IAE5B;;OAEG;IACH,SAAS,IAAS;IAElB;;;OAGG;IACH,WAAW,IAA0C;CACtD;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,WAAW;;IAGtB;;OAEG;IACH,IAAI,IAAI,IAIO,MAAM,CADpB;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAIpB;IAGD;;OAEG;IACH,IAAI,EAAE,WAEL;IAID;;;OAGG;IACH,IAAI,IAAI,WAEP;IAGD;;OAEG;IACH,IAAI,KAAK,IAIQ,gBAAgB,CADhC;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAIhC;IAID,IAAI,QAAQ,4BAEX;IAGD;;;;OAIG;IACH,IAAI,MAAM,4BAET;IAGD;;;;OAIG;IACH,IAAI,KAAK,6BAER;IAGD;;OAEG;IACH,IAAI,OAAO,gBAEV;IAGD;;OAEG;IACH,IAAI,eAAe,sCAElB;IAGD,IAAI,WAAW,wBAEd;IAGD;;OAEG;IACH,IAAI,QAAQ,qBAEX;IAGD;;OAEG;IACH,IAAI,MAAM,uBAET;IAED,CAAC,aAAa,CAAC,IAAI,CAAC,OAAQ;gBAEhB,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IA6C1D,eAAe,CACb,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC;IAuBjD,eAAe,CACb,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC;IAsBjD,KAAK,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,CAAA;KAAO;CAiCnE"}
|