bun_plugins 1.2.5 → 1.2.6
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 +3 -127
- package/dist/{src/PluginManager.d.ts → PluginManager.d.ts} +9 -20
- package/dist/PluginManager.d.ts.map +1 -0
- package/dist/{src/PluginManager.js → PluginManager.js} +189 -212
- package/dist/PluginManager.js.map +1 -0
- package/dist/{src/index.d.ts → index.d.ts} +1 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/{src/index.js → index.js} +0 -2
- package/dist/index.js.map +1 -0
- package/dist/{src/managers → managers}/ContextFactory.d.ts +1 -1
- package/dist/managers/ContextFactory.d.ts.map +1 -0
- package/dist/{src/managers → managers}/ContextFactory.js +26 -51
- package/dist/managers/ContextFactory.js.map +1 -0
- package/dist/managers/DependencyManager.d.ts.map +1 -0
- package/dist/{src/managers → managers}/DependencyManager.js +5 -7
- package/dist/managers/DependencyManager.js.map +1 -0
- package/dist/{src/managers → managers}/HooksManager.d.ts +1 -4
- package/dist/managers/HooksManager.d.ts.map +1 -0
- package/dist/{src/managers → managers}/HooksManager.js +8 -36
- package/dist/managers/HooksManager.js.map +1 -0
- package/dist/managers/ResourceManager.d.ts.map +1 -0
- package/dist/{src/managers → managers}/ResourceManager.js +3 -3
- package/dist/managers/ResourceManager.js.map +1 -0
- package/dist/{src/storage → storage}/JsonPluginStorage.d.ts +1 -2
- package/dist/storage/JsonPluginStorage.d.ts.map +1 -0
- package/dist/storage/JsonPluginStorage.js +63 -0
- package/dist/storage/JsonPluginStorage.js.map +1 -0
- package/dist/{src/types.d.ts → types.d.ts} +19 -60
- package/dist/types.d.ts.map +1 -0
- package/dist/{src/types.js → types.js} +0 -6
- package/dist/types.js.map +1 -0
- package/dist/utils/errorParser.d.ts.map +1 -0
- package/dist/{src/utils → utils}/errorParser.js +5 -2
- package/dist/utils/errorParser.js.map +1 -0
- package/dist/utils/pluginValidator.d.ts +93 -0
- package/dist/utils/pluginValidator.d.ts.map +1 -0
- package/dist/{src/utils → utils}/pluginValidator.js +14 -11
- package/dist/utils/pluginValidator.js.map +1 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/worker/WorkerRunner.d.ts.map +1 -0
- package/dist/{src/worker → worker}/WorkerRunner.js +13 -38
- package/dist/worker/WorkerRunner.js.map +1 -0
- package/package.json +6 -9
- package/LICENSE +0 -9
- package/dist/examples/action-registry-declarative.d.ts +0 -14
- package/dist/examples/action-registry-declarative.d.ts.map +0 -1
- package/dist/examples/action-registry-declarative.js +0 -130
- package/dist/examples/action-registry-declarative.js.map +0 -1
- package/dist/examples/action-registry-example.d.ts +0 -31
- package/dist/examples/action-registry-example.d.ts.map +0 -1
- package/dist/examples/action-registry-example.js +0 -84
- package/dist/examples/action-registry-example.js.map +0 -1
- package/dist/examples/index-declarative.d.ts +0 -32
- package/dist/examples/index-declarative.d.ts.map +0 -1
- package/dist/examples/index-declarative.js +0 -206
- package/dist/examples/index-declarative.js.map +0 -1
- package/dist/examples/logger-declarative.d.ts +0 -109
- package/dist/examples/logger-declarative.d.ts.map +0 -1
- package/dist/examples/logger-declarative.js +0 -330
- package/dist/examples/logger-declarative.js.map +0 -1
- package/dist/examples/logger-simple.d.ts +0 -8
- package/dist/examples/logger-simple.d.ts.map +0 -1
- package/dist/examples/logger-simple.js +0 -165
- package/dist/examples/logger-simple.js.map +0 -1
- package/dist/examples/server-declarative.d.ts +0 -46
- package/dist/examples/server-declarative.d.ts.map +0 -1
- package/dist/examples/server-declarative.js +0 -205
- package/dist/examples/server-declarative.js.map +0 -1
- package/dist/examples/shared/action-registry.d.ts +0 -45
- package/dist/examples/shared/action-registry.d.ts.map +0 -1
- package/dist/examples/shared/action-registry.js +0 -65
- package/dist/examples/shared/action-registry.js.map +0 -1
- package/dist/examples/shared/plugin-builder.d.ts +0 -41
- package/dist/examples/shared/plugin-builder.d.ts.map +0 -1
- package/dist/examples/shared/plugin-builder.js +0 -85
- package/dist/examples/shared/plugin-builder.js.map +0 -1
- package/dist/examples/storage-declarative.d.ts +0 -13
- package/dist/examples/storage-declarative.d.ts.map +0 -1
- package/dist/examples/storage-declarative.js +0 -203
- package/dist/examples/storage-declarative.js.map +0 -1
- package/dist/plugins/ActionRegistryPlugin.d.ts +0 -14
- package/dist/plugins/ActionRegistryPlugin.d.ts.map +0 -1
- package/dist/plugins/ActionRegistryPlugin.js +0 -52
- package/dist/plugins/ActionRegistryPlugin.js.map +0 -1
- package/dist/plugins/DynamicJSActionsPlugin.d.ts +0 -21
- package/dist/plugins/DynamicJSActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicJSActionsPlugin.js +0 -57
- package/dist/plugins/DynamicJSActionsPlugin.js.map +0 -1
- package/dist/plugins/DynamicMathActionsPlugin.d.ts +0 -22
- package/dist/plugins/DynamicMathActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicMathActionsPlugin.js +0 -64
- package/dist/plugins/DynamicMathActionsPlugin.js.map +0 -1
- package/dist/plugins/DynamicTextActionsPlugin.d.ts +0 -22
- package/dist/plugins/DynamicTextActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicTextActionsPlugin.js +0 -58
- package/dist/plugins/DynamicTextActionsPlugin.js.map +0 -1
- package/dist/plugins/DynamicUtilityActionsPlugin.d.ts +0 -22
- package/dist/plugins/DynamicUtilityActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicUtilityActionsPlugin.js +0 -75
- package/dist/plugins/DynamicUtilityActionsPlugin.js.map +0 -1
- package/dist/plugins/ExamplePlugin.d.ts +0 -3
- package/dist/plugins/ExamplePlugin.d.ts.map +0 -1
- package/dist/plugins/ExamplePlugin.js +0 -24
- package/dist/plugins/ExamplePlugin.js.map +0 -1
- package/dist/plugins/LifecycleDemoPlugin.d.ts +0 -20
- package/dist/plugins/LifecycleDemoPlugin.d.ts.map +0 -1
- package/dist/plugins/LifecycleDemoPlugin.js +0 -34
- package/dist/plugins/LifecycleDemoPlugin.js.map +0 -1
- package/dist/plugins/MathPlugin.d.ts +0 -16
- package/dist/plugins/MathPlugin.d.ts.map +0 -1
- package/dist/plugins/MathPlugin.js +0 -30
- package/dist/plugins/MathPlugin.js.map +0 -1
- package/dist/plugins/MyJSPlugin.d.ts +0 -7
- package/dist/plugins/MyJSPlugin.d.ts.map +0 -1
- package/dist/plugins/MyJSPlugin.js +0 -12
- package/dist/plugins/MyJSPlugin.js.map +0 -1
- package/dist/plugins/TypedExamplePlugin.d.ts +0 -10
- package/dist/plugins/TypedExamplePlugin.d.ts.map +0 -1
- package/dist/plugins/TypedExamplePlugin.js +0 -61
- package/dist/plugins/TypedExamplePlugin.js.map +0 -1
- package/dist/plugins/arktype/index.d.ts +0 -8
- package/dist/plugins/arktype/index.d.ts.map +0 -1
- package/dist/plugins/arktype/index.js +0 -25
- package/dist/plugins/arktype/index.js.map +0 -1
- package/dist/src/Plugin.d.ts +0 -28
- package/dist/src/Plugin.d.ts.map +0 -1
- package/dist/src/Plugin.js +0 -36
- package/dist/src/Plugin.js.map +0 -1
- package/dist/src/PluginManager.d.ts.map +0 -1
- package/dist/src/PluginManager.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/logger/LoggerAdapter.d.ts +0 -77
- package/dist/src/logger/LoggerAdapter.d.ts.map +0 -1
- package/dist/src/logger/LoggerAdapter.js +0 -242
- package/dist/src/logger/LoggerAdapter.js.map +0 -1
- package/dist/src/logger/LoggerFactory.d.ts +0 -73
- package/dist/src/logger/LoggerFactory.d.ts.map +0 -1
- package/dist/src/logger/LoggerFactory.js +0 -99
- package/dist/src/logger/LoggerFactory.js.map +0 -1
- package/dist/src/logger/index.d.ts +0 -3
- package/dist/src/logger/index.d.ts.map +0 -1
- package/dist/src/logger/index.js +0 -3
- package/dist/src/logger/index.js.map +0 -1
- package/dist/src/managers/ContextFactory.d.ts.map +0 -1
- package/dist/src/managers/ContextFactory.js.map +0 -1
- package/dist/src/managers/DependencyManager.d.ts.map +0 -1
- package/dist/src/managers/DependencyManager.js.map +0 -1
- package/dist/src/managers/HooksManager.d.ts.map +0 -1
- package/dist/src/managers/HooksManager.js.map +0 -1
- package/dist/src/managers/ResourceManager.d.ts.map +0 -1
- package/dist/src/managers/ResourceManager.js.map +0 -1
- package/dist/src/storage/JsonPluginStorage.d.ts.map +0 -1
- package/dist/src/storage/JsonPluginStorage.js +0 -75
- package/dist/src/storage/JsonPluginStorage.js.map +0 -1
- package/dist/src/types/plugin-registry-base.d.ts +0 -80
- package/dist/src/types/plugin-registry-base.d.ts.map +0 -1
- package/dist/src/types/plugin-registry-base.js +0 -6
- package/dist/src/types/plugin-registry-base.js.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/errorParser.d.ts.map +0 -1
- package/dist/src/utils/errorParser.js.map +0 -1
- package/dist/src/utils/pluginValidator.d.ts +0 -17
- package/dist/src/utils/pluginValidator.d.ts.map +0 -1
- package/dist/src/utils/pluginValidator.js.map +0 -1
- package/dist/src/utils/security.d.ts.map +0 -1
- package/dist/src/utils/security.js.map +0 -1
- package/dist/src/worker/WorkerRunner.d.ts.map +0 -1
- package/dist/src/worker/WorkerRunner.js.map +0 -1
- /package/dist/{src/managers → managers}/DependencyManager.d.ts +0 -0
- /package/dist/{src/managers → managers}/ResourceManager.d.ts +0 -0
- /package/dist/{src/utils → utils}/errorParser.d.ts +0 -0
- /package/dist/{src/utils → utils}/security.d.ts +0 -0
- /package/dist/{src/utils → utils}/security.js +0 -0
- /package/dist/{src/worker → worker}/WorkerRunner.d.ts +0 -0
package/README.md
CHANGED
|
@@ -163,7 +163,7 @@ Plugins can share APIs with each other safely:
|
|
|
163
163
|
// Plugin A: Exposes an API
|
|
164
164
|
export class ProviderPlugin implements IPlugin {
|
|
165
165
|
name = "db-provider";
|
|
166
|
-
|
|
166
|
+
getSharedApi() {
|
|
167
167
|
return {
|
|
168
168
|
query: (q: string) => `Result for ${q}`,
|
|
169
169
|
};
|
|
@@ -174,7 +174,7 @@ export class ProviderPlugin implements IPlugin {
|
|
|
174
174
|
export class ConsumerPlugin implements IPlugin {
|
|
175
175
|
name = "app-logic";
|
|
176
176
|
async onLoad(context: PluginContext) {
|
|
177
|
-
const db =
|
|
177
|
+
const db = context.getPlugin("db-provider");
|
|
178
178
|
const result = db.query("SELECT *");
|
|
179
179
|
}
|
|
180
180
|
}
|
|
@@ -182,130 +182,6 @@ export class ConsumerPlugin implements IPlugin {
|
|
|
182
182
|
|
|
183
183
|
---
|
|
184
184
|
|
|
185
|
-
##
|
|
186
|
-
|
|
187
|
-
The plugin system provides **full type safety and autocompletion** for inter-plugin communication using declaration merging.
|
|
188
|
-
|
|
189
|
-
### 📚 Complete Guide
|
|
190
|
-
|
|
191
|
-
For detailed documentation on the type system, see [`docs/types-guide.md`](docs/types-guide.md).
|
|
192
|
-
|
|
193
|
-
### 🚀 Quick Start
|
|
194
|
-
|
|
195
|
-
#### Step 1: Create a types file
|
|
196
|
-
|
|
197
|
-
Create a `.d.ts` file in your project (e.g., `plugins/types.d.ts`):
|
|
198
|
-
|
|
199
|
-
```typescript
|
|
200
|
-
import type { BasePluginApi } from "bun_plugins/src/types/plugin-registry-base";
|
|
201
|
-
|
|
202
|
-
// Define the API interface for your plugin
|
|
203
|
-
export interface MathPluginApi extends BasePluginApi {
|
|
204
|
-
add(a: number, b: number): number;
|
|
205
|
-
multiply(a: number, b: number): number;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
// Extend the PluginFactory with your plugin
|
|
209
|
-
declare module "bun_plugins" {
|
|
210
|
-
export interface PluginFactory {
|
|
211
|
-
"math-plugin": {
|
|
212
|
-
name: "math-plugin";
|
|
213
|
-
version: "1.0.0";
|
|
214
|
-
class: any;
|
|
215
|
-
api: MathPluginApi;
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
#### Step 2: Register the API in your plugin
|
|
222
|
-
|
|
223
|
-
```typescript
|
|
224
|
-
import { Plugin, PluginContext } from "bun_plugins";
|
|
225
|
-
|
|
226
|
-
export class MathPlugin extends Plugin {
|
|
227
|
-
name = "math-plugin";
|
|
228
|
-
version = "1.0.0";
|
|
229
|
-
|
|
230
|
-
override onLoad(context: PluginContext) {
|
|
231
|
-
// Register the API for other plugins to use
|
|
232
|
-
context.registerApi({
|
|
233
|
-
add: this.add.bind(this),
|
|
234
|
-
multiply: this.multiply.bind(this)
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
add(a: number, b: number): number {
|
|
239
|
-
return a + b;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
multiply(a: number, b: number): number {
|
|
243
|
-
return a * b;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
#### Step 3: Use with full autocompletion
|
|
249
|
-
|
|
250
|
-
```typescript
|
|
251
|
-
import { definePlugin } from "bun_plugins";
|
|
252
|
-
|
|
253
|
-
export default definePlugin({
|
|
254
|
-
name: "my-app",
|
|
255
|
-
version: "1.0.0",
|
|
256
|
-
|
|
257
|
-
async onLoad(context) {
|
|
258
|
-
// ✅ Full autocompletion and type safety!
|
|
259
|
-
const mathPlugin = await context.getPlugin('math-plugin');
|
|
260
|
-
|
|
261
|
-
if (mathPlugin) {
|
|
262
|
-
const result = mathPlugin.add(1, 2); // ✅ Autocompletion works
|
|
263
|
-
context.log.info(`Result: ${result}`);
|
|
264
|
-
|
|
265
|
-
// TypeScript will show errors for non-existent methods
|
|
266
|
-
// mathPlugin.nonExistentMethod(); // ❌ Error!
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
### ✨ Benefits
|
|
273
|
-
|
|
274
|
-
- 🎯 **Full Autocompletion**: Your IDE shows all available methods
|
|
275
|
-
- 🔒 **Type Safety**: TypeScript catches errors at compile time
|
|
276
|
-
- 📖 **Self-Documenting**: Interfaces serve as API documentation
|
|
277
|
-
- 🔄 **Refactor-Friendly**: Safe method renaming and refactoring
|
|
278
|
-
- 🌐 **Works with External Plugins**: Extend types for npm packages too
|
|
279
|
-
|
|
280
|
-
### 📖 Examples
|
|
281
|
-
|
|
282
|
-
- [`plugins/types.d.ts`](plugins/types.d.ts) - Complete example for this project
|
|
283
|
-
- [`plugins/TypedExamplePlugin.ts`](plugins/TypedExamplePlugin.ts) - Plugin using typed access
|
|
284
|
-
- [`examples/types-extension-example.d.ts`](examples/types-extension-example.d.ts) - Standalone example
|
|
285
|
-
|
|
286
|
-
### 🔧 TypeScript Configuration
|
|
287
|
-
|
|
288
|
-
Ensure your `tsconfig.json` includes the types file:
|
|
289
|
-
|
|
290
|
-
```json
|
|
291
|
-
{
|
|
292
|
-
"include": [
|
|
293
|
-
"src/**/*",
|
|
294
|
-
"plugins/**/*",
|
|
295
|
-
"**/*.d.ts"
|
|
296
|
-
]
|
|
297
|
-
}
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### 💡 Tips
|
|
301
|
-
|
|
302
|
-
1. **Match names exactly**: The plugin name in `PluginFactory` must match `plugin.name`
|
|
303
|
-
2. **Register APIs**: Always use `context.registerApi()` to expose your plugin's API
|
|
304
|
-
3. **Extend BasePluginApi**: Your API interfaces should extend `BasePluginApi` for consistency
|
|
305
|
-
4. **External plugins**: You can extend types for third-party plugins the same way
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
## License
|
|
185
|
+
## 📜 License
|
|
310
186
|
|
|
311
187
|
MIT © [memelser](https://github.com/nglmercer)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
|
-
import { type IPlugin, type AppEvents, type BunWorkerOptions as WorkerOptions, type OnResolveArgs, type OnLoadArgs
|
|
2
|
+
import { type IPlugin, type AppEvents, type BunWorkerOptions as WorkerOptions, type OnResolveArgs, type OnLoadArgs } from "./types";
|
|
3
3
|
import { HooksManager } from "./managers/HooksManager";
|
|
4
|
-
export declare class PluginManager extends EventEmitter
|
|
4
|
+
export declare class PluginManager extends EventEmitter {
|
|
5
5
|
private plugins;
|
|
6
6
|
private availablePlugins;
|
|
7
|
-
private
|
|
8
|
-
private pluginApis;
|
|
7
|
+
private pluginFiles;
|
|
9
8
|
private resources;
|
|
10
9
|
private dependencyManager;
|
|
11
10
|
hooksManager: HooksManager;
|
|
@@ -14,6 +13,8 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
|
|
|
14
13
|
private pluginLoadTimeout;
|
|
15
14
|
private workerFactory;
|
|
16
15
|
private workerRunnerPath;
|
|
16
|
+
private hotReloadWatcher;
|
|
17
|
+
private hotReloadTimer;
|
|
17
18
|
constructor(storageRoot?: string, options?: {
|
|
18
19
|
pluginLoadTimeout?: number;
|
|
19
20
|
workerFactory?: (url: string | URL, options?: WorkerOptions) => Worker;
|
|
@@ -24,20 +25,11 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
|
|
|
24
25
|
registerIsolated(pluginPath: string, pluginName: string): Promise<void>;
|
|
25
26
|
unregister(pluginName: string): Promise<void>;
|
|
26
27
|
getPlugin(name: string): IPlugin | undefined;
|
|
27
|
-
getApi<T = any>(name: string): T | undefined;
|
|
28
|
-
getPluginConfig(name: string): Record<string, any>;
|
|
29
28
|
listPlugins(): string[];
|
|
30
|
-
registerApi(pluginName: string, api: any): void;
|
|
31
|
-
getPluginApi(pluginName: string): any | undefined;
|
|
32
|
-
private unregisterApi;
|
|
33
29
|
emit<K extends keyof AppEvents>(eventName: K, payload: AppEvents[K]): boolean;
|
|
34
30
|
emit(eventName: string | symbol, ...args: any[]): boolean;
|
|
35
|
-
on<K extends keyof AppEvents>(eventName: K
|
|
31
|
+
on<K extends keyof AppEvents>(eventName: K, listener: (payload: AppEvents[K]) => void): this;
|
|
36
32
|
on(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
37
|
-
once<K extends keyof AppEvents>(eventName: K & string, listener: (payload: AppEvents[K]) => void): this;
|
|
38
|
-
once(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
39
|
-
off<K extends keyof AppEvents>(eventName: K & string, listener: (payload: AppEvents[K]) => void): this;
|
|
40
|
-
off(eventName: string | symbol, listener: (...args: any[]) => void): this;
|
|
41
33
|
loadPluginsFromDirectory(directoryPath?: string): Promise<void>;
|
|
42
34
|
disablePlugin(name: string): Promise<void>;
|
|
43
35
|
enablePlugin(name: string): Promise<void>;
|
|
@@ -51,12 +43,11 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
|
|
|
51
43
|
contents?: string;
|
|
52
44
|
loader?: string;
|
|
53
45
|
} | null>;
|
|
54
|
-
use(plugin: IPlugin): Promise<void>;
|
|
55
|
-
plugin(plugin: IPlugin): Promise<void>;
|
|
56
|
-
remove(pluginName: string): Promise<void>;
|
|
57
46
|
toBunPlugin(): Bun.BunPlugin;
|
|
58
|
-
private hotReloadTimer;
|
|
59
47
|
enableHotReload(pluginDir: string): void;
|
|
48
|
+
private scanAndTrackPlugins;
|
|
49
|
+
private handleFileChange;
|
|
50
|
+
disableHotReload(): void;
|
|
60
51
|
getMetrics(): {
|
|
61
52
|
totalPlugins: number;
|
|
62
53
|
activePlugins: string[];
|
|
@@ -67,12 +58,10 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
|
|
|
67
58
|
pluginCount: number;
|
|
68
59
|
};
|
|
69
60
|
hooks: {
|
|
70
|
-
onStart: number;
|
|
71
61
|
onResolve: number;
|
|
72
62
|
onLoad: number;
|
|
73
63
|
};
|
|
74
64
|
};
|
|
75
65
|
getPluginStatus(): Record<string, any>;
|
|
76
|
-
private ensureDependenciesInstalled;
|
|
77
66
|
}
|
|
78
67
|
//# sourceMappingURL=PluginManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../src/PluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACH,KAAK,OAAO,EAEZ,KAAK,SAAS,EACd,KAAK,gBAAgB,IAAI,aAAa,EACtC,KAAK,aAAa,EAClB,KAAK,UAAU,EAKlB,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAKvD,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,WAAW,CAAkC;IAGrD,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,iBAAiB,CAAoB;IACtC,YAAY,EAAE,YAAY,CAAC;IAElC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,aAAa,CAAyD;IAC9E,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,cAAc,CAA+B;gBACzC,WAAW,GAAE,MAAuC,EAAE,OAAO,CAAC,EAAE;QAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC;QACvE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B;IAwBD,gBAAgB,UAhCa,MAAM,GAAG,GAAG,YAAY,aAAa,KAAK,MAAM;IAoCvE,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFxC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6MvE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBnD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI5C,WAAW,IAAI,MAAM,EAAE;IAId,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO;IAC7E,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;IAKzD,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAC5F,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAK3E,wBAAwB,CAAC,aAAa,GAAE,MAAuC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4F/F,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAcjC,iBAAiB;IA2BzB,YAAY,CAAC,IAAI,EAAE,aAAa;;;;IAIhC,SAAS,CAAC,IAAI,EAAE,UAAU;;;;IAIhC,WAAW;IAIX,eAAe,CAAC,SAAS,EAAE,MAAM;YAyBnB,mBAAmB;YA2BnB,gBAAgB;IA0F9B,gBAAgB,IAAI,IAAI;IAQxB,UAAU;;;;;;;;;;;;;;IAYV,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAgBvC"}
|