@jqhtml/core 2.3.50 → 2.3.59
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/README.md +3 -1
- package/dist/boot.d.ts +0 -0
- package/dist/boot.d.ts.map +0 -0
- package/dist/boot.js +130 -0
- package/dist/boot.js.map +1 -0
- package/dist/cache-key-serializer.d.ts +47 -0
- package/dist/cache-key-serializer.d.ts.map +1 -0
- package/dist/cache-key-serializer.js +140 -0
- package/dist/cache-key-serializer.js.map +1 -0
- package/dist/component-cache.d.ts +1 -0
- package/dist/component-cache.d.ts.map +1 -1
- package/dist/component-cache.js +270 -0
- package/dist/component-cache.js.map +1 -0
- package/dist/component-events.d.ts +0 -0
- package/dist/component-events.d.ts.map +1 -1
- package/dist/component-events.js +141 -0
- package/dist/component-events.js.map +1 -0
- package/dist/component-queue.d.ts +0 -0
- package/dist/component-queue.d.ts.map +0 -0
- package/dist/component-queue.js +118 -0
- package/dist/component-queue.js.map +1 -0
- package/dist/component-registry.d.ts +0 -0
- package/dist/component-registry.d.ts.map +0 -0
- package/dist/component-registry.js +298 -0
- package/dist/component-registry.js.map +1 -0
- package/dist/component.d.ts +26 -0
- package/dist/component.d.ts.map +1 -1
- package/dist/component.js +1892 -0
- package/dist/component.js.map +1 -0
- package/dist/config.d.ts +57 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -0
- package/dist/data-proxy.d.ts +0 -0
- package/dist/data-proxy.d.ts.map +0 -0
- package/dist/data-proxy.js +223 -0
- package/dist/data-proxy.js.map +1 -0
- package/dist/debug-entry.d.ts +0 -0
- package/dist/debug-entry.d.ts.map +0 -0
- package/dist/debug-entry.js +8 -0
- package/dist/debug-entry.js.map +1 -0
- package/dist/debug.d.ts +0 -0
- package/dist/debug.d.ts.map +0 -0
- package/dist/debug.js +203 -0
- package/dist/debug.js.map +1 -0
- package/dist/index.cjs +520 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +519 -47
- package/dist/index.js.map +1 -1
- package/dist/instruction-processor.d.ts +0 -0
- package/dist/instruction-processor.d.ts.map +1 -1
- package/dist/instruction-processor.js +563 -0
- package/dist/instruction-processor.js.map +1 -0
- package/dist/jqhtml-core.esm.js +520 -48
- package/dist/jqhtml-core.esm.js.map +1 -1
- package/dist/jqhtml-debug.esm.js +0 -0
- package/dist/jqhtml-debug.esm.js.map +0 -0
- package/dist/jquery-plugin.d.ts +0 -0
- package/dist/jquery-plugin.d.ts.map +1 -1
- package/dist/jquery-plugin.js +472 -0
- package/dist/jquery-plugin.js.map +1 -0
- package/dist/lifecycle-manager.d.ts +0 -0
- package/dist/lifecycle-manager.d.ts.map +0 -0
- package/dist/lifecycle-manager.js +201 -0
- package/dist/lifecycle-manager.js.map +1 -0
- package/dist/load-coordinator.d.ts +18 -1
- package/dist/load-coordinator.d.ts.map +1 -1
- package/dist/load-coordinator.js +309 -0
- package/dist/load-coordinator.js.map +1 -0
- package/dist/local-storage.d.ts +2 -0
- package/dist/local-storage.d.ts.map +1 -1
- package/dist/local-storage.js +699 -0
- package/dist/local-storage.js.map +1 -0
- package/dist/preload-data.d.ts +0 -0
- package/dist/preload-data.d.ts.map +0 -0
- package/dist/preload-data.js +136 -0
- package/dist/preload-data.js.map +1 -0
- package/dist/template-renderer.d.ts +0 -0
- package/dist/template-renderer.d.ts.map +0 -0
- package/dist/template-renderer.js +278 -0
- package/dist/template-renderer.js.map +1 -0
- package/dist/viewport.d.ts +36 -0
- package/dist/viewport.d.ts.map +1 -0
- package/dist/viewport.js +69 -0
- package/dist/viewport.js.map +1 -0
- package/package.json +7 -2
package/dist/debug.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JQHTML Debug Module
|
|
3
|
+
*
|
|
4
|
+
* Provides comprehensive debugging capabilities for JQHTML components
|
|
5
|
+
*/
|
|
6
|
+
// Global debug state
|
|
7
|
+
let debugSettings = {};
|
|
8
|
+
let performanceMetrics = new Map();
|
|
9
|
+
let componentTree = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Development warning helper
|
|
12
|
+
* Warnings are suppressed in production builds or when JQHTML_SUPPRESS_WARNINGS is set
|
|
13
|
+
*/
|
|
14
|
+
export function devWarn(message) {
|
|
15
|
+
// Check if warnings are suppressed
|
|
16
|
+
if (typeof window !== 'undefined' && window.JQHTML_SUPPRESS_WARNINGS) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
// Check if in production mode
|
|
20
|
+
if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'production') {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
console.warn(`[JQHTML Dev Warning] ${message}`);
|
|
24
|
+
}
|
|
25
|
+
// Get global jqhtml object
|
|
26
|
+
function getJqhtml() {
|
|
27
|
+
if (typeof window !== 'undefined' && window.jqhtml) {
|
|
28
|
+
return window.jqhtml;
|
|
29
|
+
}
|
|
30
|
+
// Fallback: try to get from global if available
|
|
31
|
+
if (typeof globalThis !== 'undefined' && globalThis.jqhtml) {
|
|
32
|
+
return globalThis.jqhtml;
|
|
33
|
+
}
|
|
34
|
+
throw new Error('FATAL: window.jqhtml is not defined. The JQHTML runtime must be loaded before using debug features. ' +
|
|
35
|
+
'Import and initialize @jqhtml/core before attempting to use debug functionality.');
|
|
36
|
+
}
|
|
37
|
+
// Synchronous delay helper
|
|
38
|
+
function delay(ms) {
|
|
39
|
+
if (ms <= 0)
|
|
40
|
+
return;
|
|
41
|
+
const start = Date.now();
|
|
42
|
+
while (Date.now() - start < ms) {
|
|
43
|
+
// Busy wait
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Visual flash effect
|
|
47
|
+
function flashComponent(component, eventType) {
|
|
48
|
+
const jqhtml = getJqhtml();
|
|
49
|
+
if (!jqhtml?.debug?.flashComponents)
|
|
50
|
+
return;
|
|
51
|
+
const duration = jqhtml.debug.flashDuration || 500;
|
|
52
|
+
const colors = jqhtml.debug.flashColors || {};
|
|
53
|
+
const color = colors[eventType] || (eventType === 'create' ? '#3498db' :
|
|
54
|
+
eventType === 'render' ? '#27ae60' :
|
|
55
|
+
'#9b59b6');
|
|
56
|
+
// Store original border
|
|
57
|
+
const originalBorder = component.$.css('border');
|
|
58
|
+
// Apply flash border
|
|
59
|
+
component.$.css({
|
|
60
|
+
'border': `2px solid ${color}`,
|
|
61
|
+
'transition': `border ${duration}ms ease-out`
|
|
62
|
+
});
|
|
63
|
+
// Remove after duration
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
component.$.css('border', originalBorder || '');
|
|
66
|
+
}, duration);
|
|
67
|
+
}
|
|
68
|
+
// Log lifecycle event
|
|
69
|
+
export function logLifecycle(component, phase, status) {
|
|
70
|
+
const jqhtml = getJqhtml();
|
|
71
|
+
if (!jqhtml?.debug)
|
|
72
|
+
return;
|
|
73
|
+
const shouldLog = jqhtml.debug.logFullLifecycle ||
|
|
74
|
+
(jqhtml.debug.logCreationReady && (phase === 'create' || phase === 'ready'));
|
|
75
|
+
if (!shouldLog)
|
|
76
|
+
return;
|
|
77
|
+
const componentName = component.constructor.name;
|
|
78
|
+
const timestamp = new Date().toISOString();
|
|
79
|
+
const prefix = `[JQHTML ${timestamp}]`;
|
|
80
|
+
if (status === 'start') {
|
|
81
|
+
console.log(`${prefix} ${componentName}#${component._cid} → ${phase} starting...`);
|
|
82
|
+
// Start performance tracking
|
|
83
|
+
if (jqhtml.debug.profilePerformance) {
|
|
84
|
+
performanceMetrics.set(`${component._cid}_${phase}`, Date.now());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
let message = `${prefix} ${componentName}#${component._cid} ✓ ${phase} complete`;
|
|
89
|
+
// Add performance data
|
|
90
|
+
if (jqhtml.debug.profilePerformance) {
|
|
91
|
+
const startTime = performanceMetrics.get(`${component._cid}_${phase}`);
|
|
92
|
+
if (startTime) {
|
|
93
|
+
const duration = Date.now() - startTime;
|
|
94
|
+
message += ` (${duration}ms)`;
|
|
95
|
+
// Highlight slow renders
|
|
96
|
+
if (phase === 'render' && jqhtml.debug.highlightSlowRenders &&
|
|
97
|
+
duration > jqhtml.debug.highlightSlowRenders) {
|
|
98
|
+
console.warn(`${prefix} SLOW RENDER: ${componentName}#${component._cid} took ${duration}ms`);
|
|
99
|
+
component.$.css('outline', '2px dashed red');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
console.log(message);
|
|
104
|
+
// Visual feedback
|
|
105
|
+
if (jqhtml.debug.flashComponents && (phase === 'create' || phase === 'render' || phase === 'ready')) {
|
|
106
|
+
flashComponent(component, phase);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Update component tree if enabled
|
|
110
|
+
if (jqhtml.debug.showComponentTree) {
|
|
111
|
+
updateComponentTree();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Apply delays based on lifecycle phase
|
|
115
|
+
export function applyDebugDelay(phase) {
|
|
116
|
+
const jqhtml = getJqhtml();
|
|
117
|
+
if (!jqhtml?.debug)
|
|
118
|
+
return;
|
|
119
|
+
let delayMs = 0;
|
|
120
|
+
switch (phase) {
|
|
121
|
+
case 'component':
|
|
122
|
+
delayMs = jqhtml.debug.delayAfterComponent || 0;
|
|
123
|
+
break;
|
|
124
|
+
case 'render':
|
|
125
|
+
delayMs = jqhtml.debug.delayAfterRender || 0;
|
|
126
|
+
break;
|
|
127
|
+
case 'rerender':
|
|
128
|
+
delayMs = jqhtml.debug.delayAfterRerender || 0;
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
if (delayMs > 0) {
|
|
132
|
+
console.log(`[JQHTML Debug] Applying ${delayMs}ms delay after ${phase}`);
|
|
133
|
+
delay(delayMs);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Log instruction processing
|
|
137
|
+
export function logInstruction(type, data) {
|
|
138
|
+
const jqhtml = getJqhtml();
|
|
139
|
+
if (!jqhtml?.debug?.logInstructionProcessing)
|
|
140
|
+
return;
|
|
141
|
+
console.log(`[JQHTML Instruction] ${type}:`, data);
|
|
142
|
+
}
|
|
143
|
+
// Log data changes
|
|
144
|
+
export function logDataChange(component, property, oldValue, newValue) {
|
|
145
|
+
const jqhtml = getJqhtml();
|
|
146
|
+
if (!jqhtml?.debug?.traceDataFlow)
|
|
147
|
+
return;
|
|
148
|
+
console.log(`[JQHTML Data] ${component.constructor.name}#${component._cid}.data.${property}:`, { old: oldValue, new: newValue });
|
|
149
|
+
}
|
|
150
|
+
// Update component tree visualization
|
|
151
|
+
function updateComponentTree() {
|
|
152
|
+
// This would update a debug panel if implemented
|
|
153
|
+
// For now, just log the tree structure periodically
|
|
154
|
+
console.log('[JQHTML Tree] Component hierarchy updated');
|
|
155
|
+
}
|
|
156
|
+
// Router dispatch logging
|
|
157
|
+
export function logDispatch(url, route, params, verbose = false) {
|
|
158
|
+
const jqhtml = getJqhtml();
|
|
159
|
+
if (!jqhtml?.debug)
|
|
160
|
+
return;
|
|
161
|
+
const shouldLog = jqhtml.debug.logDispatch || jqhtml.debug.logDispatchVerbose;
|
|
162
|
+
if (!shouldLog)
|
|
163
|
+
return;
|
|
164
|
+
const isVerbose = jqhtml.debug.logDispatchVerbose || verbose;
|
|
165
|
+
if (isVerbose) {
|
|
166
|
+
console.group(`[JQHTML Router] Dispatching: ${url}`);
|
|
167
|
+
console.log('Matched route:', route);
|
|
168
|
+
console.log('Extracted params:', params);
|
|
169
|
+
console.log('Route component:', route.component);
|
|
170
|
+
console.log('Route layout:', route.layout);
|
|
171
|
+
console.log('Route meta:', route.meta);
|
|
172
|
+
console.groupEnd();
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
console.log(`[JQHTML Router] ${url} → ${route.component} (params: ${JSON.stringify(params)})`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Check if sequential processing is enabled
|
|
179
|
+
export function isSequentialProcessing() {
|
|
180
|
+
const jqhtml = getJqhtml();
|
|
181
|
+
return jqhtml?.debug?.sequentialProcessing || false;
|
|
182
|
+
}
|
|
183
|
+
// Error handling with break on error
|
|
184
|
+
export function handleComponentError(component, phase, error) {
|
|
185
|
+
const jqhtml = getJqhtml();
|
|
186
|
+
console.error(`[JQHTML Error] ${component.constructor.name}#${component._cid} failed in ${phase}:`, error);
|
|
187
|
+
if (jqhtml?.debug?.breakOnError) {
|
|
188
|
+
debugger; // This will pause execution in dev tools
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Additional debug suggestions that could be implemented:
|
|
192
|
+
//
|
|
193
|
+
// 1. Component Inspector - Click on any component to see its data/args/state
|
|
194
|
+
// 2. Time Travel Debugging - Record state changes and replay them
|
|
195
|
+
// 3. Network Request Tracking - Log all AJAX calls made during load()
|
|
196
|
+
// 4. Memory Leak Detection - Track component creation/destruction
|
|
197
|
+
// 5. Template Compilation Debugging - Show compiled template functions
|
|
198
|
+
// 6. Event Flow Visualization - Show event bubbling through components
|
|
199
|
+
// 7. Dependency Graph - Show which components depend on which data
|
|
200
|
+
// 8. Hot Reload Support - Reload components without losing state
|
|
201
|
+
// 9. Performance Budgets - Warn when components exceed size/time limits
|
|
202
|
+
// 10. Accessibility Auditing - Check for missing ARIA attributes
|
|
203
|
+
//# sourceMappingURL=debug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
|