@bluelibs/runner 3.1.0 → 3.2.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/README.md +206 -10
- package/dist/define.d.ts +1 -1
- package/dist/define.js +3 -2
- package/dist/define.js.map +1 -1
- package/dist/defs.d.ts +13 -1
- package/dist/models/EventManager.js +9 -0
- package/dist/models/EventManager.js.map +1 -1
- package/dist/models/StoreRegistry.js +1 -1
- package/dist/models/StoreRegistry.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/globalEvents.test.ts +419 -1
- package/src/__tests__/recursion/README.md +3 -0
- package/src/__tests__/recursion/a.resource.ts +25 -0
- package/src/__tests__/recursion/b.resource.ts +33 -0
- package/src/__tests__/recursion/c.resource.ts +18 -0
- package/src/__tests__/run.dynamic-register-and-dependencies.test.ts +1185 -0
- package/src/define.ts +4 -3
- package/src/defs.ts +13 -1
- package/src/models/EventManager.ts +11 -0
- package/src/models/StoreRegistry.ts +1 -1
package/README.md
CHANGED
|
@@ -296,6 +296,43 @@ const taskLogger = task({
|
|
|
296
296
|
});
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
+
#### Event Propagation Control with stopPropagation()
|
|
300
|
+
|
|
301
|
+
Sometimes you need to prevent other event listeners from processing an event. The `stopPropagation()` method gives you fine-grained control over event flow:
|
|
302
|
+
|
|
303
|
+
```typescript
|
|
304
|
+
const criticalAlert = event<{
|
|
305
|
+
severity: "low" | "medium" | "high" | "critical";
|
|
306
|
+
}>({
|
|
307
|
+
id: "app.events.alert",
|
|
308
|
+
meta: {
|
|
309
|
+
title: "System Alert Event",
|
|
310
|
+
description: "Emitted when system issues are detected",
|
|
311
|
+
tags: ["monitoring", "alerts"],
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
// High-priority handler that can stop propagation
|
|
316
|
+
const emergencyHandler = task({
|
|
317
|
+
id: "app.tasks.emergencyHandler",
|
|
318
|
+
on: criticalAlert, // Works with global events too
|
|
319
|
+
listenerOrder: -100, // Higher priority (lower numbers run first)
|
|
320
|
+
run: async (event) => {
|
|
321
|
+
console.log(`Alert received: ${event.data.severity}`);
|
|
322
|
+
|
|
323
|
+
if (event.data.severity === "critical") {
|
|
324
|
+
console.log("🚨 CRITICAL ALERT - Activating emergency protocols");
|
|
325
|
+
|
|
326
|
+
// Stop other handlers from running
|
|
327
|
+
event.stopPropagation();
|
|
328
|
+
// Notify the on-call team, escalate, etc.
|
|
329
|
+
|
|
330
|
+
console.log("🛑 Event propagation stopped - emergency protocols active");
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
});
|
|
334
|
+
```
|
|
335
|
+
|
|
299
336
|
### 4. Middleware: The Interceptor Pattern Done Right
|
|
300
337
|
|
|
301
338
|
Middleware wraps around your tasks and resources, adding cross-cutting concerns without polluting your business logic.
|
|
@@ -530,6 +567,40 @@ const app = resource({
|
|
|
530
567
|
});
|
|
531
568
|
```
|
|
532
569
|
|
|
570
|
+
## Retrying Failed Operations
|
|
571
|
+
|
|
572
|
+
For when things go wrong, but you know they'll probably work if you just try again. The built-in retry middleware makes your tasks and resources more resilient to transient failures.
|
|
573
|
+
|
|
574
|
+
```typescript
|
|
575
|
+
import { globals } from "@bluelibs/runner";
|
|
576
|
+
|
|
577
|
+
const flakyApiCall = task({
|
|
578
|
+
id: "app.tasks.flakyApiCall",
|
|
579
|
+
middleware: [
|
|
580
|
+
globals.middleware.retry.with({
|
|
581
|
+
retries: 5, // Try up to 5 times
|
|
582
|
+
delayStrategy: (attempt) => 100 * Math.pow(2, attempt), // Exponential backoff
|
|
583
|
+
stopRetryIf: (error) => error.message === "Invalid credentials", // Don't retry auth errors
|
|
584
|
+
}),
|
|
585
|
+
],
|
|
586
|
+
run: async () => {
|
|
587
|
+
// This might fail due to network issues, rate limiting, etc.
|
|
588
|
+
return await fetchFromUnreliableService();
|
|
589
|
+
},
|
|
590
|
+
});
|
|
591
|
+
|
|
592
|
+
const app = resource({
|
|
593
|
+
id: "app",
|
|
594
|
+
register: [flakyApiCall],
|
|
595
|
+
});
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
The retry middleware can be configured with:
|
|
599
|
+
|
|
600
|
+
- `retries`: The maximum number of retry attempts (default: 3).
|
|
601
|
+
- `delayStrategy`: A function that returns the delay in milliseconds before the next attempt.
|
|
602
|
+
- `stopRetryIf`: A function to prevent retries for certain types of errors.
|
|
603
|
+
|
|
533
604
|
## Logging: Because Console.log Isn't Professional
|
|
534
605
|
|
|
535
606
|
_The structured logging system that actually makes debugging enjoyable_
|
|
@@ -928,16 +999,6 @@ await paymentLogger.info("Processing payment", { data: paymentData });
|
|
|
928
999
|
await authLogger.warn("Failed login attempt", { data: { email, ip } });
|
|
929
1000
|
```
|
|
930
1001
|
|
|
931
|
-
### Common Pitfalls
|
|
932
|
-
|
|
933
|
-
1. **Logging sensitive data**: Never log passwords, tokens, or PII
|
|
934
|
-
2. **Over-logging in hot paths**: Check print thresholds for expensive operations
|
|
935
|
-
3. **Forgetting error objects**: Always include the original error when logging failures
|
|
936
|
-
4. **Poor log levels**: Don't use `error` for expected conditions
|
|
937
|
-
5. **Missing context**: Include relevant identifiers (user ID, request ID, etc.)
|
|
938
|
-
|
|
939
|
-
The Logger system is designed to be fast, flexible, and non-intrusive. Use it liberally - good logging is the difference between debugging hell and debugging heaven.
|
|
940
|
-
|
|
941
1002
|
## Meta: Tagging Your Components
|
|
942
1003
|
|
|
943
1004
|
Sometimes you want to attach metadata to your tasks and resources for documentation, filtering, or middleware logic:
|
|
@@ -1060,6 +1121,140 @@ const advancedTask = task({
|
|
|
1060
1121
|
});
|
|
1061
1122
|
```
|
|
1062
1123
|
|
|
1124
|
+
### Dependency Patterns: Static vs Dynamic
|
|
1125
|
+
|
|
1126
|
+
Dependencies can be defined in two ways - as a static object or as a function that returns an object. Each approach has its use cases:
|
|
1127
|
+
|
|
1128
|
+
```typescript
|
|
1129
|
+
// Static dependencies (most common)
|
|
1130
|
+
const userService = resource({
|
|
1131
|
+
id: "app.services.user",
|
|
1132
|
+
dependencies: { database, logger }, // Object - evaluated immediately
|
|
1133
|
+
init: async (_, { database, logger }) => {
|
|
1134
|
+
// Dependencies are available here
|
|
1135
|
+
},
|
|
1136
|
+
});
|
|
1137
|
+
|
|
1138
|
+
// Dynamic dependencies (for circular references or conditional dependencies)
|
|
1139
|
+
const advancedService = resource({
|
|
1140
|
+
id: "app.services.advanced",
|
|
1141
|
+
// A function gives you the chance
|
|
1142
|
+
dependencies: (config) => ({
|
|
1143
|
+
// Config is what you receive when you register tise resource with .with()
|
|
1144
|
+
// So you can have conditional dependencies based on resource configuration as well.
|
|
1145
|
+
database,
|
|
1146
|
+
logger,
|
|
1147
|
+
conditionalService:
|
|
1148
|
+
process.env.NODE_ENV === "production" ? serviceA : serviceB,
|
|
1149
|
+
}), // Function - evaluated when needed
|
|
1150
|
+
register: (config) => [
|
|
1151
|
+
// Config is what you receive when you register the resource with .with()
|
|
1152
|
+
// Register dependencies dynamically
|
|
1153
|
+
process.env.NODE_ENV === "production"
|
|
1154
|
+
? serviceA.with({ config: "value" })
|
|
1155
|
+
: serviceB.with({ config: "value" }),
|
|
1156
|
+
],
|
|
1157
|
+
init: async (_, { database, logger, conditionalService }) => {
|
|
1158
|
+
// Same interface, different evaluation timing
|
|
1159
|
+
},
|
|
1160
|
+
});
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
The function pattern essentially gives you "just-in-time" dependency resolution instead of "eager" dependency resolution, which provides more flexibility and better handles complex dependency scenarios that arise in real-world applications.
|
|
1164
|
+
|
|
1165
|
+
**Performance note**: Function-based dependencies have minimal overhead - they're only called once during dependency resolution.
|
|
1166
|
+
|
|
1167
|
+
### Handling Circular "Type" Dependencies: Breaking the Chain
|
|
1168
|
+
|
|
1169
|
+
Sometimes you'll run into circular type dependencies because of your file structure not necessarily because of a real circular dependency. TypeScript struggles with these, but there's a way to handle it gracefully.
|
|
1170
|
+
|
|
1171
|
+
#### The Problem: Self-Referencing Types
|
|
1172
|
+
|
|
1173
|
+
Consider these resources that create a circular dependency:
|
|
1174
|
+
|
|
1175
|
+
```typescript
|
|
1176
|
+
// FILE: a.ts
|
|
1177
|
+
export const aResource = defineResource({
|
|
1178
|
+
dependencies: { b: bResource },
|
|
1179
|
+
// ... depends on B resource.
|
|
1180
|
+
});
|
|
1181
|
+
// For whatever reason, you decide to put the task in the same file.
|
|
1182
|
+
export const aTask = defineTask({
|
|
1183
|
+
dependencies: { a: aResource },
|
|
1184
|
+
});
|
|
1185
|
+
|
|
1186
|
+
// FILE: b.ts
|
|
1187
|
+
export const bResource = defineResource({
|
|
1188
|
+
id: "b.resource",
|
|
1189
|
+
dependencies: { c: cResource },
|
|
1190
|
+
});
|
|
1191
|
+
|
|
1192
|
+
// FILE: c.ts
|
|
1193
|
+
export const cResource = defineResource({
|
|
1194
|
+
id: "c.resource",
|
|
1195
|
+
dependencies: { aTask }, // Creates circular **type** dependency! Cannot infer types properly, even if the runner boots because there's no circular dependency.
|
|
1196
|
+
async init(_, { aTask }) {
|
|
1197
|
+
return `C depends on aTask`;
|
|
1198
|
+
},
|
|
1199
|
+
});
|
|
1200
|
+
```
|
|
1201
|
+
|
|
1202
|
+
A depends B depends C depends ATask. No circular dependency, yet Typescript struggles with these, but there's a way to handle it gracefully.
|
|
1203
|
+
|
|
1204
|
+
#### The Solution: Type Annotations
|
|
1205
|
+
|
|
1206
|
+
The fix is to explicitly type the resource that completes the circle using a simple assertion `IResource<Config, ReturnType>`. This breaks the TypeScript inference chain while maintaining runtime functionality:
|
|
1207
|
+
|
|
1208
|
+
```typescript
|
|
1209
|
+
// c.resource.ts - The key change
|
|
1210
|
+
import { IResource } from "../../defs";
|
|
1211
|
+
|
|
1212
|
+
export const cResource = defineResource({
|
|
1213
|
+
id: "c.resource",
|
|
1214
|
+
dependencies: { a: aResource },
|
|
1215
|
+
async init(_, { a }) {
|
|
1216
|
+
return `C depends on ${a}`;
|
|
1217
|
+
},
|
|
1218
|
+
}) as IResource<void, string>; // void because it has no config, string because it returns a string
|
|
1219
|
+
```
|
|
1220
|
+
|
|
1221
|
+
#### Why This Works
|
|
1222
|
+
|
|
1223
|
+
- **Runtime**: The circular dependency still works at runtime because the framework resolves dependencies dynamically
|
|
1224
|
+
- **TypeScript**: The explicit type annotation prevents TypeScript from trying to infer the return type based on the circular chain
|
|
1225
|
+
- **Type Safety**: You still get full type safety by explicitly declaring the return type (`string` in this example)
|
|
1226
|
+
|
|
1227
|
+
#### Best Practices
|
|
1228
|
+
|
|
1229
|
+
1. **Identify the "leaf" resource**: Choose the resource that logically should break the chain (often the one that doesn't need complex type inference)
|
|
1230
|
+
2. **Use explicit typing**: Add the `IResource<Dependencies, ReturnType>` type annotation
|
|
1231
|
+
3. **Document the decision**: Add a comment explaining why the explicit typing is needed
|
|
1232
|
+
4. **Consider refactoring**: If you have many circular dependencies, consider if your architecture could be simplified
|
|
1233
|
+
|
|
1234
|
+
#### Example with Dependencies
|
|
1235
|
+
|
|
1236
|
+
If your resource has dependencies, include them in the type:
|
|
1237
|
+
|
|
1238
|
+
```typescript
|
|
1239
|
+
type MyDependencies = {
|
|
1240
|
+
someService: SomeServiceType;
|
|
1241
|
+
anotherResource: AnotherResourceType;
|
|
1242
|
+
};
|
|
1243
|
+
|
|
1244
|
+
export const problematicResource = defineResource({
|
|
1245
|
+
id: "problematic.resource",
|
|
1246
|
+
dependencies: {
|
|
1247
|
+
/* ... */
|
|
1248
|
+
},
|
|
1249
|
+
async init(config, deps) {
|
|
1250
|
+
// Your logic here
|
|
1251
|
+
return someComplexObject;
|
|
1252
|
+
},
|
|
1253
|
+
}) as IResource<MyDependencies, ComplexReturnType>;
|
|
1254
|
+
```
|
|
1255
|
+
|
|
1256
|
+
This pattern allows you to maintain clean, type-safe code while handling the inevitable circular dependencies that arise in complex applications.
|
|
1257
|
+
|
|
1063
1258
|
## Real-World Example: The Complete Package
|
|
1064
1259
|
|
|
1065
1260
|
Here's a more realistic application structure that shows everything working together:
|
|
@@ -1259,6 +1454,7 @@ const testDatabase = resource({
|
|
|
1259
1454
|
init: async () => new MemoryDatabase(), // In-memory test database
|
|
1260
1455
|
});
|
|
1261
1456
|
|
|
1457
|
+
// Just like a shaworma wrap!
|
|
1262
1458
|
const testApp = resource({
|
|
1263
1459
|
id: "test.app",
|
|
1264
1460
|
register: [productionApp],
|
package/dist/define.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare function defineResource<TConfig = void, TValue = any, TDeps exten
|
|
|
10
10
|
export declare function defineIndex<T extends Record<string, RegisterableItems>, D extends {
|
|
11
11
|
[K in keyof T]: T[K] extends IResourceWithConfig<any, any, any> ? T[K]["resource"] : T[K];
|
|
12
12
|
} & DependencyMapType>(items: T): IResource<void, DependencyValuesType<D>, D>;
|
|
13
|
-
export declare function defineEvent<TPayload = void>(config
|
|
13
|
+
export declare function defineEvent<TPayload = void>(config?: IEventDefinition<TPayload>): IEvent<TPayload>;
|
|
14
14
|
export type MiddlewareEverywhereOptions = {
|
|
15
15
|
/**
|
|
16
16
|
* Enable this for tasks. Default is true.
|
package/dist/define.js
CHANGED
|
@@ -144,9 +144,10 @@ function defineIndex(items) {
|
|
|
144
144
|
}
|
|
145
145
|
function defineEvent(config) {
|
|
146
146
|
const callerFilePath = (0, getCallerFile_1.getCallerFile)();
|
|
147
|
+
const eventConfig = config || {};
|
|
147
148
|
return {
|
|
148
|
-
...
|
|
149
|
-
id:
|
|
149
|
+
...eventConfig,
|
|
150
|
+
id: eventConfig.id || (0, getCallerFile_1.generateCallerIdFromFile)(callerFilePath, "event"),
|
|
150
151
|
[defs_1.symbols.filePath]: callerFilePath,
|
|
151
152
|
[defs_1.symbolEvent]: true, // This is a workaround
|
|
152
153
|
};
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":";;AAwBA,gCAiDC;AAED,wCA+DC;AAQD,kCAgCC;AAED,
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
|
package/dist/defs.d.ts
CHANGED
|
@@ -201,10 +201,22 @@ export interface IEventEmission<TPayload = any> {
|
|
|
201
201
|
* The source of the event. This can be useful for debugging.
|
|
202
202
|
*/
|
|
203
203
|
source: string | symbol;
|
|
204
|
+
/**
|
|
205
|
+
* Metadata associated with the event definition.
|
|
206
|
+
*/
|
|
207
|
+
meta: IEventMeta;
|
|
208
|
+
/**
|
|
209
|
+
* Stops propagation to remaining event listeners.
|
|
210
|
+
*/
|
|
211
|
+
stopPropagation(): void;
|
|
212
|
+
/**
|
|
213
|
+
* Returns true if propagation has been stopped.
|
|
214
|
+
*/
|
|
215
|
+
isPropagationStopped(): boolean;
|
|
204
216
|
}
|
|
205
217
|
export interface IMiddlewareDefinition<TConfig = any, TDependencies extends DependencyMapType = any> {
|
|
206
218
|
id?: string | symbol;
|
|
207
|
-
dependencies?: TDependencies | (() => TDependencies);
|
|
219
|
+
dependencies?: TDependencies | ((config: TConfig) => TDependencies);
|
|
208
220
|
run: (input: IMiddlewareExecutionInput, dependencies: DependencyValuesType<TDependencies>, config: TConfig) => Promise<any>;
|
|
209
221
|
meta?: IMiddlewareMeta;
|
|
210
222
|
}
|
|
@@ -74,13 +74,22 @@ class EventManager {
|
|
|
74
74
|
if (allListeners.length === 0) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
+
let propagationStopped = false;
|
|
77
78
|
const event = {
|
|
78
79
|
id: eventDefinition.id,
|
|
79
80
|
data,
|
|
80
81
|
timestamp: new Date(),
|
|
81
82
|
source,
|
|
83
|
+
meta: eventDefinition.meta || {},
|
|
84
|
+
stopPropagation: () => {
|
|
85
|
+
propagationStopped = true;
|
|
86
|
+
},
|
|
87
|
+
isPropagationStopped: () => propagationStopped,
|
|
82
88
|
};
|
|
83
89
|
for (const listener of allListeners) {
|
|
90
|
+
if (propagationStopped) {
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
84
93
|
if (!listener.filter || listener.filter(event)) {
|
|
85
94
|
await listener.handler(event);
|
|
86
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/models/EventManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ class StoreRegistry {
|
|
|
41
41
|
check && this.validator.checkIfIDExists(item.id);
|
|
42
42
|
item.dependencies =
|
|
43
43
|
typeof item.dependencies === "function"
|
|
44
|
-
? item.dependencies()
|
|
44
|
+
? item.dependencies(item.config)
|
|
45
45
|
: item.dependencies;
|
|
46
46
|
this.middlewares.set(item.id, {
|
|
47
47
|
middleware: item,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreRegistry.js","sourceRoot":"","sources":["../../src/models/StoreRegistry.ts"],"names":[],"mappings":";;;AAAA,kCAYiB;AACjB,mCAAmC;AACnC,sCAAmC;AAOnC,qDAAkD;AAElD,MAAa,aAAa;IACjB,KAAK,GAA+C,IAAI,GAAG,EAAE,CAAC;IAC9D,SAAS,GAAmD,IAAI,GAAG,EAAE,CAAC;IACtE,MAAM,GAAgD,IAAI,GAAG,EAAE,CAAC;IAChE,WAAW,GAChB,IAAI,GAAG,EAAE,CAAC;IAEJ,SAAS,CAAiB;IAElC;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,+BAAc,CACjC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAI,IAAuB;QACzC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAI,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAI,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAI,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,CAAI,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,uBAAuB,CAAI,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,eAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,eAAe,CAAI,IAAsB,EAAE,KAAK,GAAG,IAAI;QACrD,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;gBACrC,CAAC,CAAC,IAAI,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"StoreRegistry.js","sourceRoot":"","sources":["../../src/models/StoreRegistry.ts"],"names":[],"mappings":";;;AAAA,kCAYiB;AACjB,mCAAmC;AACnC,sCAAmC;AAOnC,qDAAkD;AAElD,MAAa,aAAa;IACjB,KAAK,GAA+C,IAAI,GAAG,EAAE,CAAC;IAC9D,SAAS,GAAmD,IAAI,GAAG,EAAE,CAAC;IACtE,MAAM,GAAgD,IAAI,GAAG,EAAE,CAAC;IAChE,WAAW,GAChB,IAAI,GAAG,EAAE,CAAC;IAEJ,SAAS,CAAiB;IAElC;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,+BAAc,CACjC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAI,IAAuB;QACzC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAI,IAAI,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,aAAa,CAAI,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,CAAI,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,eAAe,CAAI,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,uBAAuB,CAAI,IAAI,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,eAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,eAAe,CAAI,IAAsB,EAAE,KAAK,GAAG,IAAI;QACrD,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;gBACrC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;gBAChC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAExB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YAC5B,UAAU,EAAE,IAAI;YAChB,oBAAoB,EAAE,EAAE;SACzB,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAI,IAAkB;QAC9B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB,CACrB,IAAwC,EACxC,KAAK,GAAG,IAAI;QAEZ,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,yBAAyB,CAAI,OAAqB,EAAE,MAAU;QAC5D,MAAM,KAAK,GACT,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YACpC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAW,CAAC;YAC/B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEvB,0FAA0F;QAC1F,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,yDAAyD;YACzD,IAAI,CAAC,gBAAgB,CAAI,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,aAAa,CAAI,IAA8B,EAAE,KAAK,GAAG,IAAI;QAC3D,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YAC1B,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAI,IAAyB,EAAE,KAAK,GAAG,IAAI;QAClD,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;gBACrC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;gBACrB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAExB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YACtB,IAAI,EAAE,IAAI;YACV,oBAAoB,EAAE,EAAE;YACxB,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,+BAA+B,CAC7B,YAAoC;QAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,sCAA+B,CAAC,CAAC;aAC5D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,mCAAmC,CACjC,YAAoC;QAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,0CAAmC,CAAC,CAAC;aAChE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACtD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAEO,eAAe,CACrB,IAA8B,EAC9B,MAAW;QAEX,IAAI,CAAC,YAAY;YACf,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU;gBACrC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC3B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,UAAyB;QAC/C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACrC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACpB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA0C,CAAC,CAAC;IACjD,CAAC;IAED,iBAAiB;QACf,MAAM,WAAW,GAAU,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,WAAW,CAAC,IAAI,CAAC;gBACf,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChB,YAAY,EAAE;oBACZ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY;oBACzB,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC9C;aACF,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,WAAW,CAAC,IAAI,CAAC;gBACf,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE;gBAC5B,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,YAAY;aACjD,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,WAAW,CAAC,IAAI,CAAC;gBACf,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACxB,YAAY,EAAE;oBACZ,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY;oBACjC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;iBACtD;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AA5MD,sCA4MC"}
|