@objectstack/core 1.0.2 → 1.0.5
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/.turbo/turbo-build.log +58 -0
- package/CHANGELOG.md +25 -0
- package/dist/index.cjs +4294 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1777 -0
- package/dist/index.d.ts +1776 -21
- package/dist/index.js +4246 -23
- package/dist/index.js.map +1 -0
- package/package.json +4 -4
- package/tsconfig.json +1 -3
- package/dist/api-registry-plugin.d.ts +0 -54
- package/dist/api-registry-plugin.d.ts.map +0 -1
- package/dist/api-registry-plugin.js +0 -53
- package/dist/api-registry-plugin.test.d.ts +0 -2
- package/dist/api-registry-plugin.test.d.ts.map +0 -1
- package/dist/api-registry-plugin.test.js +0 -334
- package/dist/api-registry.d.ts +0 -259
- package/dist/api-registry.d.ts.map +0 -1
- package/dist/api-registry.js +0 -600
- package/dist/api-registry.test.d.ts +0 -2
- package/dist/api-registry.test.d.ts.map +0 -1
- package/dist/api-registry.test.js +0 -957
- package/dist/contracts/data-engine.d.ts +0 -62
- package/dist/contracts/data-engine.d.ts.map +0 -1
- package/dist/contracts/data-engine.js +0 -1
- package/dist/contracts/http-server.d.ts +0 -119
- package/dist/contracts/http-server.d.ts.map +0 -1
- package/dist/contracts/http-server.js +0 -11
- package/dist/contracts/logger.d.ts +0 -63
- package/dist/contracts/logger.d.ts.map +0 -1
- package/dist/contracts/logger.js +0 -1
- package/dist/dependency-resolver.d.ts +0 -62
- package/dist/dependency-resolver.d.ts.map +0 -1
- package/dist/dependency-resolver.js +0 -317
- package/dist/dependency-resolver.test.d.ts +0 -2
- package/dist/dependency-resolver.test.d.ts.map +0 -1
- package/dist/dependency-resolver.test.js +0 -241
- package/dist/health-monitor.d.ts +0 -65
- package/dist/health-monitor.d.ts.map +0 -1
- package/dist/health-monitor.js +0 -269
- package/dist/health-monitor.test.d.ts +0 -2
- package/dist/health-monitor.test.d.ts.map +0 -1
- package/dist/health-monitor.test.js +0 -68
- package/dist/hot-reload.d.ts +0 -79
- package/dist/hot-reload.d.ts.map +0 -1
- package/dist/hot-reload.js +0 -313
- package/dist/index.d.ts.map +0 -1
- package/dist/kernel-base.d.ts +0 -84
- package/dist/kernel-base.d.ts.map +0 -1
- package/dist/kernel-base.js +0 -219
- package/dist/kernel.d.ts +0 -113
- package/dist/kernel.d.ts.map +0 -1
- package/dist/kernel.js +0 -472
- package/dist/kernel.test.d.ts +0 -2
- package/dist/kernel.test.d.ts.map +0 -1
- package/dist/kernel.test.js +0 -414
- package/dist/lite-kernel.d.ts +0 -55
- package/dist/lite-kernel.d.ts.map +0 -1
- package/dist/lite-kernel.js +0 -112
- package/dist/lite-kernel.test.d.ts +0 -2
- package/dist/lite-kernel.test.d.ts.map +0 -1
- package/dist/lite-kernel.test.js +0 -161
- package/dist/logger.d.ts +0 -71
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -312
- package/dist/logger.test.d.ts +0 -2
- package/dist/logger.test.d.ts.map +0 -1
- package/dist/logger.test.js +0 -92
- package/dist/plugin-loader.d.ts +0 -164
- package/dist/plugin-loader.d.ts.map +0 -1
- package/dist/plugin-loader.js +0 -319
- package/dist/plugin-loader.test.d.ts +0 -2
- package/dist/plugin-loader.test.d.ts.map +0 -1
- package/dist/plugin-loader.test.js +0 -348
- package/dist/qa/adapter.d.ts +0 -14
- package/dist/qa/adapter.d.ts.map +0 -1
- package/dist/qa/adapter.js +0 -1
- package/dist/qa/http-adapter.d.ts +0 -16
- package/dist/qa/http-adapter.d.ts.map +0 -1
- package/dist/qa/http-adapter.js +0 -107
- package/dist/qa/index.d.ts +0 -4
- package/dist/qa/index.d.ts.map +0 -1
- package/dist/qa/index.js +0 -3
- package/dist/qa/runner.d.ts +0 -27
- package/dist/qa/runner.d.ts.map +0 -1
- package/dist/qa/runner.js +0 -157
- package/dist/security/index.d.ts +0 -17
- package/dist/security/index.d.ts.map +0 -1
- package/dist/security/index.js +0 -17
- package/dist/security/permission-manager.d.ts +0 -96
- package/dist/security/permission-manager.d.ts.map +0 -1
- package/dist/security/permission-manager.js +0 -235
- package/dist/security/permission-manager.test.d.ts +0 -2
- package/dist/security/permission-manager.test.d.ts.map +0 -1
- package/dist/security/permission-manager.test.js +0 -220
- package/dist/security/plugin-config-validator.d.ts +0 -79
- package/dist/security/plugin-config-validator.d.ts.map +0 -1
- package/dist/security/plugin-config-validator.js +0 -166
- package/dist/security/plugin-config-validator.test.d.ts +0 -2
- package/dist/security/plugin-config-validator.test.d.ts.map +0 -1
- package/dist/security/plugin-config-validator.test.js +0 -223
- package/dist/security/plugin-permission-enforcer.d.ts +0 -154
- package/dist/security/plugin-permission-enforcer.d.ts.map +0 -1
- package/dist/security/plugin-permission-enforcer.js +0 -323
- package/dist/security/plugin-permission-enforcer.test.d.ts +0 -2
- package/dist/security/plugin-permission-enforcer.test.d.ts.map +0 -1
- package/dist/security/plugin-permission-enforcer.test.js +0 -205
- package/dist/security/plugin-signature-verifier.d.ts +0 -96
- package/dist/security/plugin-signature-verifier.d.ts.map +0 -1
- package/dist/security/plugin-signature-verifier.js +0 -250
- package/dist/security/sandbox-runtime.d.ts +0 -115
- package/dist/security/sandbox-runtime.d.ts.map +0 -1
- package/dist/security/sandbox-runtime.js +0 -311
- package/dist/security/security-scanner.d.ts +0 -92
- package/dist/security/security-scanner.d.ts.map +0 -1
- package/dist/security/security-scanner.js +0 -273
- package/dist/types.d.ts +0 -89
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/utils/env.d.ts +0 -20
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -46
- package/dist/utils/env.test.d.ts +0 -2
- package/dist/utils/env.test.d.ts.map +0 -1
- package/dist/utils/env.test.js +0 -52
package/dist/kernel-base.js
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ObjectKernelBase - Abstract Base Class for Microkernel
|
|
3
|
-
*
|
|
4
|
-
* Provides common functionality for ObjectKernel and LiteKernel:
|
|
5
|
-
* - Plugin management (Map storage)
|
|
6
|
-
* - Dependency resolution (topological sort)
|
|
7
|
-
* - Hook/Event system
|
|
8
|
-
* - Context creation
|
|
9
|
-
* - State validation
|
|
10
|
-
*
|
|
11
|
-
* This eliminates code duplication between the implementations.
|
|
12
|
-
*/
|
|
13
|
-
export class ObjectKernelBase {
|
|
14
|
-
constructor(logger) {
|
|
15
|
-
this.plugins = new Map();
|
|
16
|
-
this.services = new Map();
|
|
17
|
-
this.hooks = new Map();
|
|
18
|
-
this.state = 'idle';
|
|
19
|
-
this.logger = logger;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Validate kernel state
|
|
23
|
-
* @param requiredState - Required state for the operation
|
|
24
|
-
* @throws Error if current state doesn't match
|
|
25
|
-
*/
|
|
26
|
-
validateState(requiredState) {
|
|
27
|
-
if (this.state !== requiredState) {
|
|
28
|
-
throw new Error(`[Kernel] Invalid state: expected '${requiredState}', got '${this.state}'`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Validate kernel is in idle state (for plugin registration)
|
|
33
|
-
*/
|
|
34
|
-
validateIdle() {
|
|
35
|
-
if (this.state !== 'idle') {
|
|
36
|
-
throw new Error('[Kernel] Cannot register plugins after bootstrap has started');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Create the plugin context
|
|
41
|
-
* Subclasses can override to customize context creation
|
|
42
|
-
*/
|
|
43
|
-
createContext() {
|
|
44
|
-
return {
|
|
45
|
-
registerService: (name, service) => {
|
|
46
|
-
if (this.services instanceof Map) {
|
|
47
|
-
if (this.services.has(name)) {
|
|
48
|
-
throw new Error(`[Kernel] Service '${name}' already registered`);
|
|
49
|
-
}
|
|
50
|
-
this.services.set(name, service);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// IServiceRegistry implementation
|
|
54
|
-
this.services.register(name, service);
|
|
55
|
-
}
|
|
56
|
-
this.logger.info(`Service '${name}' registered`, { service: name });
|
|
57
|
-
},
|
|
58
|
-
getService: (name) => {
|
|
59
|
-
if (this.services instanceof Map) {
|
|
60
|
-
const service = this.services.get(name);
|
|
61
|
-
if (!service) {
|
|
62
|
-
throw new Error(`[Kernel] Service '${name}' not found`);
|
|
63
|
-
}
|
|
64
|
-
return service;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
// IServiceRegistry implementation
|
|
68
|
-
return this.services.get(name);
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
hook: (name, handler) => {
|
|
72
|
-
if (!this.hooks.has(name)) {
|
|
73
|
-
this.hooks.set(name, []);
|
|
74
|
-
}
|
|
75
|
-
this.hooks.get(name).push(handler);
|
|
76
|
-
},
|
|
77
|
-
trigger: async (name, ...args) => {
|
|
78
|
-
const handlers = this.hooks.get(name) || [];
|
|
79
|
-
for (const handler of handlers) {
|
|
80
|
-
await handler(...args);
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
getServices: () => {
|
|
84
|
-
if (this.services instanceof Map) {
|
|
85
|
-
return new Map(this.services);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
// For IServiceRegistry, we need to return the underlying Map
|
|
89
|
-
// This is a compatibility method
|
|
90
|
-
return new Map();
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
logger: this.logger,
|
|
94
|
-
getKernel: () => this,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Resolve plugin dependencies using topological sort
|
|
99
|
-
* @returns Ordered list of plugins (dependencies first)
|
|
100
|
-
*/
|
|
101
|
-
resolveDependencies() {
|
|
102
|
-
const resolved = [];
|
|
103
|
-
const visited = new Set();
|
|
104
|
-
const visiting = new Set();
|
|
105
|
-
const visit = (pluginName) => {
|
|
106
|
-
if (visited.has(pluginName))
|
|
107
|
-
return;
|
|
108
|
-
if (visiting.has(pluginName)) {
|
|
109
|
-
throw new Error(`[Kernel] Circular dependency detected: ${pluginName}`);
|
|
110
|
-
}
|
|
111
|
-
const plugin = this.plugins.get(pluginName);
|
|
112
|
-
if (!plugin) {
|
|
113
|
-
throw new Error(`[Kernel] Plugin '${pluginName}' not found`);
|
|
114
|
-
}
|
|
115
|
-
visiting.add(pluginName);
|
|
116
|
-
// Visit dependencies first
|
|
117
|
-
const deps = plugin.dependencies || [];
|
|
118
|
-
for (const dep of deps) {
|
|
119
|
-
if (!this.plugins.has(dep)) {
|
|
120
|
-
throw new Error(`[Kernel] Dependency '${dep}' not found for plugin '${pluginName}'`);
|
|
121
|
-
}
|
|
122
|
-
visit(dep);
|
|
123
|
-
}
|
|
124
|
-
visiting.delete(pluginName);
|
|
125
|
-
visited.add(pluginName);
|
|
126
|
-
resolved.push(plugin);
|
|
127
|
-
};
|
|
128
|
-
// Visit all plugins
|
|
129
|
-
for (const pluginName of this.plugins.keys()) {
|
|
130
|
-
visit(pluginName);
|
|
131
|
-
}
|
|
132
|
-
return resolved;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Run plugin init phase
|
|
136
|
-
* @param plugin - Plugin to initialize
|
|
137
|
-
*/
|
|
138
|
-
async runPluginInit(plugin) {
|
|
139
|
-
const pluginName = plugin.name;
|
|
140
|
-
this.logger.info(`Initializing plugin: ${pluginName}`);
|
|
141
|
-
try {
|
|
142
|
-
await plugin.init(this.context);
|
|
143
|
-
this.logger.info(`Plugin initialized: ${pluginName}`);
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
this.logger.error(`Plugin init failed: ${pluginName}`, error);
|
|
147
|
-
throw error;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Run plugin start phase
|
|
152
|
-
* @param plugin - Plugin to start
|
|
153
|
-
*/
|
|
154
|
-
async runPluginStart(plugin) {
|
|
155
|
-
if (!plugin.start)
|
|
156
|
-
return;
|
|
157
|
-
const pluginName = plugin.name;
|
|
158
|
-
this.logger.info(`Starting plugin: ${pluginName}`);
|
|
159
|
-
try {
|
|
160
|
-
await plugin.start(this.context);
|
|
161
|
-
this.logger.info(`Plugin started: ${pluginName}`);
|
|
162
|
-
}
|
|
163
|
-
catch (error) {
|
|
164
|
-
this.logger.error(`Plugin start failed: ${pluginName}`, error);
|
|
165
|
-
throw error;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Run plugin destroy phase
|
|
170
|
-
* @param plugin - Plugin to destroy
|
|
171
|
-
*/
|
|
172
|
-
async runPluginDestroy(plugin) {
|
|
173
|
-
if (!plugin.destroy)
|
|
174
|
-
return;
|
|
175
|
-
const pluginName = plugin.name;
|
|
176
|
-
this.logger.info(`Destroying plugin: ${pluginName}`);
|
|
177
|
-
try {
|
|
178
|
-
await plugin.destroy();
|
|
179
|
-
this.logger.info(`Plugin destroyed: ${pluginName}`);
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
this.logger.error(`Plugin destroy failed: ${pluginName}`, error);
|
|
183
|
-
throw error;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Trigger a hook with all registered handlers
|
|
188
|
-
* @param name - Hook name
|
|
189
|
-
* @param args - Arguments to pass to handlers
|
|
190
|
-
*/
|
|
191
|
-
async triggerHook(name, ...args) {
|
|
192
|
-
const handlers = this.hooks.get(name) || [];
|
|
193
|
-
this.logger.debug(`Triggering hook: ${name}`, {
|
|
194
|
-
hook: name,
|
|
195
|
-
handlerCount: handlers.length
|
|
196
|
-
});
|
|
197
|
-
for (const handler of handlers) {
|
|
198
|
-
try {
|
|
199
|
-
await handler(...args);
|
|
200
|
-
}
|
|
201
|
-
catch (error) {
|
|
202
|
-
this.logger.error(`Hook handler failed: ${name}`, error);
|
|
203
|
-
// Continue with other handlers even if one fails
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Get current kernel state
|
|
209
|
-
*/
|
|
210
|
-
getState() {
|
|
211
|
-
return this.state;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Get all registered plugins
|
|
215
|
-
*/
|
|
216
|
-
getPlugins() {
|
|
217
|
-
return new Map(this.plugins);
|
|
218
|
-
}
|
|
219
|
-
}
|
package/dist/kernel.d.ts
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Plugin } from './types.js';
|
|
2
|
-
import type { LoggerConfig } from '@objectstack/spec/system';
|
|
3
|
-
import { ServiceLifecycle, ServiceFactory } from './plugin-loader.js';
|
|
4
|
-
/**
|
|
5
|
-
* Enhanced Kernel Configuration
|
|
6
|
-
*/
|
|
7
|
-
export interface ObjectKernelConfig {
|
|
8
|
-
logger?: Partial<LoggerConfig>;
|
|
9
|
-
/** Default plugin startup timeout in milliseconds */
|
|
10
|
-
defaultStartupTimeout?: number;
|
|
11
|
-
/** Whether to enable graceful shutdown */
|
|
12
|
-
gracefulShutdown?: boolean;
|
|
13
|
-
/** Graceful shutdown timeout in milliseconds */
|
|
14
|
-
shutdownTimeout?: number;
|
|
15
|
-
/** Whether to rollback on startup failure */
|
|
16
|
-
rollbackOnFailure?: boolean;
|
|
17
|
-
/** Whether to skip strict system requirement validation (Critical for testing) */
|
|
18
|
-
skipSystemValidation?: boolean;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Enhanced ObjectKernel with Advanced Plugin Management
|
|
22
|
-
*
|
|
23
|
-
* Extends the basic ObjectKernel with:
|
|
24
|
-
* - Async plugin loading with validation
|
|
25
|
-
* - Version compatibility checking
|
|
26
|
-
* - Plugin signature verification
|
|
27
|
-
* - Configuration validation (Zod)
|
|
28
|
-
* - Factory-based dependency injection
|
|
29
|
-
* - Service lifecycle management (singleton/transient/scoped)
|
|
30
|
-
* - Circular dependency detection
|
|
31
|
-
* - Lazy loading services
|
|
32
|
-
* - Graceful shutdown
|
|
33
|
-
* - Plugin startup timeout control
|
|
34
|
-
* - Startup failure rollback
|
|
35
|
-
* - Plugin health checks
|
|
36
|
-
*/
|
|
37
|
-
export declare class ObjectKernel {
|
|
38
|
-
private plugins;
|
|
39
|
-
private services;
|
|
40
|
-
private hooks;
|
|
41
|
-
private state;
|
|
42
|
-
private logger;
|
|
43
|
-
private context;
|
|
44
|
-
private pluginLoader;
|
|
45
|
-
private config;
|
|
46
|
-
private startedPlugins;
|
|
47
|
-
private pluginStartTimes;
|
|
48
|
-
private shutdownHandlers;
|
|
49
|
-
constructor(config?: ObjectKernelConfig);
|
|
50
|
-
/**
|
|
51
|
-
* Register a plugin with enhanced validation
|
|
52
|
-
*/
|
|
53
|
-
use(plugin: Plugin): Promise<this>;
|
|
54
|
-
/**
|
|
55
|
-
* Register a service instance directly
|
|
56
|
-
*/
|
|
57
|
-
registerService<T>(name: string, service: T): this;
|
|
58
|
-
/**
|
|
59
|
-
* Register a service factory with lifecycle management
|
|
60
|
-
*/
|
|
61
|
-
registerServiceFactory<T>(name: string, factory: ServiceFactory<T>, lifecycle?: ServiceLifecycle, dependencies?: string[]): this;
|
|
62
|
-
/**
|
|
63
|
-
* Validate Critical System Requirements
|
|
64
|
-
*/
|
|
65
|
-
private validateSystemRequirements;
|
|
66
|
-
/**
|
|
67
|
-
* Bootstrap the kernel with enhanced features
|
|
68
|
-
*/
|
|
69
|
-
bootstrap(): Promise<void>;
|
|
70
|
-
/**
|
|
71
|
-
* Graceful shutdown with timeout
|
|
72
|
-
*/
|
|
73
|
-
shutdown(): Promise<void>;
|
|
74
|
-
/**
|
|
75
|
-
* Check health of a specific plugin
|
|
76
|
-
*/
|
|
77
|
-
checkPluginHealth(pluginName: string): Promise<any>;
|
|
78
|
-
/**
|
|
79
|
-
* Check health of all plugins
|
|
80
|
-
*/
|
|
81
|
-
checkAllPluginsHealth(): Promise<Map<string, any>>;
|
|
82
|
-
/**
|
|
83
|
-
* Get plugin startup metrics
|
|
84
|
-
*/
|
|
85
|
-
getPluginMetrics(): Map<string, number>;
|
|
86
|
-
/**
|
|
87
|
-
* Get a service (sync helper)
|
|
88
|
-
*/
|
|
89
|
-
getService<T>(name: string): T;
|
|
90
|
-
/**
|
|
91
|
-
* Get a service asynchronously (supports factories)
|
|
92
|
-
*/
|
|
93
|
-
getServiceAsync<T>(name: string, scopeId?: string): Promise<T>;
|
|
94
|
-
/**
|
|
95
|
-
* Check if kernel is running
|
|
96
|
-
*/
|
|
97
|
-
isRunning(): boolean;
|
|
98
|
-
/**
|
|
99
|
-
* Get kernel state
|
|
100
|
-
*/
|
|
101
|
-
getState(): string;
|
|
102
|
-
private initPluginWithTimeout;
|
|
103
|
-
private startPluginWithTimeout;
|
|
104
|
-
private rollbackStartedPlugins;
|
|
105
|
-
private performShutdown;
|
|
106
|
-
private resolveDependencies;
|
|
107
|
-
private registerShutdownSignals;
|
|
108
|
-
/**
|
|
109
|
-
* Register a custom shutdown handler
|
|
110
|
-
*/
|
|
111
|
-
onShutdown(handler: () => Promise<void>): void;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=kernel.d.ts.map
|
package/dist/kernel.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAgC,gBAAgB,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAC;AAGzH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/B,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,KAAK,CAA2E;IACxF,OAAO,CAAC,KAAK,CAAwE;IACrF,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,gBAAgB,CAAkC;gBAE9C,MAAM,GAAE,kBAAuB;IAoF3C;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxC;;OAEG;IACH,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;IAUlD;;OAEG;IACH,sBAAsB,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,SAAS,GAAE,gBAA6C,EACxD,YAAY,CAAC,EAAE,MAAM,EAAE,GACxB,IAAI;IAUP;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAwClC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDhC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC/B;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAWxD;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvC;;OAEG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI9B;;OAEG;IACG,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAIpE;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,QAAQ,IAAI,MAAM;YAMJ,qBAAqB;YAerB,sBAAsB;YA6CtB,sBAAsB;YAkBtB,eAAe;IA2B7B,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,uBAAuB;IA6B/B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGjD"}
|