@toyz/loom 0.19.9 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +67 -5
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +144 -12
- package/dist/app.js.map +1 -1
- package/dist/di/decorators.d.ts +3 -51
- package/dist/di/decorators.d.ts.map +1 -1
- package/dist/di/decorators.js +3 -73
- package/dist/di/decorators.js.map +1 -1
- package/dist/di/index.d.ts +4 -3
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/index.js +5 -4
- package/dist/di/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/router/mode.d.ts.map +1 -1
- package/dist/router/mode.js +7 -1
- package/dist/router/mode.js.map +1 -1
- package/package.json +1 -1
package/dist/app.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loom — Application entry point
|
|
2
|
+
* Loom — Application entry point + DI container
|
|
3
3
|
*
|
|
4
4
|
* Boots the render loop, instantiates @service singletons,
|
|
5
5
|
* runs @factory methods, and registers @component custom elements.
|
|
6
|
+
* Also exports DI decorators: @service, @inject, @maybe, @factory.
|
|
6
7
|
*
|
|
7
8
|
* ```ts
|
|
8
|
-
* import { app } from "loom";
|
|
9
|
+
* import { app, service, inject } from "loom";
|
|
9
10
|
*
|
|
10
11
|
* app
|
|
11
12
|
* .use(natsConnection)
|
|
@@ -54,6 +55,14 @@ declare class LoomApp {
|
|
|
54
55
|
get<T = any>(key: any): T;
|
|
55
56
|
/** Retrieve a provider/service — returns LoomResult instead of undefined. */
|
|
56
57
|
maybe<T = any>(key: any): LoomResult<T, Error>;
|
|
58
|
+
/** Check if a provider is registered. */
|
|
59
|
+
has(key: any): boolean;
|
|
60
|
+
/** Replace an existing provider. Useful for testing / hot-swap. */
|
|
61
|
+
replace<T = any>(key: any, value: T): this;
|
|
62
|
+
/** Full container reset — providers, services, factories, components. */
|
|
63
|
+
reset(): void;
|
|
64
|
+
/** List all registered provider keys (debug / inspection). */
|
|
65
|
+
keys(): any[];
|
|
57
66
|
/** Resolve @inject parameter metadata for a constructor or method. */
|
|
58
67
|
private resolveParams;
|
|
59
68
|
/**
|
|
@@ -64,15 +73,15 @@ declare class LoomApp {
|
|
|
64
73
|
* 4. Register all @component custom elements
|
|
65
74
|
*/
|
|
66
75
|
start(): Promise<void>;
|
|
67
|
-
/** Tear down — call stop() on lifecycle-aware
|
|
76
|
+
/** Tear down — call stop() on lifecycle-aware providers (reverse order), then stop render loop */
|
|
68
77
|
stop(): void;
|
|
69
78
|
/**
|
|
70
|
-
* Call suspend() on all lifecycle-aware
|
|
79
|
+
* Call suspend() on all lifecycle-aware providers.
|
|
71
80
|
* Invoked automatically on `visibilitychange` (tab hidden), or manually.
|
|
72
81
|
*/
|
|
73
82
|
suspend(): void;
|
|
74
83
|
/**
|
|
75
|
-
* Call resume() on all lifecycle-aware
|
|
84
|
+
* Call resume() on all lifecycle-aware providers.
|
|
76
85
|
* Invoked automatically on `visibilitychange` (tab visible), or manually.
|
|
77
86
|
*/
|
|
78
87
|
resume(): void;
|
|
@@ -84,4 +93,57 @@ declare class LoomApp {
|
|
|
84
93
|
/** Module-level singleton — the Loom app instance */
|
|
85
94
|
export declare const app: LoomApp;
|
|
86
95
|
export type { LoomApp };
|
|
96
|
+
/**
|
|
97
|
+
* Auto-instantiated singleton. Registered on app.start().
|
|
98
|
+
* Optionally accepts a minification-safe name.
|
|
99
|
+
*
|
|
100
|
+
* ```ts
|
|
101
|
+
* @service
|
|
102
|
+
* class BookmarkStore extends CollectionStore<Bookmark> { ... }
|
|
103
|
+
*
|
|
104
|
+
* @service("UserService")
|
|
105
|
+
* class UserService { ... }
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export declare const service: (name?: string | undefined) => (value: Function, context: ClassDecoratorContext) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Resolve the display name for a service class.
|
|
111
|
+
* Returns the @service("name") value if present, otherwise class.name.
|
|
112
|
+
*/
|
|
113
|
+
export declare function resolveServiceName(cls: new (...args: any[]) => any): string;
|
|
114
|
+
/**
|
|
115
|
+
* Property-mode dependency injection via auto-accessor.
|
|
116
|
+
* Resolves lazily from the DI container on first access.
|
|
117
|
+
* Throws if the provider is not registered — use @maybe for optional.
|
|
118
|
+
*
|
|
119
|
+
* ```ts
|
|
120
|
+
* @inject(AuthService) accessor auth!: AuthService;
|
|
121
|
+
* @inject("AuthService") accessor auth!: AuthService;
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare function inject<T = unknown>(key: (new (...args: unknown[]) => T) | string): <This extends object>(_target: ClassAccessorDecoratorTarget<This, T>, _context: ClassAccessorDecoratorContext<This, T>) => ClassAccessorDecoratorResult<This, T>;
|
|
125
|
+
/**
|
|
126
|
+
* Optional dependency injection. Returns `undefined` if the provider
|
|
127
|
+
* is not registered, instead of throwing.
|
|
128
|
+
*
|
|
129
|
+
* ```ts
|
|
130
|
+
* @maybe(AnalyticsService) accessor analytics?: AnalyticsService;
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export declare function maybe<T = unknown>(key: (new (...args: unknown[]) => T) | string): <This extends object>(_target: ClassAccessorDecoratorTarget<This, T | undefined>, _context: ClassAccessorDecoratorContext<This, T | undefined>) => ClassAccessorDecoratorResult<This, T | undefined>;
|
|
134
|
+
/**
|
|
135
|
+
* Method decorator on @service classes.
|
|
136
|
+
* Return value is registered as a provider on app.start().
|
|
137
|
+
*
|
|
138
|
+
* ```ts
|
|
139
|
+
* @service
|
|
140
|
+
* class Boot {
|
|
141
|
+
* @factory(ChatServiceNatsClient)
|
|
142
|
+
* createChat() {
|
|
143
|
+
* return new ChatServiceNatsClient(app.get(NatsConnection));
|
|
144
|
+
* }
|
|
145
|
+
* }
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
export declare const factory: (key?: unknown) => (method: Function, context: ClassMethodDecoratorContext) => void;
|
|
87
149
|
//# sourceMappingURL=app.d.ts.map
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loom — Application entry point
|
|
2
|
+
* Loom — Application entry point + DI container
|
|
3
3
|
*
|
|
4
4
|
* Boots the render loop, instantiates @service singletons,
|
|
5
5
|
* runs @factory methods, and registers @component custom elements.
|
|
6
|
+
* Also exports DI decorators: @service, @inject, @maybe, @factory.
|
|
6
7
|
*
|
|
7
8
|
* ```ts
|
|
8
|
-
* import { app } from "loom";
|
|
9
|
+
* import { app, service, inject } from "loom";
|
|
9
10
|
*
|
|
10
11
|
* app
|
|
11
12
|
* .use(natsConnection)
|
|
@@ -15,6 +16,7 @@
|
|
|
15
16
|
*/
|
|
16
17
|
import { renderLoop } from "./render-loop";
|
|
17
18
|
import { INJECT_PARAMS, ON_HANDLERS, SERVICE_NAME } from "./decorators/symbols";
|
|
19
|
+
import { createDecorator } from "./decorators/create";
|
|
18
20
|
import { bus } from "./bus";
|
|
19
21
|
import { LoomResult } from "./result";
|
|
20
22
|
import { hasStart, hasStop, hasSuspend, hasResume } from "./lifecycle";
|
|
@@ -64,7 +66,9 @@ class LoomApp {
|
|
|
64
66
|
// ── Registration (called by decorators) ──
|
|
65
67
|
/** Queue a @service class for auto-instantiation on start() */
|
|
66
68
|
registerService(ctor) {
|
|
67
|
-
this.services.
|
|
69
|
+
if (!this.services.includes(ctor)) {
|
|
70
|
+
this.services.push(ctor);
|
|
71
|
+
}
|
|
68
72
|
}
|
|
69
73
|
/** Queue a @factory method for invocation on start() */
|
|
70
74
|
registerFactory(key, info) {
|
|
@@ -95,6 +99,31 @@ class LoomApp {
|
|
|
95
99
|
return LoomResult.ok(v);
|
|
96
100
|
return LoomResult.err(new Error(`[loom] no provider for ${key?.name ?? key}`));
|
|
97
101
|
}
|
|
102
|
+
/** Check if a provider is registered. */
|
|
103
|
+
has(key) {
|
|
104
|
+
return this.providers.has(key);
|
|
105
|
+
}
|
|
106
|
+
/** Replace an existing provider. Useful for testing / hot-swap. */
|
|
107
|
+
replace(key, value) {
|
|
108
|
+
this.providers.set(key, value);
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
/** Full container reset — providers, services, factories, components. */
|
|
112
|
+
reset() {
|
|
113
|
+
this.providers.clear();
|
|
114
|
+
this.services.length = 0;
|
|
115
|
+
this.factories.length = 0;
|
|
116
|
+
this.components.length = 0;
|
|
117
|
+
this._started = false;
|
|
118
|
+
if (this._visibilityCleanup) {
|
|
119
|
+
this._visibilityCleanup();
|
|
120
|
+
this._visibilityCleanup = null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** List all registered provider keys (debug / inspection). */
|
|
124
|
+
keys() {
|
|
125
|
+
return [...this.providers.keys()];
|
|
126
|
+
}
|
|
98
127
|
/** Resolve @inject parameter metadata for a constructor or method. */
|
|
99
128
|
resolveParams(proto, method) {
|
|
100
129
|
const meta = proto?.[INJECT_PARAMS.key] ?? [];
|
|
@@ -148,6 +177,14 @@ class LoomApp {
|
|
|
148
177
|
this.providers.set(key ?? result.constructor, result);
|
|
149
178
|
}
|
|
150
179
|
}
|
|
180
|
+
// 2b. Call start() on app.use() providers that implement LoomLifecycle
|
|
181
|
+
// (skip @service instances — already started in step 1)
|
|
182
|
+
const serviceInstances = new Set(this.services.map((s) => this.providers.get(s)));
|
|
183
|
+
for (const instance of this.providers.values()) {
|
|
184
|
+
if (!serviceInstances.has(instance) && hasStart(instance)) {
|
|
185
|
+
await instance.start();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
151
188
|
// 3. Start render loop
|
|
152
189
|
renderLoop.start();
|
|
153
190
|
// 4. Register all queued custom elements
|
|
@@ -160,7 +197,7 @@ class LoomApp {
|
|
|
160
197
|
this._wireVisibility();
|
|
161
198
|
this._started = true;
|
|
162
199
|
}
|
|
163
|
-
/** Tear down — call stop() on lifecycle-aware
|
|
200
|
+
/** Tear down — call stop() on lifecycle-aware providers (reverse order), then stop render loop */
|
|
164
201
|
stop() {
|
|
165
202
|
// Remove visibilitychange listener
|
|
166
203
|
if (this._visibilityCleanup) {
|
|
@@ -168,33 +205,37 @@ class LoomApp {
|
|
|
168
205
|
this._visibilityCleanup = null;
|
|
169
206
|
}
|
|
170
207
|
// LoomLifecycle — call stop() in reverse registration order
|
|
208
|
+
const serviceInstances = new Set(this.services.map((s) => this.providers.get(s)));
|
|
171
209
|
for (const Svc of [...this.services].reverse()) {
|
|
172
210
|
const instance = this.providers.get(Svc);
|
|
173
211
|
if (instance && hasStop(instance))
|
|
174
212
|
instance.stop();
|
|
175
213
|
}
|
|
214
|
+
// Also call stop() on app.use() providers
|
|
215
|
+
for (const instance of this.providers.values()) {
|
|
216
|
+
if (!serviceInstances.has(instance) && hasStop(instance))
|
|
217
|
+
instance.stop();
|
|
218
|
+
}
|
|
176
219
|
renderLoop.stop();
|
|
177
220
|
this._started = false;
|
|
178
221
|
}
|
|
179
222
|
/**
|
|
180
|
-
* Call suspend() on all lifecycle-aware
|
|
223
|
+
* Call suspend() on all lifecycle-aware providers.
|
|
181
224
|
* Invoked automatically on `visibilitychange` (tab hidden), or manually.
|
|
182
225
|
*/
|
|
183
226
|
suspend() {
|
|
184
|
-
for (const
|
|
185
|
-
|
|
186
|
-
if (instance && hasSuspend(instance))
|
|
227
|
+
for (const instance of this.providers.values()) {
|
|
228
|
+
if (hasSuspend(instance))
|
|
187
229
|
instance.suspend();
|
|
188
230
|
}
|
|
189
231
|
}
|
|
190
232
|
/**
|
|
191
|
-
* Call resume() on all lifecycle-aware
|
|
233
|
+
* Call resume() on all lifecycle-aware providers.
|
|
192
234
|
* Invoked automatically on `visibilitychange` (tab visible), or manually.
|
|
193
235
|
*/
|
|
194
236
|
resume() {
|
|
195
|
-
for (const
|
|
196
|
-
|
|
197
|
-
if (instance && hasResume(instance))
|
|
237
|
+
for (const instance of this.providers.values()) {
|
|
238
|
+
if (hasResume(instance))
|
|
198
239
|
instance.resume();
|
|
199
240
|
}
|
|
200
241
|
}
|
|
@@ -218,4 +259,95 @@ class LoomApp {
|
|
|
218
259
|
}
|
|
219
260
|
/** Module-level singleton — the Loom app instance */
|
|
220
261
|
export const app = new LoomApp();
|
|
262
|
+
// ── DI decorators (merged from di/decorators.ts) ──
|
|
263
|
+
/**
|
|
264
|
+
* Auto-instantiated singleton. Registered on app.start().
|
|
265
|
+
* Optionally accepts a minification-safe name.
|
|
266
|
+
*
|
|
267
|
+
* ```ts
|
|
268
|
+
* @service
|
|
269
|
+
* class BookmarkStore extends CollectionStore<Bookmark> { ... }
|
|
270
|
+
*
|
|
271
|
+
* @service("UserService")
|
|
272
|
+
* class UserService { ... }
|
|
273
|
+
* ```
|
|
274
|
+
*/
|
|
275
|
+
export const service = createDecorator((ctor, name) => {
|
|
276
|
+
if (name)
|
|
277
|
+
ctor[SERVICE_NAME.key] = name;
|
|
278
|
+
// Duplicate guard — skip if already queued
|
|
279
|
+
if (!app.services.includes(ctor)) {
|
|
280
|
+
app.registerService(ctor);
|
|
281
|
+
}
|
|
282
|
+
}, { class: true });
|
|
283
|
+
/**
|
|
284
|
+
* Resolve the display name for a service class.
|
|
285
|
+
* Returns the @service("name") value if present, otherwise class.name.
|
|
286
|
+
*/
|
|
287
|
+
export function resolveServiceName(cls) {
|
|
288
|
+
return cls[SERVICE_NAME.key] ?? cls.name;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Property-mode dependency injection via auto-accessor.
|
|
292
|
+
* Resolves lazily from the DI container on first access.
|
|
293
|
+
* Throws if the provider is not registered — use @maybe for optional.
|
|
294
|
+
*
|
|
295
|
+
* ```ts
|
|
296
|
+
* @inject(AuthService) accessor auth!: AuthService;
|
|
297
|
+
* @inject("AuthService") accessor auth!: AuthService;
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export function inject(key) {
|
|
301
|
+
return (_target, _context) => {
|
|
302
|
+
return {
|
|
303
|
+
get() {
|
|
304
|
+
return app.get(key);
|
|
305
|
+
},
|
|
306
|
+
set(_val) {
|
|
307
|
+
if (typeof console !== "undefined") {
|
|
308
|
+
console.warn(`[loom] Cannot set @inject property — injection is read-only.`);
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Optional dependency injection. Returns `undefined` if the provider
|
|
316
|
+
* is not registered, instead of throwing.
|
|
317
|
+
*
|
|
318
|
+
* ```ts
|
|
319
|
+
* @maybe(AnalyticsService) accessor analytics?: AnalyticsService;
|
|
320
|
+
* ```
|
|
321
|
+
*/
|
|
322
|
+
export function maybe(key) {
|
|
323
|
+
return (_target, _context) => {
|
|
324
|
+
return {
|
|
325
|
+
get() {
|
|
326
|
+
return app.has(key) ? app.get(key) : undefined;
|
|
327
|
+
},
|
|
328
|
+
set(_val) {
|
|
329
|
+
if (typeof console !== "undefined") {
|
|
330
|
+
console.warn(`[loom] Cannot set @maybe property — injection is read-only.`);
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Method decorator on @service classes.
|
|
338
|
+
* Return value is registered as a provider on app.start().
|
|
339
|
+
*
|
|
340
|
+
* ```ts
|
|
341
|
+
* @service
|
|
342
|
+
* class Boot {
|
|
343
|
+
* @factory(ChatServiceNatsClient)
|
|
344
|
+
* createChat() {
|
|
345
|
+
* return new ChatServiceNatsClient(app.get(NatsConnection));
|
|
346
|
+
* }
|
|
347
|
+
* }
|
|
348
|
+
* ```
|
|
349
|
+
*/
|
|
350
|
+
export const factory = createDecorator((method, methodName, key) => {
|
|
351
|
+
app.registerFactory(key, { method: methodName, fn: method });
|
|
352
|
+
});
|
|
221
353
|
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/di/decorators.d.ts
CHANGED
|
@@ -1,55 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loom — DI decorators (
|
|
2
|
+
* Loom — DI decorators (deprecated — now lives in app.ts)
|
|
3
3
|
*
|
|
4
|
-
* @
|
|
5
|
-
* Optionally accepts a minification-safe name: @service("MyService")
|
|
6
|
-
* @inject — Auto-accessor dependency injection (property mode only)
|
|
7
|
-
* @factory — Method decorator, return value registered as a provider
|
|
8
|
-
*
|
|
9
|
-
* Note: TC39 does not support parameter decorators.
|
|
10
|
-
* Use @inject as a property accessor: `@inject(Foo) accessor foo!: Foo;`
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Auto-instantiated singleton. Registered on app.start().
|
|
14
|
-
* Optionally accepts a minification-safe name.
|
|
15
|
-
*
|
|
16
|
-
* ```ts
|
|
17
|
-
* @service
|
|
18
|
-
* class BookmarkStore extends CollectionStore<Bookmark> { ... }
|
|
19
|
-
*
|
|
20
|
-
* @service("UserService")
|
|
21
|
-
* class UserService { ... }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export declare const service: (name?: string | undefined) => (value: Function, context: ClassDecoratorContext) => void;
|
|
25
|
-
/**
|
|
26
|
-
* Resolve the display name for a service class.
|
|
27
|
-
* Returns the @service("name") value if present, otherwise class.name.
|
|
28
|
-
*/
|
|
29
|
-
export declare function resolveServiceName(cls: new (...args: any[]) => any): string;
|
|
30
|
-
/**
|
|
31
|
-
* Property-mode dependency injection via auto-accessor.
|
|
32
|
-
* Resolves lazily from the DI container on first access.
|
|
33
|
-
*
|
|
34
|
-
* ```ts
|
|
35
|
-
* @inject(AuthService) accessor auth!: AuthService;
|
|
36
|
-
* @inject("AuthService") accessor auth!: AuthService;
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export declare function inject<T = unknown>(key: (new (...args: unknown[]) => T) | string): <This extends object>(_target: ClassAccessorDecoratorTarget<This, T>, _context: ClassAccessorDecoratorContext<This, T>) => ClassAccessorDecoratorResult<This, T>;
|
|
40
|
-
/**
|
|
41
|
-
* Method decorator on @service classes.
|
|
42
|
-
* Return value is registered as a provider on app.start().
|
|
43
|
-
*
|
|
44
|
-
* ```ts
|
|
45
|
-
* @service
|
|
46
|
-
* class Boot {
|
|
47
|
-
* @factory(ChatServiceNatsClient)
|
|
48
|
-
* createChat() {
|
|
49
|
-
* return new ChatServiceNatsClient(app.get(NatsConnection));
|
|
50
|
-
* }
|
|
51
|
-
* }
|
|
52
|
-
* ```
|
|
4
|
+
* @deprecated Import from "@toyz/loom" directly.
|
|
53
5
|
*/
|
|
54
|
-
export
|
|
6
|
+
export { service, resolveServiceName, inject, maybe, factory } from "../app";
|
|
55
7
|
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/di/decorators.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/di/decorators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/di/decorators.js
CHANGED
|
@@ -1,77 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loom — DI decorators (
|
|
2
|
+
* Loom — DI decorators (deprecated — now lives in app.ts)
|
|
3
3
|
*
|
|
4
|
-
* @
|
|
5
|
-
* Optionally accepts a minification-safe name: @service("MyService")
|
|
6
|
-
* @inject — Auto-accessor dependency injection (property mode only)
|
|
7
|
-
* @factory — Method decorator, return value registered as a provider
|
|
8
|
-
*
|
|
9
|
-
* Note: TC39 does not support parameter decorators.
|
|
10
|
-
* Use @inject as a property accessor: `@inject(Foo) accessor foo!: Foo;`
|
|
11
|
-
*/
|
|
12
|
-
import { app } from "../app";
|
|
13
|
-
import { createDecorator } from "../decorators/create";
|
|
14
|
-
import { SERVICE_NAME } from "../decorators/symbols";
|
|
15
|
-
/**
|
|
16
|
-
* Auto-instantiated singleton. Registered on app.start().
|
|
17
|
-
* Optionally accepts a minification-safe name.
|
|
18
|
-
*
|
|
19
|
-
* ```ts
|
|
20
|
-
* @service
|
|
21
|
-
* class BookmarkStore extends CollectionStore<Bookmark> { ... }
|
|
22
|
-
*
|
|
23
|
-
* @service("UserService")
|
|
24
|
-
* class UserService { ... }
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export const service = createDecorator((ctor, name) => {
|
|
28
|
-
if (name)
|
|
29
|
-
ctor[SERVICE_NAME.key] = name;
|
|
30
|
-
app.registerService(ctor);
|
|
31
|
-
}, { class: true });
|
|
32
|
-
/**
|
|
33
|
-
* Resolve the display name for a service class.
|
|
34
|
-
* Returns the @service("name") value if present, otherwise class.name.
|
|
35
|
-
*/
|
|
36
|
-
export function resolveServiceName(cls) {
|
|
37
|
-
return cls[SERVICE_NAME.key] ?? cls.name;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Property-mode dependency injection via auto-accessor.
|
|
41
|
-
* Resolves lazily from the DI container on first access.
|
|
42
|
-
*
|
|
43
|
-
* ```ts
|
|
44
|
-
* @inject(AuthService) accessor auth!: AuthService;
|
|
45
|
-
* @inject("AuthService") accessor auth!: AuthService;
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
export function inject(key) {
|
|
49
|
-
return (_target, _context) => {
|
|
50
|
-
return {
|
|
51
|
-
get() {
|
|
52
|
-
return app.get(key);
|
|
53
|
-
},
|
|
54
|
-
set(_val) {
|
|
55
|
-
// Injection is read-only
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Method decorator on @service classes.
|
|
62
|
-
* Return value is registered as a provider on app.start().
|
|
63
|
-
*
|
|
64
|
-
* ```ts
|
|
65
|
-
* @service
|
|
66
|
-
* class Boot {
|
|
67
|
-
* @factory(ChatServiceNatsClient)
|
|
68
|
-
* createChat() {
|
|
69
|
-
* return new ChatServiceNatsClient(app.get(NatsConnection));
|
|
70
|
-
* }
|
|
71
|
-
* }
|
|
72
|
-
* ```
|
|
4
|
+
* @deprecated Import from "@toyz/loom" directly.
|
|
73
5
|
*/
|
|
74
|
-
export
|
|
75
|
-
app.registerFactory(key, { method: methodName, fn: method });
|
|
76
|
-
});
|
|
6
|
+
export { service, resolveServiceName, inject, maybe, factory } from "../app";
|
|
77
7
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/di/decorators.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/di/decorators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
package/dist/di/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loom DI —
|
|
2
|
+
* Loom DI — Deprecated barrel (re-exports from app.ts)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* @deprecated Import from "@toyz/loom" or "@toyz/loom/store" instead.
|
|
5
|
+
* This subpath is kept for backwards compatibility.
|
|
5
6
|
*/
|
|
6
|
-
export { service, resolveServiceName, inject, factory } from "
|
|
7
|
+
export { service, resolveServiceName, inject, maybe, factory } from "../app";
|
|
7
8
|
export { SERVICE_NAME } from "../decorators/symbols";
|
|
8
9
|
export { watch } from "./watch";
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/di/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/di/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Loom DI —
|
|
2
|
+
* Loom DI — Deprecated barrel (re-exports from app.ts)
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* @deprecated Import from "@toyz/loom" or "@toyz/loom/store" instead.
|
|
5
|
+
* This subpath is kept for backwards compatibility.
|
|
5
6
|
*/
|
|
6
|
-
// DI decorators
|
|
7
|
-
export { service, resolveServiceName, inject, factory } from "
|
|
7
|
+
// DI decorators (now live in app.ts)
|
|
8
|
+
export { service, resolveServiceName, inject, maybe, factory } from "../app";
|
|
8
9
|
export { SERVICE_NAME } from "../decorators/symbols";
|
|
9
10
|
// DI-aware watch
|
|
10
11
|
export { watch } from "./watch";
|
package/dist/di/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,iBAAiB;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @toyz/loom/element — form, lazy, slot, transition, hotkey, portal, log, provide, consume, etc.
|
|
10
10
|
* @toyz/loom/query — api, intercept, createApiState
|
|
11
11
|
*/
|
|
12
|
-
export { app } from "./app";
|
|
12
|
+
export { app, service, inject, maybe, factory, resolveServiceName } from "./app";
|
|
13
13
|
export type { LoomApp } from "./app";
|
|
14
14
|
export { LoomEvent } from "./event";
|
|
15
15
|
export { EventBus, bus, useBus } from "./bus";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACjF,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGrC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAI1E,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAC9C,KAAK,aAAa,EAAE,KAAK,gBAAgB,EACzC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GACtD,MAAM,WAAW,CAAC;AAInB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* @toyz/loom/element — form, lazy, slot, transition, hotkey, portal, log, provide, consume, etc.
|
|
10
10
|
* @toyz/loom/query — api, intercept, createApiState
|
|
11
11
|
*/
|
|
12
|
-
// App entry point
|
|
13
|
-
export { app } from "./app";
|
|
12
|
+
// App entry point + DI
|
|
13
|
+
export { app, service, inject, maybe, factory, resolveServiceName } from "./app";
|
|
14
14
|
// Event system
|
|
15
15
|
export { LoomEvent } from "./event";
|
|
16
16
|
export { EventBus, bus, useBus } from "./bus";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,uBAAuB;AACvB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGjF,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG9C,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,wDAAwD;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,4EAA4E;AAE5E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE1E,8CAA8C;AAE9C,OAAO,EACL,WAAW,EACX,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAE9C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAC/B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,GACtD,MAAM,WAAW,CAAC;AAEnB,+CAA+C;AAE/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpG,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/router/mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,IAAI,IAAI,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yEAAyE;IACzE,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACnC,wCAAwC;IACxC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,qBAAa,QAAS,YAAW,UAAU;IACzC,IAAI,IAAI,MAAM;IAId,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;
|
|
1
|
+
{"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/router/mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,IAAI,IAAI,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yEAAyE;IACzE,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACnC,wCAAwC;IACxC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,qBAAa,QAAS,YAAW,UAAU;IACzC,IAAI,IAAI,MAAM;IAId,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAWlC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG3B;AAED,qBAAa,WAAY,YAAW,UAAU;IAC5C,IAAI,IAAI,MAAM;IAId,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKlC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAG3B"}
|
package/dist/router/mode.js
CHANGED
|
@@ -21,8 +21,14 @@ export class HashMode {
|
|
|
21
21
|
history.replaceState(null, "", url);
|
|
22
22
|
}
|
|
23
23
|
listen(cb) {
|
|
24
|
+
// hashchange: handles direct hash assignment (e.g. location.hash = "#/foo")
|
|
25
|
+
// popstate: handles back/forward from pushState-based navigation
|
|
24
26
|
window.addEventListener("hashchange", cb);
|
|
25
|
-
|
|
27
|
+
window.addEventListener("popstate", cb);
|
|
28
|
+
return () => {
|
|
29
|
+
window.removeEventListener("hashchange", cb);
|
|
30
|
+
window.removeEventListener("popstate", cb);
|
|
31
|
+
};
|
|
26
32
|
}
|
|
27
33
|
href(path) {
|
|
28
34
|
return `#${path}`;
|
package/dist/router/mode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/router/mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,OAAO,QAAQ;IACnB,IAAI;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,8EAA8E;QAC9E,uEAAuE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,EAAc;QACnB,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/router/mode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,OAAO,QAAQ;IACnB,IAAI;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,8EAA8E;QAC9E,uEAAuE;QACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,EAAc;QACnB,4EAA4E;QAC5E,iEAAiE;QACjE,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACtB,IAAI;QACF,OAAO,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,uEAAuE;QACvE,qEAAqE;QACrE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,EAAc;QACnB,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|