@coherent.js/core 1.0.0-beta.7 → 1.0.0-rc.1
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/dist/index.cjs +29 -25
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +29 -26
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
- package/dist/coherent.d.ts +0 -472
- package/dist/coherent.d.ts.map +0 -1
- package/dist/coherent.js +0 -590
- package/dist/coherent.js.map +0 -1
- package/dist/components/component-system.d.ts +0 -1138
- package/dist/components/component-system.d.ts.map +0 -1
- package/dist/components/component-system.js +0 -2220
- package/dist/components/component-system.js.map +0 -1
- package/dist/components/lifecycle.d.ts +0 -212
- package/dist/components/lifecycle.d.ts.map +0 -1
- package/dist/components/lifecycle.js +0 -525
- package/dist/components/lifecycle.js.map +0 -1
- package/dist/core/html-utils.d.ts +0 -14
- package/dist/core/html-utils.d.ts.map +0 -1
- package/dist/core/html-utils.js +0 -166
- package/dist/core/html-utils.js.map +0 -1
- package/dist/core/object-factory.d.ts +0 -38
- package/dist/core/object-factory.d.ts.map +0 -1
- package/dist/core/object-factory.js +0 -63
- package/dist/core/object-factory.js.map +0 -1
- package/dist/core/object-utils.d.ts +0 -77
- package/dist/core/object-utils.d.ts.map +0 -1
- package/dist/core/object-utils.js +0 -502
- package/dist/core/object-utils.js.map +0 -1
- package/dist/dev/dev-tools.d.ts +0 -194
- package/dist/dev/dev-tools.d.ts.map +0 -1
- package/dist/dev/dev-tools.js +0 -846
- package/dist/dev/dev-tools.js.map +0 -1
- package/dist/forms/validation.d.ts +0 -271
- package/dist/forms/validation.d.ts.map +0 -1
- package/dist/forms/validation.js +0 -573
- package/dist/forms/validation.js.map +0 -1
- package/dist/performance/bundle-optimizer.d.ts +0 -95
- package/dist/performance/bundle-optimizer.d.ts.map +0 -1
- package/dist/performance/bundle-optimizer.js +0 -192
- package/dist/performance/bundle-optimizer.js.map +0 -1
- package/dist/performance/cache-manager.d.ts +0 -107
- package/dist/performance/cache-manager.d.ts.map +0 -1
- package/dist/performance/cache-manager.js +0 -314
- package/dist/performance/cache-manager.js.map +0 -1
- package/dist/performance/component-cache.d.ts +0 -120
- package/dist/performance/component-cache.d.ts.map +0 -1
- package/dist/performance/component-cache.js +0 -364
- package/dist/performance/component-cache.js.map +0 -1
- package/dist/performance/monitor.d.ts +0 -189
- package/dist/performance/monitor.d.ts.map +0 -1
- package/dist/performance/monitor.js +0 -347
- package/dist/performance/monitor.js.map +0 -1
- package/dist/rendering/base-renderer.d.ts +0 -140
- package/dist/rendering/base-renderer.d.ts.map +0 -1
- package/dist/rendering/base-renderer.js +0 -409
- package/dist/rendering/base-renderer.js.map +0 -1
- package/dist/rendering/css-manager.d.ts +0 -73
- package/dist/rendering/css-manager.d.ts.map +0 -1
- package/dist/rendering/css-manager.js +0 -176
- package/dist/rendering/css-manager.js.map +0 -1
- package/dist/rendering/dom-renderer.d.ts +0 -62
- package/dist/rendering/dom-renderer.d.ts.map +0 -1
- package/dist/rendering/dom-renderer.js +0 -252
- package/dist/rendering/dom-renderer.js.map +0 -1
- package/dist/rendering/html-renderer.d.ts +0 -67
- package/dist/rendering/html-renderer.d.ts.map +0 -1
- package/dist/rendering/html-renderer.js +0 -444
- package/dist/rendering/html-renderer.js.map +0 -1
- package/dist/rendering/renderer-config.d.ts +0 -282
- package/dist/rendering/renderer-config.d.ts.map +0 -1
- package/dist/rendering/renderer-config.js +0 -144
- package/dist/rendering/renderer-config.js.map +0 -1
- package/dist/rendering/streaming-renderer.d.ts +0 -117
- package/dist/rendering/streaming-renderer.d.ts.map +0 -1
- package/dist/rendering/streaming-renderer.js +0 -326
- package/dist/rendering/streaming-renderer.js.map +0 -1
- package/dist/rendering/vdom-diff.d.ts +0 -47
- package/dist/rendering/vdom-diff.d.ts.map +0 -1
- package/dist/rendering/vdom-diff.js +0 -416
- package/dist/rendering/vdom-diff.js.map +0 -1
- package/dist/routing/router.d.ts +0 -241
- package/dist/routing/router.d.ts.map +0 -1
- package/dist/routing/router.js +0 -648
- package/dist/routing/router.js.map +0 -1
- package/dist/state/reactive-state.d.ts +0 -166
- package/dist/state/reactive-state.d.ts.map +0 -1
- package/dist/state/reactive-state.js +0 -546
- package/dist/state/reactive-state.js.map +0 -1
- package/dist/state/state-manager.d.ts +0 -45
- package/dist/state/state-manager.d.ts.map +0 -1
- package/dist/state/state-manager.js +0 -151
- package/dist/state/state-manager.js.map +0 -1
- package/dist/types/constants.d.ts +0 -8
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/constants.js +0 -36
- package/dist/types/constants.js.map +0 -1
- package/dist/utils/dependency-utils.d.ts +0 -43
- package/dist/utils/dependency-utils.d.ts.map +0 -1
- package/dist/utils/dependency-utils.js +0 -105
- package/dist/utils/dependency-utils.js.map +0 -1
- package/dist/utils/error-handler.d.ts +0 -148
- package/dist/utils/error-handler.d.ts.map +0 -1
- package/dist/utils/error-handler.js +0 -468
- package/dist/utils/error-handler.js.map +0 -1
- package/dist/utils/normalization.d.ts +0 -3
- package/dist/utils/normalization.d.ts.map +0 -1
- package/dist/utils/normalization.js +0 -24
- package/dist/utils/normalization.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -10
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -32
- package/dist/utils/validation.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -10,9 +10,6 @@ var __export = (target, all) => {
|
|
|
10
10
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
// src/index.js
|
|
14
|
-
import { readFileSync } from "node:fs";
|
|
15
|
-
|
|
16
13
|
// src/performance/monitor.js
|
|
17
14
|
function createPerformanceMonitor(options = {}) {
|
|
18
15
|
const opts = {
|
|
@@ -464,6 +461,23 @@ function createPerformanceMonitor(options = {}) {
|
|
|
464
461
|
startReporting();
|
|
465
462
|
startProfiling();
|
|
466
463
|
}
|
|
464
|
+
let _renderCounter = 0;
|
|
465
|
+
const _renderTimers = /* @__PURE__ */ new Map();
|
|
466
|
+
function startRender() {
|
|
467
|
+
const id = `render_${++_renderCounter}`;
|
|
468
|
+
_renderTimers.set(id, performance.now());
|
|
469
|
+
return id;
|
|
470
|
+
}
|
|
471
|
+
function endRender(id) {
|
|
472
|
+
const startTime = _renderTimers.get(id);
|
|
473
|
+
if (startTime !== void 0) {
|
|
474
|
+
const duration = performance.now() - startTime;
|
|
475
|
+
_renderTimers.delete(id);
|
|
476
|
+
recordMetric("render", duration);
|
|
477
|
+
return duration;
|
|
478
|
+
}
|
|
479
|
+
return 0;
|
|
480
|
+
}
|
|
467
481
|
return {
|
|
468
482
|
recordMetric,
|
|
469
483
|
measure,
|
|
@@ -473,6 +487,8 @@ function createPerformanceMonitor(options = {}) {
|
|
|
473
487
|
generateReport,
|
|
474
488
|
getStats,
|
|
475
489
|
reset,
|
|
490
|
+
startRender,
|
|
491
|
+
endRender,
|
|
476
492
|
start() {
|
|
477
493
|
opts.enabled = true;
|
|
478
494
|
startResourceMonitoring();
|
|
@@ -2085,6 +2101,11 @@ var HTMLRenderer = class extends BaseRenderer {
|
|
|
2085
2101
|
const { children, text, key: _key, html: _rawHtml, ...attributes } = element || {};
|
|
2086
2102
|
const attributeString = formatAttributes(attributes);
|
|
2087
2103
|
const openingTag = attributeString ? `<${tagName} ${attributeString}>` : `<${tagName}>`;
|
|
2104
|
+
if (_rawHtml !== void 0) {
|
|
2105
|
+
const rawContent = typeof _rawHtml === "function" ? String(_rawHtml()) : String(_rawHtml);
|
|
2106
|
+
const result = `${openingTag}${rawContent}</${tagName}>`;
|
|
2107
|
+
return result;
|
|
2108
|
+
}
|
|
2088
2109
|
let textContent = "";
|
|
2089
2110
|
if (text !== void 0) {
|
|
2090
2111
|
const isScript = tagName === "script";
|
|
@@ -5014,7 +5035,7 @@ var EventBus = class {
|
|
|
5014
5035
|
}
|
|
5015
5036
|
}
|
|
5016
5037
|
/**
|
|
5017
|
-
* Emit
|
|
5038
|
+
* Emit throttled event
|
|
5018
5039
|
*/
|
|
5019
5040
|
emitThrottled(event, data, delay) {
|
|
5020
5041
|
if (!this.throttledEmitters.has(event)) {
|
|
@@ -5038,7 +5059,7 @@ var EventBus = class {
|
|
|
5038
5059
|
}
|
|
5039
5060
|
}
|
|
5040
5061
|
/**
|
|
5041
|
-
* Flush
|
|
5062
|
+
* Flush batched events
|
|
5042
5063
|
*/
|
|
5043
5064
|
async flushBatch() {
|
|
5044
5065
|
if (this.batchTimer) {
|
|
@@ -5176,7 +5197,7 @@ var EventBus = class {
|
|
|
5176
5197
|
}
|
|
5177
5198
|
}
|
|
5178
5199
|
/**
|
|
5179
|
-
* Run middleware
|
|
5200
|
+
* Run middleware
|
|
5180
5201
|
*/
|
|
5181
5202
|
async runMiddleware(event, data) {
|
|
5182
5203
|
if (this.middleware.length === 0) return;
|
|
@@ -5376,7 +5397,6 @@ var DOMEventIntegration = class {
|
|
|
5376
5397
|
}
|
|
5377
5398
|
/**
|
|
5378
5399
|
* Set up delegated DOM event listeners
|
|
5379
|
-
* @private
|
|
5380
5400
|
*/
|
|
5381
5401
|
setupDOMEventListeners() {
|
|
5382
5402
|
const clickHandler = this.createDelegatedHandler("click", this.handleClick);
|
|
@@ -5403,7 +5423,6 @@ var DOMEventIntegration = class {
|
|
|
5403
5423
|
}
|
|
5404
5424
|
/**
|
|
5405
5425
|
* Create a delegated event handler
|
|
5406
|
-
* @private
|
|
5407
5426
|
*/
|
|
5408
5427
|
createDelegatedHandler(eventType, handler) {
|
|
5409
5428
|
return (event) => {
|
|
@@ -5419,7 +5438,6 @@ var DOMEventIntegration = class {
|
|
|
5419
5438
|
}
|
|
5420
5439
|
/**
|
|
5421
5440
|
* Handle click events
|
|
5422
|
-
* @private
|
|
5423
5441
|
*/
|
|
5424
5442
|
handleClick(element, event) {
|
|
5425
5443
|
const action = element.getAttribute?.("data-action");
|
|
@@ -5435,7 +5453,6 @@ var DOMEventIntegration = class {
|
|
|
5435
5453
|
}
|
|
5436
5454
|
/**
|
|
5437
5455
|
* Handle change events
|
|
5438
|
-
* @private
|
|
5439
5456
|
*/
|
|
5440
5457
|
handleChange(element, event) {
|
|
5441
5458
|
const action = element.getAttribute?.("data-action");
|
|
@@ -5452,7 +5469,6 @@ var DOMEventIntegration = class {
|
|
|
5452
5469
|
}
|
|
5453
5470
|
/**
|
|
5454
5471
|
* Handle input events
|
|
5455
|
-
* @private
|
|
5456
5472
|
*/
|
|
5457
5473
|
handleInput(element, event) {
|
|
5458
5474
|
const action = element.getAttribute?.("data-action");
|
|
@@ -5469,7 +5485,6 @@ var DOMEventIntegration = class {
|
|
|
5469
5485
|
}
|
|
5470
5486
|
/**
|
|
5471
5487
|
* Handle submit events
|
|
5472
|
-
* @private
|
|
5473
5488
|
*/
|
|
5474
5489
|
handleSubmit(element, event) {
|
|
5475
5490
|
const action = element.getAttribute?.("data-action");
|
|
@@ -5487,7 +5502,6 @@ var DOMEventIntegration = class {
|
|
|
5487
5502
|
}
|
|
5488
5503
|
/**
|
|
5489
5504
|
* Handle keydown events
|
|
5490
|
-
* @private
|
|
5491
5505
|
*/
|
|
5492
5506
|
handleKeydown(element, event) {
|
|
5493
5507
|
const action = element.getAttribute?.("data-action");
|
|
@@ -5510,7 +5524,6 @@ var DOMEventIntegration = class {
|
|
|
5510
5524
|
}
|
|
5511
5525
|
/**
|
|
5512
5526
|
* Handle focus events
|
|
5513
|
-
* @private
|
|
5514
5527
|
*/
|
|
5515
5528
|
handleFocus(element, event) {
|
|
5516
5529
|
this.activeElement = element;
|
|
@@ -5522,7 +5535,6 @@ var DOMEventIntegration = class {
|
|
|
5522
5535
|
}
|
|
5523
5536
|
/**
|
|
5524
5537
|
* Handle blur events
|
|
5525
|
-
* @private
|
|
5526
5538
|
*/
|
|
5527
5539
|
handleBlur(element, event) {
|
|
5528
5540
|
if (this.activeElement === element) {
|
|
@@ -5536,7 +5548,6 @@ var DOMEventIntegration = class {
|
|
|
5536
5548
|
}
|
|
5537
5549
|
/**
|
|
5538
5550
|
* Handle data-action attributes
|
|
5539
|
-
* @private
|
|
5540
5551
|
*/
|
|
5541
5552
|
handleDataAction(element, event, action) {
|
|
5542
5553
|
if (!action) return;
|
|
@@ -5558,7 +5569,6 @@ var DOMEventIntegration = class {
|
|
|
5558
5569
|
}
|
|
5559
5570
|
/**
|
|
5560
5571
|
* Parse data attributes from an element
|
|
5561
|
-
* @private
|
|
5562
5572
|
*/
|
|
5563
5573
|
parseDataAttributes(element) {
|
|
5564
5574
|
if (!element?.attributes) return {};
|
|
@@ -5586,7 +5596,6 @@ var DOMEventIntegration = class {
|
|
|
5586
5596
|
}
|
|
5587
5597
|
/**
|
|
5588
5598
|
* Extract form data from a form element
|
|
5589
|
-
* @private
|
|
5590
5599
|
*/
|
|
5591
5600
|
extractFormData(formElement) {
|
|
5592
5601
|
if (!formElement || formElement.tagName !== "FORM") {
|
|
@@ -5609,7 +5618,6 @@ var DOMEventIntegration = class {
|
|
|
5609
5618
|
}
|
|
5610
5619
|
/**
|
|
5611
5620
|
* Check if a key event should trigger an action
|
|
5612
|
-
* @private
|
|
5613
5621
|
*/
|
|
5614
5622
|
shouldTriggerKeyAction(event) {
|
|
5615
5623
|
const triggerKeys = ["Enter", "Space", "Escape"];
|
|
@@ -5617,7 +5625,6 @@ var DOMEventIntegration = class {
|
|
|
5617
5625
|
}
|
|
5618
5626
|
/**
|
|
5619
5627
|
* Debounce utility function
|
|
5620
|
-
* @private
|
|
5621
5628
|
*/
|
|
5622
5629
|
debounce(func, wait) {
|
|
5623
5630
|
let timeout;
|
|
@@ -5632,7 +5639,6 @@ var DOMEventIntegration = class {
|
|
|
5632
5639
|
}
|
|
5633
5640
|
/**
|
|
5634
5641
|
* Throttle utility function
|
|
5635
|
-
* @private
|
|
5636
5642
|
*/
|
|
5637
5643
|
throttle(func, limit) {
|
|
5638
5644
|
let inThrottle;
|
|
@@ -6401,10 +6407,7 @@ function deepClone2(obj) {
|
|
|
6401
6407
|
}
|
|
6402
6408
|
return cloned;
|
|
6403
6409
|
}
|
|
6404
|
-
var
|
|
6405
|
-
readFileSync(new URL("../package.json", import.meta.url), "utf-8")
|
|
6406
|
-
);
|
|
6407
|
-
var VERSION = _corePackageJson.version;
|
|
6410
|
+
var VERSION = "1.0.0-beta.8";
|
|
6408
6411
|
var fp = {
|
|
6409
6412
|
/**
|
|
6410
6413
|
* Curried map: fp.map(fn)(array)
|
|
@@ -6562,7 +6565,7 @@ export {
|
|
|
6562
6565
|
* Coherent.js - Object-Based Rendering Framework
|
|
6563
6566
|
* A pure JavaScript framework for server-side rendering using natural object syntax
|
|
6564
6567
|
*
|
|
6565
|
-
* @version 1.0.0-beta.
|
|
6568
|
+
* @version 1.0.0-beta.8
|
|
6566
6569
|
* @author Coherent Framework Team
|
|
6567
6570
|
* @license MIT
|
|
6568
6571
|
*/
|