@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 @@
1
+ {"version":3,"file":"css-manager.js","sourceRoot":"","sources":["../../../../src/rendering/css-manager.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Main DOM render function - converts object components to DOM elements
3
+ */
4
+ export function renderToDOM(component: any, container?: null, options?: {}): any;
5
+ /**
6
+ * Update DOM element with new component using virtual DOM diffing
7
+ */
8
+ export function updateDOM(element: any, newComponent: any, componentId: any, options?: {}): any;
9
+ /**
10
+ * DOM Renderer class - extends BaseRenderer for shared functionality
11
+ */
12
+ export class DOMRenderer extends BaseRenderer {
13
+ utils: {
14
+ isCoherentObject: typeof isCoherentObject;
15
+ hasChildren: typeof hasChildren;
16
+ getChildren: typeof getChildren;
17
+ };
18
+ vdomDiffer: VDOMDiffer | undefined;
19
+ componentCache: Map<any, any> | undefined;
20
+ /**
21
+ * Render component to DOM element
22
+ */
23
+ render(component: any, container?: null): any;
24
+ /**
25
+ * Render component to DOM element (overrides BaseRenderer method)
26
+ */
27
+ renderComponent(component: any, options?: {}, depth?: number): any;
28
+ /**
29
+ * Render object-based element to DOM
30
+ */
31
+ renderObjectElement(component: any, depth: any): any;
32
+ /**
33
+ * Render a single DOM element
34
+ */
35
+ renderDOMElement(tagName: any, props: any, depth: any): any;
36
+ /**
37
+ * Set DOM attributes from props
38
+ */
39
+ setDOMAttributes(element: any, props: any): void;
40
+ /**
41
+ * Update existing DOM element with new component using virtual DOM diffing
42
+ */
43
+ update(element: any, newComponent: any, componentId?: string): any;
44
+ /**
45
+ * Clear component cache (useful for development or memory management)
46
+ */
47
+ clearCache(): void;
48
+ /**
49
+ * Get cache statistics
50
+ */
51
+ getCacheStats(): {
52
+ componentsCached: number;
53
+ vdomCached: number;
54
+ patchesApplied: any;
55
+ };
56
+ }
57
+ import { BaseRenderer } from './base-renderer.js';
58
+ import { isCoherentObject } from '../core/object-utils.js';
59
+ import { hasChildren } from '../core/object-utils.js';
60
+ import { getChildren } from '../core/object-utils.js';
61
+ import { VDOMDiffer } from './vdom-diff.js';
62
+ //# sourceMappingURL=dom-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/dom-renderer.js"],"names":[],"mappings":"AAgRA;;GAEG;AACH,iFAGC;AAED;;GAEG;AACH,gGAGC;AA7QD;;GAEG;AACH;IAWQ;;;;MAIC;IAIG,mCAAkC;IAClC,0CAA+B;IAIvC;;OAEG;IACH,8CAsBC;IAED;;OAEG;IACH,mEAsCC;IAED;;OAEG;IACH,qDAYC;IAED;;OAEG;IACH,4DAkCC;IAED;;OAEG;IACH,iDAkCC;IAED;;OAEG;IACH,mEAkCC;IAED;;OAEG;IACH,mBAOC;IAED;;OAEG;IACH;;;;MAMC;CACJ;6BAvQ4B,oBAAoB;iCAK1C,yBAAyB;4BAAzB,yBAAyB;4BAAzB,yBAAyB;2BACL,gBAAgB"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * DOM Renderer for Coherent.js
3
+ *
4
+ * Provides client-side DOM rendering with hydration support.
5
+ * Extends BaseRenderer for shared functionality.
6
+ */
7
+ import { BaseRenderer } from './base-renderer.js';
8
+ import { isCoherentObject, hasChildren, getChildren } from '../core/object-utils.js';
9
+ import { VDOMDiffer } from './vdom-diff.js';
10
+ /**
11
+ * DOM Renderer class - extends BaseRenderer for shared functionality
12
+ */
13
+ export class DOMRenderer extends BaseRenderer {
14
+ constructor(options = {}) {
15
+ // Call parent constructor with DOM-specific defaults
16
+ super({
17
+ enableHydration: true,
18
+ maxDepth: 100, // Lower depth for DOM rendering
19
+ enableVDOMDiff: options.enableVDOMDiff !== false, // Enable VDOM diffing by default
20
+ ...options
21
+ });
22
+ // Set up utilities for easy access
23
+ this.utils = {
24
+ isCoherentObject,
25
+ hasChildren,
26
+ getChildren
27
+ };
28
+ // Initialize virtual DOM differ for efficient updates
29
+ if (this.config.enableVDOMDiff) {
30
+ this.vdomDiffer = new VDOMDiffer();
31
+ this.componentCache = new Map(); // Cache previous component states
32
+ }
33
+ }
34
+ /**
35
+ * Render component to DOM element
36
+ */
37
+ render(component, container = null) {
38
+ this.resetMetrics();
39
+ this.metrics.startTime = performance.now();
40
+ try {
41
+ const element = this.renderComponent(component, {}, 0);
42
+ if (container && element) {
43
+ // Clear container first if hydration is disabled
44
+ if (!this.config.enableHydration) {
45
+ container.replaceChildren();
46
+ }
47
+ container.appendChild(element);
48
+ }
49
+ this.metrics.endTime = performance.now();
50
+ return element;
51
+ }
52
+ catch (error) {
53
+ this.recordError('render', error);
54
+ console.error('Error rendering to DOM:', error);
55
+ throw error;
56
+ }
57
+ }
58
+ /**
59
+ * Render component to DOM element (overrides BaseRenderer method)
60
+ */
61
+ renderComponent(component, options = {}, depth = 0) {
62
+ // Use parent validation
63
+ this.validateDepth(depth);
64
+ this.metrics.elementsProcessed++;
65
+ // Handle different component types
66
+ if (component === null || component === undefined) {
67
+ return document.createTextNode('');
68
+ }
69
+ if (typeof component === 'string') {
70
+ return document.createTextNode(component);
71
+ }
72
+ if (typeof component === 'number' || typeof component === 'boolean') {
73
+ return document.createTextNode(String(component));
74
+ }
75
+ if (typeof component === 'function') {
76
+ // Execute function components using parent method
77
+ const result = this.executeFunctionComponent(component, depth);
78
+ return this.renderComponent(result, options, depth + 1);
79
+ }
80
+ if (Array.isArray(component)) {
81
+ // Create a fragment for multiple elements
82
+ const fragment = document.createDocumentFragment();
83
+ component.forEach(child => {
84
+ const childElement = this.renderComponent(child, options, depth + 1);
85
+ if (childElement) {
86
+ fragment.appendChild(childElement);
87
+ }
88
+ });
89
+ return fragment;
90
+ }
91
+ // Handle object-based components
92
+ return this.renderObjectElement(component, depth);
93
+ }
94
+ /**
95
+ * Render object-based element to DOM
96
+ */
97
+ renderObjectElement(component, depth) {
98
+ if (!this.utils.isCoherentObject(component)) {
99
+ return document.createTextNode(''); // Skip invalid objects
100
+ }
101
+ // Process object-based component (expects single element)
102
+ const entries = Object.entries(component);
103
+ if (entries.length > 0) {
104
+ const [tagName, props] = entries[0];
105
+ return this.renderDOMElement(tagName, props, depth + 1);
106
+ }
107
+ return document.createTextNode('');
108
+ }
109
+ /**
110
+ * Render a single DOM element
111
+ */
112
+ renderDOMElement(tagName, props, depth) {
113
+ // Create element with namespace support
114
+ const element = this.config.namespace
115
+ ? document.createElementNS(this.config.namespace, tagName)
116
+ : document.createElement(tagName);
117
+ // Set attributes
118
+ this.setDOMAttributes(element, _props);
119
+ // Handle text content
120
+ if (props && props.text !== undefined) {
121
+ const text = typeof props.text === 'function' ? props.text() : props.text;
122
+ element.textContent = String(text);
123
+ }
124
+ // Handle children
125
+ if (props && this.utils.hasChildren(_props)) {
126
+ const children = this.utils.getChildren(_props);
127
+ if (Array.isArray(children)) {
128
+ children.forEach(child => {
129
+ const childElement = this.renderComponent(child, {}, depth + 1);
130
+ if (childElement) {
131
+ element.appendChild(childElement);
132
+ }
133
+ });
134
+ }
135
+ else if (children) {
136
+ const childElement = this.renderComponent(children, {}, depth + 1);
137
+ if (childElement) {
138
+ element.appendChild(childElement);
139
+ }
140
+ }
141
+ }
142
+ return element;
143
+ }
144
+ /**
145
+ * Set DOM attributes from props
146
+ */
147
+ setDOMAttributes(element, _props) {
148
+ if (!props || typeof props !== 'object')
149
+ return;
150
+ const skipProps = ['text', 'children'];
151
+ for (const [key, value] of Object.entries(_props)) {
152
+ if (skipProps.includes(key) || value === undefined || value === null) {
153
+ continue;
154
+ }
155
+ if (typeof value === 'function') {
156
+ // Handle event listeners
157
+ if (key.startsWith('on')) {
158
+ // Normalize DOM event names to lowercase (e.g., onClick -> 'click')
159
+ const eventType = key.slice(2).toLowerCase();
160
+ // Store listener reference for potential cleanup
161
+ element.addEventListener(eventType, value);
162
+ element._listeners = element._listeners || [];
163
+ element._listeners.push({ type: eventType, handler: value });
164
+ }
165
+ continue;
166
+ }
167
+ if (key === 'class' || key === 'className') {
168
+ element.className = String(value);
169
+ }
170
+ else if (typeof value === 'boolean') {
171
+ if (value) {
172
+ element.setAttribute(key, '');
173
+ }
174
+ else {
175
+ element.removeAttribute(key);
176
+ }
177
+ }
178
+ else {
179
+ element.setAttribute(key, String(value));
180
+ }
181
+ }
182
+ }
183
+ /**
184
+ * Update existing DOM element with new component using virtual DOM diffing
185
+ */
186
+ update(element, newComponent, componentId = 'default') {
187
+ if (!this.config.enableVDOMDiff || !this.vdomDiffer) {
188
+ // Fallback to full re-render
189
+ return this.render(newComponent, element.parentNode);
190
+ }
191
+ const oldComponent = this.componentCache.get(componentId);
192
+ if (!oldComponent) {
193
+ // First render, cache the component and render normally
194
+ this.componentCache.set(componentId, newComponent);
195
+ return this.render(newComponent, element.parentNode);
196
+ }
197
+ // Perform virtual DOM diffing
198
+ try {
199
+ const patchCount = this.vdomDiffer.update(element, oldComponent, newComponent);
200
+ // Update cache with new component
201
+ this.componentCache.set(componentId, newComponent);
202
+ // Log performance metrics
203
+ if (this.config.enableMonitoring) {
204
+ this.metrics.patchesApplied = (this.metrics.patchesApplied || 0) + patchCount;
205
+ }
206
+ return element;
207
+ }
208
+ catch (error) {
209
+ console.warn('VDOM diffing failed, falling back to full re-render:', error);
210
+ // Clear corrupted cache entry
211
+ this.componentCache.delete(componentId);
212
+ // Fall back to full re-render
213
+ return this.render(newComponent, element.parentNode);
214
+ }
215
+ }
216
+ /**
217
+ * Clear component cache (useful for development or memory management)
218
+ */
219
+ clearCache() {
220
+ if (this.componentCache) {
221
+ this.componentCache.clear();
222
+ }
223
+ if (this.vdomDiffer) {
224
+ this.vdomDiffer.clearCache();
225
+ }
226
+ }
227
+ /**
228
+ * Get cache statistics
229
+ */
230
+ getCacheStats() {
231
+ return {
232
+ componentsCached: this.componentCache ? this.componentCache.size : 0,
233
+ vdomCached: this.vdomDiffer ? this.vdomDiffer.cache.size : 0,
234
+ patchesApplied: this.metrics.patchesApplied || 0
235
+ };
236
+ }
237
+ }
238
+ /**
239
+ * Main DOM render function - converts object components to DOM elements
240
+ */
241
+ export function renderToDOM(component, container = null, options = {}) {
242
+ const renderer = new DOMRenderer(options);
243
+ return renderer.render(component, container);
244
+ }
245
+ /**
246
+ * Update DOM element with new component using virtual DOM diffing
247
+ */
248
+ export function updateDOM(element, newComponent, componentId, options = {}) {
249
+ const renderer = new DOMRenderer(options);
250
+ return renderer.update(element, newComponent, componentId);
251
+ }
252
+ //# sourceMappingURL=dom-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-renderer.js","sourceRoot":"","sources":["../../../../src/rendering/dom-renderer.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Main render function - converts object components to HTML
3
+ */
4
+ export function renderToString(component: any, options?: {}): string;
5
+ /**
6
+ * Renders component to complete HTML document with DOCTYPE
7
+ * Better alternative to manual DOCTYPE concatenation
8
+ * Supports CSS file inclusion and inline styles
9
+ */
10
+ export function renderHTML(component: any, options?: {}): Promise<string>;
11
+ /**
12
+ * Synchronous version of renderHTML for cases without CSS files
13
+ * Falls back to async if CSS files are detected
14
+ */
15
+ export function renderHTMLSync(component: any, options?: {}): string | Promise<string>;
16
+ /**
17
+ * Alias for renderHTML - more semantic name for HTML rendering
18
+ */
19
+ export function render(component: any, options?: {}): Promise<string>;
20
+ /**
21
+ * Batch rendering for multiple components
22
+ */
23
+ export function renderBatch(components: any, options?: {}): string[];
24
+ /**
25
+ * Render to chunks for large output (fake streaming - renders full HTML then chunks it)
26
+ * For true progressive streaming, use the streaming-renderer.js renderToStream function
27
+ */
28
+ export function renderToChunks(component: any, options?: {}): Generator<string, void, unknown>;
29
+ /**
30
+ * @deprecated Use renderToChunks instead. This function will be removed in a future version.
31
+ * For true progressive streaming, use the streaming-renderer.js renderToStream function.
32
+ */
33
+ export function renderToStream(component: any, options?: {}): AsyncGenerator<string, void, unknown>;
34
+ /**
35
+ * Get global cache instance for external access
36
+ */
37
+ export function getCache(): Object;
38
+ /**
39
+ * Reset cache (useful for testing)
40
+ */
41
+ export function resetCache(): void;
42
+ /**
43
+ * Get rendering statistics
44
+ */
45
+ export function getRenderingStats(): {
46
+ cache: any;
47
+ performance: any;
48
+ };
49
+ /**
50
+ * Precompile static components for maximum performance
51
+ */
52
+ export function precompileComponent(component: any, options?: {}): {
53
+ html: string;
54
+ isPrecompiled: boolean;
55
+ render: () => string;
56
+ };
57
+ /**
58
+ * Development helper - render with detailed timing
59
+ */
60
+ export function renderWithTiming(component: any, options?: {}): {
61
+ html: string;
62
+ timing: {
63
+ total: number;
64
+ breakdown: any;
65
+ };
66
+ };
67
+ //# sourceMappingURL=html-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-renderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/html-renderer.js"],"names":[],"mappings":"AAySA;;GAEG;AACH,qEAUC;AAED;;;;GAIG;AACH,0EAqCC;AAED;;;GAGG;AACH,uFA2CC;AAED;;GAEG;AACH,sEAEC;AAMD;;GAEG;AACH,qEAcC;AAED;;;GAGG;AACH,+FAcC;AAED;;;GAGG;AACH,oGAGC;AAED;;GAEG;AACH,mCAEC;AAED;;GAEG;AACH,mCAIC;AAED;;GAEG;AACH;;;EAKC;AAED;;GAEG;AACH;;;;EAYC;AAED;;GAEG;AACH;;;;;;EAYC"}