@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
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create configuration optimized for HTML rendering
|
|
3
|
+
*/
|
|
4
|
+
export function createHtmlConfig(options?: {}): {
|
|
5
|
+
enableCache: boolean;
|
|
6
|
+
enableMonitoring: boolean;
|
|
7
|
+
minify: boolean;
|
|
8
|
+
maxDepth: number;
|
|
9
|
+
enableValidation: boolean;
|
|
10
|
+
validateInput: boolean;
|
|
11
|
+
cacheSize: number;
|
|
12
|
+
cacheTTL: number;
|
|
13
|
+
chunkSize: number;
|
|
14
|
+
bufferSize: number;
|
|
15
|
+
enableMetrics: boolean;
|
|
16
|
+
yieldThreshold: number;
|
|
17
|
+
encoding: string;
|
|
18
|
+
enableHydration: boolean;
|
|
19
|
+
namespace: null;
|
|
20
|
+
enablePerformanceTracking: boolean;
|
|
21
|
+
performanceThreshold: number;
|
|
22
|
+
enableDevWarnings: boolean;
|
|
23
|
+
enableDebugLogging: boolean;
|
|
24
|
+
errorFallback: string;
|
|
25
|
+
throwOnError: boolean;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create configuration optimized for streaming rendering
|
|
29
|
+
*/
|
|
30
|
+
export function createStreamingConfig(options?: {}): {
|
|
31
|
+
maxDepth: number;
|
|
32
|
+
enableMetrics: boolean;
|
|
33
|
+
chunkSize: number;
|
|
34
|
+
bufferSize: number;
|
|
35
|
+
yieldThreshold: number;
|
|
36
|
+
encoding: string;
|
|
37
|
+
enableValidation: boolean;
|
|
38
|
+
enableMonitoring: boolean;
|
|
39
|
+
validateInput: boolean;
|
|
40
|
+
enableCache: boolean;
|
|
41
|
+
minify: boolean;
|
|
42
|
+
cacheSize: number;
|
|
43
|
+
cacheTTL: number;
|
|
44
|
+
enableHydration: boolean;
|
|
45
|
+
namespace: null;
|
|
46
|
+
enablePerformanceTracking: boolean;
|
|
47
|
+
performanceThreshold: number;
|
|
48
|
+
enableDevWarnings: boolean;
|
|
49
|
+
enableDebugLogging: boolean;
|
|
50
|
+
errorFallback: string;
|
|
51
|
+
throwOnError: boolean;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Create configuration optimized for DOM rendering
|
|
55
|
+
*/
|
|
56
|
+
export function createDomConfig(options?: {}): {
|
|
57
|
+
enableHydration: boolean;
|
|
58
|
+
maxDepth: number;
|
|
59
|
+
namespace: null;
|
|
60
|
+
enableValidation: boolean;
|
|
61
|
+
enableMonitoring: boolean;
|
|
62
|
+
validateInput: boolean;
|
|
63
|
+
enableCache: boolean;
|
|
64
|
+
minify: boolean;
|
|
65
|
+
cacheSize: number;
|
|
66
|
+
cacheTTL: number;
|
|
67
|
+
chunkSize: number;
|
|
68
|
+
bufferSize: number;
|
|
69
|
+
enableMetrics: boolean;
|
|
70
|
+
yieldThreshold: number;
|
|
71
|
+
encoding: string;
|
|
72
|
+
enablePerformanceTracking: boolean;
|
|
73
|
+
performanceThreshold: number;
|
|
74
|
+
enableDevWarnings: boolean;
|
|
75
|
+
enableDebugLogging: boolean;
|
|
76
|
+
errorFallback: string;
|
|
77
|
+
throwOnError: boolean;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Create development-friendly configuration with debugging enabled
|
|
81
|
+
*/
|
|
82
|
+
export function createDevConfig(options?: {}): {
|
|
83
|
+
enableDevWarnings: boolean;
|
|
84
|
+
enableDebugLogging: boolean;
|
|
85
|
+
enablePerformanceTracking: boolean;
|
|
86
|
+
enableMonitoring: boolean;
|
|
87
|
+
throwOnError: boolean;
|
|
88
|
+
maxDepth: number;
|
|
89
|
+
enableValidation: boolean;
|
|
90
|
+
validateInput: boolean;
|
|
91
|
+
enableCache: boolean;
|
|
92
|
+
minify: boolean;
|
|
93
|
+
cacheSize: number;
|
|
94
|
+
cacheTTL: number;
|
|
95
|
+
chunkSize: number;
|
|
96
|
+
bufferSize: number;
|
|
97
|
+
enableMetrics: boolean;
|
|
98
|
+
yieldThreshold: number;
|
|
99
|
+
encoding: string;
|
|
100
|
+
enableHydration: boolean;
|
|
101
|
+
namespace: null;
|
|
102
|
+
performanceThreshold: number;
|
|
103
|
+
errorFallback: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Create production-optimized configuration
|
|
107
|
+
*/
|
|
108
|
+
export function createProdConfig(options?: {}): {
|
|
109
|
+
enableDevWarnings: boolean;
|
|
110
|
+
enableDebugLogging: boolean;
|
|
111
|
+
enableCache: boolean;
|
|
112
|
+
minify: boolean;
|
|
113
|
+
enablePerformanceTracking: boolean;
|
|
114
|
+
throwOnError: boolean;
|
|
115
|
+
errorFallback: string;
|
|
116
|
+
maxDepth: number;
|
|
117
|
+
enableValidation: boolean;
|
|
118
|
+
enableMonitoring: boolean;
|
|
119
|
+
validateInput: boolean;
|
|
120
|
+
cacheSize: number;
|
|
121
|
+
cacheTTL: number;
|
|
122
|
+
chunkSize: number;
|
|
123
|
+
bufferSize: number;
|
|
124
|
+
enableMetrics: boolean;
|
|
125
|
+
yieldThreshold: number;
|
|
126
|
+
encoding: string;
|
|
127
|
+
enableHydration: boolean;
|
|
128
|
+
namespace: null;
|
|
129
|
+
performanceThreshold: number;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Validate configuration object
|
|
133
|
+
*/
|
|
134
|
+
export function validateConfig(config: any): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Merge multiple configuration objects with validation
|
|
137
|
+
*/
|
|
138
|
+
export function mergeConfigs(...configs: any[]): any;
|
|
139
|
+
/**
|
|
140
|
+
* Get configuration preset by name
|
|
141
|
+
*/
|
|
142
|
+
export function getConfigPreset(preset: any, options?: {}): {
|
|
143
|
+
enableCache: boolean;
|
|
144
|
+
enableMonitoring: boolean;
|
|
145
|
+
minify: boolean;
|
|
146
|
+
maxDepth: number;
|
|
147
|
+
enableValidation: boolean;
|
|
148
|
+
validateInput: boolean;
|
|
149
|
+
cacheSize: number;
|
|
150
|
+
cacheTTL: number;
|
|
151
|
+
chunkSize: number;
|
|
152
|
+
bufferSize: number;
|
|
153
|
+
enableMetrics: boolean;
|
|
154
|
+
yieldThreshold: number;
|
|
155
|
+
encoding: string;
|
|
156
|
+
enableHydration: boolean;
|
|
157
|
+
namespace: null;
|
|
158
|
+
enablePerformanceTracking: boolean;
|
|
159
|
+
performanceThreshold: number;
|
|
160
|
+
enableDevWarnings: boolean;
|
|
161
|
+
enableDebugLogging: boolean;
|
|
162
|
+
errorFallback: string;
|
|
163
|
+
throwOnError: boolean;
|
|
164
|
+
};
|
|
165
|
+
export namespace CONFIG_PRESETS {
|
|
166
|
+
let html: {
|
|
167
|
+
enableCache: boolean;
|
|
168
|
+
enableMonitoring: boolean;
|
|
169
|
+
minify: boolean;
|
|
170
|
+
maxDepth: number;
|
|
171
|
+
enableValidation: boolean;
|
|
172
|
+
validateInput: boolean;
|
|
173
|
+
cacheSize: number;
|
|
174
|
+
cacheTTL: number;
|
|
175
|
+
chunkSize: number;
|
|
176
|
+
bufferSize: number;
|
|
177
|
+
enableMetrics: boolean;
|
|
178
|
+
yieldThreshold: number;
|
|
179
|
+
encoding: string;
|
|
180
|
+
enableHydration: boolean;
|
|
181
|
+
namespace: null;
|
|
182
|
+
enablePerformanceTracking: boolean;
|
|
183
|
+
performanceThreshold: number;
|
|
184
|
+
enableDevWarnings: boolean;
|
|
185
|
+
enableDebugLogging: boolean;
|
|
186
|
+
errorFallback: string;
|
|
187
|
+
throwOnError: boolean;
|
|
188
|
+
};
|
|
189
|
+
let streaming: {
|
|
190
|
+
maxDepth: number;
|
|
191
|
+
enableMetrics: boolean;
|
|
192
|
+
chunkSize: number;
|
|
193
|
+
bufferSize: number;
|
|
194
|
+
yieldThreshold: number;
|
|
195
|
+
encoding: string;
|
|
196
|
+
enableValidation: boolean;
|
|
197
|
+
enableMonitoring: boolean;
|
|
198
|
+
validateInput: boolean;
|
|
199
|
+
enableCache: boolean;
|
|
200
|
+
minify: boolean;
|
|
201
|
+
cacheSize: number;
|
|
202
|
+
cacheTTL: number;
|
|
203
|
+
enableHydration: boolean;
|
|
204
|
+
namespace: null;
|
|
205
|
+
enablePerformanceTracking: boolean;
|
|
206
|
+
performanceThreshold: number;
|
|
207
|
+
enableDevWarnings: boolean;
|
|
208
|
+
enableDebugLogging: boolean;
|
|
209
|
+
errorFallback: string;
|
|
210
|
+
throwOnError: boolean;
|
|
211
|
+
};
|
|
212
|
+
let dom: {
|
|
213
|
+
enableHydration: boolean;
|
|
214
|
+
maxDepth: number;
|
|
215
|
+
namespace: null;
|
|
216
|
+
enableValidation: boolean;
|
|
217
|
+
enableMonitoring: boolean;
|
|
218
|
+
validateInput: boolean;
|
|
219
|
+
enableCache: boolean;
|
|
220
|
+
minify: boolean;
|
|
221
|
+
cacheSize: number;
|
|
222
|
+
cacheTTL: number;
|
|
223
|
+
chunkSize: number;
|
|
224
|
+
bufferSize: number;
|
|
225
|
+
enableMetrics: boolean;
|
|
226
|
+
yieldThreshold: number;
|
|
227
|
+
encoding: string;
|
|
228
|
+
enablePerformanceTracking: boolean;
|
|
229
|
+
performanceThreshold: number;
|
|
230
|
+
enableDevWarnings: boolean;
|
|
231
|
+
enableDebugLogging: boolean;
|
|
232
|
+
errorFallback: string;
|
|
233
|
+
throwOnError: boolean;
|
|
234
|
+
};
|
|
235
|
+
let dev: {
|
|
236
|
+
enableDevWarnings: boolean;
|
|
237
|
+
enableDebugLogging: boolean;
|
|
238
|
+
enablePerformanceTracking: boolean;
|
|
239
|
+
enableMonitoring: boolean;
|
|
240
|
+
throwOnError: boolean;
|
|
241
|
+
maxDepth: number;
|
|
242
|
+
enableValidation: boolean;
|
|
243
|
+
validateInput: boolean;
|
|
244
|
+
enableCache: boolean;
|
|
245
|
+
minify: boolean;
|
|
246
|
+
cacheSize: number;
|
|
247
|
+
cacheTTL: number;
|
|
248
|
+
chunkSize: number;
|
|
249
|
+
bufferSize: number;
|
|
250
|
+
enableMetrics: boolean;
|
|
251
|
+
yieldThreshold: number;
|
|
252
|
+
encoding: string;
|
|
253
|
+
enableHydration: boolean;
|
|
254
|
+
namespace: null;
|
|
255
|
+
performanceThreshold: number;
|
|
256
|
+
errorFallback: string;
|
|
257
|
+
};
|
|
258
|
+
let prod: {
|
|
259
|
+
enableDevWarnings: boolean;
|
|
260
|
+
enableDebugLogging: boolean;
|
|
261
|
+
enableCache: boolean;
|
|
262
|
+
minify: boolean;
|
|
263
|
+
enablePerformanceTracking: boolean;
|
|
264
|
+
throwOnError: boolean;
|
|
265
|
+
errorFallback: string;
|
|
266
|
+
maxDepth: number;
|
|
267
|
+
enableValidation: boolean;
|
|
268
|
+
enableMonitoring: boolean;
|
|
269
|
+
validateInput: boolean;
|
|
270
|
+
cacheSize: number;
|
|
271
|
+
cacheTTL: number;
|
|
272
|
+
chunkSize: number;
|
|
273
|
+
bufferSize: number;
|
|
274
|
+
enableMetrics: boolean;
|
|
275
|
+
yieldThreshold: number;
|
|
276
|
+
encoding: string;
|
|
277
|
+
enableHydration: boolean;
|
|
278
|
+
namespace: null;
|
|
279
|
+
performanceThreshold: number;
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=renderer-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer-config.d.ts","sourceRoot":"","sources":["../../../../src/rendering/renderer-config.js"],"names":[],"mappings":"AASA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;EAUC;AAED;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;EAYC;AAED;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;EASC;AAED;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;EAWC;AAED;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;EAaC;AAED;;GAEG;AACH,qDAwBC;AAED;;GAEG;AACH,qDAIC;AAED;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;EAiBC"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renderer Configuration Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides helper functions for working with unified renderer configuration
|
|
5
|
+
* across HTML, Streaming, and DOM renderers.
|
|
6
|
+
*/
|
|
7
|
+
import { DEFAULT_RENDERER_CONFIG } from './base-renderer.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create configuration optimized for HTML rendering
|
|
10
|
+
*/
|
|
11
|
+
export function createHtmlConfig(options = {}) {
|
|
12
|
+
return {
|
|
13
|
+
...DEFAULT_RENDERER_CONFIG,
|
|
14
|
+
// HTML-specific optimizations
|
|
15
|
+
enableCache: true,
|
|
16
|
+
enableMonitoring: true,
|
|
17
|
+
minify: false,
|
|
18
|
+
maxDepth: 100,
|
|
19
|
+
...options
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Create configuration optimized for streaming rendering
|
|
24
|
+
*/
|
|
25
|
+
export function createStreamingConfig(options = {}) {
|
|
26
|
+
return {
|
|
27
|
+
...DEFAULT_RENDERER_CONFIG,
|
|
28
|
+
// Streaming-specific optimizations
|
|
29
|
+
maxDepth: 1000,
|
|
30
|
+
enableMetrics: true,
|
|
31
|
+
chunkSize: 1024,
|
|
32
|
+
bufferSize: 4096,
|
|
33
|
+
yieldThreshold: 100,
|
|
34
|
+
encoding: 'utf8',
|
|
35
|
+
...options
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create configuration optimized for DOM rendering
|
|
40
|
+
*/
|
|
41
|
+
export function createDomConfig(options = {}) {
|
|
42
|
+
return {
|
|
43
|
+
...DEFAULT_RENDERER_CONFIG,
|
|
44
|
+
// DOM-specific optimizations
|
|
45
|
+
enableHydration: true,
|
|
46
|
+
maxDepth: 100,
|
|
47
|
+
namespace: null,
|
|
48
|
+
...options
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create development-friendly configuration with debugging enabled
|
|
53
|
+
*/
|
|
54
|
+
export function createDevConfig(options = {}) {
|
|
55
|
+
return {
|
|
56
|
+
...DEFAULT_RENDERER_CONFIG,
|
|
57
|
+
// Development optimizations
|
|
58
|
+
enableDevWarnings: true,
|
|
59
|
+
enableDebugLogging: true,
|
|
60
|
+
enablePerformanceTracking: true,
|
|
61
|
+
enableMonitoring: true,
|
|
62
|
+
throwOnError: true,
|
|
63
|
+
...options
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Create production-optimized configuration
|
|
68
|
+
*/
|
|
69
|
+
export function createProdConfig(options = {}) {
|
|
70
|
+
return {
|
|
71
|
+
...DEFAULT_RENDERER_CONFIG,
|
|
72
|
+
// Production optimizations
|
|
73
|
+
enableDevWarnings: false,
|
|
74
|
+
enableDebugLogging: false,
|
|
75
|
+
enableCache: true,
|
|
76
|
+
minify: true,
|
|
77
|
+
enablePerformanceTracking: false,
|
|
78
|
+
throwOnError: false,
|
|
79
|
+
errorFallback: '<!-- Render Error -->',
|
|
80
|
+
...options
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Validate configuration object
|
|
85
|
+
*/
|
|
86
|
+
export function validateConfig(config) {
|
|
87
|
+
const errors = [];
|
|
88
|
+
if (config.maxDepth !== undefined && (typeof config.maxDepth !== 'number' || config.maxDepth <= 0)) {
|
|
89
|
+
errors.push('maxDepth must be a positive number');
|
|
90
|
+
}
|
|
91
|
+
if (config.chunkSize !== undefined && (typeof config.chunkSize !== 'number' || config.chunkSize <= 0)) {
|
|
92
|
+
errors.push('chunkSize must be a positive number');
|
|
93
|
+
}
|
|
94
|
+
if (config.yieldThreshold !== undefined && (typeof config.yieldThreshold !== 'number' || config.yieldThreshold <= 0)) {
|
|
95
|
+
errors.push('yieldThreshold must be a positive number');
|
|
96
|
+
}
|
|
97
|
+
if (config.encoding !== undefined && config.encoding && !['utf8', 'ascii', 'base64', 'hex'].includes(config.encoding)) {
|
|
98
|
+
errors.push('encoding must be one of: utf8, ascii, base64, hex');
|
|
99
|
+
}
|
|
100
|
+
if (errors.length > 0) {
|
|
101
|
+
throw new Error(`Configuration validation failed:\n${errors.join('\n')}`);
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Merge multiple configuration objects with validation
|
|
107
|
+
*/
|
|
108
|
+
export function mergeConfigs(...configs) {
|
|
109
|
+
const merged = configs.reduce((acc, config) => ({ ...acc, ...config }), {});
|
|
110
|
+
validateConfig(merged);
|
|
111
|
+
return merged;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get configuration preset by name
|
|
115
|
+
*/
|
|
116
|
+
export function getConfigPreset(preset, options = {}) {
|
|
117
|
+
switch (preset) {
|
|
118
|
+
case 'html':
|
|
119
|
+
return createHtmlConfig(options);
|
|
120
|
+
case 'streaming':
|
|
121
|
+
return createStreamingConfig(options);
|
|
122
|
+
case 'dom':
|
|
123
|
+
return createDomConfig(options);
|
|
124
|
+
case 'dev':
|
|
125
|
+
case 'development':
|
|
126
|
+
return createDevConfig(options);
|
|
127
|
+
case 'prod':
|
|
128
|
+
case 'production':
|
|
129
|
+
return createProdConfig(options);
|
|
130
|
+
default:
|
|
131
|
+
throw new Error(`Unknown configuration preset: ${preset}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Configuration presets for easy access
|
|
136
|
+
*/
|
|
137
|
+
export const CONFIG_PRESETS = {
|
|
138
|
+
html: createHtmlConfig(),
|
|
139
|
+
streaming: createStreamingConfig(),
|
|
140
|
+
dom: createDomConfig(),
|
|
141
|
+
dev: createDevConfig(),
|
|
142
|
+
prod: createProdConfig()
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=renderer-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer-config.js","sourceRoot":"","sources":["../../../../src/rendering/renderer-config.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convenience function to create streaming renderer
|
|
3
|
+
*/
|
|
4
|
+
export function createStreamingRenderer(options?: {}): StreamingRenderer;
|
|
5
|
+
/**
|
|
6
|
+
* Simple streaming render function
|
|
7
|
+
*/
|
|
8
|
+
export function renderToStream(component: any, options?: {}): AsyncGenerator<any, void, any>;
|
|
9
|
+
/**
|
|
10
|
+
* Streaming renderer class - extends BaseRenderer for shared functionality
|
|
11
|
+
*/
|
|
12
|
+
export class StreamingRenderer extends BaseRenderer {
|
|
13
|
+
buffer: string;
|
|
14
|
+
elementCount: number;
|
|
15
|
+
metrics: {
|
|
16
|
+
chunksGenerated: number;
|
|
17
|
+
totalBytes: number;
|
|
18
|
+
startTime: null;
|
|
19
|
+
endTime: null;
|
|
20
|
+
elementsProcessed: number;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Main streaming render method
|
|
24
|
+
*/
|
|
25
|
+
render(component: any, options?: {}): AsyncGenerator<any, void, any>;
|
|
26
|
+
/**
|
|
27
|
+
* Stream a single component
|
|
28
|
+
*/
|
|
29
|
+
streamComponent(component: any, config: any, depth: any): any;
|
|
30
|
+
/**
|
|
31
|
+
* Stream a single HTML element
|
|
32
|
+
*/
|
|
33
|
+
streamElement(tagName: any, props: any, config: any, depth: any): any;
|
|
34
|
+
/**
|
|
35
|
+
* Stream text content with buffering
|
|
36
|
+
*/
|
|
37
|
+
streamText(text: any): AsyncGenerator<{
|
|
38
|
+
chunk: any;
|
|
39
|
+
size: number;
|
|
40
|
+
index: number;
|
|
41
|
+
timestamp: number;
|
|
42
|
+
}, void, unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* Create a chunk object with metadata
|
|
45
|
+
*/
|
|
46
|
+
createChunk(content: any, metadata?: {}): {
|
|
47
|
+
chunk: any;
|
|
48
|
+
size: number;
|
|
49
|
+
index: number;
|
|
50
|
+
timestamp: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Create an error chunk
|
|
54
|
+
*/
|
|
55
|
+
createErrorChunk(error: any): {
|
|
56
|
+
chunk: any;
|
|
57
|
+
size: number;
|
|
58
|
+
index: number;
|
|
59
|
+
timestamp: number;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Yield control to the event loop
|
|
63
|
+
*/
|
|
64
|
+
yieldControl(): Promise<any>;
|
|
65
|
+
/**
|
|
66
|
+
* Get streaming metrics
|
|
67
|
+
*/
|
|
68
|
+
getMetrics(): {
|
|
69
|
+
duration: number;
|
|
70
|
+
throughput: number;
|
|
71
|
+
elementsPerSecond: number;
|
|
72
|
+
chunksGenerated: number;
|
|
73
|
+
totalBytes: number;
|
|
74
|
+
startTime: null;
|
|
75
|
+
endTime: null;
|
|
76
|
+
elementsProcessed: number;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Reset metrics for new render
|
|
80
|
+
*/
|
|
81
|
+
reset(): void;
|
|
82
|
+
}
|
|
83
|
+
export namespace streamingUtils {
|
|
84
|
+
/**
|
|
85
|
+
* Collect all chunks into a single string
|
|
86
|
+
*/
|
|
87
|
+
function collectChunks(chunkGenerator: any): Promise<string>;
|
|
88
|
+
/**
|
|
89
|
+
* Write chunks directly to a Node.js response
|
|
90
|
+
*/
|
|
91
|
+
function streamToResponse(chunkGenerator: any, response: any): Promise<number>;
|
|
92
|
+
/**
|
|
93
|
+
* Stream with backpressure handling
|
|
94
|
+
*/
|
|
95
|
+
function streamWithBackpressure(chunkGenerator: any, writeFunction: any, highWaterMark?: number): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Transform chunks (e.g., compression, encoding)
|
|
98
|
+
*/
|
|
99
|
+
function transformChunks(chunkGenerator: any, transformer: any): AsyncGenerator<any, void, unknown>;
|
|
100
|
+
/**
|
|
101
|
+
* Merge small chunks for efficiency
|
|
102
|
+
*/
|
|
103
|
+
function mergeSmallChunks(chunkGenerator: any, minSize?: number): AsyncGenerator<{
|
|
104
|
+
chunk: string;
|
|
105
|
+
size: number;
|
|
106
|
+
merged: boolean;
|
|
107
|
+
final?: undefined;
|
|
108
|
+
} | {
|
|
109
|
+
chunk: string;
|
|
110
|
+
size: number;
|
|
111
|
+
merged: boolean;
|
|
112
|
+
final: boolean;
|
|
113
|
+
}, void, unknown>;
|
|
114
|
+
}
|
|
115
|
+
export default StreamingRenderer;
|
|
116
|
+
import { BaseRenderer } from './base-renderer.js';
|
|
117
|
+
//# sourceMappingURL=streaming-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/streaming-renderer.js"],"names":[],"mappings":"AA4PA;;GAEG;AACH,yEAEC;AAED;;GAEG;AACH,6FAGC;AAlPD;;GAEG;AACH;IAUQ,eAAgB;IAChB,qBAAqB;IAGrB;;;;;;MAIC;IAGL;;OAEG;IACH,qEAyBC;IAED;;OAEG;IACH,8DAqCC;IAED;;OAEG;IACH,sEA0CC;IAED;;OAEG;IACH;;;;;sBAUC;IAED;;OAEG;IACH;;;;;MAgBC;IAED;;OAEG;IACH;;;;;MAMC;IAED;;OAEG;IACH,6BAEC;IAED;;OAEG;IACH;;;;;;;;;MAWC;IAED;;OAEG;IACH,cAUC;CACJ;;IAqBG;;OAEG;IACH,6DAMC;IAED;;OAEG;IACH,+EAUC;IAED;;OAEG;IACH,gHAoBC;IAED;;OAEG;IACH,oGAOC;IAED;;OAEG;IACH;;;;;;;;;;sBAwBC;;;6BApVwB,oBAAoB"}
|