@alloy-js/core 0.7.0 → 0.9.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 +36 -0
- package/babel.config.cjs +1 -4
- package/dist/src/binder.d.ts +14 -12
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +26 -23
- package/dist/src/binder.js.map +1 -1
- package/dist/src/code.d.ts +11 -2
- package/dist/src/code.d.ts.map +1 -1
- package/dist/src/code.js +27 -2
- package/dist/src/code.js.map +1 -1
- package/dist/src/components/Block.d.ts +2 -2
- package/dist/src/components/Block.d.ts.map +1 -1
- package/dist/src/components/Block.js +6 -5
- package/dist/src/components/Block.js.map +1 -1
- package/dist/src/components/Declaration.d.ts +31 -7
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +15 -7
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/For.d.ts +8 -2
- package/dist/src/components/For.d.ts.map +1 -1
- package/dist/src/components/For.js +2 -3
- package/dist/src/components/For.js.map +1 -1
- package/dist/src/components/Indent.d.ts +29 -1
- package/dist/src/components/Indent.d.ts.map +1 -1
- package/dist/src/components/Indent.js +7 -2
- package/dist/src/components/Indent.js.map +1 -1
- package/dist/src/components/List.d.ts +7 -3
- package/dist/src/components/List.d.ts.map +1 -1
- package/dist/src/components/List.js +1 -16
- package/dist/src/components/List.js.map +1 -1
- package/dist/src/components/MemberDeclaration.d.ts +35 -5
- package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
- package/dist/src/components/MemberDeclaration.js +18 -7
- package/dist/src/components/MemberDeclaration.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +2 -0
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js +2 -0
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Prose.d.ts +10 -0
- package/dist/src/components/Prose.d.ts.map +1 -0
- package/dist/src/components/Prose.js +23 -0
- package/dist/src/components/Prose.js.map +1 -0
- package/dist/src/components/Scope.d.ts +33 -2
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js +20 -4
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +5 -0
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +10 -1
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/stc/index.d.ts +19 -95
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +3 -6
- package/dist/src/components/stc/index.js.map +1 -1
- package/dist/src/components/stc/sti.d.ts +9 -0
- package/dist/src/components/stc/sti.d.ts.map +1 -0
- package/dist/src/components/stc/sti.js +10 -0
- package/dist/src/components/stc/sti.js.map +1 -0
- package/dist/src/context/assignment.d.ts +6 -0
- package/dist/src/context/assignment.d.ts.map +1 -1
- package/dist/src/context/assignment.js +7 -0
- package/dist/src/context/assignment.js.map +1 -1
- package/dist/src/context.d.ts +2 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +12 -9
- package/dist/src/context.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +93 -2
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +51 -3
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/stc.d.ts +5 -7
- package/dist/src/stc.d.ts.map +1 -1
- package/dist/src/stc.js +11 -23
- package/dist/src/stc.js.map +1 -1
- package/dist/src/sti.d.ts +11 -0
- package/dist/src/sti.d.ts.map +1 -0
- package/dist/src/sti.js +31 -0
- package/dist/src/sti.js.map +1 -0
- package/dist/src/tap.d.ts +69 -6
- package/dist/src/tap.d.ts.map +1 -1
- package/dist/src/tap.js +70 -0
- package/dist/src/tap.js.map +1 -1
- package/dist/src/utils.d.ts +5 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +20 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/test/components/prose.test.d.ts +2 -0
- package/dist/test/components/prose.test.d.ts.map +1 -0
- package/dist/test/props-with-defaults.test.d.ts +2 -0
- package/dist/test/props-with-defaults.test.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/binder.ts +44 -29
- package/src/code.ts +37 -3
- package/src/components/Block.tsx +3 -6
- package/src/components/Declaration.tsx +43 -11
- package/src/components/For.tsx +16 -4
- package/src/components/Indent.tsx +38 -5
- package/src/components/List.tsx +14 -40
- package/src/components/MemberDeclaration.tsx +51 -12
- package/src/components/MemberScope.tsx +2 -0
- package/src/components/Prose.tsx +35 -0
- package/src/components/Scope.tsx +45 -5
- package/src/components/SourceFile.tsx +10 -0
- package/src/components/index.tsx +1 -0
- package/src/components/stc/index.ts +3 -6
- package/src/components/stc/sti.ts +10 -0
- package/src/context/assignment.ts +7 -1
- package/src/context.ts +15 -11
- package/src/index.ts +3 -0
- package/src/jsx-runtime.ts +168 -3
- package/src/stc.ts +38 -59
- package/src/sti.ts +63 -0
- package/src/tap.ts +69 -6
- package/src/{utils.ts → utils.tsx} +45 -0
- package/temp/api.json +1657 -440
- package/test/components/declaration.test.tsx +1 -1
- package/test/components/prose.test.tsx +36 -0
- package/test/components/source-file.test.tsx +17 -0
- package/test/control-flow/for.test.tsx +17 -0
- package/test/props-with-defaults.test.ts +97 -0
- package/test/symbols.test.ts +0 -25
- package/vitest.config.ts +2 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog - @alloy-js/core
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- [#82](https://github.com/alloy-framework/alloy/pull/82) The For component's each prop now supports iterators.
|
|
8
|
+
- [#80](https://github.com/alloy-framework/alloy/pull/80) Add getSymbolForRefkey to binder.
|
|
9
|
+
- [#80](https://github.com/alloy-framework/alloy/pull/80) isComponentCreator now takes an optional Component parameter which allows you to check if a child is a specific component.
|
|
10
|
+
- [#80](https://github.com/alloy-framework/alloy/pull/80) Export `toRef` and `toRefs` utility functions for constructing refs from reactives.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## 0.8.0
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- [#76](https://github.com/alloy-framework/alloy/pull/76) No longer validates that instance member symbols are referenced inside the instance member scope. Languages may allow refernecing instance member symbols in a variety of ways (e.g. TypeScript allows referencing private instance symbols in a private instance symbol scope).
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) Add metadata record to symbols and scopes for applications to store arbitrary information about them. Various declaration and scope forms have an additional prop to set this metadata.
|
|
22
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) Scope name is now optional. Many scopes don't have names.
|
|
23
|
+
- [#74](https://github.com/alloy-framework/alloy/pull/74) Add `defaultProps` to allow setting default prop values.
|
|
24
|
+
- [#66](https://github.com/alloy-framework/alloy/pull/66) Add `text` helper that processes a string template similar to a JSX template with respect to whitespace handling.
|
|
25
|
+
- [#66](https://github.com/alloy-framework/alloy/pull/66) Add `ProviderStc` to context for providing context inside string template components.
|
|
26
|
+
- [#68](https://github.com/alloy-framework/alloy/pull/68) Add `doubleHardline` as a list joiner boolean prop. Useful for markdown paragraphs or separating declarations with a blank line.
|
|
27
|
+
- [#69](https://github.com/alloy-framework/alloy/pull/69) Add SourceFile `header` prop.
|
|
28
|
+
- [#71](https://github.com/alloy-framework/alloy/pull/71) Add `skipFalsy` prop to `For` component for controlling whether to skip falsy values. Previously this defaulted to true, it now defaults to false (which likely just fixes bugs).
|
|
29
|
+
- [#78](https://github.com/alloy-framework/alloy/pull/78) Add `Prose` component for wrapping string paragraphs at the line width.
|
|
30
|
+
|
|
31
|
+
### Breaking Changes
|
|
32
|
+
|
|
33
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) Refkeys no longer default to `refkey(name)`. This behavior is just not very useful and leads to some very confusing behavior especially when multiple same-named symbols exist within a single emit. The old behavior can be achieved by passing the `refkey={refkey(name)}` prop, but this is not recommended.
|
|
34
|
+
- [#67](https://github.com/alloy-framework/alloy/pull/67) DeclarationProps, MemberDeclarationProps, and ScopeProps are now unions in order to properly type check and document the distinct usages of either passing a symbol or props necessary to construct a symbol. Anyone extending these interfaces will need to make a similar split.
|
|
35
|
+
- [#74](https://github.com/alloy-framework/alloy/pull/74) Remove plural `refkeys` prop. Can now pass an array for the `refkey` prop.
|
|
36
|
+
- [#68](https://github.com/alloy-framework/alloy/pull/68) Indent component no longer takes `break` prop. Instead, pass `hardline`, `softline`, `line`, or `literalline` boolean props.
|
|
37
|
+
|
|
38
|
+
|
|
3
39
|
## 0.7.0
|
|
4
40
|
|
|
5
41
|
### Bug Fixes
|
package/babel.config.cjs
CHANGED
package/dist/src/binder.d.ts
CHANGED
|
@@ -100,6 +100,10 @@ export interface OutputSymbol {
|
|
|
100
100
|
* one static member symbol in the output (i.e., the symbol is unique).
|
|
101
101
|
*/
|
|
102
102
|
staticMemberScope?: OutputScope;
|
|
103
|
+
/**
|
|
104
|
+
* Additional custom metadata about this symbol.
|
|
105
|
+
*/
|
|
106
|
+
metadata: Record<string, unknown>;
|
|
103
107
|
}
|
|
104
108
|
/**
|
|
105
109
|
* Flags that describe an output scope.
|
|
@@ -143,7 +147,7 @@ export interface OutputScope {
|
|
|
143
147
|
* The kind of scope. Subtypes will likely provide a set of known scope kinds.
|
|
144
148
|
* The kind is not used by the binder itself.
|
|
145
149
|
*/
|
|
146
|
-
kind
|
|
150
|
+
kind?: string;
|
|
147
151
|
/**
|
|
148
152
|
* The name of the scope.
|
|
149
153
|
*/
|
|
@@ -185,9 +189,9 @@ export interface OutputScope {
|
|
|
185
189
|
export type CreateSymbolOptions<T extends OutputSymbol = OutputSymbol> = {
|
|
186
190
|
name: string;
|
|
187
191
|
scope?: OutputScope;
|
|
188
|
-
refkey?: Refkey;
|
|
189
|
-
refkeys?: Refkey[];
|
|
192
|
+
refkey?: Refkey | Refkey[];
|
|
190
193
|
flags?: OutputSymbolFlags;
|
|
194
|
+
metadata?: Record<string, unknown>;
|
|
191
195
|
} & Omit<T, keyof OutputSymbol>;
|
|
192
196
|
export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
|
|
193
197
|
kind: T["kind"];
|
|
@@ -195,6 +199,7 @@ export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
|
|
|
195
199
|
parent?: OutputScope | undefined;
|
|
196
200
|
flags?: OutputScopeFlags;
|
|
197
201
|
owner?: OutputSymbol;
|
|
202
|
+
metadata?: Record<string, unknown>;
|
|
198
203
|
} & Omit<T, keyof OutputScope>;
|
|
199
204
|
/**
|
|
200
205
|
* The binder tracks all output scopes and symbols. Scopes are nested containers
|
|
@@ -253,6 +258,7 @@ export interface Binder {
|
|
|
253
258
|
* binder.
|
|
254
259
|
*/
|
|
255
260
|
resolveDeclarationByKey<TScope extends OutputScope = OutputScope, TSymbol extends OutputSymbol = OutputSymbol>(currentScope: TScope | undefined, currentMemberScope: TScope | undefined, key: Refkey): Ref<ResolutionResult<TScope, TSymbol> | undefined>;
|
|
261
|
+
getSymbolForRefkey<TSymbol extends OutputSymbol>(refkey: Refkey): Ref<TSymbol | undefined>;
|
|
256
262
|
/**
|
|
257
263
|
* Find a symbol with a given name in the given scope. Returns a ref
|
|
258
264
|
* for the symbol, such that when the symbol is available, the ref value
|
|
@@ -294,15 +300,11 @@ export interface Binder {
|
|
|
294
300
|
* When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following
|
|
295
301
|
* resolution result:
|
|
296
302
|
*
|
|
297
|
-
* **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
298
|
-
*
|
|
299
|
-
* **
|
|
300
|
-
*
|
|
301
|
-
* **
|
|
302
|
-
*
|
|
303
|
-
* **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
304
|
-
*
|
|
305
|
-
* **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
303
|
+
* * **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
304
|
+
* * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
|
|
305
|
+
* * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
|
|
306
|
+
* * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
307
|
+
* * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
306
308
|
*/
|
|
307
309
|
export interface ResolutionResult<TScope extends OutputScope, TSymbol extends OutputSymbol> {
|
|
308
310
|
/**
|
package/dist/src/binder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,GAAG,EAGJ,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAU,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,IAAI,IAAI;IAER;;;OAGG;IACH,uBAAuB,IAAS;IAEhC;;;OAGG;IACH,qBAAqB,IAAS;IAE9B;;OAEG;IACH,eAAe,IAAkD;IAEjE;;;OAGG;IACH,cAAc,IAAS;IAEvB;;;OAGG;IACH,YAAY,IAAS;IAErB;;OAEG;IACH,MAAM,KAAgC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAElC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"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"}
|
package/dist/src/binder.js
CHANGED
|
@@ -100,15 +100,11 @@ export let OutputScopeFlags = /*#__PURE__*/function (OutputScopeFlags) {
|
|
|
100
100
|
* When we resolve the refkey for `bar` from within `namespace scope 2`, we will get the following
|
|
101
101
|
* resolution result:
|
|
102
102
|
*
|
|
103
|
-
* **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
104
|
-
*
|
|
105
|
-
* **
|
|
106
|
-
*
|
|
107
|
-
* **
|
|
108
|
-
*
|
|
109
|
-
* **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
110
|
-
*
|
|
111
|
-
* **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
103
|
+
* * **targetDeclaration**: symbol bar, the symbol we resolved.
|
|
104
|
+
* * **commonScope**: global scope, because this is the most specific scope that contains both the declaration and the reference.
|
|
105
|
+
* * **pathUp**: [namespace scope 2], because this is the scope between the reference and the common scope.
|
|
106
|
+
* * **pathDown**: [namespace scope 1], because this is the scope between the common scope and the declaration
|
|
107
|
+
* * **memberPath**: [foo, bar], because we resolved a member symbol and these are the symbols that lead from the base declaration to the member symbol.
|
|
112
108
|
*/
|
|
113
109
|
|
|
114
110
|
export function createOutputBinder(options = {}) {
|
|
@@ -117,6 +113,7 @@ export function createOutputBinder(options = {}) {
|
|
|
117
113
|
createSymbol,
|
|
118
114
|
deleteSymbol,
|
|
119
115
|
resolveDeclarationByKey,
|
|
116
|
+
getSymbolForRefkey,
|
|
120
117
|
addStaticMembersToSymbol,
|
|
121
118
|
addInstanceMembersToSymbol,
|
|
122
119
|
instantiateSymbolInto,
|
|
@@ -149,6 +146,7 @@ export function createOutputBinder(options = {}) {
|
|
|
149
146
|
parent,
|
|
150
147
|
owner,
|
|
151
148
|
flags = OutputScopeFlags.None,
|
|
149
|
+
metadata = {},
|
|
152
150
|
...rest
|
|
153
151
|
} = args;
|
|
154
152
|
if (flags & OutputScopeFlags.MemberScope) {
|
|
@@ -179,6 +177,7 @@ export function createOutputBinder(options = {}) {
|
|
|
179
177
|
flags,
|
|
180
178
|
owner,
|
|
181
179
|
binder,
|
|
180
|
+
metadata,
|
|
182
181
|
...rest,
|
|
183
182
|
getSymbolNames: symbolNames(symbols)
|
|
184
183
|
});
|
|
@@ -199,17 +198,11 @@ export function createOutputBinder(options = {}) {
|
|
|
199
198
|
name,
|
|
200
199
|
scope = useDefaultScope(args.flags),
|
|
201
200
|
refkey,
|
|
202
|
-
refkeys,
|
|
203
201
|
flags = OutputSymbolFlags.None,
|
|
202
|
+
metadata = {},
|
|
204
203
|
...rest
|
|
205
204
|
} = args;
|
|
206
|
-
const allRefkeys = [];
|
|
207
|
-
if (refkey) {
|
|
208
|
-
allRefkeys.push(refkey);
|
|
209
|
-
}
|
|
210
|
-
if (refkeys) {
|
|
211
|
-
allRefkeys.push(...refkeys);
|
|
212
|
-
}
|
|
205
|
+
const allRefkeys = [refkey ?? []].flat();
|
|
213
206
|
if (!scope) {
|
|
214
207
|
throw new Error("No scope was provided and no scope could be found in context");
|
|
215
208
|
}
|
|
@@ -228,6 +221,7 @@ export function createOutputBinder(options = {}) {
|
|
|
228
221
|
refkeys: allRefkeys,
|
|
229
222
|
binder,
|
|
230
223
|
flags,
|
|
224
|
+
metadata,
|
|
231
225
|
...rest
|
|
232
226
|
});
|
|
233
227
|
if (args.flags && args.flags & OutputSymbolFlags.InstanceMemberContainer) {
|
|
@@ -280,8 +274,7 @@ export function createOutputBinder(options = {}) {
|
|
|
280
274
|
createSymbol({
|
|
281
275
|
name: sym.name,
|
|
282
276
|
scope: target.instanceMemberScope,
|
|
283
|
-
|
|
284
|
-
refkeys: [refkey(target.refkeys[0], sym.refkeys[0])],
|
|
277
|
+
refkey: [refkey(target.refkeys[0], sym.refkeys[0])],
|
|
285
278
|
flags: sym.flags | OutputSymbolFlags.InstanceMember
|
|
286
279
|
});
|
|
287
280
|
}
|
|
@@ -332,10 +325,6 @@ export function createOutputBinder(options = {}) {
|
|
|
332
325
|
}
|
|
333
326
|
function buildResult(currentScope, currentMemberScope, targetDeclarationBase) {
|
|
334
327
|
if (targetDeclarationBase.flags & OutputSymbolFlags.InstanceMember) {
|
|
335
|
-
if (targetDeclarationBase.scope !== currentMemberScope) {
|
|
336
|
-
throw new Error("Cannot resolve member symbols from a different member scope");
|
|
337
|
-
}
|
|
338
|
-
|
|
339
328
|
// todo: handle referencing nested objects by refkey
|
|
340
329
|
return {
|
|
341
330
|
pathUp: [],
|
|
@@ -405,6 +394,20 @@ export function createOutputBinder(options = {}) {
|
|
|
405
394
|
}
|
|
406
395
|
}
|
|
407
396
|
}
|
|
397
|
+
function getSymbolForRefkey(refkey) {
|
|
398
|
+
const symbol = knownDeclarations.get(refkey);
|
|
399
|
+
if (symbol) {
|
|
400
|
+
return shallowRef(symbol);
|
|
401
|
+
} else {
|
|
402
|
+
if (waitingDeclarations.has(refkey)) {
|
|
403
|
+
return waitingDeclarations.get(refkey);
|
|
404
|
+
} else {
|
|
405
|
+
const declSignal = shallowRef();
|
|
406
|
+
waitingDeclarations.set(refkey, declSignal);
|
|
407
|
+
return declSignal;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
408
411
|
function waitForRefkey(refkey, cb) {
|
|
409
412
|
let declSignal;
|
|
410
413
|
if (waitingDeclarations.has(refkey)) {
|
package/dist/src/binder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useBinder","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","deleteSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","refkeys","allRefkeys","push","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","delete","resolution","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useBinder","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","deleteSymbol","resolveDeclarationByKey","getSymbolForRefkey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","metadata","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","allRefkeys","flat","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","refkeys","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","delete","resolution","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","declSignal","cb","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/src/code.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function
|
|
1
|
+
import { Children } from "./jsx-runtime.js";
|
|
2
|
+
export declare function text(template: TemplateStringsArray, ...substitutions: Children[]): Children;
|
|
3
|
+
/**
|
|
4
|
+
* Turn the provided string template into Children by replacing literal line
|
|
5
|
+
* breaks with hardlines and automatically indenting indented content. Similar
|
|
6
|
+
* in spirit to the `<code>` element in HTML.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link text} for a similar function which treats whitespace similar to
|
|
9
|
+
* JSX template bodies.
|
|
10
|
+
*/
|
|
11
|
+
export declare function code(template: TemplateStringsArray, ...substitutions: Children[]): Children;
|
|
3
12
|
//# sourceMappingURL=code.d.ts.map
|
package/dist/src/code.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,QAAQ,CAmBV;AAQD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,QAAQ,CAiFV"}
|
package/dist/src/code.js
CHANGED
|
@@ -1,7 +1,32 @@
|
|
|
1
1
|
// this code is split into a tokenizer and a parser of sorts because I feel like
|
|
2
|
-
// it should be
|
|
2
|
+
// it should be possible to share logic between this and the babel transform, but
|
|
3
3
|
// this is an exercise for the future.
|
|
4
|
-
import { hbr, indent } from "./components/stc/
|
|
4
|
+
import { hbr, indent } from "./components/stc/sti.js";
|
|
5
|
+
export function text(template, ...substitutions) {
|
|
6
|
+
const children = [];
|
|
7
|
+
// push the literal parts and the substitutions into the children array. The
|
|
8
|
+
// first part has all leading whitespace removed, the last part has all
|
|
9
|
+
// trailing whitespace removed, and each part in the middle replaces any
|
|
10
|
+
// amount of whitespace with a single space.
|
|
11
|
+
|
|
12
|
+
for (let i = 0; i < template.length; i++) {
|
|
13
|
+
let part = template[i];
|
|
14
|
+
part = part.replace(/(^(\s*\r?\n\s*)+)|((\s*\r?\n\s*)+$)/g, "").replace(/(\s*\r?\n\s*)+/g, " ");
|
|
15
|
+
children.push(part);
|
|
16
|
+
if (i < substitutions.length) {
|
|
17
|
+
children.push(substitutions[i]);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return children;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Turn the provided string template into Children by replacing literal line
|
|
24
|
+
* breaks with hardlines and automatically indenting indented content. Similar
|
|
25
|
+
* in spirit to the `<code>` element in HTML.
|
|
26
|
+
*
|
|
27
|
+
* @see {@link text} for a similar function which treats whitespace similar to
|
|
28
|
+
* JSX template bodies.
|
|
29
|
+
*/
|
|
5
30
|
export function code(template, ...substitutions) {
|
|
6
31
|
const indentNodes = [{
|
|
7
32
|
kind: "indent",
|
package/dist/src/code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","names":["hbr","indent","
|
|
1
|
+
{"version":3,"file":"code.js","names":["hbr","indent","text","template","substitutions","children","i","length","part","replace","push","code","indentNodes","kind","pendingLines","child","childTokens","indentationLevel","pushIndent","popIndent","currentIndent","at","line","flushLines","value","childNodesFor","indentNode","map","newIndent","times","pop","str","index","flat","newline","indentStack","level","literalIndent","processLiteralString","undefined","pos","lines","split","lineTokens","match","shift","trimStart","lineNum","entries","lineIndent","startIndent"],"sources":["../../src/code.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -18,8 +18,8 @@ export interface BlockProps {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Create an indented block of source text. The block has `opener` text which is
|
|
21
|
-
* added prior to the block, which defaults to "
|
|
22
|
-
* added after the block, which defaults to "
|
|
21
|
+
* added prior to the block, which defaults to `"{"`, and `closer` text which is
|
|
22
|
+
* added after the block, which defaults to `"}"`.
|
|
23
23
|
*/
|
|
24
24
|
export declare function Block(props: BlockProps): Children;
|
|
25
25
|
//# sourceMappingURL=Block.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,YAYtC"}
|
|
@@ -4,21 +4,22 @@ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
|
4
4
|
import { childrenArray, computed, Indent } from "@alloy-js/core";
|
|
5
5
|
/**
|
|
6
6
|
* Create an indented block of source text. The block has `opener` text which is
|
|
7
|
-
* added prior to the block, which defaults to "
|
|
8
|
-
* added after the block, which defaults to "
|
|
7
|
+
* added prior to the block, which defaults to `"{"`, and `closer` text which is
|
|
8
|
+
* added after the block, which defaults to `"}"`.
|
|
9
9
|
*/
|
|
10
10
|
export function Block(props) {
|
|
11
11
|
const childCount = computed(() => childrenArray(() => props.children).length);
|
|
12
12
|
return _$createIntrinsic("group", {
|
|
13
13
|
get children() {
|
|
14
14
|
return [_$memo(() => _$memo(() => !!props.newline)() && _$createIntrinsic("br", {})), _$memo(() => props.opener ?? "{"), _$createComponent(Indent, {
|
|
15
|
-
get
|
|
16
|
-
return childCount.value
|
|
15
|
+
get softline() {
|
|
16
|
+
return childCount.value === 0;
|
|
17
17
|
},
|
|
18
|
+
trailingBreak: true,
|
|
18
19
|
get children() {
|
|
19
20
|
return props.children;
|
|
20
21
|
}
|
|
21
|
-
}), _$memo(() =>
|
|
22
|
+
}), _$memo(() => props.closer ?? "}")];
|
|
22
23
|
}
|
|
23
24
|
});
|
|
24
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","
|
|
1
|
+
{"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","softline","value","trailingBreak","closer"],"sources":["../../../src/components/Block.tsx"],"sourcesContent":[null],"mappings":";;;AAAA,SAAmBA,aAAa,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,gBAAgB;AAuB1E;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,MAAMC,UAAU,GAAGJ,QAAQ,CAAC,MAAMD,aAAa,CAAC,MAAMI,KAAK,CAACE,QAAQ,CAAC,CAACC,MAAM,CAAC;EAC7E,OAAAC,iBAAA;IAAA,IAAAF,SAAA;MAAA,QAAAG,MAAA,OAEKA,MAAA,SAAAL,KAAK,CAACM,OAAO,OAAAF,iBAAA,UAAU,GAAAC,MAAA,OACvBL,KAAK,CAACO,MAAM,IAAI,GAAG,GAAAC,iBAAA,CACnBV,MAAM;QAAA,IAACW,QAAQA,CAAA;UAAA,OAAER,UAAU,CAACS,KAAK,KAAK,CAAC;QAAA;QAAEC,aAAa;QAAA,IAAAT,SAAA;UAAA,OACpDF,KAAK,CAACE,QAAQ;QAAA;MAAA,IAAAG,MAAA,OAEhBL,KAAK,CAACY,MAAM,IAAI,GAAG;IAAA;EAAA;AAG1B","ignoreList":[]}
|
|
@@ -1,12 +1,37 @@
|
|
|
1
1
|
import { OutputSymbol } from "../binder.js";
|
|
2
2
|
import { Children } from "../jsx-runtime.js";
|
|
3
3
|
import { Refkey } from "../refkey.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Create a declaration by providing an already created symbol. The symbol is
|
|
6
|
+
* merely exposed via {@link DeclarationContext}.
|
|
7
|
+
*/
|
|
8
|
+
export interface DeclarationPropsWithSymbol {
|
|
9
|
+
/**
|
|
10
|
+
* The symbol being declared. When provided, the name, refkey, and metadata
|
|
11
|
+
* props are ignored.
|
|
12
|
+
*/
|
|
13
|
+
symbol: OutputSymbol;
|
|
14
|
+
children?: Children;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a declaration by providing a symbol name and optional symbol metadata.
|
|
18
|
+
*/
|
|
19
|
+
export interface DeclarationPropsWithInfo {
|
|
20
|
+
/**
|
|
21
|
+
* The name of this declaration.
|
|
22
|
+
*/
|
|
23
|
+
name: string;
|
|
24
|
+
/**
|
|
25
|
+
* The unique key or array of unique keys for this declaration.
|
|
26
|
+
*/
|
|
27
|
+
refkey?: Refkey | Refkey[];
|
|
28
|
+
/**
|
|
29
|
+
* Additional metadata for the declared symbol.
|
|
30
|
+
*/
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
8
32
|
children?: Children;
|
|
9
33
|
}
|
|
34
|
+
export type DeclarationProps = DeclarationPropsWithSymbol | DeclarationPropsWithInfo;
|
|
10
35
|
/**
|
|
11
36
|
* Declares a symbol in the current scope for this component's children.
|
|
12
37
|
*
|
|
@@ -15,11 +40,10 @@ export interface DeclarationProps {
|
|
|
15
40
|
* This component must be called in one of two ways: with a name and an optional
|
|
16
41
|
* refkey, or else passing in the symbol. When called with a name and refkey, a
|
|
17
42
|
* symbol will be created in the current scope (provided by
|
|
18
|
-
* {@link ScopeContext}) with that name and refkey.
|
|
19
|
-
* `refkey(props.name)` is used.
|
|
43
|
+
* {@link ScopeContext}) with that name and refkey.
|
|
20
44
|
*
|
|
21
45
|
* When called with a symbol, that symbol is merely exposed via
|
|
22
|
-
* {@link DeclarationContext
|
|
46
|
+
* {@link DeclarationContext}. It is assumed that the caller of this component
|
|
23
47
|
* has created the symbol with the `createSymbol` API on the
|
|
24
48
|
* {@link BinderContext }.
|
|
25
49
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,GACxB,0BAA0B,GAC1B,wBAAwB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YA0BlD"}
|
|
@@ -4,7 +4,16 @@ import { useContext } from "../context.js";
|
|
|
4
4
|
import { BinderContext } from "../context/binder.js";
|
|
5
5
|
import { DeclarationContext } from "../context/declaration.js";
|
|
6
6
|
import { onCleanup } from "../jsx-runtime.js";
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a declaration by providing an already created symbol. The symbol is
|
|
10
|
+
* merely exposed via {@link DeclarationContext}.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Create a declaration by providing a symbol name and optional symbol metadata.
|
|
15
|
+
*/
|
|
16
|
+
|
|
8
17
|
/**
|
|
9
18
|
* Declares a symbol in the current scope for this component's children.
|
|
10
19
|
*
|
|
@@ -13,11 +22,10 @@ import { refkey } from "../refkey.js";
|
|
|
13
22
|
* This component must be called in one of two ways: with a name and an optional
|
|
14
23
|
* refkey, or else passing in the symbol. When called with a name and refkey, a
|
|
15
24
|
* symbol will be created in the current scope (provided by
|
|
16
|
-
* {@link ScopeContext}) with that name and refkey.
|
|
17
|
-
* `refkey(props.name)` is used.
|
|
25
|
+
* {@link ScopeContext}) with that name and refkey.
|
|
18
26
|
*
|
|
19
27
|
* When called with a symbol, that symbol is merely exposed via
|
|
20
|
-
* {@link DeclarationContext
|
|
28
|
+
* {@link DeclarationContext}. It is assumed that the caller of this component
|
|
21
29
|
* has created the symbol with the `createSymbol` API on the
|
|
22
30
|
* {@link BinderContext }.
|
|
23
31
|
*
|
|
@@ -29,13 +37,13 @@ export function Declaration(props) {
|
|
|
29
37
|
throw new Error("Need binder context to create declarations");
|
|
30
38
|
}
|
|
31
39
|
let declaration;
|
|
32
|
-
if (props
|
|
40
|
+
if ("symbol" in props) {
|
|
33
41
|
declaration = props.symbol;
|
|
34
42
|
} else {
|
|
35
|
-
const rk = props.refkey ? props.refkey : refkey(props.name);
|
|
36
43
|
declaration = binder.createSymbol({
|
|
37
44
|
name: props.name,
|
|
38
|
-
refkey:
|
|
45
|
+
refkey: props.refkey,
|
|
46
|
+
metadata: props.metadata
|
|
39
47
|
});
|
|
40
48
|
onCleanup(() => {
|
|
41
49
|
binder.deleteSymbol(declaration);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","onCleanup","
|
|
1
|
+
{"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","onCleanup","Declaration","props","binder","Error","declaration","symbol","createSymbol","name","refkey","metadata","deleteSymbol","_$createComponent","Provider","value","children"],"sources":["../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAAmBC,SAAS,QAAQ,mBAAmB;;AAGvD;AACA;AACA;AACA;;AAWA;AACA;AACA;;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,MAAM,GAAGN,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACK,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,IAAIC,WAAW;EACf,IAAI,QAAQ,IAAIH,KAAK,EAAE;IACrBG,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACLD,WAAW,GAAGF,MAAM,CAACI,YAAY,CAAC;MAChCC,IAAI,EAAEN,KAAK,CAACM,IAAK;MACjBC,MAAM,EAAEP,KAAK,CAACO,MAAM;MACpBC,QAAQ,EAAER,KAAK,CAACQ;IAClB,CAAC,CAAC;IAEFV,SAAS,CAAC,MAAM;MACdG,MAAM,CAACQ,YAAY,CAACN,WAAY,CAAC;IACnC,CAAC,CAAC;EACJ;EAEA,OAAAO,iBAAA,CACGb,kBAAkB,CAACc,QAAQ;IAACC,KAAK,EAAET,WAAW;IAAA,IAAAU,SAAA;MAAA,OAC5Cb,KAAK,CAACa,QAAQ;IAAA;EAAA;AAGrB","ignoreList":[]}
|