craft-native 0.0.37

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.
Files changed (117) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +424 -0
  3. package/bin/cli.ts +937 -0
  4. package/dist/api/android-advanced.d.ts +737 -0
  5. package/dist/api/android-advanced.d.ts.map +1 -0
  6. package/dist/api/app.d.ts +432 -0
  7. package/dist/api/app.d.ts.map +1 -0
  8. package/dist/api/clipboard.d.ts +85 -0
  9. package/dist/api/clipboard.d.ts.map +1 -0
  10. package/dist/api/crypto.d.ts +79 -0
  11. package/dist/api/crypto.d.ts.map +1 -0
  12. package/dist/api/db.d.ts +427 -0
  13. package/dist/api/db.d.ts.map +1 -0
  14. package/dist/api/dialog.d.ts +141 -0
  15. package/dist/api/dialog.d.ts.map +1 -0
  16. package/dist/api/fs.d.ts +131 -0
  17. package/dist/api/fs.d.ts.map +1 -0
  18. package/dist/api/http.d.ts +196 -0
  19. package/dist/api/http.d.ts.map +1 -0
  20. package/dist/api/index.d.ts +38 -0
  21. package/dist/api/index.d.ts.map +1 -0
  22. package/dist/api/ios-advanced.d.ts +833 -0
  23. package/dist/api/ios-advanced.d.ts.map +1 -0
  24. package/dist/api/macos-advanced.d.ts +721 -0
  25. package/dist/api/macos-advanced.d.ts.map +1 -0
  26. package/dist/api/media.d.ts +233 -0
  27. package/dist/api/media.d.ts.map +1 -0
  28. package/dist/api/mobile.d.ts +658 -0
  29. package/dist/api/mobile.d.ts.map +1 -0
  30. package/dist/api/process.d.ts +168 -0
  31. package/dist/api/process.d.ts.map +1 -0
  32. package/dist/api/sidebar.d.ts +125 -0
  33. package/dist/api/sidebar.d.ts.map +1 -0
  34. package/dist/api/tray.d.ts +410 -0
  35. package/dist/api/tray.d.ts.map +1 -0
  36. package/dist/api/window.d.ts +462 -0
  37. package/dist/api/window.d.ts.map +1 -0
  38. package/dist/api/windows-advanced.d.ts +719 -0
  39. package/dist/api/windows-advanced.d.ts.map +1 -0
  40. package/dist/assets/index.d.ts +69 -0
  41. package/dist/assets/index.d.ts.map +1 -0
  42. package/dist/binary-resolver.d.ts +39 -0
  43. package/dist/binary-resolver.d.ts.map +1 -0
  44. package/dist/bridge/android.d.ts +574 -0
  45. package/dist/bridge/android.d.ts.map +1 -0
  46. package/dist/bridge/core.d.ts +474 -0
  47. package/dist/bridge/core.d.ts.map +1 -0
  48. package/dist/bridge/ids.d.ts +18 -0
  49. package/dist/bridge/ids.d.ts.map +1 -0
  50. package/dist/bridge/ios.d.ts +528 -0
  51. package/dist/bridge/ios.d.ts.map +1 -0
  52. package/dist/bridge/webkit-pending.d.ts +50 -0
  53. package/dist/bridge/webkit-pending.d.ts.map +1 -0
  54. package/dist/build/bundle-optimizer.d.ts +69 -0
  55. package/dist/build/bundle-optimizer.d.ts.map +1 -0
  56. package/dist/components/index.d.ts +719 -0
  57. package/dist/components/index.d.ts.map +1 -0
  58. package/dist/components/native.d.ts +728 -0
  59. package/dist/components/native.d.ts.map +1 -0
  60. package/dist/components/sidebar.d.ts +458 -0
  61. package/dist/components/sidebar.d.ts.map +1 -0
  62. package/dist/dev/devtools.d.ts +118 -0
  63. package/dist/dev/devtools.d.ts.map +1 -0
  64. package/dist/dev/error-overlay.d.ts +73 -0
  65. package/dist/dev/error-overlay.d.ts.map +1 -0
  66. package/dist/dev/hot-reload.d.ts +127 -0
  67. package/dist/dev/hot-reload.d.ts.map +1 -0
  68. package/dist/index.cjs +10253 -0
  69. package/dist/index.d.cts +59 -0
  70. package/dist/index.d.ts +59 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +10240 -0
  73. package/dist/logging/index.d.ts +152 -0
  74. package/dist/logging/index.d.ts.map +1 -0
  75. package/dist/optimizations/index.d.ts +232 -0
  76. package/dist/optimizations/index.d.ts.map +1 -0
  77. package/dist/package.d.ts +90 -0
  78. package/dist/package.d.ts.map +1 -0
  79. package/dist/performance/runtime.d.ts +230 -0
  80. package/dist/performance/runtime.d.ts.map +1 -0
  81. package/dist/performance/startup.d.ts +223 -0
  82. package/dist/performance/startup.d.ts.map +1 -0
  83. package/dist/plugins/index.d.ts +114 -0
  84. package/dist/plugins/index.d.ts.map +1 -0
  85. package/dist/security/index.d.ts +268 -0
  86. package/dist/security/index.d.ts.map +1 -0
  87. package/dist/signing/index.d.ts +104 -0
  88. package/dist/signing/index.d.ts.map +1 -0
  89. package/dist/styles/headwind.d.ts +222 -0
  90. package/dist/styles/headwind.d.ts.map +1 -0
  91. package/dist/styles/index.d.ts +31 -0
  92. package/dist/styles/index.d.ts.map +1 -0
  93. package/dist/styles/sidebar-templates.d.ts +77 -0
  94. package/dist/styles/sidebar-templates.d.ts.map +1 -0
  95. package/dist/styles/sidebars.d.ts +194 -0
  96. package/dist/styles/sidebars.d.ts.map +1 -0
  97. package/dist/types.d.ts +1555 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/dist/updater/index.d.ts +164 -0
  100. package/dist/updater/index.d.ts.map +1 -0
  101. package/dist/utils/audio.d.ts +40 -0
  102. package/dist/utils/audio.d.ts.map +1 -0
  103. package/dist/utils/index.d.ts +9 -0
  104. package/dist/utils/index.d.ts.map +1 -0
  105. package/dist/utils/native.d.ts +27 -0
  106. package/dist/utils/native.d.ts.map +1 -0
  107. package/dist/utils/react.d.ts +157 -0
  108. package/dist/utils/react.d.ts.map +1 -0
  109. package/dist/utils/storage.d.ts +35 -0
  110. package/dist/utils/storage.d.ts.map +1 -0
  111. package/dist/utils/svelte.d.ts +187 -0
  112. package/dist/utils/svelte.d.ts.map +1 -0
  113. package/dist/utils/timer.d.ts +57 -0
  114. package/dist/utils/timer.d.ts.map +1 -0
  115. package/dist/utils/vue.d.ts +157 -0
  116. package/dist/utils/vue.d.ts.map +1 -0
  117. package/package.json +78 -0
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Craft Structured Logging
3
+ * JSON-based structured logging with filtering and remote reporting
4
+ */
5
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
6
+ export interface LogEntry {
7
+ level: LogLevel;
8
+ message: string;
9
+ timestamp: string;
10
+ context?: Record<string, unknown>;
11
+ stack?: string;
12
+ tags?: string[];
13
+ }
14
+ export interface LoggerConfig {
15
+ level?: LogLevel;
16
+ format?: 'json' | 'pretty' | 'minimal';
17
+ output?: 'console' | 'file' | 'both' | 'none';
18
+ filePath?: string;
19
+ maxFileSize?: number;
20
+ maxFiles?: number;
21
+ remote?: {
22
+ url: string;
23
+ batchSize?: number;
24
+ flushInterval?: number;
25
+ };
26
+ /**
27
+ * Field names to redact in logged context. Each entry is matched
28
+ * case-insensitively as a substring of the key — `'password'` matches
29
+ * `password`, `userPassword`, and `oldPassword`. For more precise control
30
+ * use {@link LoggerConfig.redactPatterns} instead.
31
+ */
32
+ redact?: string[];
33
+ /**
34
+ * Regular expressions to match against context keys for redaction. These
35
+ * fire in addition to {@link LoggerConfig.redact}. Use this when you
36
+ * need to redact things like `^auth_` prefixes without redacting `author`.
37
+ */
38
+ redactPatterns?: RegExp[];
39
+ enrichers?: Array<(entry: LogEntry) => LogEntry>;
40
+ }
41
+ export declare class Logger {
42
+ private config;
43
+ private context;
44
+ private buffer;
45
+ private flushTimer;
46
+ private currentFileSize;
47
+ private fileIndex;
48
+ constructor(config?: LoggerConfig);
49
+ private initFileLogging;
50
+ private startRemoteFlush;
51
+ /**
52
+ * Create a child logger with additional context
53
+ */
54
+ child(context: Record<string, unknown>): Logger;
55
+ /**
56
+ * Add context to all log entries
57
+ */
58
+ withContext(context: Record<string, unknown>): this;
59
+ /**
60
+ * Log methods
61
+ */
62
+ trace(message: string, context?: Record<string, unknown>): void;
63
+ debug(message: string, context?: Record<string, unknown>): void;
64
+ info(message: string, context?: Record<string, unknown>): void;
65
+ warn(message: string, context?: Record<string, unknown>): void;
66
+ error(message: string, context?: Record<string, unknown>): void;
67
+ fatal(message: string, context?: Record<string, unknown>): void;
68
+ /**
69
+ * Log with error object
70
+ */
71
+ errorWithStack(message: string, error: Error, context?: Record<string, unknown>): void;
72
+ /**
73
+ * Main log method
74
+ */
75
+ private log;
76
+ /**
77
+ * Output log entry
78
+ */
79
+ private output;
80
+ /**
81
+ * Output to console. When running inside a Craft webview we ALSO mirror
82
+ * the message through `window.craft.bridge.call('log.write', …)` so the
83
+ * native log facility (and tools like `Console.app` / `journalctl`)
84
+ * receives the entry — webview console output is otherwise stuck behind
85
+ * a devtools connection that production users don't have open.
86
+ */
87
+ private outputConsole;
88
+ /**
89
+ * Output to file
90
+ */
91
+ private outputFile;
92
+ /**
93
+ * Rotate log file
94
+ */
95
+ private rotateFile;
96
+ /**
97
+ * Format log entry
98
+ */
99
+ private format;
100
+ /**
101
+ * Redact sensitive fields. A field is redacted if its name (lowercased)
102
+ * substring-matches one of `config.redact`, OR if its name (untouched)
103
+ * matches one of `config.redactPatterns`. Nested objects recurse.
104
+ */
105
+ private redactSensitive;
106
+ /**
107
+ * Flush logs to remote endpoint
108
+ */
109
+ private flushRemote;
110
+ /**
111
+ * Flush and close logger
112
+ */
113
+ close(): Promise<void>;
114
+ /**
115
+ * Set log level
116
+ */
117
+ setLevel(level: LogLevel): void;
118
+ /**
119
+ * Get current log level
120
+ */
121
+ getLevel(): LogLevel;
122
+ }
123
+ export declare const enrichers: {
124
+ /**
125
+ * Add process info
126
+ */
127
+ processInfo: (entry: LogEntry) => LogEntry;
128
+ /**
129
+ * Add hostname
130
+ */
131
+ hostname: (entry: LogEntry) => LogEntry;
132
+ /**
133
+ * Add environment
134
+ */
135
+ environment: (entry: LogEntry) => LogEntry;
136
+ /**
137
+ * Add request ID (for HTTP contexts)
138
+ */
139
+ requestId: (getId: () => string | undefined) => (entry: LogEntry) => LogEntry;
140
+ };
141
+ export declare function getLogger(config?: LoggerConfig): Logger;
142
+ export declare function setDefaultLogger(logger: Logger): void;
143
+ export declare const log: {
144
+ trace: (message: string, context?: Record<string, unknown>) => void;
145
+ debug: (message: string, context?: Record<string, unknown>) => void;
146
+ info: (message: string, context?: Record<string, unknown>) => void;
147
+ warn: (message: string, context?: Record<string, unknown>) => void;
148
+ error: (message: string, context?: Record<string, unknown>) => void;
149
+ fatal: (message: string, context?: Record<string, unknown>) => void;
150
+ };
151
+ export default Logger;
152
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Framework-Specific Optimizations
3
+ *
4
+ * Performance optimizations for React, Vue, and Svelte.
5
+ * These utilities are framework-agnostic at the core level
6
+ * and integrate with specific frameworks when available.
7
+ */
8
+ /**
9
+ * Configuration for React-specific optimizations
10
+ */
11
+ export interface ReactOptimizationConfig {
12
+ /** Enable React DevTools in development */
13
+ enableDevTools?: boolean;
14
+ /** Enable React Profiler */
15
+ enableProfiler?: boolean;
16
+ /** Enable strict mode warnings */
17
+ strictMode?: boolean;
18
+ /** Enable concurrent features */
19
+ concurrent?: boolean;
20
+ /** Lazy loading chunk size limit in KB */
21
+ lazyChunkLimit?: number;
22
+ /** Enable automatic batching */
23
+ autoBatching?: boolean;
24
+ }
25
+ /**
26
+ * React optimization utilities
27
+ *
28
+ * Note: These functions require React to be installed in your project.
29
+ * They gracefully handle cases where React is not available.
30
+ */
31
+ export declare const reactOptimizations: {
32
+ /**
33
+ * Configure React for production
34
+ */
35
+ configureProduction(config?: ReactOptimizationConfig): void;
36
+ /**
37
+ * Create a lazy component factory function
38
+ * Returns a function that creates lazy components when React is available
39
+ */
40
+ createLazyFactory(): <T>(factory: () => Promise<{
41
+ default: T;
42
+ }>, options?: {
43
+ preload?: boolean;
44
+ }) => {
45
+ load: () => Promise<void>;
46
+ };
47
+ /**
48
+ * Create a debounce hook factory
49
+ */
50
+ createDebouncedValueHook<T>(delay: number): (value: T) => T;
51
+ /**
52
+ * Create a throttle function
53
+ */
54
+ createThrottle<T extends (...args: any[]) => any>(fn: T, delay: number): T;
55
+ };
56
+ /**
57
+ * Configuration for Vue-specific optimizations
58
+ */
59
+ export interface VueOptimizationConfig {
60
+ /** Enable Vue DevTools in development */
61
+ enableDevTools?: boolean;
62
+ /** Enable performance tracing */
63
+ performance?: boolean;
64
+ /** Custom error handler */
65
+ errorHandler?: (err: Error, vm: any, info: string) => void;
66
+ /** Custom warn handler */
67
+ warnHandler?: (msg: string, vm: any, trace: string) => void;
68
+ }
69
+ /**
70
+ * Vue optimization utilities
71
+ *
72
+ * Note: These functions require Vue to be installed in your project.
73
+ */
74
+ export declare const vueOptimizations: {
75
+ /**
76
+ * Configure Vue app for production
77
+ */
78
+ configureProduction(app: any, config?: VueOptimizationConfig): void;
79
+ /**
80
+ * Create an async component loader configuration
81
+ */
82
+ createAsyncConfig(options?: {
83
+ delay?: number;
84
+ timeout?: number;
85
+ retries?: number;
86
+ }): {
87
+ delay: number;
88
+ timeout: number;
89
+ onError: (error: Error, retry: () => void, fail: () => void, attempts: number) => void;
90
+ };
91
+ /**
92
+ * Create a cached computed factory.
93
+ *
94
+ * - `maxAge`: discard entries older than `maxAge` ms (0 = forever).
95
+ * - `maxEntries`: hard cap on the number of cached entries (default
96
+ * 1000). Once exceeded, the least-recently-used entry is evicted.
97
+ * This prevents the unbounded growth that the previous version
98
+ * exhibited — calling `get(uniqueKey, …)` in a loop with `maxAge=0`
99
+ * would leak indefinitely.
100
+ *
101
+ * LRU is implemented via the `Map` insertion-order property: on hit,
102
+ * we re-insert the entry to move it to the tail; on insert, the head
103
+ * (`cache.keys().next().value`) is the LRU.
104
+ */
105
+ createCacheFactory<T>(options?: {
106
+ maxAge?: number;
107
+ maxEntries?: number;
108
+ }): {
109
+ cache: Map<string, {
110
+ value: T;
111
+ timestamp: number;
112
+ }>;
113
+ get: (key: string, getter: () => T) => T;
114
+ invalidate: (key?: string) => void;
115
+ };
116
+ };
117
+ /**
118
+ * Configuration for Svelte-specific optimizations
119
+ */
120
+ export interface SvelteOptimizationConfig {
121
+ /** Enable dev mode */
122
+ dev?: boolean;
123
+ /** Enable CSS optimization */
124
+ cssOptimization?: boolean;
125
+ /** Hydration strategy */
126
+ hydration?: 'full' | 'partial' | 'none';
127
+ }
128
+ /**
129
+ * Svelte optimization utilities
130
+ *
131
+ * Note: These functions require Svelte to be installed in your project.
132
+ */
133
+ export declare const svelteOptimizations: {
134
+ /**
135
+ * Create a memoization wrapper for derived values
136
+ */
137
+ createMemoizer<T, U>(fn: (value: T) => U, isEqual?: (a: U, b: U) => boolean): (value: T) => U;
138
+ /**
139
+ * Create a debounced setter
140
+ */
141
+ createDebouncedSetter<T>(delay?: number): {
142
+ set: (value: T, callback: (value: T) => void) => void;
143
+ cancel: () => void;
144
+ };
145
+ /**
146
+ * Create a throttled setter
147
+ */
148
+ createThrottledSetter<T>(delay?: number): {
149
+ set: (value: T, callback: (value: T) => void) => void;
150
+ };
151
+ /**
152
+ * Create an intersection observer action config
153
+ */
154
+ createLazyActionConfig(options?: {
155
+ threshold?: number;
156
+ rootMargin?: string;
157
+ }): IntersectionObserverInit;
158
+ /**
159
+ * Create transition configuration with hardware acceleration hints
160
+ */
161
+ createAcceleratedTransitionConfig(type: "fade" | "slide" | "scale", options?: {
162
+ duration?: number;
163
+ easing?: string;
164
+ }): {
165
+ type: string;
166
+ duration: number;
167
+ easing: string;
168
+ willChange: string;
169
+ };
170
+ };
171
+ /**
172
+ * Common optimization utilities for all frameworks
173
+ */
174
+ export declare const commonOptimizations: {
175
+ /**
176
+ * Defer non-critical JavaScript execution
177
+ */
178
+ defer(fn: () => void): void;
179
+ /**
180
+ * Preload critical resources
181
+ */
182
+ preload(urls: string[], type: "script" | "style" | "image" | "font"): void;
183
+ /**
184
+ * Prefetch resources for future navigation
185
+ */
186
+ prefetch(urls: string[]): void;
187
+ /**
188
+ * Create an intersection observer for lazy loading
189
+ */
190
+ createLazyLoader(callback: (entry: IntersectionObserverEntry) => void, options?: IntersectionObserverInit): IntersectionObserver | null;
191
+ /**
192
+ * Measure component render time
193
+ */
194
+ measureRender(name: string): {
195
+ start: () => void;
196
+ end: () => void;
197
+ };
198
+ /**
199
+ * Create a memoized function
200
+ */
201
+ memoize<T extends (...args: any[]) => any>(fn: T, options?: {
202
+ maxSize?: number;
203
+ ttl?: number;
204
+ }): T;
205
+ /**
206
+ * Batch DOM updates using requestAnimationFrame
207
+ */
208
+ batchDOMUpdates(updates: Array<() => void>): void;
209
+ /**
210
+ * Create a debounce function
211
+ */
212
+ debounce<T extends (...args: any[]) => any>(fn: T, delay: number): T & {
213
+ cancel: () => void;
214
+ };
215
+ /**
216
+ * Create a throttle function
217
+ */
218
+ throttle<T extends (...args: any[]) => any>(fn: T, delay: number): T;
219
+ /**
220
+ * Detect if running in a low-power mode or reduced motion preference
221
+ */
222
+ detectReducedMotion(): boolean;
223
+ /**
224
+ * Detect if running on a low-end device
225
+ */
226
+ detectLowEndDevice(): boolean;
227
+ /**
228
+ * Create an adaptive quality level based on device capabilities
229
+ */
230
+ getAdaptiveQuality(): "low" | "medium" | "high";
231
+ };
232
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/optimizations/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Craft Packaging API
3
+ *
4
+ * Enables users to create installers for their Craft applications
5
+ * across all platforms (macOS, Windows, Linux)
6
+ */
7
+ export interface PackageConfig {
8
+ /** Application name */
9
+ name: string;
10
+ /** Application version (semver) */
11
+ version: string;
12
+ /** Application description */
13
+ description?: string;
14
+ /** Author/Maintainer */
15
+ author?: string;
16
+ /** Homepage URL */
17
+ homepage?: string;
18
+ /** Path to application binary */
19
+ binaryPath: string;
20
+ /** Path to application icon (platform-specific formats) */
21
+ iconPath?: string;
22
+ /** Output directory for installers */
23
+ outDir?: string;
24
+ /** Bundle identifier (macOS/iOS) */
25
+ bundleId?: string;
26
+ /** Platforms to build for */
27
+ platforms?: Array<'macos' | 'windows' | 'linux'>;
28
+ /** macOS-specific options */
29
+ macos?: {
30
+ /** Create DMG installer */
31
+ dmg?: boolean;
32
+ /** Create PKG installer */
33
+ pkg?: boolean;
34
+ /** Code signing identity */
35
+ signIdentity?: string;
36
+ /** Notarize the app */
37
+ notarize?: boolean;
38
+ /** Apple ID for notarization */
39
+ appleId?: string;
40
+ /** App-specific password */
41
+ applePassword?: string;
42
+ };
43
+ /** Windows-specific options */
44
+ windows?: {
45
+ /** Create MSI installer */
46
+ msi?: boolean;
47
+ /** Create ZIP archive */
48
+ zip?: boolean;
49
+ /** Code signing certificate */
50
+ certificatePath?: string;
51
+ /** Certificate password */
52
+ certificatePassword?: string;
53
+ };
54
+ /** Linux-specific options */
55
+ linux?: {
56
+ /** Create DEB package */
57
+ deb?: boolean;
58
+ /** Create RPM package */
59
+ rpm?: boolean;
60
+ /** Create AppImage */
61
+ appImage?: boolean;
62
+ /** Desktop categories */
63
+ categories?: string[];
64
+ /** Dependencies (Debian) */
65
+ debDependencies?: string[];
66
+ /** Dependencies (RPM) */
67
+ rpmDependencies?: string[];
68
+ };
69
+ }
70
+ export interface PackageResult {
71
+ success: boolean;
72
+ platform: string;
73
+ format: string;
74
+ outputPath?: string;
75
+ error?: string;
76
+ }
77
+ /**
78
+ * Package a Craft application for distribution
79
+ */
80
+ export declare function packageApp(config: PackageConfig): Promise<PackageResult[]>;
81
+ /**
82
+ * Simple packaging function for quick use
83
+ */
84
+ export declare function pack(options: {
85
+ name: string;
86
+ version: string;
87
+ binaryPath: string;
88
+ outDir?: string;
89
+ }): Promise<PackageResult[]>;
90
+ //# sourceMappingURL=package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgCH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IAEZ,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAA;IAEf,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;IAElB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,CAAA;IAEhD,6BAA6B;IAC7B,KAAK,CAAC,EAAE;QACN,2BAA2B;QAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,2BAA2B;QAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,4BAA4B;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;QAErB,uBAAuB;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAElB,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,4BAA4B;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;IAED,+BAA+B;IAC/B,OAAO,CAAC,EAAE;QACR,2BAA2B;QAC3B,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,+BAA+B;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;QAExB,2BAA2B;QAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAC7B,CAAA;IAED,6BAA6B;IAC7B,KAAK,CAAC,EAAE;QACN,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,yBAAyB;QACzB,GAAG,CAAC,EAAE,OAAO,CAAA;QAEb,sBAAsB;QACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAElB,yBAAyB;QACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QAErB,4BAA4B;QAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;QAE1B,yBAAyB;QACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAC3B,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAiChF;AA2sBD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAK3B"}