@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.
Files changed (88) hide show
  1. package/README.md +3 -1
  2. package/dist/boot.d.ts +0 -0
  3. package/dist/boot.d.ts.map +0 -0
  4. package/dist/boot.js +130 -0
  5. package/dist/boot.js.map +1 -0
  6. package/dist/cache-key-serializer.d.ts +47 -0
  7. package/dist/cache-key-serializer.d.ts.map +1 -0
  8. package/dist/cache-key-serializer.js +140 -0
  9. package/dist/cache-key-serializer.js.map +1 -0
  10. package/dist/component-cache.d.ts +1 -0
  11. package/dist/component-cache.d.ts.map +1 -1
  12. package/dist/component-cache.js +270 -0
  13. package/dist/component-cache.js.map +1 -0
  14. package/dist/component-events.d.ts +0 -0
  15. package/dist/component-events.d.ts.map +1 -1
  16. package/dist/component-events.js +141 -0
  17. package/dist/component-events.js.map +1 -0
  18. package/dist/component-queue.d.ts +0 -0
  19. package/dist/component-queue.d.ts.map +0 -0
  20. package/dist/component-queue.js +118 -0
  21. package/dist/component-queue.js.map +1 -0
  22. package/dist/component-registry.d.ts +0 -0
  23. package/dist/component-registry.d.ts.map +0 -0
  24. package/dist/component-registry.js +298 -0
  25. package/dist/component-registry.js.map +1 -0
  26. package/dist/component.d.ts +26 -0
  27. package/dist/component.d.ts.map +1 -1
  28. package/dist/component.js +1892 -0
  29. package/dist/component.js.map +1 -0
  30. package/dist/config.d.ts +57 -0
  31. package/dist/config.d.ts.map +1 -0
  32. package/dist/config.js +64 -0
  33. package/dist/config.js.map +1 -0
  34. package/dist/data-proxy.d.ts +0 -0
  35. package/dist/data-proxy.d.ts.map +0 -0
  36. package/dist/data-proxy.js +223 -0
  37. package/dist/data-proxy.js.map +1 -0
  38. package/dist/debug-entry.d.ts +0 -0
  39. package/dist/debug-entry.d.ts.map +0 -0
  40. package/dist/debug-entry.js +8 -0
  41. package/dist/debug-entry.js.map +1 -0
  42. package/dist/debug.d.ts +0 -0
  43. package/dist/debug.d.ts.map +0 -0
  44. package/dist/debug.js +203 -0
  45. package/dist/debug.js.map +1 -0
  46. package/dist/index.cjs +520 -46
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.ts +7 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +519 -47
  51. package/dist/index.js.map +1 -1
  52. package/dist/instruction-processor.d.ts +0 -0
  53. package/dist/instruction-processor.d.ts.map +1 -1
  54. package/dist/instruction-processor.js +563 -0
  55. package/dist/instruction-processor.js.map +1 -0
  56. package/dist/jqhtml-core.esm.js +520 -48
  57. package/dist/jqhtml-core.esm.js.map +1 -1
  58. package/dist/jqhtml-debug.esm.js +0 -0
  59. package/dist/jqhtml-debug.esm.js.map +0 -0
  60. package/dist/jquery-plugin.d.ts +0 -0
  61. package/dist/jquery-plugin.d.ts.map +1 -1
  62. package/dist/jquery-plugin.js +472 -0
  63. package/dist/jquery-plugin.js.map +1 -0
  64. package/dist/lifecycle-manager.d.ts +0 -0
  65. package/dist/lifecycle-manager.d.ts.map +0 -0
  66. package/dist/lifecycle-manager.js +201 -0
  67. package/dist/lifecycle-manager.js.map +1 -0
  68. package/dist/load-coordinator.d.ts +18 -1
  69. package/dist/load-coordinator.d.ts.map +1 -1
  70. package/dist/load-coordinator.js +309 -0
  71. package/dist/load-coordinator.js.map +1 -0
  72. package/dist/local-storage.d.ts +2 -0
  73. package/dist/local-storage.d.ts.map +1 -1
  74. package/dist/local-storage.js +699 -0
  75. package/dist/local-storage.js.map +1 -0
  76. package/dist/preload-data.d.ts +0 -0
  77. package/dist/preload-data.d.ts.map +0 -0
  78. package/dist/preload-data.js +136 -0
  79. package/dist/preload-data.js.map +1 -0
  80. package/dist/template-renderer.d.ts +0 -0
  81. package/dist/template-renderer.d.ts.map +0 -0
  82. package/dist/template-renderer.js +278 -0
  83. package/dist/template-renderer.js.map +1 -0
  84. package/dist/viewport.d.ts +36 -0
  85. package/dist/viewport.d.ts.map +1 -0
  86. package/dist/viewport.js +69 -0
  87. package/dist/viewport.js.map +1 -0
  88. 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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"}