@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,37 +0,0 @@
|
|
|
1
|
-
// /src/core/ShortcutService.ts
|
|
2
|
-
export class ShortcutService {
|
|
3
|
-
api;
|
|
4
|
-
shortcuts = new Map();
|
|
5
|
-
init(api) {
|
|
6
|
-
this.api = api;
|
|
7
|
-
window.addEventListener('keydown', this.handleKeyDown.bind(this));
|
|
8
|
-
}
|
|
9
|
-
register(shortcut) {
|
|
10
|
-
// La clave será una combinación normalizada, ej: "control_k"
|
|
11
|
-
const key = shortcut.keys.toLowerCase().split('+').sort().join('_');
|
|
12
|
-
this.shortcuts.set(key, shortcut);
|
|
13
|
-
}
|
|
14
|
-
handleKeyDown(e) {
|
|
15
|
-
const keyParts = [];
|
|
16
|
-
if (e.ctrlKey)
|
|
17
|
-
keyParts.push('control');
|
|
18
|
-
if (e.metaKey)
|
|
19
|
-
keyParts.push('meta'); // Cmd en Mac
|
|
20
|
-
if (e.shiftKey)
|
|
21
|
-
keyParts.push('shift');
|
|
22
|
-
if (e.altKey)
|
|
23
|
-
keyParts.push('alt');
|
|
24
|
-
// Evitamos que modificadores solos disparen algo
|
|
25
|
-
if (!['Control', 'Meta', 'Shift', 'Alt'].includes(e.key)) {
|
|
26
|
-
keyParts.push(e.key.toLowerCase());
|
|
27
|
-
}
|
|
28
|
-
if (keyParts.length > 1) {
|
|
29
|
-
const key = keyParts.sort().join('_');
|
|
30
|
-
const shortcut = this.shortcuts.get(key);
|
|
31
|
-
if (shortcut) {
|
|
32
|
-
e.preventDefault();
|
|
33
|
-
this.api.commands.execute(shortcut.commandId, shortcut.commandArg);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { LocalProject } from "../lib/local-db.js";
|
|
2
|
-
export declare class StorageService {
|
|
3
|
-
getCollection<T>(entityType: string): Promise<T[]>;
|
|
4
|
-
saveEntity<T extends {
|
|
5
|
-
id: string | number;
|
|
6
|
-
}>(entityType: string, entity: T): Promise<void>;
|
|
7
|
-
deleteEntity(entityType: string, entityId: string | number): Promise<void>;
|
|
8
|
-
getValue<T>(key: string): Promise<T | undefined>;
|
|
9
|
-
saveValue<T>(key: string, value: T): Promise<void>;
|
|
10
|
-
/**
|
|
11
|
-
* Guarda un snapshot completo del estado de la aplicación para una fecha específica.
|
|
12
|
-
* La fecha se guarda en formato 'YYYY-MM-DD'.
|
|
13
|
-
* @param date La fecha del snapshot.
|
|
14
|
-
* @param state El objeto de estado completo a guardar.
|
|
15
|
-
*/
|
|
16
|
-
saveDailySnapshot(date: Date, state: any): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Recupera el snapshot de un día específico.
|
|
19
|
-
* @param date La fecha del snapshot a recuperar.
|
|
20
|
-
* @returns El estado guardado para esa fecha, o undefined si no existe.
|
|
21
|
-
*/
|
|
22
|
-
getDailySnapshot(date: Date): Promise<any | undefined>;
|
|
23
|
-
/**
|
|
24
|
-
* Obtiene una lista de todas las fechas para las que existe un snapshot.
|
|
25
|
-
* @returns Un array de strings con las fechas en formato 'YYYY-MM-DD'.
|
|
26
|
-
*/
|
|
27
|
-
getAvailableSnapshotDates(): Promise<string[]>;
|
|
28
|
-
saveProject(id: string, name: string, flowData: any): Promise<void>;
|
|
29
|
-
getProject(id: string): Promise<LocalProject | undefined>;
|
|
30
|
-
getAllProjectsMetadata(): Promise<LocalProject[]>;
|
|
31
|
-
deleteProject(id: string): Promise<void>;
|
|
32
|
-
setSetting(key: string, value: any): Promise<void>;
|
|
33
|
-
getSetting(key: string): Promise<any>;
|
|
34
|
-
}
|
|
35
|
-
export declare const storageService: StorageService;
|
|
36
|
-
//# sourceMappingURL=StorageService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StorageService.d.ts","sourceRoot":"","sources":["../../src/core/StorageService.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKjF,qBAAa,cAAc;IAGjB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKlD,UAAU,CAAC,CAAC,SAAS;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3F,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1E,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKhD,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxD;;;;;MAKE;IACI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IAM5D;;;OAGG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM9C,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAWnD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIzD,sBAAsB;IAKtB,aAAa,CAAC,EAAE,EAAE,MAAM;IAMxB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAIlC,UAAU,CAAC,GAAG,EAAE,MAAM;CAI/B;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
// src/core/StorageService.ts
|
|
2
|
-
import { db } from "../lib/local-db.js";
|
|
3
|
-
export class StorageService {
|
|
4
|
-
// --- Métodos para Colecciones de Entidades (Tareas, Metas, etc.) ---
|
|
5
|
-
async getCollection(entityType) {
|
|
6
|
-
const results = await db.moduleData.where({ entityType }).toArray();
|
|
7
|
-
return results.map((item) => item.data);
|
|
8
|
-
}
|
|
9
|
-
async saveEntity(entityType, entity) {
|
|
10
|
-
const record = {
|
|
11
|
-
id: `${entityType}-${entity.id}`,
|
|
12
|
-
entityId: entity.id,
|
|
13
|
-
moduleId: entityType + 's',
|
|
14
|
-
entityType: entityType,
|
|
15
|
-
data: entity
|
|
16
|
-
};
|
|
17
|
-
await db.moduleData.put(record);
|
|
18
|
-
}
|
|
19
|
-
async deleteEntity(entityType, entityId) {
|
|
20
|
-
await db.moduleData.delete(`${entityType}-${entityId}`);
|
|
21
|
-
}
|
|
22
|
-
// --- Métodos para Objetos de Estado Únicos (Journal, Settings, etc.) ---
|
|
23
|
-
async getValue(key) {
|
|
24
|
-
const result = await db.moduleData.get(`value-${key}`);
|
|
25
|
-
return result ? result.data : undefined;
|
|
26
|
-
}
|
|
27
|
-
async saveValue(key, value) {
|
|
28
|
-
const record = {
|
|
29
|
-
id: `value-${key}`,
|
|
30
|
-
entityId: key,
|
|
31
|
-
moduleId: 'values',
|
|
32
|
-
entityType: 'value',
|
|
33
|
-
data: value
|
|
34
|
-
};
|
|
35
|
-
await db.moduleData.put(record);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Guarda un snapshot completo del estado de la aplicación para una fecha específica.
|
|
39
|
-
* La fecha se guarda en formato 'YYYY-MM-DD'.
|
|
40
|
-
* @param date La fecha del snapshot.
|
|
41
|
-
* @param state El objeto de estado completo a guardar.
|
|
42
|
-
*/
|
|
43
|
-
async saveDailySnapshot(date, state) {
|
|
44
|
-
const dateKey = date.toISOString().split('T')[0]; // 'YYYY-MM-DD'
|
|
45
|
-
const snapshotRecord = {
|
|
46
|
-
date: dateKey,
|
|
47
|
-
data: state,
|
|
48
|
-
timestamp: new Date()
|
|
49
|
-
};
|
|
50
|
-
// `put` sobreescribirá si ya existe un snapshot para ese día.
|
|
51
|
-
await db.dailySnapshots.put(snapshotRecord);
|
|
52
|
-
console.log(`📸 Snapshot guardado para la fecha: ${dateKey}`);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Recupera el snapshot de un día específico.
|
|
56
|
-
* @param date La fecha del snapshot a recuperar.
|
|
57
|
-
* @returns El estado guardado para esa fecha, o undefined si no existe.
|
|
58
|
-
*/
|
|
59
|
-
async getDailySnapshot(date) {
|
|
60
|
-
const dateKey = date.toISOString().split('T')[0];
|
|
61
|
-
const result = await db.dailySnapshots.get(dateKey);
|
|
62
|
-
return result ? result.data : undefined;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Obtiene una lista de todas las fechas para las que existe un snapshot.
|
|
66
|
-
* @returns Un array de strings con las fechas en formato 'YYYY-MM-DD'.
|
|
67
|
-
*/
|
|
68
|
-
async getAvailableSnapshotDates() {
|
|
69
|
-
return await db.dailySnapshots.toCollection().keys();
|
|
70
|
-
}
|
|
71
|
-
// --- PROYECTOS (Manejo de datos pesados) ---
|
|
72
|
-
async saveProject(id, name, flowData) {
|
|
73
|
-
// IndexedDB es asíncrono, no bloquea la UI
|
|
74
|
-
await db.projects.put({
|
|
75
|
-
id,
|
|
76
|
-
name,
|
|
77
|
-
data: flowData, // Aquí puedes guardar MBs de nodos sin problema
|
|
78
|
-
updatedAt: Date.now()
|
|
79
|
-
});
|
|
80
|
-
console.log(`💾 Proyecto ${id} guardado en IndexedDB`);
|
|
81
|
-
}
|
|
82
|
-
async getProject(id) {
|
|
83
|
-
return await db.projects.get(id);
|
|
84
|
-
}
|
|
85
|
-
async getAllProjectsMetadata() {
|
|
86
|
-
// Solo traemos ID y Nombre para la lista del sidebar (rápido)
|
|
87
|
-
return await db.projects.toArray();
|
|
88
|
-
}
|
|
89
|
-
async deleteProject(id) {
|
|
90
|
-
await db.projects.delete(id);
|
|
91
|
-
}
|
|
92
|
-
// --- CONFIGURACIÓN (Settings ligeros) ---
|
|
93
|
-
async setSetting(key, value) {
|
|
94
|
-
await db.settings.put({ key, value });
|
|
95
|
-
}
|
|
96
|
-
async getSetting(key) {
|
|
97
|
-
const item = await db.settings.get(key);
|
|
98
|
-
return item?.value;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
export const storageService = new StorageService();
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { createSignal } from './signals.js';
|
|
2
|
-
export type Theme = 'dark' | 'light';
|
|
3
|
-
export declare class ThemeService {
|
|
4
|
-
activeTheme: ReturnType<typeof createSignal<Theme>>;
|
|
5
|
-
constructor();
|
|
6
|
-
setTheme(themeName: Theme): void;
|
|
7
|
-
private applyTheme;
|
|
8
|
-
updateToken(tokenName: string, value: string): void;
|
|
9
|
-
applyPalette(palette: Record<string, string>): void;
|
|
10
|
-
}
|
|
11
|
-
export declare const themeService: ThemeService;
|
|
12
|
-
//# sourceMappingURL=ThemeService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeService.d.ts","sourceRoot":"","sources":["../../src/core/ThemeService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAoBrC,qBAAa,YAAY;IACd,WAAW,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;;IAQpD,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,IAAI;IAMvC,OAAO,CAAC,UAAU;IAQX,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAI5C,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAkBtD;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// src/core/ThemeService.ts
|
|
2
|
-
import { createSignal } from './signals.js';
|
|
3
|
-
// Valores por defecto para los temas
|
|
4
|
-
const themes = {
|
|
5
|
-
dark: {
|
|
6
|
-
'--bg-main': '#070720',
|
|
7
|
-
'--bg-content': '#0F0F23',
|
|
8
|
-
'--bg-surface': 'rgba(255, 255, 255, 0.03)',
|
|
9
|
-
'--text-primary': '#FFFFFF',
|
|
10
|
-
'--text-secondary': '#9CA3AF',
|
|
11
|
-
},
|
|
12
|
-
light: {
|
|
13
|
-
'--bg-main': '#f8f9fa',
|
|
14
|
-
'--bg-content': '#FFFFFF',
|
|
15
|
-
'--bg-surface': 'rgba(0, 0, 0, 0.03)',
|
|
16
|
-
'--text-primary': '#212529',
|
|
17
|
-
'--text-secondary': '#495057',
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
export class ThemeService {
|
|
21
|
-
activeTheme;
|
|
22
|
-
constructor() {
|
|
23
|
-
const savedTheme = localStorage.getItem('decido-theme') || 'dark';
|
|
24
|
-
this.activeTheme = createSignal(savedTheme);
|
|
25
|
-
this.applyTheme(savedTheme);
|
|
26
|
-
}
|
|
27
|
-
setTheme(themeName) {
|
|
28
|
-
this.activeTheme[1](themeName); // Actualiza la señal
|
|
29
|
-
this.applyTheme(themeName);
|
|
30
|
-
localStorage.setItem('decido-theme', themeName);
|
|
31
|
-
}
|
|
32
|
-
applyTheme(themeName) {
|
|
33
|
-
const theme = themes[themeName];
|
|
34
|
-
for (const [key, value] of Object.entries(theme)) {
|
|
35
|
-
document.documentElement.style.setProperty(key, value);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Permite actualizar un token individual en tiempo real para el panel
|
|
39
|
-
updateToken(tokenName, value) {
|
|
40
|
-
document.documentElement.style.setProperty(tokenName, value);
|
|
41
|
-
}
|
|
42
|
-
applyPalette(palette) {
|
|
43
|
-
const tokenMap = {
|
|
44
|
-
primary: '--color-primary',
|
|
45
|
-
secondary: '--color-secondary',
|
|
46
|
-
accent: '--color-accent',
|
|
47
|
-
bgMain: '--bg-main',
|
|
48
|
-
bgContent: '--bg-content',
|
|
49
|
-
textPrimary: '--text-primary',
|
|
50
|
-
textSecondary: '--text-secondary',
|
|
51
|
-
};
|
|
52
|
-
for (const [key, value] of Object.entries(palette)) {
|
|
53
|
-
const tokenName = tokenMap[key];
|
|
54
|
-
if (tokenName) {
|
|
55
|
-
this.updateToken(tokenName, value);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
export const themeService = new ThemeService();
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { IPlatformAPI } from './api';
|
|
2
|
-
/**
|
|
3
|
-
* Servicio Mock de WebSocket. Desactivado para la transición a Micro-IDE.
|
|
4
|
-
*/
|
|
5
|
-
export declare class WebSocketService {
|
|
6
|
-
private api;
|
|
7
|
-
private status;
|
|
8
|
-
/**
|
|
9
|
-
* @param api La instancia de la API de la plataforma.
|
|
10
|
-
*/
|
|
11
|
-
init(api: IPlatformAPI): void;
|
|
12
|
-
connect(): void;
|
|
13
|
-
disconnect(): void;
|
|
14
|
-
emit(eventName: string, payload: any): void;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=WebSocketService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketService.d.ts","sourceRoot":"","sources":["../../src/core/WebSocketService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAKrC;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,MAAM,CAAoC;IAElD;;OAEG;IACI,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAK7B,OAAO,IAAI,IAAI;IAIf,UAAU,IAAI,IAAI;IAElB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;CAGrD"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// File: packages/core/src/core/WebSocketService.ts
|
|
2
|
-
/**
|
|
3
|
-
* Servicio Mock de WebSocket. Desactivado para la transición a Micro-IDE.
|
|
4
|
-
*/
|
|
5
|
-
export class WebSocketService {
|
|
6
|
-
api;
|
|
7
|
-
status = 'disconnected';
|
|
8
|
-
/**
|
|
9
|
-
* @param api La instancia de la API de la plataforma.
|
|
10
|
-
*/
|
|
11
|
-
init(api) {
|
|
12
|
-
this.api = api;
|
|
13
|
-
console.log("🔌 WebSocketService (Mock) inicializado en modo Offline.");
|
|
14
|
-
}
|
|
15
|
-
connect() {
|
|
16
|
-
console.log("[WebSocket] Ignorado: Conectando local (Micro-IDE).");
|
|
17
|
-
}
|
|
18
|
-
disconnect() { }
|
|
19
|
-
emit(eventName, payload) {
|
|
20
|
-
console.log(`[WebSocket Mock] Envío evadido: ${eventName}`, payload);
|
|
21
|
-
}
|
|
22
|
-
}
|
package/dist/core/api.d.ts
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { CommandService } from "./CommandService.js";
|
|
2
|
-
import { EventBus } from "./EventBus.js";
|
|
3
|
-
import { ILayoutService } from "../platform";
|
|
4
|
-
import { ModalService } from "./ModalService.js";
|
|
5
|
-
import { NotificationService } from "./NotificationService.js";
|
|
6
|
-
import * as state from '../appState.js';
|
|
7
|
-
import { GamificationService } from "./GamificationService.js";
|
|
8
|
-
import { CalendarService } from "./CalendarService.js";
|
|
9
|
-
import { ShortcutService } from "./ShortcutService.js";
|
|
10
|
-
import { ModuleManager } from "./app/ModuleManager.js";
|
|
11
|
-
import { ThemeService } from "./ThemeService.js";
|
|
12
|
-
import { AuthService } from './AuthService.js';
|
|
13
|
-
import { RouterService } from "./RouterService.js";
|
|
14
|
-
import { StorageService } from "./StorageService.js";
|
|
15
|
-
import { SyncService } from "../lib/sync-service.js";
|
|
16
|
-
import { ServiceRegistry } from '../platform/ServiceRegistry.js';
|
|
17
|
-
import { ServiceContainer } from "./ServiceContainer.js";
|
|
18
|
-
import { HookService } from "./index.js";
|
|
19
|
-
import { DebugService } from "./DebugService.js";
|
|
20
|
-
import { WebSocketService } from "./WebSocketService.js";
|
|
21
|
-
/**
|
|
22
|
-
* La API de la Plataforma que se expone a cada módulo.
|
|
23
|
-
* Actúa como un contrato bien definido entre el núcleo de la app y sus extensiones.
|
|
24
|
-
*/
|
|
25
|
-
export interface IPlatformAPI {
|
|
26
|
-
debug?: DebugService;
|
|
27
|
-
events: EventBus;
|
|
28
|
-
commands: CommandService;
|
|
29
|
-
layout: ILayoutService;
|
|
30
|
-
modals: ModalService;
|
|
31
|
-
notifications: NotificationService;
|
|
32
|
-
gamification: GamificationService;
|
|
33
|
-
calendar: CalendarService;
|
|
34
|
-
shortcuts: ShortcutService;
|
|
35
|
-
state: typeof state;
|
|
36
|
-
theme: ThemeService;
|
|
37
|
-
storage: StorageService;
|
|
38
|
-
sync: SyncService;
|
|
39
|
-
router?: RouterService;
|
|
40
|
-
moduleManager: ModuleManager | null;
|
|
41
|
-
container: ServiceContainer;
|
|
42
|
-
readonly hooks: HookService;
|
|
43
|
-
websocket: WebSocketService;
|
|
44
|
-
readonly modules: {
|
|
45
|
-
rateModule(id: any, rating: number, review: string): unknown;
|
|
46
|
-
getModuleById(moduleId: string): unknown;
|
|
47
|
-
getCategories(): any[] | PromiseLike<any[]>;
|
|
48
|
-
getModules: () => Promise<any[]>;
|
|
49
|
-
getInstalledModules: () => Promise<any[]>;
|
|
50
|
-
uploadModule: (formData: FormData) => Promise<any>;
|
|
51
|
-
installModule: (moduleId: string) => Promise<any>;
|
|
52
|
-
getProfile: () => Promise<any>;
|
|
53
|
-
updateProfile: (profileData: any) => Promise<any>;
|
|
54
|
-
};
|
|
55
|
-
readonly timetravel: {
|
|
56
|
-
revertToDate: (date: String) => Promise<any>;
|
|
57
|
-
getSnapshotDates(): Promise<any>;
|
|
58
|
-
getPreviousActivityDate: (date: String) => Promise<any>;
|
|
59
|
-
getNextActivityDate: (date: String) => Promise<any>;
|
|
60
|
-
};
|
|
61
|
-
readonly auth: AuthService;
|
|
62
|
-
readonly ai: {
|
|
63
|
-
generateTheme: (prompt: string) => Promise<any>;
|
|
64
|
-
};
|
|
65
|
-
readonly services: {
|
|
66
|
-
register<K extends keyof ServiceRegistry>(key: K, instance: ServiceRegistry[K]): void;
|
|
67
|
-
get<K extends keyof ServiceRegistry>(key: K): Promise<ServiceRegistry[K]>;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=api.d.ts.map
|
package/dist/core/api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/core/api.ts"],"names":[],"mappings":"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"}
|
package/dist/core/api.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { IPlatformAPI } from '../api.js';
|
|
2
|
-
/**
|
|
3
|
-
* Define la estructura de un objeto que representa un módulo a cargar.
|
|
4
|
-
*/
|
|
5
|
-
interface ModuleDefinition {
|
|
6
|
-
id: string;
|
|
7
|
-
entryPoint?: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Gestiona la carga y el ciclo de vida de los módulos de la aplicación.
|
|
11
|
-
*/
|
|
12
|
-
export declare class ModuleManager {
|
|
13
|
-
api: IPlatformAPI;
|
|
14
|
-
private loadedModules;
|
|
15
|
-
constructor(api: IPlatformAPI);
|
|
16
|
-
/**
|
|
17
|
-
* Carga una lista de módulos.
|
|
18
|
-
* Determina si son módulos del núcleo (locales) o de usuario (remotos) basándose en la presencia de `entryPoint`.
|
|
19
|
-
* @param modulesToLoad - Un array de definiciones de módulos.
|
|
20
|
-
*/
|
|
21
|
-
loadModules(modulesToLoad: ModuleDefinition[]): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gestiona la carga y el ciclo de vida de los módulos de la aplicación.
|
|
3
|
-
*/
|
|
4
|
-
export class ModuleManager {
|
|
5
|
-
api;
|
|
6
|
-
loadedModules = new Set();
|
|
7
|
-
constructor(api) {
|
|
8
|
-
this.api = api;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Carga una lista de módulos.
|
|
12
|
-
* Determina si son módulos del núcleo (locales) o de usuario (remotos) basándose en la presencia de `entryPoint`.
|
|
13
|
-
* @param modulesToLoad - Un array de definiciones de módulos.
|
|
14
|
-
*/
|
|
15
|
-
async loadModules(modulesToLoad) {
|
|
16
|
-
for (const moduleDef of modulesToLoad) {
|
|
17
|
-
if (this.loadedModules.has(moduleDef.id)) {
|
|
18
|
-
continue; // Evitar recargar módulos
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
let modulePath;
|
|
22
|
-
// Si 'entryPoint' existe, asumimos que es un módulo de usuario servido estáticamente.
|
|
23
|
-
// De lo contrario, es un módulo del núcleo que está en `src/modules`.
|
|
24
|
-
if (moduleDef.entryPoint) {
|
|
25
|
-
// Construimos la URL completa. window.location.origin nos da "http://localhost:7777" en desarrollo.
|
|
26
|
-
// TODO: Actualmente se descomprime en la carpeta publica del frontend, pasar a un cdn o similar en producción.
|
|
27
|
-
// El entryPoint ya debería ser la ruta pública correcta, como '/modules/decido.omni-module/index.js'.
|
|
28
|
-
modulePath = `${window.location.origin}/modules/${moduleDef.id}/index.js`;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
// Para los módulos del núcleo, la ruta relativa sigue funcionando porque están en `src`.
|
|
32
|
-
modulePath = `../../modules/${moduleDef.id}/index.js`;
|
|
33
|
-
}
|
|
34
|
-
console.log(`📦 Intentando cargar módulo '${moduleDef.id}' desde '${modulePath}'`);
|
|
35
|
-
// Vite ahora entenderá que la URL completa es un recurso externo.
|
|
36
|
-
const module = await import(/* @vite-ignore */ modulePath);
|
|
37
|
-
if (module.init && typeof module.init === 'function') {
|
|
38
|
-
await module.init(this.api);
|
|
39
|
-
this.loadedModules.add(moduleDef.id);
|
|
40
|
-
console.log(`✅ Módulo '${moduleDef.id}' inicializado con éxito.`);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
throw new Error(`El módulo no tiene una función de exportación 'init' válida.`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error(`❌ Fallo al cargar o inicializar el módulo '${moduleDef.id}':`, error);
|
|
48
|
-
this.api.notifications.show('error', `Fallo al cargar: ${moduleDef.id}`, error.message);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { IPlatformAPI } from '../api.js';
|
|
2
|
-
import { ServiceContainer } from '../ServiceContainer.js';
|
|
3
|
-
import { ServiceKey } from '../../platform/ServiceRegistry.js';
|
|
4
|
-
interface ExternalModuleDef {
|
|
5
|
-
id: string;
|
|
6
|
-
path: string;
|
|
7
|
-
}
|
|
8
|
-
export interface RegisteredModule {
|
|
9
|
-
id: string;
|
|
10
|
-
manifest: any;
|
|
11
|
-
importer: () => Promise<any>;
|
|
12
|
-
}
|
|
13
|
-
export type ModuleImporterFn = (moduleId: string) => Promise<any>;
|
|
14
|
-
/**
|
|
15
|
-
* Gestiona el ciclo de vida completo de los módulos:
|
|
16
|
-
* 1. Lee los manifiestos y registra las contribuciones estáticas (Fase de Registro).
|
|
17
|
-
* 2. Activa los módulos bajo demanda (lazy loading) cuando se requiere su código (Fase de Activación).
|
|
18
|
-
*/
|
|
19
|
-
export declare class ModuleManager {
|
|
20
|
-
private api;
|
|
21
|
-
private container;
|
|
22
|
-
private modules;
|
|
23
|
-
private activatedModules;
|
|
24
|
-
private serviceProviderMap;
|
|
25
|
-
constructor(api: IPlatformAPI, container: ServiceContainer);
|
|
26
|
-
/**
|
|
27
|
-
* FASE 1: Procesa los manifiestos de todos los módulos disponibles.
|
|
28
|
-
* @param moduleDefs Un array de objetos con el id del módulo y su manifiesto.
|
|
29
|
-
*/
|
|
30
|
-
registerModules(moduleDefs: RegisteredModule[]): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* NUEVO MÉTODO: Este es el "puerto de carga". La aplicación llamará a este método
|
|
33
|
-
* para darle al ModuleManager la capacidad de cargar módulos del núcleo.
|
|
34
|
-
*/
|
|
35
|
-
/**
|
|
36
|
-
* Lee la sección `contributes` y registra "placeholders" para la UI.
|
|
37
|
-
* Estos placeholders activarán el módulo cuando se interactúe con ellos.
|
|
38
|
-
*/
|
|
39
|
-
private registerStaticContributions;
|
|
40
|
-
/**
|
|
41
|
-
* FASE 2: Activa un módulo (carga su código y ejecuta `activate`).
|
|
42
|
-
* @param moduleId El ID del módulo a activar (ej: 'decido.projects').
|
|
43
|
-
*/
|
|
44
|
-
activateModule(moduleId: string): Promise<void>;
|
|
45
|
-
loadExternalModules(moduleDefs: ExternalModuleDef[]): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Devuelve el ID del módulo que provee un servicio específico.
|
|
48
|
-
*/
|
|
49
|
-
getModuleIdForService(serviceKey: ServiceKey): string | undefined;
|
|
50
|
-
/**
|
|
51
|
-
* Una función de ayuda que asegura la activación de un módulo antes de ejecutar un comando.
|
|
52
|
-
*/
|
|
53
|
-
private activateAndExecute;
|
|
54
|
-
/**
|
|
55
|
-
* Crea un componente React que activa el módulo al montarse.
|
|
56
|
-
*/
|
|
57
|
-
private createLazyModuleView;
|
|
58
|
-
}
|
|
59
|
-
export {};
|
|
60
|
-
//# sourceMappingURL=ModuleManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleManager.d.ts","sourceRoot":"","sources":["../../../src/core/app/ModuleManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAU/D,UAAU,iBAAiB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAChC;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAGlE;;;;GAIG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,gBAAgB,CAAqB;IAE7C,OAAO,CAAC,kBAAkB,CAAiC;gBAI/C,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB;IAK1D;;;OAGG;IASU,eAAe,CAAC,UAAU,EAAE,gBAAgB,EAAE;IAc3D;;;OAGG;IAKH;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAsFnC;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/C,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhF;;OAEG;IACI,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAIxE;;OAEG;YACW,kBAAkB;IAOhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAW/B"}
|