@coherent.js/core 1.0.0-beta.2
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/LICENSE +21 -0
- package/README.md +130 -0
- package/dist/coherent.d.ts +472 -0
- package/dist/coherent.d.ts.map +1 -0
- package/dist/coherent.js +590 -0
- package/dist/coherent.js.map +1 -0
- package/dist/components/component-system.d.ts +1138 -0
- package/dist/components/component-system.d.ts.map +1 -0
- package/dist/components/component-system.js +2220 -0
- package/dist/components/component-system.js.map +1 -0
- package/dist/components/lifecycle.d.ts +212 -0
- package/dist/components/lifecycle.d.ts.map +1 -0
- package/dist/components/lifecycle.js +525 -0
- package/dist/components/lifecycle.js.map +1 -0
- package/dist/core/html-utils.d.ts +14 -0
- package/dist/core/html-utils.d.ts.map +1 -0
- package/dist/core/html-utils.js +166 -0
- package/dist/core/html-utils.js.map +1 -0
- package/dist/core/object-factory.d.ts +38 -0
- package/dist/core/object-factory.d.ts.map +1 -0
- package/dist/core/object-factory.js +63 -0
- package/dist/core/object-factory.js.map +1 -0
- package/dist/core/object-utils.d.ts +77 -0
- package/dist/core/object-utils.d.ts.map +1 -0
- package/dist/core/object-utils.js +502 -0
- package/dist/core/object-utils.js.map +1 -0
- package/dist/dev/dev-tools.d.ts +194 -0
- package/dist/dev/dev-tools.d.ts.map +1 -0
- package/dist/dev/dev-tools.js +846 -0
- package/dist/dev/dev-tools.js.map +1 -0
- package/dist/forms/validation.d.ts +271 -0
- package/dist/forms/validation.d.ts.map +1 -0
- package/dist/forms/validation.js +573 -0
- package/dist/forms/validation.js.map +1 -0
- package/dist/index.cjs +5281 -0
- package/dist/index.cjs.map +7 -0
- package/dist/index.js +5204 -0
- package/dist/index.js.map +7 -0
- package/dist/performance/bundle-optimizer.d.ts +95 -0
- package/dist/performance/bundle-optimizer.d.ts.map +1 -0
- package/dist/performance/bundle-optimizer.js +192 -0
- package/dist/performance/bundle-optimizer.js.map +1 -0
- package/dist/performance/cache-manager.d.ts +107 -0
- package/dist/performance/cache-manager.d.ts.map +1 -0
- package/dist/performance/cache-manager.js +314 -0
- package/dist/performance/cache-manager.js.map +1 -0
- package/dist/performance/component-cache.d.ts +120 -0
- package/dist/performance/component-cache.d.ts.map +1 -0
- package/dist/performance/component-cache.js +364 -0
- package/dist/performance/component-cache.js.map +1 -0
- package/dist/performance/monitor.d.ts +189 -0
- package/dist/performance/monitor.d.ts.map +1 -0
- package/dist/performance/monitor.js +347 -0
- package/dist/performance/monitor.js.map +1 -0
- package/dist/rendering/base-renderer.d.ts +140 -0
- package/dist/rendering/base-renderer.d.ts.map +1 -0
- package/dist/rendering/base-renderer.js +409 -0
- package/dist/rendering/base-renderer.js.map +1 -0
- package/dist/rendering/css-manager.d.ts +73 -0
- package/dist/rendering/css-manager.d.ts.map +1 -0
- package/dist/rendering/css-manager.js +176 -0
- package/dist/rendering/css-manager.js.map +1 -0
- package/dist/rendering/dom-renderer.d.ts +62 -0
- package/dist/rendering/dom-renderer.d.ts.map +1 -0
- package/dist/rendering/dom-renderer.js +252 -0
- package/dist/rendering/dom-renderer.js.map +1 -0
- package/dist/rendering/html-renderer.d.ts +67 -0
- package/dist/rendering/html-renderer.d.ts.map +1 -0
- package/dist/rendering/html-renderer.js +444 -0
- package/dist/rendering/html-renderer.js.map +1 -0
- package/dist/rendering/renderer-config.d.ts +282 -0
- package/dist/rendering/renderer-config.d.ts.map +1 -0
- package/dist/rendering/renderer-config.js +144 -0
- package/dist/rendering/renderer-config.js.map +1 -0
- package/dist/rendering/streaming-renderer.d.ts +117 -0
- package/dist/rendering/streaming-renderer.d.ts.map +1 -0
- package/dist/rendering/streaming-renderer.js +326 -0
- package/dist/rendering/streaming-renderer.js.map +1 -0
- package/dist/rendering/vdom-diff.d.ts +47 -0
- package/dist/rendering/vdom-diff.d.ts.map +1 -0
- package/dist/rendering/vdom-diff.js +416 -0
- package/dist/rendering/vdom-diff.js.map +1 -0
- package/dist/routing/router.d.ts +241 -0
- package/dist/routing/router.d.ts.map +1 -0
- package/dist/routing/router.js +648 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/state/reactive-state.d.ts +166 -0
- package/dist/state/reactive-state.d.ts.map +1 -0
- package/dist/state/reactive-state.js +546 -0
- package/dist/state/reactive-state.js.map +1 -0
- package/dist/state/state-manager.d.ts +45 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +151 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/constants.js +36 -0
- package/dist/types/constants.js.map +1 -0
- package/dist/utils/dependency-utils.d.ts +43 -0
- package/dist/utils/dependency-utils.d.ts.map +1 -0
- package/dist/utils/dependency-utils.js +105 -0
- package/dist/utils/dependency-utils.js.map +1 -0
- package/dist/utils/error-handler.d.ts +148 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +468 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/normalization.d.ts +3 -0
- package/dist/utils/normalization.d.ts.map +1 -0
- package/dist/utils/normalization.js +24 -0
- package/dist/utils/normalization.js.map +1 -0
- package/dist/utils/validation.d.ts +10 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +32 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +44 -0
- package/types/index.d.ts +734 -0
package/dist/coherent.js
ADDED
|
@@ -0,0 +1,590 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coherent.js - Object-Based Rendering Framework
|
|
3
|
+
* A pure JavaScript framework for server-side and client-side rendering
|
|
4
|
+
* using natural object syntax without function wrappers like h() or m()
|
|
5
|
+
*
|
|
6
|
+
* @version 1.0.0
|
|
7
|
+
* @author Coherent Framework Team
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
// Core rendering engine
|
|
11
|
+
import { renderToString, renderHTML, renderHTMLSync, render, renderBatch, renderToChunks, renderWithTiming, precompileComponent, getCache, resetCache, getRenderingStats } from './rendering/html-renderer.js';
|
|
12
|
+
// CSS management
|
|
13
|
+
import { createCSSManager, defaultCSSManager, cssUtils } from './rendering/css-manager.js';
|
|
14
|
+
// Cache management
|
|
15
|
+
import { createCacheManager } from './performance/cache-manager.js';
|
|
16
|
+
import { createComponentCache, memoize } from './performance/component-cache.js';
|
|
17
|
+
// Enhanced error handling
|
|
18
|
+
import { globalErrorHandler, createErrorHandler } from './utils/error-handler.js';
|
|
19
|
+
// Reactive state management
|
|
20
|
+
import { createReactiveState, observable, computed, stateUtils } from './state/reactive-state.js';
|
|
21
|
+
// Component lifecycle and events
|
|
22
|
+
import { eventSystem, componentUtils, withLifecycle, createLifecycleHooks } from './components/lifecycle.js';
|
|
23
|
+
// Advanced routingF
|
|
24
|
+
import { createRouter, routeGuards, routeComponents } from './routing/router.js';
|
|
25
|
+
// Form validation and binding
|
|
26
|
+
import { createForm, validationRules, binding, formComponents } from './forms/validation.js';
|
|
27
|
+
// Streaming capabilities
|
|
28
|
+
import { createStreamingRenderer, streamingUtils } from './rendering/streaming-renderer.js';
|
|
29
|
+
// DOM rendering capabilities
|
|
30
|
+
import { renderToDOM, updateDOM } from './rendering/dom-renderer.js';
|
|
31
|
+
// Import hydration functions
|
|
32
|
+
import { hydrate, makeHydratable, autoHydrate, hydrateAll, hydrateBySelector, enableClientEvents } from './client/hydration.js';
|
|
33
|
+
// Configuration utilities
|
|
34
|
+
import { createHtmlConfig, createStreamingConfig, createDomConfig, createDevConfig, createProdConfig, validateConfig, mergeConfigs, getConfigPreset, CONFIG_PRESETS } from './rendering/renderer-config.js';
|
|
35
|
+
// Performance monitoring and optimization
|
|
36
|
+
import { performanceMonitor } from './performance/monitor.js';
|
|
37
|
+
// Core utilities
|
|
38
|
+
import { validateComponent, isCoherentObject, extractProps, hasChildren, normalizeChildren, deepClone, mergeProps, getNestedValue, setNestedValue } from './core/object-utils.js';
|
|
39
|
+
import { escapeHtml, isVoidElement, formatAttributes, minifyHtml } from './core/html-utils.js';
|
|
40
|
+
// Component system
|
|
41
|
+
import { createComponent, withState, withProps, memo, lazy } from './components/component-system.js';
|
|
42
|
+
// Development tools
|
|
43
|
+
import { DevTools } from './dev/dev-tools.js';
|
|
44
|
+
/**
|
|
45
|
+
* Main Coherent Framework Class
|
|
46
|
+
* Provides a unified interface to all framework capabilities
|
|
47
|
+
*/
|
|
48
|
+
class Coherent {
|
|
49
|
+
constructor(options = {}) {
|
|
50
|
+
this.options = {
|
|
51
|
+
enableCache: options.enableCache !== false,
|
|
52
|
+
enableMonitoring: options.enableMonitoring !== false,
|
|
53
|
+
enableDevTools: options.enableDevTools !== false,
|
|
54
|
+
cacheSize: options.cacheSize || 1000,
|
|
55
|
+
cacheTTL: options.cacheTTL || 300000, // 5 minutes
|
|
56
|
+
maxDepth: options.maxDepth || 100,
|
|
57
|
+
minify: options.minify || false,
|
|
58
|
+
...options
|
|
59
|
+
};
|
|
60
|
+
// Initialize cache if enabled
|
|
61
|
+
if (this.options.enableCache) {
|
|
62
|
+
this.cache = createCacheManager({
|
|
63
|
+
maxSize: this.options.cacheSize,
|
|
64
|
+
ttlMs: this.options.cacheTTL
|
|
65
|
+
});
|
|
66
|
+
// Initialize component cache for advanced caching
|
|
67
|
+
this.componentCache = createComponentCache({
|
|
68
|
+
maxSize: this.options.componentCacheSize || 500,
|
|
69
|
+
defaultTTL: this.options.componentCacheTTL || 300000
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Initialize reactive state system
|
|
73
|
+
this.state = createReactiveState({}, {
|
|
74
|
+
enableHistory: this.options.enableStateHistory !== false,
|
|
75
|
+
maxHistorySize: this.options.stateHistorySize || 50
|
|
76
|
+
});
|
|
77
|
+
// Initialize router if routing is enabled
|
|
78
|
+
if (this.options.enableRouting) {
|
|
79
|
+
this.router = createRouter(this.options.routerOptions || {});
|
|
80
|
+
}
|
|
81
|
+
// Initialize global error handler
|
|
82
|
+
this.errorHandler = this.options.errorHandler || globalErrorHandler;
|
|
83
|
+
// Initialize dev tools in development
|
|
84
|
+
if (this.options.enableDevTools && typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {
|
|
85
|
+
this.devTools = new DevTools(this);
|
|
86
|
+
}
|
|
87
|
+
// Bind methods to maintain context
|
|
88
|
+
this.render = this.render.bind(this);
|
|
89
|
+
this.renderToString = this.renderToString.bind(this);
|
|
90
|
+
this.renderBatch = this.renderBatch.bind(this);
|
|
91
|
+
this.stream = this.stream.bind(this);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Primary render method - converts components to HTML
|
|
95
|
+
*/
|
|
96
|
+
render(component, options = {}) {
|
|
97
|
+
const _config = { ...this.options, ...options };
|
|
98
|
+
try {
|
|
99
|
+
const html = renderToString(component, config);
|
|
100
|
+
// Development debugging
|
|
101
|
+
if (this.devTools) {
|
|
102
|
+
this.devTools.logRender(component, html, config);
|
|
103
|
+
}
|
|
104
|
+
return html;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
if (this.devTools) {
|
|
108
|
+
this.devTools.logError('render', error, { component, options });
|
|
109
|
+
}
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Alias for render method (for clarity)
|
|
115
|
+
*/
|
|
116
|
+
renderToString(component, options = {}) {
|
|
117
|
+
return this.render(component, options);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Batch rendering for multiple components
|
|
121
|
+
*/
|
|
122
|
+
renderBatch(components, options = {}) {
|
|
123
|
+
const _config = { ...this.options, ...options };
|
|
124
|
+
try {
|
|
125
|
+
const results = renderBatch(components, config);
|
|
126
|
+
if (this.devTools) {
|
|
127
|
+
this.devTools.logBatchRender(components, results, config);
|
|
128
|
+
}
|
|
129
|
+
return results;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
if (this.devTools) {
|
|
133
|
+
this.devTools.logError('renderBatch', error, { components, options });
|
|
134
|
+
}
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Streaming render for large components
|
|
140
|
+
*/
|
|
141
|
+
async *stream(component, options = {}) {
|
|
142
|
+
const _config = {
|
|
143
|
+
...this.options,
|
|
144
|
+
...options,
|
|
145
|
+
streaming: true
|
|
146
|
+
};
|
|
147
|
+
try {
|
|
148
|
+
for await (const chunk of renderToStream(component, config)) {
|
|
149
|
+
if (this.devTools) {
|
|
150
|
+
this.devTools.logStreamChunk(chunk);
|
|
151
|
+
}
|
|
152
|
+
yield chunk;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
if (this.devTools) {
|
|
157
|
+
this.devTools.logError('stream', error, { component, options });
|
|
158
|
+
}
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Create a streaming renderer instance
|
|
164
|
+
*/
|
|
165
|
+
createStreamingRenderer(options = {}) {
|
|
166
|
+
const _config = { ...this.options, ...options };
|
|
167
|
+
return createStreamingRenderer(config);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Component creation helpers
|
|
171
|
+
*/
|
|
172
|
+
createComponent(definition) {
|
|
173
|
+
return createComponent(definition);
|
|
174
|
+
}
|
|
175
|
+
withState(component, initialState) {
|
|
176
|
+
return withState(component, initialState);
|
|
177
|
+
}
|
|
178
|
+
withProps(component, _props) {
|
|
179
|
+
return withProps(component, _props);
|
|
180
|
+
}
|
|
181
|
+
memo(component, areEqual) {
|
|
182
|
+
return memo(component, areEqual);
|
|
183
|
+
}
|
|
184
|
+
lazy(componentLoader) {
|
|
185
|
+
return lazy(componentLoader);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Component caching and memoization
|
|
189
|
+
*/
|
|
190
|
+
memoize(component, keyGenerator, options = {}) {
|
|
191
|
+
return memoize(component, keyGenerator, {
|
|
192
|
+
...options,
|
|
193
|
+
cache: this.componentCache
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Update DOM with virtual DOM diffing
|
|
198
|
+
*/
|
|
199
|
+
updateDOM(element, newComponent, componentId = 'default', options = {}) {
|
|
200
|
+
const _config = { ...this.options, ...options };
|
|
201
|
+
return updateDOM(element, newComponent, componentId, config);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Invalidate component cache by dependencies
|
|
205
|
+
*/
|
|
206
|
+
invalidateCache(dependencies) {
|
|
207
|
+
if (this.componentCache) {
|
|
208
|
+
if (Array.isArray(dependencies)) {
|
|
209
|
+
return this.componentCache.invalidateMultiple(dependencies);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
return this.componentCache.invalidate(dependencies);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return 0;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Reactive state management
|
|
219
|
+
*/
|
|
220
|
+
setState(key, value) {
|
|
221
|
+
return this.state.set(key, value);
|
|
222
|
+
}
|
|
223
|
+
getState(key) {
|
|
224
|
+
return this.state.get(key);
|
|
225
|
+
}
|
|
226
|
+
watchState(key, callback, options) {
|
|
227
|
+
return this.state.watch(key, callback, options);
|
|
228
|
+
}
|
|
229
|
+
createComputed(key, getter, options) {
|
|
230
|
+
return this.state.computed(key, getter, options);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Event system
|
|
234
|
+
*/
|
|
235
|
+
emit(eventName, data, target) {
|
|
236
|
+
return eventSystem.emit(eventName, data, target);
|
|
237
|
+
}
|
|
238
|
+
on(eventName, handler, componentId) {
|
|
239
|
+
return eventSystem.on(eventName, handler, componentId);
|
|
240
|
+
}
|
|
241
|
+
off(eventName, handler, componentId) {
|
|
242
|
+
return eventSystem.off(eventName, handler, componentId);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Router methods
|
|
246
|
+
*/
|
|
247
|
+
navigate(location) {
|
|
248
|
+
if (!this.router) {
|
|
249
|
+
console.warn('Router not initialized. Enable routing in options.');
|
|
250
|
+
return Promise.resolve(false);
|
|
251
|
+
}
|
|
252
|
+
return this.router.push(location);
|
|
253
|
+
}
|
|
254
|
+
getCurrentRoute() {
|
|
255
|
+
return this.router ? this.router.getCurrentRoute() : null;
|
|
256
|
+
}
|
|
257
|
+
addRoutes(routes) {
|
|
258
|
+
if (this.router) {
|
|
259
|
+
this.router.addRoutes(routes);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Form validation
|
|
264
|
+
*/
|
|
265
|
+
createForm(schema, options) {
|
|
266
|
+
return createForm(schema, options);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Component lifecycle
|
|
270
|
+
*/
|
|
271
|
+
createComponentWithLifecycle(component, options) {
|
|
272
|
+
return componentUtils.createWithLifecycle(component, options);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Error handling
|
|
276
|
+
*/
|
|
277
|
+
handleError(error, _context) {
|
|
278
|
+
return this.errorHandler.handle(error, _context);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Performance and monitoring
|
|
282
|
+
*/
|
|
283
|
+
getPerformanceStats() {
|
|
284
|
+
return {
|
|
285
|
+
cache: this.cache ? this.cache.getStats() : null,
|
|
286
|
+
componentCache: this.componentCache ? this.componentCache.getStats() : null,
|
|
287
|
+
monitor: performanceMonitor.getStats(),
|
|
288
|
+
rendering: getRenderingStats()
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
getPerformanceRecommendations() {
|
|
292
|
+
const stats = this.getPerformanceStats();
|
|
293
|
+
const recommendations = [];
|
|
294
|
+
// Cache recommendations
|
|
295
|
+
if (stats.cache && stats.cache.hitRate < 50) {
|
|
296
|
+
recommendations.push({
|
|
297
|
+
type: 'cache',
|
|
298
|
+
priority: 'HIGH',
|
|
299
|
+
suggestion: 'Consider increasing cache size or enabling component-level caching',
|
|
300
|
+
impact: 'Major performance improvement for repeated renders',
|
|
301
|
+
details: `Current hit rate: ${stats.cache.hitRate}%`
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
// Hot path recommendations
|
|
305
|
+
if (this.cache) {
|
|
306
|
+
const hotPaths = this.cache.getHotPathElements(10);
|
|
307
|
+
hotPaths.forEach(({ tagName, count }) => {
|
|
308
|
+
recommendations.push({
|
|
309
|
+
type: 'static-cache',
|
|
310
|
+
priority: 'MEDIUM',
|
|
311
|
+
suggestion: `Consider static caching for: ${tagName}`,
|
|
312
|
+
impact: 'Significant performance improvement for hot paths',
|
|
313
|
+
details: `Rendered ${count} times, good candidate for static caching`
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
// Memory recommendations
|
|
318
|
+
if (stats.monitor && stats.monitor.avgRenderTime > 10) {
|
|
319
|
+
recommendations.push({
|
|
320
|
+
type: 'optimization',
|
|
321
|
+
priority: 'MEDIUM',
|
|
322
|
+
suggestion: 'Consider component memoization or precompilation',
|
|
323
|
+
impact: 'Reduced render times and better user experience',
|
|
324
|
+
details: `Average render time: ${stats.monitor.avgRenderTime}ms`
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
return recommendations;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Development and debugging tools
|
|
331
|
+
*/
|
|
332
|
+
enableDevMode() {
|
|
333
|
+
if (!this.devTools) {
|
|
334
|
+
this.devTools = new DevTools(this);
|
|
335
|
+
}
|
|
336
|
+
this.options.enableDevTools = true;
|
|
337
|
+
return this;
|
|
338
|
+
}
|
|
339
|
+
disableDevMode() {
|
|
340
|
+
this.options.enableDevTools = false;
|
|
341
|
+
this.devTools = null;
|
|
342
|
+
return this;
|
|
343
|
+
}
|
|
344
|
+
benchmark(component, iterations = 1000) {
|
|
345
|
+
console.time('Coherent Benchmark');
|
|
346
|
+
for (let i = 0; i < iterations; i++) {
|
|
347
|
+
this.render(component, { enableMonitoring: false });
|
|
348
|
+
}
|
|
349
|
+
console.timeEnd('Coherent Benchmark');
|
|
350
|
+
const stats = this.getPerformanceStats();
|
|
351
|
+
console.log(`\n📊 Benchmark Results (${iterations} iterations):`);
|
|
352
|
+
console.log(`Average render time: ${stats.monitor.avgRenderTime}ms`);
|
|
353
|
+
console.log(`Cache hit rate: ${stats.cache ? stats.cache.hitRate : 0}%`);
|
|
354
|
+
return stats;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Cache management
|
|
358
|
+
*/
|
|
359
|
+
clearCache() {
|
|
360
|
+
if (this.cache) {
|
|
361
|
+
this.cache.clear();
|
|
362
|
+
return true;
|
|
363
|
+
}
|
|
364
|
+
return false;
|
|
365
|
+
}
|
|
366
|
+
getCacheStats() {
|
|
367
|
+
if (!this.cache) {
|
|
368
|
+
return {
|
|
369
|
+
enabled: false,
|
|
370
|
+
size: 0,
|
|
371
|
+
hits: 0,
|
|
372
|
+
misses: 0,
|
|
373
|
+
hitRate: 0
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
return this.cache.getStats();
|
|
377
|
+
}
|
|
378
|
+
optimizeCache() {
|
|
379
|
+
if (this.cache) {
|
|
380
|
+
this.cache.cleanup();
|
|
381
|
+
return true;
|
|
382
|
+
}
|
|
383
|
+
return false;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Precompilation for static components
|
|
387
|
+
*/
|
|
388
|
+
precompile(component, options = {}) {
|
|
389
|
+
const _config = { ...this.options, ...options };
|
|
390
|
+
return precompileComponent(component, config);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Validation helpers
|
|
394
|
+
*/
|
|
395
|
+
validate(component) {
|
|
396
|
+
try {
|
|
397
|
+
validateComponent(component);
|
|
398
|
+
return { valid: true };
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
return { valid: false, error: error.message };
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
isCoherent(obj) {
|
|
405
|
+
return isCoherentObject(obj);
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Utility methods
|
|
409
|
+
*/
|
|
410
|
+
clone(obj) {
|
|
411
|
+
return deepClone(obj);
|
|
412
|
+
}
|
|
413
|
+
merge(obj1, obj2) {
|
|
414
|
+
return mergeProps(obj1, obj2);
|
|
415
|
+
}
|
|
416
|
+
extract(element) {
|
|
417
|
+
return extractProps(element);
|
|
418
|
+
}
|
|
419
|
+
normalize(children) {
|
|
420
|
+
return normalizeChildren(children);
|
|
421
|
+
}
|
|
422
|
+
escape(text) {
|
|
423
|
+
return escapeHtml(text);
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Framework information
|
|
427
|
+
*/
|
|
428
|
+
getVersion() {
|
|
429
|
+
return '1.0.0';
|
|
430
|
+
}
|
|
431
|
+
getInfo() {
|
|
432
|
+
return {
|
|
433
|
+
name: 'Coherent.js',
|
|
434
|
+
version: this.getVersion(),
|
|
435
|
+
description: 'Object-based rendering framework',
|
|
436
|
+
features: [
|
|
437
|
+
'Pure object syntax',
|
|
438
|
+
'Server-side rendering',
|
|
439
|
+
'Performance monitoring',
|
|
440
|
+
'Intelligent caching',
|
|
441
|
+
'Streaming support',
|
|
442
|
+
'Development tools'
|
|
443
|
+
],
|
|
444
|
+
stats: this.getPerformanceStats()
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* Convenience function to create a Coherent instance
|
|
450
|
+
*/
|
|
451
|
+
export function createCoherent(options = {}) {
|
|
452
|
+
return new Coherent(options);
|
|
453
|
+
}
|
|
454
|
+
// NOTE: createDatabaseManager moved to @coherent.js/database package
|
|
455
|
+
/**
|
|
456
|
+
* Default instance for quick usage
|
|
457
|
+
*/
|
|
458
|
+
export const coherent = new Coherent();
|
|
459
|
+
/**
|
|
460
|
+
* Named exports for specific functionality
|
|
461
|
+
*/
|
|
462
|
+
export {
|
|
463
|
+
// Main class
|
|
464
|
+
Coherent,
|
|
465
|
+
// Core rendering
|
|
466
|
+
renderToString, renderHTML, renderHTMLSync, render, renderBatch, renderToChunks, renderWithTiming,
|
|
467
|
+
// Streaming
|
|
468
|
+
createStreamingRenderer, streamingUtils,
|
|
469
|
+
// Client-side rendering and hydration
|
|
470
|
+
renderToDOM, updateDOM, hydrate, makeHydratable, autoHydrate, hydrateAll, hydrateBySelector, enableClientEvents,
|
|
471
|
+
// Components
|
|
472
|
+
createComponent, withState, withProps, memo, lazy,
|
|
473
|
+
// NOTE: Database functionality moved to @coherent.js/database package
|
|
474
|
+
// Utilities
|
|
475
|
+
validateComponent, isCoherentObject, extractProps, hasChildren, normalizeChildren, deepClone, escapeHtml, isVoidElement, formatAttributes, minifyHtml,
|
|
476
|
+
// Configuration utilities
|
|
477
|
+
createHtmlConfig, createStreamingConfig, createDomConfig, createDevConfig, createProdConfig, validateConfig, mergeConfigs, getConfigPreset, CONFIG_PRESETS,
|
|
478
|
+
// Performance (factory functions preferred)
|
|
479
|
+
performanceMonitor, createComponentCache, createCacheManager, memoize, getCache, resetCache, getRenderingStats,
|
|
480
|
+
// Error Handling (factory functions preferred)
|
|
481
|
+
createErrorHandler, globalErrorHandler,
|
|
482
|
+
// Reactive State (factory functions preferred)
|
|
483
|
+
createReactiveState, observable, computed, stateUtils,
|
|
484
|
+
// Component Lifecycle & Events (factory functions preferred)
|
|
485
|
+
createLifecycleHooks, eventSystem, componentUtils, withLifecycle,
|
|
486
|
+
// Routing (factory functions preferred)
|
|
487
|
+
createRouter, routeGuards, routeComponents,
|
|
488
|
+
// Forms & Validation (factory functions preferred)
|
|
489
|
+
createForm, validationRules, binding, formComponents,
|
|
490
|
+
// CSS Management (factory functions preferred)
|
|
491
|
+
createCSSManager, defaultCSSManager, cssUtils,
|
|
492
|
+
// Development
|
|
493
|
+
DevTools };
|
|
494
|
+
/**
|
|
495
|
+
* Export specific module bundles for different use cases
|
|
496
|
+
*/
|
|
497
|
+
// Server-side rendering bundle
|
|
498
|
+
export const server = {
|
|
499
|
+
render: renderToString,
|
|
500
|
+
renderBatch,
|
|
501
|
+
chunk: renderToChunks, // chunking pre-rendered HTML
|
|
502
|
+
stream: createStreamingRenderer, // true progressive streaming
|
|
503
|
+
performanceMonitor
|
|
504
|
+
};
|
|
505
|
+
// Component development bundle
|
|
506
|
+
export const components = {
|
|
507
|
+
createComponent,
|
|
508
|
+
withState,
|
|
509
|
+
withProps,
|
|
510
|
+
memo,
|
|
511
|
+
lazy,
|
|
512
|
+
validateComponent,
|
|
513
|
+
isCoherentObject
|
|
514
|
+
};
|
|
515
|
+
// Utilities bundle - Pure JS object approach
|
|
516
|
+
export const utils = {
|
|
517
|
+
// Core utilities
|
|
518
|
+
extractProps,
|
|
519
|
+
hasChildren,
|
|
520
|
+
normalizeChildren,
|
|
521
|
+
deepClone,
|
|
522
|
+
escapeHtml,
|
|
523
|
+
isVoidElement,
|
|
524
|
+
formatAttributes,
|
|
525
|
+
minifyHtml,
|
|
526
|
+
mergeProps,
|
|
527
|
+
getNestedValue,
|
|
528
|
+
setNestedValue,
|
|
529
|
+
// CSS utilities
|
|
530
|
+
cssUtils,
|
|
531
|
+
// NOTE: Database functionality moved to @coherent.js/database package
|
|
532
|
+
};
|
|
533
|
+
// Performance bundle
|
|
534
|
+
export const performance = {
|
|
535
|
+
performanceMonitor,
|
|
536
|
+
createCacheManager,
|
|
537
|
+
getCache,
|
|
538
|
+
resetCache,
|
|
539
|
+
getRenderingStats
|
|
540
|
+
};
|
|
541
|
+
/**
|
|
542
|
+
* Browser compatibility check
|
|
543
|
+
*/
|
|
544
|
+
if (typeof window !== 'undefined') {
|
|
545
|
+
// Browser environment
|
|
546
|
+
window.Coherent = Coherent;
|
|
547
|
+
// Add browser-specific optimizations
|
|
548
|
+
if (typeof window !== 'undefined' && window.requestIdleCallback) {
|
|
549
|
+
// Use idle time for cache optimization
|
|
550
|
+
const optimizeInIdle = () => {
|
|
551
|
+
if (coherent.cache) {
|
|
552
|
+
coherent.cache.optimize('component');
|
|
553
|
+
}
|
|
554
|
+
};
|
|
555
|
+
window.requestIdleCallback(optimizeInIdle);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Node.js environment setup
|
|
560
|
+
*/
|
|
561
|
+
if (typeof process !== 'undefined' && process.versions && process.versions.node) {
|
|
562
|
+
// Node.js environment
|
|
563
|
+
// Graceful cleanup on exit
|
|
564
|
+
process.on('exit', () => {
|
|
565
|
+
if (coherent.cache) {
|
|
566
|
+
coherent.cache.destroy();
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
// Performance monitoring in development
|
|
570
|
+
if (process.env.NODE_ENV === 'development') {
|
|
571
|
+
coherent.enableDevMode();
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* Version and build information
|
|
576
|
+
*/
|
|
577
|
+
export const VERSION = '1.0.0';
|
|
578
|
+
export const BUILD_DATE = new Date().toISOString();
|
|
579
|
+
export const FEATURES = [
|
|
580
|
+
'object-syntax',
|
|
581
|
+
'server-rendering',
|
|
582
|
+
'streaming',
|
|
583
|
+
'caching',
|
|
584
|
+
'monitoring',
|
|
585
|
+
'components',
|
|
586
|
+
'dev-tools'
|
|
587
|
+
].join(',');
|
|
588
|
+
// Single default export
|
|
589
|
+
export default Coherent;
|
|
590
|
+
//# sourceMappingURL=coherent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coherent.js","sourceRoot":"","sources":["../../../src/coherent.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAwB;AACxB,OAAO,EACH,cAAc,EACd,UAAU,EACV,cAAc,EACd,MAAM,EACN,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,iBAAiB,EACpB,MAAM,8BAA8B,CAAC;AAEtC,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3F,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAEjF,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAElF,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAElG,iCAAiC;AACjC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE7G,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEjF,8BAA8B;AAC9B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7F,yBAAyB;AACzB,OAAO,EACH,uBAAuB,EACvB,cAAc,EACjB,MAAM,mCAAmC,CAAC;AAE3C,6BAA6B;AAC7B,OAAO,EACH,WAAW,EACX,SAAS,EACZ,MAAM,6BAA6B,CAAC;AAErC,6BAA6B;AAC7B,OAAO,EACH,OAAO,EACP,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,0BAA0B;AAC1B,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,cAAc,EACjB,MAAM,gCAAgC,CAAC;AAExC,0CAA0C;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,iBAAiB;AACjB,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACH,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU,EACb,MAAM,sBAAsB,CAAC;AAE9B,mBAAmB;AACnB,OAAO,EACH,eAAe,EACf,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI,EACP,MAAM,kCAAkC,CAAC;AAE1C,oBAAoB;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;GAGG;AACH,MAAM,QAAQ;IACV,YAAY,OAAO,GAAG,EAAE;QACpB,IAAI,CAAC,OAAO,GAAG;YACX,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK;YAC1C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,KAAK,KAAK;YACpD,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,KAAK;YAChD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM,EAAE,YAAY;YAClD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,GAAG,OAAO;SACb,CAAC;QAEF,8BAA8B;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;gBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC/B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;aAC/B,CAAC,CAAC;YAEH,kDAAkD;YAClD,IAAI,CAAC,cAAc,GAAG,oBAAoB,CAAC;gBACvC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,GAAG;gBAC/C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,MAAM;aACvD,CAAC,CAAC;QACP,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,EAAE,EAAE;YACjC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,KAAK,KAAK;YACxD,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE;SACtD,CAAC,CAAC;QAEH,0CAA0C;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,kBAAkB,CAAC;QAEpE,sCAAsC;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACzG,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAE/C,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAE/C,wBAAwB;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;YAED,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAE/C,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,OAAO,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAA,CAAE,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG;YACX,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;YACV,SAAS,EAAE,IAAI;SAClB,CAAC;QAEF,IAAI,CAAC;YACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,OAAO,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,UAAU;QACtB,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,SAAS,EAAE,YAAY;QAC7B,OAAO,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,SAAS,EAAE,KAAK;QACtB,OAAO,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,QAAQ;QACpB,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,eAAe;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,EAAE;QACzC,OAAO,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE;YACpC,GAAG,OAAO;YACV,KAAK,EAAE,IAAI,CAAC,cAAc;SAC7B,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,GAAG,SAAS,EAAE,OAAO,GAAG,EAAE;QAClE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,KAAK;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,GAAG;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM;QACxB,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW;QAC9B,OAAO,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW;QAC/B,OAAO,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACnE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,MAAM;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO;QACtB,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,4BAA4B,CAAC,SAAS,EAAE,OAAO;QAC3C,OAAO,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,mBAAmB;QACf,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YAChD,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;YAC3E,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE;YACtC,SAAS,EAAE,iBAAiB,EAAE;SACjC,CAAC;IACN,CAAC;IAED,6BAA6B;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,EAAE,CAAC;QAE3B,wBAAwB;QACxB,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC;YAC1C,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,oEAAoE;gBAChF,MAAM,EAAE,oDAAoD;gBAC5D,OAAO,EAAE,qBAAqB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG;aACvD,CAAC,CAAC;QACP,CAAC;QAED,2BAA2B;QAC3B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACnD,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpC,eAAe,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,gCAAgC,OAAO,EAAE;oBACrD,MAAM,EAAE,mDAAmD;oBAC3D,OAAO,EAAE,YAAY,KAAK,2CAA2C;iBACxE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,yBAAyB;QACzB,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC;YACpD,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,kDAAkD;gBAC9D,MAAM,EAAE,iDAAiD;gBACzD,OAAO,EAAE,wBAAwB,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI;aACnE,CAAC,CAAC;QACP,CAAC;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa;QACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;QACV,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;QAClC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,eAAe,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEzE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU;QACN,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,aAAa;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC;aACb,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/C,OAAO,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAS;QACd,IAAI,CAAC;YACD,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAG;QACV,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACL,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,EAAE,IAAI;QACZ,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,OAAO;QACX,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,QAAQ;QACd,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI;QACP,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,UAAU;QACN,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,OAAO;QACH,OAAO;YACH,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE;gBACN,oBAAoB;gBACpB,uBAAuB;gBACvB,wBAAwB;gBACxB,qBAAqB;gBACrB,mBAAmB;gBACnB,mBAAmB;aACtB;YACD,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;SACpC,CAAC;IACN,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,GAAG,EAAE;IACvC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,oEAAoE;AAEpE;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAEvC;;GAEG;AACH,OAAO;AACH,aAAa;AACb,QAAQ;AAER,iBAAiB;AACjB,cAAc,EACd,UAAU,EACV,cAAc,EACd,MAAM,EACN,WAAW,EACX,cAAc,EACd,gBAAgB;AAEhB,YAAY;AACZ,uBAAuB,EACvB,cAAc;AAEd,sCAAsC;AACtC,WAAW,EACX,SAAS,EACT,OAAO,EACP,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,kBAAkB;AAElB,aAAa;AACb,eAAe,EACf,SAAS,EACT,SAAS,EACT,IAAI,EACJ,IAAI;AAEJ,qEAAqE;AAErE,YAAY;AACZ,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,UAAU;AAEV,0BAA0B;AAC1B,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,cAAc;AAEd,4CAA4C;AAC5C,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,UAAU,EACV,iBAAiB;AAEjB,+CAA+C;AAC/C,kBAAkB,EAClB,kBAAkB;AAElB,+CAA+C;AAC/C,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,UAAU;AAEV,6DAA6D;AAC7D,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,aAAa;AAEb,wCAAwC;AACxC,YAAY,EACZ,WAAW,EACX,eAAe;AAEf,mDAAmD;AACnD,UAAU,EACV,eAAe,EACf,OAAO,EACP,cAAc;AAEd,+CAA+C;AAC/C,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ;AAER,cAAc;AACd,QAAQ,EACX,CAAC;AAEF;;GAEG;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,MAAM,EAAE,cAAc;IACtB,WAAW;IACX,KAAK,EAAE,cAAc,EAAE,6BAA6B;IACpD,MAAM,EAAE,uBAAuB,EAAE,6BAA6B;IAC9D,kBAAkB;CACrB,CAAC;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,eAAe;IACf,SAAS;IACT,SAAS;IACT,IAAI;IACJ,IAAI;IACJ,iBAAiB;IACjB,gBAAgB;CACnB,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,SAAS;IACT,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,UAAU;IACV,cAAc;IACd,cAAc;IAEd,gBAAgB;IAChB,QAAQ;IAER,qEAAqE;CACxE,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,iBAAiB;CACpB,CAAC;AAEF;;GAEG;AACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAChC,sBAAsB;IACtB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE3B,qCAAqC;IACrC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC9D,uCAAuC;QACvC,MAAM,cAAc,GAAG,GAAG,EAAE;YACxB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC;AAED;;GAEG;AACH,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9E,sBAAsB;IAEtB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACzC,QAAQ,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,eAAe;IACf,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,WAAW;CACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,wBAAwB;AACxB,eAAe,QAAQ,CAAC"}
|