@decido/shell-vscode-core 1.0.0 → 4.0.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/CHANGELOG.md +31 -0
- package/README.md +31 -0
- package/package.json +2 -2
- package/dist/appState.d.ts +0 -23
- package/dist/appState.d.ts.map +0 -1
- package/dist/appState.js +0 -138
- package/dist/core/AIService.d.ts +0 -33
- package/dist/core/AIService.d.ts.map +0 -1
- package/dist/core/AIService.js +0 -73
- package/dist/core/ApiService.d.ts +0 -34
- package/dist/core/ApiService.d.ts.map +0 -1
- package/dist/core/ApiService.js +0 -32
- package/dist/core/AuthService.d.ts +0 -31
- package/dist/core/AuthService.d.ts.map +0 -1
- package/dist/core/AuthService.js +0 -56
- package/dist/core/BaseService.d.ts +0 -29
- package/dist/core/BaseService.d.ts.map +0 -1
- package/dist/core/BaseService.js +0 -33
- package/dist/core/CalendarService.d.ts +0 -15
- package/dist/core/CalendarService.d.ts.map +0 -1
- package/dist/core/CalendarService.js +0 -32
- package/dist/core/CommandService.d.ts +0 -25
- package/dist/core/CommandService.d.ts.map +0 -1
- package/dist/core/CommandService.js +0 -52
- package/dist/core/DebugPanelService.d.ts +0 -12
- package/dist/core/DebugPanelService.d.ts.map +0 -1
- package/dist/core/DebugPanelService.js +0 -29
- package/dist/core/DebugService.d.ts +0 -57
- package/dist/core/DebugService.d.ts.map +0 -1
- package/dist/core/DebugService.js +0 -134
- package/dist/core/EventBus.d.ts +0 -32
- package/dist/core/EventBus.d.ts.map +0 -1
- package/dist/core/EventBus.js +0 -51
- package/dist/core/EventHandler.d.ts +0 -3
- package/dist/core/EventHandler.d.ts.map +0 -1
- package/dist/core/EventHandler.js +0 -82
- package/dist/core/GamificationService.d.ts +0 -19
- package/dist/core/GamificationService.d.ts.map +0 -1
- package/dist/core/GamificationService.js +0 -102
- package/dist/core/HookService.d.ts +0 -34
- package/dist/core/HookService.d.ts.map +0 -1
- package/dist/core/HookService.js +0 -64
- package/dist/core/LayoutService.d.ts +0 -61
- package/dist/core/LayoutService.d.ts.map +0 -1
- package/dist/core/LayoutService.js +0 -223
- package/dist/core/ModalService.d.ts +0 -21
- package/dist/core/ModalService.d.ts.map +0 -1
- package/dist/core/ModalService.js +0 -71
- package/dist/core/NotificationService.d.ts +0 -7
- package/dist/core/NotificationService.d.ts.map +0 -1
- package/dist/core/NotificationService.js +0 -42
- package/dist/core/RouterService.d.ts +0 -13
- package/dist/core/RouterService.d.ts.map +0 -1
- package/dist/core/RouterService.js +0 -54
- package/dist/core/ServiceContainer.d.ts +0 -18
- package/dist/core/ServiceContainer.d.ts.map +0 -1
- package/dist/core/ServiceContainer.js +0 -27
- package/dist/core/ShortcutService.d.ts +0 -17
- package/dist/core/ShortcutService.d.ts.map +0 -1
- package/dist/core/ShortcutService.js +0 -37
- package/dist/core/StorageService.d.ts +0 -36
- package/dist/core/StorageService.d.ts.map +0 -1
- package/dist/core/StorageService.js +0 -101
- package/dist/core/ThemeService.d.ts +0 -12
- package/dist/core/ThemeService.d.ts.map +0 -1
- package/dist/core/ThemeService.js +0 -60
- package/dist/core/WebSocketService.d.ts +0 -16
- package/dist/core/WebSocketService.d.ts.map +0 -1
- package/dist/core/WebSocketService.js +0 -22
- package/dist/core/api.d.ts +0 -70
- package/dist/core/api.d.ts.map +0 -1
- package/dist/core/api.js +0 -1
- package/dist/core/app/ModuleManager copy.d.ts +0 -23
- package/dist/core/app/ModuleManager copy.js +0 -52
- package/dist/core/app/ModuleManager.d.ts +0 -60
- package/dist/core/app/ModuleManager.d.ts.map +0 -1
- package/dist/core/app/ModuleManager.js +0 -217
- package/dist/core/app/apiFactory.d.ts +0 -4
- package/dist/core/app/apiFactory.d.ts.map +0 -1
- package/dist/core/app/apiFactory.js +0 -120
- package/dist/core/app/commandManager.d.ts +0 -3
- package/dist/core/app/commandManager.d.ts.map +0 -1
- package/dist/core/app/commandManager.js +0 -195
- package/dist/core/app/moduleLoader.d.ts +0 -11
- package/dist/core/app/moduleLoader.d.ts.map +0 -1
- package/dist/core/app/moduleLoader.js +0 -30
- package/dist/core/app/routeManager.d.ts +0 -2
- package/dist/core/app/routeManager.d.ts.map +0 -1
- package/dist/core/app/routeManager.js +0 -7
- package/dist/core/index.d.ts +0 -16
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -15
- package/dist/core/layout/dragDropManager.d.ts +0 -8
- package/dist/core/layout/dragDropManager.d.ts.map +0 -1
- package/dist/core/layout/dragDropManager.js +0 -8
- package/dist/core/layout/paneManager.d.ts +0 -7
- package/dist/core/layout/paneManager.d.ts.map +0 -1
- package/dist/core/layout/paneManager.js +0 -7
- package/dist/core/layout/renderer.d.ts +0 -8
- package/dist/core/layout/renderer.d.ts.map +0 -1
- package/dist/core/layout/renderer.js +0 -8
- package/dist/core/layout/resizeManager.d.ts +0 -5
- package/dist/core/layout/resizeManager.d.ts.map +0 -1
- package/dist/core/layout/resizeManager.js +0 -5
- package/dist/core/signals.d.ts +0 -20
- package/dist/core/signals.d.ts.map +0 -1
- package/dist/core/signals.js +0 -66
- package/dist/core/uiState.d.ts +0 -9
- package/dist/core/uiState.d.ts.map +0 -1
- package/dist/core/uiState.js +0 -11
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -15
- package/dist/lib/local-db.d.ts +0 -43
- package/dist/lib/local-db.d.ts.map +0 -1
- package/dist/lib/local-db.js +0 -23
- package/dist/lib/sync-service.d.ts +0 -7
- package/dist/lib/sync-service.d.ts.map +0 -1
- package/dist/lib/sync-service.js +0 -41
- package/dist/platform/ILayoutService.d.ts +0 -63
- package/dist/platform/ILayoutService.d.ts.map +0 -1
- package/dist/platform/ILayoutService.js +0 -1
- package/dist/platform/IRenderer.d.ts +0 -16
- package/dist/platform/IRenderer.d.ts.map +0 -1
- package/dist/platform/IRenderer.js +0 -1
- package/dist/platform/ServiceRegistry.d.ts +0 -43
- package/dist/platform/ServiceRegistry.d.ts.map +0 -1
- package/dist/platform/ServiceRegistry.js +0 -2
- package/dist/platform/extensionPoints.d.ts +0 -70
- package/dist/platform/extensionPoints.d.ts.map +0 -1
- package/dist/platform/extensionPoints.js +0 -22
- package/dist/platform/index.d.ts +0 -5
- package/dist/platform/index.d.ts.map +0 -1
- package/dist/platform/index.js +0 -4
- package/dist/stores/editorStore.d.ts +0 -5
- package/dist/stores/editorStore.d.ts.map +0 -1
- package/dist/stores/editorStore.js +0 -4
- package/dist/stores/gamificationStore.d.ts +0 -3
- package/dist/stores/gamificationStore.d.ts.map +0 -1
- package/dist/stores/gamificationStore.js +0 -2
- package/dist/stores/historyStore.d.ts +0 -12
- package/dist/stores/historyStore.d.ts.map +0 -1
- package/dist/stores/historyStore.js +0 -6
- package/dist/stores/workspaceStore.d.ts +0 -13
- package/dist/stores/workspaceStore.d.ts.map +0 -1
- package/dist/stores/workspaceStore.js +0 -6
- package/dist/types/app.d.ts +0 -31
- package/dist/types/app.d.ts.map +0 -1
- package/dist/types/app.js +0 -1
- package/dist/types/debug.d.ts +0 -68
- package/dist/types/debug.d.ts.map +0 -1
- package/dist/types/debug.js +0 -1
- package/dist/types/entities.d.ts +0 -42
- package/dist/types/entities.js +0 -2
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/modules.d.ts +0 -66
- package/dist/types/modules.js +0 -2
- package/dist/types/platform.d.ts +0 -95
- package/dist/types/platform.d.ts.map +0 -1
- package/dist/types/platform.js +0 -2
- package/dist/ui/Palette.d.ts +0 -38
- package/dist/ui/Palette.d.ts.map +0 -1
- package/dist/ui/Palette.js +0 -144
- package/dist/ui/debug-panel/dragAndResize.d.ts +0 -6
- package/dist/ui/debug-panel/dragAndResize.d.ts.map +0 -1
- package/dist/ui/debug-panel/dragAndResize.js +0 -140
- package/dist/ui/debug-panel/eventBinder.d.ts +0 -5
- package/dist/ui/debug-panel/eventBinder.d.ts.map +0 -1
- package/dist/ui/debug-panel/eventBinder.js +0 -120
- package/dist/ui/debug-panel/layoutManager.d.ts +0 -16
- package/dist/ui/debug-panel/layoutManager.d.ts.map +0 -1
- package/dist/ui/debug-panel/layoutManager.js +0 -73
- package/dist/ui/debug-panel/main.d.ts +0 -12
- package/dist/ui/debug-panel/main.d.ts.map +0 -1
- package/dist/ui/debug-panel/main.js +0 -42
- package/dist/ui/debug-panel/panelManager.d.ts +0 -17
- package/dist/ui/debug-panel/panelManager.d.ts.map +0 -1
- package/dist/ui/debug-panel/panelManager.js +0 -123
- package/dist/ui/debug-panel/renderer.d.ts +0 -4
- package/dist/ui/debug-panel/renderer.d.ts.map +0 -1
- package/dist/ui/debug-panel/renderer.js +0 -181
- package/dist/ui/debug-panel/services.d.ts +0 -4
- package/dist/ui/debug-panel/services.d.ts.map +0 -1
- package/dist/ui/debug-panel/services.js +0 -134
- package/dist/ui/debug-panel/settings.d.ts +0 -5
- package/dist/ui/debug-panel/settings.d.ts.map +0 -1
- package/dist/ui/debug-panel/settings.js +0 -35
- package/dist/ui/debug-panel/state.d.ts +0 -128
- package/dist/ui/debug-panel/state.d.ts.map +0 -1
- package/dist/ui/debug-panel/state.js +0 -42
- package/dist/ui/debug-panel/stateEditor.d.ts +0 -9
- package/dist/ui/debug-panel/stateEditor.d.ts.map +0 -1
- package/dist/ui/debug-panel/stateEditor.js +0 -158
- package/dist/ui/debug-panel/types.d.ts +0 -68
- package/dist/ui/debug-panel/types.d.ts.map +0 -1
- package/dist/ui/debug-panel/types.js +0 -1
- package/dist/ui/debug-panel/ui.d.ts +0 -10
- package/dist/ui/debug-panel/ui.d.ts.map +0 -1
- package/dist/ui/debug-panel/ui.js +0 -199
- package/dist/ui/debug-panel/utils.d.ts +0 -16
- package/dist/ui/debug-panel/utils.d.ts.map +0 -1
- package/dist/ui/debug-panel/utils.js +0 -104
- package/dist/utils.d.ts +0 -22
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -58
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { createEffect } from '../../core/signals.js';
|
|
2
|
-
import { consoleLogs, consoleFilter, networkLogs, networkFilter, eventLogs, performanceLogs, fpsCounter, capitalize } from './state.js';
|
|
3
|
-
import * as appState from '../../appState.js';
|
|
4
|
-
import * as uiState from '../../core/uiState.js';
|
|
5
|
-
import { formatLogMessage, getLogIcon } from './utils.js';
|
|
6
|
-
import { renderStateTree } from './stateEditor.js';
|
|
7
|
-
// ===================================================================
|
|
8
|
-
// Funciones de Vista Puras (Generan HTML, no tocan el DOM)
|
|
9
|
-
// ===================================================================
|
|
10
|
-
function createConsoleViewHTML(logs, settings) {
|
|
11
|
-
return logs.map(log => `
|
|
12
|
-
<div class="log-entry log-level-${log.type}" data-log-id="${log.id}">
|
|
13
|
-
${settings.showTimestamps ? `<span class="log-time">${log.timestamp.toLocaleTimeString()}</span>` : ''}
|
|
14
|
-
<span class="log-type-icon">${getLogIcon(log.type)}</span>
|
|
15
|
-
<div class="log-content">
|
|
16
|
-
<div class="log-message">${formatLogMessage(log.message)}</div>
|
|
17
|
-
${log.stack ? `<div class="log-stack">${log.stack}</div>` : ''}
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
`).join('');
|
|
21
|
-
}
|
|
22
|
-
function createNetworkViewHTML(logs, settings) {
|
|
23
|
-
return logs.map(log => `
|
|
24
|
-
<div class="log-entry network-entry ${log.status >= 400 ? 'error' : 'success'}" data-log-id="${log.id}">
|
|
25
|
-
${settings.showTimestamps ? `<span class="log-time">${log.timestamp.toLocaleTimeString()}</span>` : ''}
|
|
26
|
-
<span class="network-status status-${Math.floor(log.status / 100)}xx">${log.status || 'ERR'}</span>
|
|
27
|
-
<span class="network-method">${log.method}</span>
|
|
28
|
-
<span class="network-duration">${log.duration.toFixed(0)}ms</span>
|
|
29
|
-
<div class="network-url">${log.url}</div>
|
|
30
|
-
${log.error ? `<div class="network-error">${log.error}</div>` : ''}
|
|
31
|
-
</div>
|
|
32
|
-
`).join('');
|
|
33
|
-
}
|
|
34
|
-
function createEventsViewHTML(logs, settings) {
|
|
35
|
-
if (logs.length === 0) {
|
|
36
|
-
return '<div class="placeholder">No events have occurred yet.</div>';
|
|
37
|
-
}
|
|
38
|
-
return logs.map(log => `
|
|
39
|
-
<div class="log-entry event-entry event-${log.direction}">
|
|
40
|
-
${settings.showTimestamps ? `<span class="log-time">${log.timestamp.toLocaleTimeString()}</span>` : ''}
|
|
41
|
-
<span class="event-direction">${log.direction === 'emitted' ? '📤' : '📥'}</span>
|
|
42
|
-
<span class="event-name">${log.name}</span>
|
|
43
|
-
<div class="event-data">${log.data ? JSON.stringify(log.data, null, 2) : 'No data'}</div>
|
|
44
|
-
</div>
|
|
45
|
-
`).join('');
|
|
46
|
-
}
|
|
47
|
-
function createPerformanceViewHTML(logs, settings) {
|
|
48
|
-
return logs.map(log => `
|
|
49
|
-
<div class="log-entry performance-entry" data-log-id="${log.id}">
|
|
50
|
-
${settings.showTimestamps ? `<span class="log-time">${log.timestamp.toLocaleTimeString()}</span>` : ''}
|
|
51
|
-
<span class="performance-type type-${log.type}">${log.type.toUpperCase()}</span>
|
|
52
|
-
<span class="performance-duration">${log.duration.toFixed(2)}ms</span>
|
|
53
|
-
<div class="performance-name">${log.name}</div>
|
|
54
|
-
</div>
|
|
55
|
-
`).join('');
|
|
56
|
-
}
|
|
57
|
-
// ===================================================================
|
|
58
|
-
// Función Principal para Configurar la Reactividad del Panel
|
|
59
|
-
// ===================================================================
|
|
60
|
-
export function setupPanelRenderEffects(panelId, settingsSignal) {
|
|
61
|
-
const [settings] = settingsSignal;
|
|
62
|
-
const panelEl = document.getElementById(`debug-panel-${panelId}`);
|
|
63
|
-
if (!panelEl)
|
|
64
|
-
return;
|
|
65
|
-
// --- Efecto para la pestaña de Consola ---
|
|
66
|
-
createEffect(() => {
|
|
67
|
-
const currentLogs = consoleLogs();
|
|
68
|
-
const currentFilter = consoleFilter();
|
|
69
|
-
const currentSettings = settings();
|
|
70
|
-
const filteredLogs = currentLogs.filter(log => currentFilter.has(log.type));
|
|
71
|
-
const viewHTML = createConsoleViewHTML(filteredLogs, currentSettings);
|
|
72
|
-
const container = panelEl.querySelector(`#debug-panel-${panelId}-console .console-logs`);
|
|
73
|
-
if (container) {
|
|
74
|
-
container.innerHTML = viewHTML;
|
|
75
|
-
if (currentSettings.autoScroll) {
|
|
76
|
-
container.scrollTop = container.scrollHeight;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
// --- Efecto para la pestaña de Red ---
|
|
81
|
-
createEffect(() => {
|
|
82
|
-
const currentLogs = networkLogs();
|
|
83
|
-
const currentFilter = networkFilter();
|
|
84
|
-
const currentSettings = settings();
|
|
85
|
-
const filteredLogs = currentLogs.filter(log => log.url.toLowerCase().includes(currentFilter.toLowerCase()));
|
|
86
|
-
const viewHTML = createNetworkViewHTML(filteredLogs, currentSettings);
|
|
87
|
-
const container = panelEl.querySelector(`#debug-panel-${panelId}-network .network-logs`);
|
|
88
|
-
if (container) {
|
|
89
|
-
container.innerHTML = viewHTML;
|
|
90
|
-
if (currentSettings.autoScroll) {
|
|
91
|
-
container.scrollTop = container.scrollHeight;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
// --- Efecto para la pestaña de Eventos ---
|
|
96
|
-
createEffect(() => {
|
|
97
|
-
const currentLogs = eventLogs();
|
|
98
|
-
const currentSettings = settings();
|
|
99
|
-
const viewHTML = createEventsViewHTML(currentLogs, currentSettings);
|
|
100
|
-
const container = panelEl.querySelector(`#debug-panel-${panelId}-events .events-log`);
|
|
101
|
-
if (container) {
|
|
102
|
-
container.innerHTML = viewHTML;
|
|
103
|
-
if (currentSettings.autoScroll) {
|
|
104
|
-
container.scrollTop = container.scrollHeight;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
// --- Efecto para la pestaña de Performance ---
|
|
109
|
-
createEffect(() => {
|
|
110
|
-
const currentLogs = performanceLogs();
|
|
111
|
-
const currentSettings = settings();
|
|
112
|
-
const viewHTML = createPerformanceViewHTML(currentLogs, currentSettings);
|
|
113
|
-
const container = panelEl.querySelector(`#debug-panel-${panelId}-performance .performance-logs`);
|
|
114
|
-
if (container) {
|
|
115
|
-
container.innerHTML = viewHTML;
|
|
116
|
-
if (currentSettings.autoScroll) {
|
|
117
|
-
container.scrollTop = container.scrollHeight;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
// --- Efecto para las estadísticas de Performance (FPS, Memoria, etc.) ---
|
|
122
|
-
createEffect(() => {
|
|
123
|
-
// Depende de fpsCounter para re-renderizarse
|
|
124
|
-
const currentFps = fpsCounter().fps;
|
|
125
|
-
// Actualiza el DOM directamente para estas estadísticas de alta frecuencia
|
|
126
|
-
const memoryEl = panelEl.querySelector(`#memory-usage-${panelId}`);
|
|
127
|
-
if (memoryEl && 'memory' in performance) {
|
|
128
|
-
const memory = performance.memory;
|
|
129
|
-
memoryEl.textContent = (memory.usedJSHeapSize / 1024 / 1024).toFixed(1);
|
|
130
|
-
}
|
|
131
|
-
const domNodesEl = panelEl.querySelector(`#dom-nodes-${panelId}`);
|
|
132
|
-
if (domNodesEl) {
|
|
133
|
-
domNodesEl.textContent = document.querySelectorAll('*').length.toString();
|
|
134
|
-
}
|
|
135
|
-
const fpsEl = panelEl.querySelector(`#fps-${panelId}`);
|
|
136
|
-
if (fpsEl) {
|
|
137
|
-
fpsEl.textContent = currentFps.toString();
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
// --- Efecto para la pestaña de Estado (State) ---
|
|
141
|
-
// NOTA: Este efecto es más complejo porque depende del estado de toda tu aplicación.
|
|
142
|
-
// Deberás asegurarte de que `appState` y `uiState` sean reactivos si quieres que esta
|
|
143
|
-
// pestaña se actualice automáticamente.
|
|
144
|
-
createEffect(() => {
|
|
145
|
-
const container = panelEl.querySelector(`#debug-panel-${panelId}-state .state-tree`);
|
|
146
|
-
if (!container)
|
|
147
|
-
return;
|
|
148
|
-
// 1. Define qué hacer cuando un valor del estado cambie
|
|
149
|
-
const handleStateChange = (path, newValue) => {
|
|
150
|
-
console.log('State change requested:', { path, newValue });
|
|
151
|
-
// Aquí iría tu lógica para llamar a los setters de appState o uiState
|
|
152
|
-
const stateModule = path[0] === 'App' ? appState : uiState;
|
|
153
|
-
const setterName = `set${capitalize(path[1])}`;
|
|
154
|
-
if (typeof stateModule[setterName] === 'function') {
|
|
155
|
-
stateModule[setterName](newValue);
|
|
156
|
-
}
|
|
157
|
-
};
|
|
158
|
-
try {
|
|
159
|
-
// Este bloque se re-ejecutará si los signals dentro de appState/uiState cambian.
|
|
160
|
-
const fullState = {
|
|
161
|
-
App: {
|
|
162
|
-
...Object.fromEntries(Object
|
|
163
|
-
.entries(appState)
|
|
164
|
-
.filter(([, fn]) => typeof fn === 'function' &&
|
|
165
|
-
fn.length === 0 // solo getters sin argumentos
|
|
166
|
-
)
|
|
167
|
-
//@ts-ignore
|
|
168
|
-
.map(([key, get]) => [key, get()]))
|
|
169
|
-
},
|
|
170
|
-
UI: {
|
|
171
|
-
...Object.fromEntries(Object.entries(uiState).map(([key, signalTuple]) => [key, signalTuple[0]()]))
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
// 3. Llama a la función de renderizado desacoplada
|
|
175
|
-
renderStateTree(fullState, container, settings(), handleStateChange);
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
container.innerHTML = `<div class="error">Error rendering state: ${error}</div>`;
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/ui/debug-panel/services.ts"],"names":[],"mappings":"AAiBA,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC;AAiFD,wBAAgB,0BAA0B,IAAI,IAAI,CAqBjD;AAGD,wBAAgB,eAAe,IAAI,IAAI,CAqBtC"}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { originalMethods, generateId, setConsoleLogs, setNetworkLogs, setPerformanceLogs, setPerformanceObserver, setFpsCounter, consoleLogs, networkLogs, performanceLogs, performanceObserver, fpsCounter } from './state.js';
|
|
2
|
-
// import { DebugPanel } from './main.js';
|
|
3
|
-
export function setupInterceptors() {
|
|
4
|
-
interceptConsole();
|
|
5
|
-
interceptFetch();
|
|
6
|
-
interceptErrors();
|
|
7
|
-
}
|
|
8
|
-
function interceptConsole() {
|
|
9
|
-
['log', 'info', 'warn', 'error'].forEach(level => {
|
|
10
|
-
window.console[level] = (...args) => {
|
|
11
|
-
const log = {
|
|
12
|
-
id: generateId(),
|
|
13
|
-
type: level,
|
|
14
|
-
timestamp: new Date(),
|
|
15
|
-
message: args,
|
|
16
|
-
stack: level === 'error' ? new Error().stack : undefined
|
|
17
|
-
};
|
|
18
|
-
setConsoleLogs([...consoleLogs(), log]);
|
|
19
|
-
originalMethods.console[level](...args);
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
function interceptFetch() {
|
|
24
|
-
window.fetch = async (input, init) => {
|
|
25
|
-
const startTime = performance.now();
|
|
26
|
-
const url = input instanceof Request ? input.url : input.toString();
|
|
27
|
-
const method = init?.method || 'GET';
|
|
28
|
-
try {
|
|
29
|
-
const response = await originalMethods.fetch(input, init);
|
|
30
|
-
const duration = performance.now() - startTime;
|
|
31
|
-
const log = {
|
|
32
|
-
id: generateId(),
|
|
33
|
-
url,
|
|
34
|
-
method,
|
|
35
|
-
status: response.status,
|
|
36
|
-
timestamp: new Date(),
|
|
37
|
-
duration,
|
|
38
|
-
size: getResponseSize(response)
|
|
39
|
-
};
|
|
40
|
-
setNetworkLogs([...networkLogs(), log]);
|
|
41
|
-
return response;
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
const duration = performance.now() - startTime;
|
|
45
|
-
const log = {
|
|
46
|
-
id: generateId(),
|
|
47
|
-
url,
|
|
48
|
-
method,
|
|
49
|
-
status: 0,
|
|
50
|
-
timestamp: new Date(),
|
|
51
|
-
duration,
|
|
52
|
-
error: error instanceof Error ? error.message : 'Unknown error'
|
|
53
|
-
};
|
|
54
|
-
setNetworkLogs([...networkLogs(), log]);
|
|
55
|
-
throw error;
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
function interceptErrors() {
|
|
60
|
-
window.addEventListener('error', (event) => {
|
|
61
|
-
const log = {
|
|
62
|
-
id: generateId(),
|
|
63
|
-
type: 'error',
|
|
64
|
-
timestamp: new Date(),
|
|
65
|
-
message: [`${event.filename}:${event.lineno}:${event.colno}`, event.message],
|
|
66
|
-
stack: event.error?.stack
|
|
67
|
-
};
|
|
68
|
-
setConsoleLogs([...consoleLogs(), log]);
|
|
69
|
-
});
|
|
70
|
-
window.addEventListener('unhandledrejection', (event) => {
|
|
71
|
-
const log = {
|
|
72
|
-
id: generateId(),
|
|
73
|
-
type: 'error',
|
|
74
|
-
timestamp: new Date(),
|
|
75
|
-
message: ['Unhandled Promise Rejection:', event.reason],
|
|
76
|
-
stack: event.reason?.stack
|
|
77
|
-
};
|
|
78
|
-
setConsoleLogs([...consoleLogs(), log]);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
export function startPerformanceMonitoring() {
|
|
82
|
-
if ('PerformanceObserver' in window) {
|
|
83
|
-
setPerformanceObserver(new PerformanceObserver((list) => {
|
|
84
|
-
list.getEntries().forEach((entry) => {
|
|
85
|
-
const log = {
|
|
86
|
-
id: generateId(),
|
|
87
|
-
name: entry.name,
|
|
88
|
-
duration: entry.duration,
|
|
89
|
-
timestamp: new Date(entry.startTime),
|
|
90
|
-
type: getPerformanceType(entry.entryType)
|
|
91
|
-
};
|
|
92
|
-
setPerformanceLogs([...performanceLogs(), log]);
|
|
93
|
-
});
|
|
94
|
-
}));
|
|
95
|
-
try {
|
|
96
|
-
performanceObserver()?.observe({ entryTypes: ['navigation', 'resource', 'measure', 'mark'] });
|
|
97
|
-
}
|
|
98
|
-
catch (e) {
|
|
99
|
-
console.warn('Performance monitoring not fully supported');
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// services.ts (startFPSCounter CORREGIDO)
|
|
104
|
-
export function startFPSCounter() {
|
|
105
|
-
const updateFPS = () => {
|
|
106
|
-
const now = performance.now();
|
|
107
|
-
const previousCounter = fpsCounter(); // Lee el estado una vez
|
|
108
|
-
// Crea un objeto nuevo con el frame incrementado
|
|
109
|
-
const newCounter = { ...previousCounter, frames: previousCounter.frames + 1 };
|
|
110
|
-
if (now >= previousCounter.lastTime + 1000) {
|
|
111
|
-
// Si es tiempo de actualizar el FPS, calcula y actualiza el resto de las propiedades
|
|
112
|
-
newCounter.fps = Math.round((newCounter.frames * 1000) / (now - previousCounter.lastTime));
|
|
113
|
-
newCounter.frames = 0;
|
|
114
|
-
newCounter.lastTime = now;
|
|
115
|
-
}
|
|
116
|
-
// Llama al setter con el nuevo objeto de estado
|
|
117
|
-
setFpsCounter(newCounter);
|
|
118
|
-
requestAnimationFrame(updateFPS);
|
|
119
|
-
};
|
|
120
|
-
requestAnimationFrame(updateFPS);
|
|
121
|
-
}
|
|
122
|
-
function getResponseSize(response) {
|
|
123
|
-
const contentLength = response.headers.get('content-length');
|
|
124
|
-
return contentLength ? parseInt(contentLength) : undefined;
|
|
125
|
-
}
|
|
126
|
-
function getPerformanceType(entryType) {
|
|
127
|
-
switch (entryType) {
|
|
128
|
-
case 'navigation': return 'navigation';
|
|
129
|
-
case 'resource': return 'resource';
|
|
130
|
-
case 'measure': return 'measure';
|
|
131
|
-
case 'mark': return 'mark';
|
|
132
|
-
default: return 'measure';
|
|
133
|
-
}
|
|
134
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/ui/debug-panel/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,gBAAgB,EAAE,aAkB9B,CAAC;AAEF,wBAAgB,YAAY,IAAI,aAAa,CAW5C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE1D"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
export const DEFAULT_SETTINGS = {
|
|
2
|
-
maxLogs: 1000,
|
|
3
|
-
autoScroll: true,
|
|
4
|
-
showTimestamps: true,
|
|
5
|
-
position: 'floating',
|
|
6
|
-
isMinimized: false,
|
|
7
|
-
layout: 'single',
|
|
8
|
-
panels: [{
|
|
9
|
-
id: 'main',
|
|
10
|
-
activeTab: 'state',
|
|
11
|
-
position: { x: 50, y: 50 },
|
|
12
|
-
size: { width: 800, height: 600 },
|
|
13
|
-
isMinimized: false,
|
|
14
|
-
zIndex: 1000
|
|
15
|
-
}],
|
|
16
|
-
enableStateEditing: true,
|
|
17
|
-
autoSaveState: false,
|
|
18
|
-
theme: 'dark'
|
|
19
|
-
};
|
|
20
|
-
export function loadSettings() {
|
|
21
|
-
const saved = localStorage.getItem('debugPanel:settings');
|
|
22
|
-
if (saved) {
|
|
23
|
-
try {
|
|
24
|
-
const parsed = JSON.parse(saved);
|
|
25
|
-
return { ...DEFAULT_SETTINGS, ...parsed };
|
|
26
|
-
}
|
|
27
|
-
catch (e) {
|
|
28
|
-
console.warn('Failed to load debug panel settings');
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return DEFAULT_SETTINGS;
|
|
32
|
-
}
|
|
33
|
-
export function saveSettings(settings) {
|
|
34
|
-
localStorage.setItem('debugPanel:settings', JSON.stringify(settings));
|
|
35
|
-
}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { ConsoleLog, NetworkLog, PerformanceLog, EventLog, LogLevel, StateEditContext } from './types.js';
|
|
2
|
-
export declare const consoleLogs: () => ConsoleLog[], setConsoleLogs: import("../../core/signals.js").Setter<ConsoleLog[]>;
|
|
3
|
-
export declare const networkLogs: () => NetworkLog[], setNetworkLogs: import("../../core/signals.js").Setter<NetworkLog[]>;
|
|
4
|
-
export declare const performanceLogs: () => PerformanceLog[], setPerformanceLogs: import("../../core/signals.js").Setter<PerformanceLog[]>;
|
|
5
|
-
export declare const eventLogs: () => EventLog[], setEventLogs: import("../../core/signals.js").Setter<EventLog[]>;
|
|
6
|
-
export declare const consoleFilter: () => Set<LogLevel>, setConsoleFilter: import("../../core/signals.js").Setter<Set<LogLevel>>;
|
|
7
|
-
export declare const networkFilter: () => string, setNetworkFilter: import("../../core/signals.js").Setter<string>;
|
|
8
|
-
export declare const performanceFilter: () => string, setPerformanceFilter: import("../../core/signals.js").Setter<string>;
|
|
9
|
-
export declare const eventsFilter: () => string, setEventsFilter: import("../../core/signals.js").Setter<string>;
|
|
10
|
-
export declare const dragState: () => {
|
|
11
|
-
isDragging: boolean;
|
|
12
|
-
activePanel: string | undefined;
|
|
13
|
-
startPos: {
|
|
14
|
-
x: number;
|
|
15
|
-
y: number;
|
|
16
|
-
};
|
|
17
|
-
startPanelPos: {
|
|
18
|
-
x: number;
|
|
19
|
-
y: number;
|
|
20
|
-
};
|
|
21
|
-
}, setDragState: import("../../core/signals.js").Setter<{
|
|
22
|
-
isDragging: boolean;
|
|
23
|
-
activePanel: string | undefined;
|
|
24
|
-
startPos: {
|
|
25
|
-
x: number;
|
|
26
|
-
y: number;
|
|
27
|
-
};
|
|
28
|
-
startPanelPos: {
|
|
29
|
-
x: number;
|
|
30
|
-
y: number;
|
|
31
|
-
};
|
|
32
|
-
}>;
|
|
33
|
-
export declare const resizeState: () => {
|
|
34
|
-
isResizing: boolean;
|
|
35
|
-
activePanel: string | undefined;
|
|
36
|
-
startPos: {
|
|
37
|
-
x: number;
|
|
38
|
-
y: number;
|
|
39
|
-
};
|
|
40
|
-
startSize: {
|
|
41
|
-
width: number;
|
|
42
|
-
height: number;
|
|
43
|
-
};
|
|
44
|
-
startPanelPos: {
|
|
45
|
-
x: number;
|
|
46
|
-
y: number;
|
|
47
|
-
};
|
|
48
|
-
handle: string | undefined;
|
|
49
|
-
}, setResizeState: import("../../core/signals.js").Setter<{
|
|
50
|
-
isResizing: boolean;
|
|
51
|
-
activePanel: string | undefined;
|
|
52
|
-
startPos: {
|
|
53
|
-
x: number;
|
|
54
|
-
y: number;
|
|
55
|
-
};
|
|
56
|
-
startSize: {
|
|
57
|
-
width: number;
|
|
58
|
-
height: number;
|
|
59
|
-
};
|
|
60
|
-
startPanelPos: {
|
|
61
|
-
x: number;
|
|
62
|
-
y: number;
|
|
63
|
-
};
|
|
64
|
-
handle: string | undefined;
|
|
65
|
-
}>;
|
|
66
|
-
export declare const highestZIndex: () => number, setHighestZIndex: import("../../core/signals.js").Setter<number>;
|
|
67
|
-
export declare const stateEditContext: () => StateEditContext | null, setStateEditContext: import("../../core/signals.js").Setter<StateEditContext | null>;
|
|
68
|
-
export declare const fpsCounter: () => {
|
|
69
|
-
frames: number;
|
|
70
|
-
lastTime: number;
|
|
71
|
-
fps: number;
|
|
72
|
-
}, setFpsCounter: import("../../core/signals.js").Setter<{
|
|
73
|
-
frames: number;
|
|
74
|
-
lastTime: number;
|
|
75
|
-
fps: number;
|
|
76
|
-
}>;
|
|
77
|
-
export declare const performanceObserver: () => PerformanceObserver | undefined, setPerformanceObserver: import("../../core/signals.js").Setter<PerformanceObserver | undefined>;
|
|
78
|
-
export declare const originalMethods: {
|
|
79
|
-
console: {
|
|
80
|
-
assert(condition?: boolean, ...data: any[]): void;
|
|
81
|
-
assert(value: any, message?: string, ...optionalParams: any[]): void;
|
|
82
|
-
clear(): void;
|
|
83
|
-
clear(): void;
|
|
84
|
-
count(label?: string): void;
|
|
85
|
-
count(label?: string): void;
|
|
86
|
-
countReset(label?: string): void;
|
|
87
|
-
countReset(label?: string): void;
|
|
88
|
-
debug(...data: any[]): void;
|
|
89
|
-
debug(message?: any, ...optionalParams: any[]): void;
|
|
90
|
-
dir(item?: any, options?: any): void;
|
|
91
|
-
dir(obj: any, options?: import("util").InspectOptions): void;
|
|
92
|
-
dirxml(...data: any[]): void;
|
|
93
|
-
dirxml(...data: any[]): void;
|
|
94
|
-
error(...data: any[]): void;
|
|
95
|
-
error(message?: any, ...optionalParams: any[]): void;
|
|
96
|
-
group(...data: any[]): void;
|
|
97
|
-
group(...label: any[]): void;
|
|
98
|
-
groupCollapsed(...data: any[]): void;
|
|
99
|
-
groupCollapsed(...label: any[]): void;
|
|
100
|
-
groupEnd(): void;
|
|
101
|
-
groupEnd(): void;
|
|
102
|
-
info(...data: any[]): void;
|
|
103
|
-
info(message?: any, ...optionalParams: any[]): void;
|
|
104
|
-
log(...data: any[]): void;
|
|
105
|
-
log(message?: any, ...optionalParams: any[]): void;
|
|
106
|
-
table(tabularData?: any, properties?: string[]): void;
|
|
107
|
-
table(tabularData: any, properties?: readonly string[]): void;
|
|
108
|
-
time(label?: string): void;
|
|
109
|
-
time(label?: string): void;
|
|
110
|
-
timeEnd(label?: string): void;
|
|
111
|
-
timeEnd(label?: string): void;
|
|
112
|
-
timeLog(label?: string, ...data: any[]): void;
|
|
113
|
-
timeLog(label?: string, ...data: any[]): void;
|
|
114
|
-
timeStamp(label?: string): void;
|
|
115
|
-
timeStamp(label?: string): void;
|
|
116
|
-
trace(...data: any[]): void;
|
|
117
|
-
trace(message?: any, ...optionalParams: any[]): void;
|
|
118
|
-
warn(...data: any[]): void;
|
|
119
|
-
warn(message?: any, ...optionalParams: any[]): void;
|
|
120
|
-
Console: console.ConsoleConstructor;
|
|
121
|
-
profile(label?: string): void;
|
|
122
|
-
profileEnd(label?: string): void;
|
|
123
|
-
};
|
|
124
|
-
fetch: ((input: RequestInfo | URL, init?: RequestInit) => Promise<Response>) & typeof fetch;
|
|
125
|
-
};
|
|
126
|
-
export declare function generateId(): string;
|
|
127
|
-
export declare function capitalize(str: string): string;
|
|
128
|
-
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/ui/debug-panel/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG1G,eAAO,MAAO,WAAW,sBAAE,cAAc,sDAAkC,CAAC;AAC5E,eAAO,MAAO,WAAW,sBAAE,cAAc,sDAAkC,CAAC;AAC5E,eAAO,MAAO,eAAe,0BAAE,kBAAkB,0DAAsC,CAAC;AACxF,eAAO,MAAO,SAAS,oBAAE,YAAY,oDAAgC,CAAC;AAGtE,eAAO,MAAO,aAAa,uBAAE,gBAAgB,uDAAqE,CAAC;AACnH,eAAO,MAAO,aAAa,gBAAE,gBAAgB,gDAAoB,CAAC;AAClE,eAAO,MAAO,iBAAiB,gBAAE,oBAAoB,gDAAoB,CAAC;AAC1E,eAAO,MAAO,YAAY,gBAAE,eAAe,gDAAoB,CAAC;AAGhE,eAAO,MAAO,SAAS;;iBAEO,MAAM,GAAG,SAAS;;;;;;;;;GAFvB,YAAY;;iBAEP,MAAM,GAAG,SAAS;;;;;;;;;EAG9C,CAAC;AAEH,eAAO,MAAO,WAAW;;iBAEK,MAAM,GAAG,SAAS;;;;;;;;;;;;;YAIvB,MAAM,GAAG,SAAS;GANhB,cAAc;;iBAEX,MAAM,GAAG,SAAS;;;;;;;;;;;;;YAIvB,MAAM,GAAG,SAAS;EACzC,CAAC;AAEH,eAAO,MAAO,aAAa,gBAAE,gBAAgB,gDAAsB,CAAC;AACpE,eAAO,MAAO,gBAAgB,iCAAE,mBAAmB,iEAA+C,CAAC;AACnG,eAAO,MAAO,UAAU;;;;GAAE,aAAa;;;;EAAoD,CAAC;AAC5F,eAAO,MAAO,mBAAmB,yCAAE,sBAAsB,yEAA4D,CAAC;AAItH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAGF,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { createSignal } from '../../core/signals.js';
|
|
2
|
-
// Logs
|
|
3
|
-
export const [consoleLogs, setConsoleLogs] = createSignal([]);
|
|
4
|
-
export const [networkLogs, setNetworkLogs] = createSignal([]);
|
|
5
|
-
export const [performanceLogs, setPerformanceLogs] = createSignal([]);
|
|
6
|
-
export const [eventLogs, setEventLogs] = createSignal([]);
|
|
7
|
-
// Filters
|
|
8
|
-
export const [consoleFilter, setConsoleFilter] = createSignal(new Set(['log', 'info', 'warn', 'error']));
|
|
9
|
-
export const [networkFilter, setNetworkFilter] = createSignal('');
|
|
10
|
-
export const [performanceFilter, setPerformanceFilter] = createSignal('');
|
|
11
|
-
export const [eventsFilter, setEventsFilter] = createSignal('');
|
|
12
|
-
// UI State
|
|
13
|
-
export const [dragState, setDragState] = createSignal({
|
|
14
|
-
isDragging: false,
|
|
15
|
-
activePanel: undefined,
|
|
16
|
-
startPos: { x: 0, y: 0 },
|
|
17
|
-
startPanelPos: { x: 0, y: 0 }
|
|
18
|
-
});
|
|
19
|
-
export const [resizeState, setResizeState] = createSignal({
|
|
20
|
-
isResizing: false,
|
|
21
|
-
activePanel: undefined,
|
|
22
|
-
startPos: { x: 0, y: 0 },
|
|
23
|
-
startSize: { width: 0, height: 0 },
|
|
24
|
-
startPanelPos: { x: 0, y: 0 },
|
|
25
|
-
handle: undefined
|
|
26
|
-
});
|
|
27
|
-
export const [highestZIndex, setHighestZIndex] = createSignal(1000);
|
|
28
|
-
export const [stateEditContext, setStateEditContext] = createSignal(null);
|
|
29
|
-
export const [fpsCounter, setFpsCounter] = createSignal({ frames: 0, lastTime: 0, fps: 0 });
|
|
30
|
-
export const [performanceObserver, setPerformanceObserver] = createSignal(undefined);
|
|
31
|
-
// Static original methods
|
|
32
|
-
export const originalMethods = {
|
|
33
|
-
console: { ...window.console },
|
|
34
|
-
fetch: window.fetch.bind(window)
|
|
35
|
-
};
|
|
36
|
-
// Helper functions
|
|
37
|
-
export function generateId() {
|
|
38
|
-
return `log_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
39
|
-
}
|
|
40
|
-
export function capitalize(str) {
|
|
41
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
42
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { DebugSettings } from './types.js';
|
|
2
|
-
export type StateChangeCallback = (path: string[], newValue: any) => void;
|
|
3
|
-
/**
|
|
4
|
-
* Función principal y recursiva que construye el árbol de estado en el DOM.
|
|
5
|
-
* Ya no depende de `DebugPanel`, recibe las dependencias que necesita.
|
|
6
|
-
*/
|
|
7
|
-
export declare function renderStateTree(data: any, container: HTMLElement, settings: DebugSettings, onStateChange: StateChangeCallback, path?: string[]): void;
|
|
8
|
-
export declare function cancelEditing(): void;
|
|
9
|
-
//# sourceMappingURL=stateEditor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stateEditor.d.ts","sourceRoot":"","sources":["../../../src/ui/debug-panel/stateEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAK3C,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;AAM1E;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,mBAAmB,EAClC,IAAI,GAAE,MAAM,EAAO,GACpB,IAAI,CA0DN;AAuGD,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
|