@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.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +130 -0
  3. package/dist/coherent.d.ts +472 -0
  4. package/dist/coherent.d.ts.map +1 -0
  5. package/dist/coherent.js +590 -0
  6. package/dist/coherent.js.map +1 -0
  7. package/dist/components/component-system.d.ts +1138 -0
  8. package/dist/components/component-system.d.ts.map +1 -0
  9. package/dist/components/component-system.js +2220 -0
  10. package/dist/components/component-system.js.map +1 -0
  11. package/dist/components/lifecycle.d.ts +212 -0
  12. package/dist/components/lifecycle.d.ts.map +1 -0
  13. package/dist/components/lifecycle.js +525 -0
  14. package/dist/components/lifecycle.js.map +1 -0
  15. package/dist/core/html-utils.d.ts +14 -0
  16. package/dist/core/html-utils.d.ts.map +1 -0
  17. package/dist/core/html-utils.js +166 -0
  18. package/dist/core/html-utils.js.map +1 -0
  19. package/dist/core/object-factory.d.ts +38 -0
  20. package/dist/core/object-factory.d.ts.map +1 -0
  21. package/dist/core/object-factory.js +63 -0
  22. package/dist/core/object-factory.js.map +1 -0
  23. package/dist/core/object-utils.d.ts +77 -0
  24. package/dist/core/object-utils.d.ts.map +1 -0
  25. package/dist/core/object-utils.js +502 -0
  26. package/dist/core/object-utils.js.map +1 -0
  27. package/dist/dev/dev-tools.d.ts +194 -0
  28. package/dist/dev/dev-tools.d.ts.map +1 -0
  29. package/dist/dev/dev-tools.js +846 -0
  30. package/dist/dev/dev-tools.js.map +1 -0
  31. package/dist/forms/validation.d.ts +271 -0
  32. package/dist/forms/validation.d.ts.map +1 -0
  33. package/dist/forms/validation.js +573 -0
  34. package/dist/forms/validation.js.map +1 -0
  35. package/dist/index.cjs +5281 -0
  36. package/dist/index.cjs.map +7 -0
  37. package/dist/index.js +5204 -0
  38. package/dist/index.js.map +7 -0
  39. package/dist/performance/bundle-optimizer.d.ts +95 -0
  40. package/dist/performance/bundle-optimizer.d.ts.map +1 -0
  41. package/dist/performance/bundle-optimizer.js +192 -0
  42. package/dist/performance/bundle-optimizer.js.map +1 -0
  43. package/dist/performance/cache-manager.d.ts +107 -0
  44. package/dist/performance/cache-manager.d.ts.map +1 -0
  45. package/dist/performance/cache-manager.js +314 -0
  46. package/dist/performance/cache-manager.js.map +1 -0
  47. package/dist/performance/component-cache.d.ts +120 -0
  48. package/dist/performance/component-cache.d.ts.map +1 -0
  49. package/dist/performance/component-cache.js +364 -0
  50. package/dist/performance/component-cache.js.map +1 -0
  51. package/dist/performance/monitor.d.ts +189 -0
  52. package/dist/performance/monitor.d.ts.map +1 -0
  53. package/dist/performance/monitor.js +347 -0
  54. package/dist/performance/monitor.js.map +1 -0
  55. package/dist/rendering/base-renderer.d.ts +140 -0
  56. package/dist/rendering/base-renderer.d.ts.map +1 -0
  57. package/dist/rendering/base-renderer.js +409 -0
  58. package/dist/rendering/base-renderer.js.map +1 -0
  59. package/dist/rendering/css-manager.d.ts +73 -0
  60. package/dist/rendering/css-manager.d.ts.map +1 -0
  61. package/dist/rendering/css-manager.js +176 -0
  62. package/dist/rendering/css-manager.js.map +1 -0
  63. package/dist/rendering/dom-renderer.d.ts +62 -0
  64. package/dist/rendering/dom-renderer.d.ts.map +1 -0
  65. package/dist/rendering/dom-renderer.js +252 -0
  66. package/dist/rendering/dom-renderer.js.map +1 -0
  67. package/dist/rendering/html-renderer.d.ts +67 -0
  68. package/dist/rendering/html-renderer.d.ts.map +1 -0
  69. package/dist/rendering/html-renderer.js +444 -0
  70. package/dist/rendering/html-renderer.js.map +1 -0
  71. package/dist/rendering/renderer-config.d.ts +282 -0
  72. package/dist/rendering/renderer-config.d.ts.map +1 -0
  73. package/dist/rendering/renderer-config.js +144 -0
  74. package/dist/rendering/renderer-config.js.map +1 -0
  75. package/dist/rendering/streaming-renderer.d.ts +117 -0
  76. package/dist/rendering/streaming-renderer.d.ts.map +1 -0
  77. package/dist/rendering/streaming-renderer.js +326 -0
  78. package/dist/rendering/streaming-renderer.js.map +1 -0
  79. package/dist/rendering/vdom-diff.d.ts +47 -0
  80. package/dist/rendering/vdom-diff.d.ts.map +1 -0
  81. package/dist/rendering/vdom-diff.js +416 -0
  82. package/dist/rendering/vdom-diff.js.map +1 -0
  83. package/dist/routing/router.d.ts +241 -0
  84. package/dist/routing/router.d.ts.map +1 -0
  85. package/dist/routing/router.js +648 -0
  86. package/dist/routing/router.js.map +1 -0
  87. package/dist/state/reactive-state.d.ts +166 -0
  88. package/dist/state/reactive-state.d.ts.map +1 -0
  89. package/dist/state/reactive-state.js +546 -0
  90. package/dist/state/reactive-state.js.map +1 -0
  91. package/dist/state/state-manager.d.ts +45 -0
  92. package/dist/state/state-manager.d.ts.map +1 -0
  93. package/dist/state/state-manager.js +151 -0
  94. package/dist/state/state-manager.js.map +1 -0
  95. package/dist/types/constants.d.ts +8 -0
  96. package/dist/types/constants.d.ts.map +1 -0
  97. package/dist/types/constants.js +36 -0
  98. package/dist/types/constants.js.map +1 -0
  99. package/dist/utils/dependency-utils.d.ts +43 -0
  100. package/dist/utils/dependency-utils.d.ts.map +1 -0
  101. package/dist/utils/dependency-utils.js +105 -0
  102. package/dist/utils/dependency-utils.js.map +1 -0
  103. package/dist/utils/error-handler.d.ts +148 -0
  104. package/dist/utils/error-handler.d.ts.map +1 -0
  105. package/dist/utils/error-handler.js +468 -0
  106. package/dist/utils/error-handler.js.map +1 -0
  107. package/dist/utils/normalization.d.ts +3 -0
  108. package/dist/utils/normalization.d.ts.map +1 -0
  109. package/dist/utils/normalization.js +24 -0
  110. package/dist/utils/normalization.js.map +1 -0
  111. package/dist/utils/validation.d.ts +10 -0
  112. package/dist/utils/validation.d.ts.map +1 -0
  113. package/dist/utils/validation.js +32 -0
  114. package/dist/utils/validation.js.map +1 -0
  115. package/package.json +44 -0
  116. 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"}