uilint 0.2.108 → 0.2.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-6CC356LV.js +206 -0
- package/dist/chunk-6CC356LV.js.map +1 -0
- package/dist/index.js +299 -147
- package/dist/index.js.map +1 -1
- package/dist/render-KO44SVF3.js +393 -0
- package/dist/render-KO44SVF3.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/commands/serve/dashboard/store.ts
|
|
4
|
+
var activityIdCounter = 0;
|
|
5
|
+
function createInitialState() {
|
|
6
|
+
return {
|
|
7
|
+
isRunning: false,
|
|
8
|
+
port: 9234,
|
|
9
|
+
workspace: null,
|
|
10
|
+
stats: {
|
|
11
|
+
connectedClients: 0,
|
|
12
|
+
subscriptions: 0,
|
|
13
|
+
cacheEntries: 0,
|
|
14
|
+
startTime: /* @__PURE__ */ new Date()
|
|
15
|
+
},
|
|
16
|
+
backgroundTasks: /* @__PURE__ */ new Map(),
|
|
17
|
+
activities: [],
|
|
18
|
+
maxActivities: 50,
|
|
19
|
+
verbose: false
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function createDashboardStore() {
|
|
23
|
+
let state = createInitialState();
|
|
24
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
25
|
+
function notify() {
|
|
26
|
+
for (const listener of listeners) {
|
|
27
|
+
listener();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const store = {
|
|
31
|
+
// State getters
|
|
32
|
+
get isRunning() {
|
|
33
|
+
return state.isRunning;
|
|
34
|
+
},
|
|
35
|
+
get port() {
|
|
36
|
+
return state.port;
|
|
37
|
+
},
|
|
38
|
+
get workspace() {
|
|
39
|
+
return state.workspace;
|
|
40
|
+
},
|
|
41
|
+
get stats() {
|
|
42
|
+
return state.stats;
|
|
43
|
+
},
|
|
44
|
+
get backgroundTasks() {
|
|
45
|
+
return state.backgroundTasks;
|
|
46
|
+
},
|
|
47
|
+
get activities() {
|
|
48
|
+
return state.activities;
|
|
49
|
+
},
|
|
50
|
+
get maxActivities() {
|
|
51
|
+
return state.maxActivities;
|
|
52
|
+
},
|
|
53
|
+
get verbose() {
|
|
54
|
+
return state.verbose;
|
|
55
|
+
},
|
|
56
|
+
// Server lifecycle
|
|
57
|
+
setRunning(running) {
|
|
58
|
+
state = { ...state, isRunning: running };
|
|
59
|
+
if (running) {
|
|
60
|
+
state.stats = { ...state.stats, startTime: /* @__PURE__ */ new Date() };
|
|
61
|
+
}
|
|
62
|
+
notify();
|
|
63
|
+
},
|
|
64
|
+
setPort(port) {
|
|
65
|
+
state = { ...state, port };
|
|
66
|
+
notify();
|
|
67
|
+
},
|
|
68
|
+
setWorkspace(info) {
|
|
69
|
+
state = { ...state, workspace: info };
|
|
70
|
+
notify();
|
|
71
|
+
},
|
|
72
|
+
// Stats updates
|
|
73
|
+
updateStats(partial) {
|
|
74
|
+
state = { ...state, stats: { ...state.stats, ...partial } };
|
|
75
|
+
notify();
|
|
76
|
+
},
|
|
77
|
+
incrementClients() {
|
|
78
|
+
state = {
|
|
79
|
+
...state,
|
|
80
|
+
stats: {
|
|
81
|
+
...state.stats,
|
|
82
|
+
connectedClients: state.stats.connectedClients + 1
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
notify();
|
|
86
|
+
},
|
|
87
|
+
decrementClients() {
|
|
88
|
+
state = {
|
|
89
|
+
...state,
|
|
90
|
+
stats: {
|
|
91
|
+
...state.stats,
|
|
92
|
+
connectedClients: Math.max(0, state.stats.connectedClients - 1)
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
notify();
|
|
96
|
+
},
|
|
97
|
+
incrementSubscriptions() {
|
|
98
|
+
state = {
|
|
99
|
+
...state,
|
|
100
|
+
stats: {
|
|
101
|
+
...state.stats,
|
|
102
|
+
subscriptions: state.stats.subscriptions + 1
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
notify();
|
|
106
|
+
},
|
|
107
|
+
decrementSubscriptions() {
|
|
108
|
+
state = {
|
|
109
|
+
...state,
|
|
110
|
+
stats: {
|
|
111
|
+
...state.stats,
|
|
112
|
+
subscriptions: Math.max(0, state.stats.subscriptions - 1)
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
notify();
|
|
116
|
+
},
|
|
117
|
+
setCacheEntries(count) {
|
|
118
|
+
state = {
|
|
119
|
+
...state,
|
|
120
|
+
stats: { ...state.stats, cacheEntries: count }
|
|
121
|
+
};
|
|
122
|
+
notify();
|
|
123
|
+
},
|
|
124
|
+
// Background tasks
|
|
125
|
+
setBackgroundTask(task) {
|
|
126
|
+
const newTasks = new Map(state.backgroundTasks);
|
|
127
|
+
newTasks.set(task.id, task);
|
|
128
|
+
state = { ...state, backgroundTasks: newTasks };
|
|
129
|
+
notify();
|
|
130
|
+
},
|
|
131
|
+
updateBackgroundTaskProgress(id, progress, current, total, message) {
|
|
132
|
+
const task = state.backgroundTasks.get(id);
|
|
133
|
+
if (task) {
|
|
134
|
+
const newTasks = new Map(state.backgroundTasks);
|
|
135
|
+
newTasks.set(id, {
|
|
136
|
+
...task,
|
|
137
|
+
progress,
|
|
138
|
+
current,
|
|
139
|
+
total,
|
|
140
|
+
message,
|
|
141
|
+
status: "running"
|
|
142
|
+
});
|
|
143
|
+
state = { ...state, backgroundTasks: newTasks };
|
|
144
|
+
notify();
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
completeBackgroundTask(id, error) {
|
|
148
|
+
const task = state.backgroundTasks.get(id);
|
|
149
|
+
if (task) {
|
|
150
|
+
const newTasks = new Map(state.backgroundTasks);
|
|
151
|
+
newTasks.set(id, {
|
|
152
|
+
...task,
|
|
153
|
+
status: error ? "error" : "complete",
|
|
154
|
+
progress: error ? task.progress : 100,
|
|
155
|
+
error
|
|
156
|
+
});
|
|
157
|
+
state = { ...state, backgroundTasks: newTasks };
|
|
158
|
+
notify();
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
// Activity logging
|
|
162
|
+
addActivity(entry) {
|
|
163
|
+
const newEntry = {
|
|
164
|
+
...entry,
|
|
165
|
+
id: `activity-${++activityIdCounter}`,
|
|
166
|
+
timestamp: /* @__PURE__ */ new Date()
|
|
167
|
+
};
|
|
168
|
+
const activities = [newEntry, ...state.activities].slice(
|
|
169
|
+
0,
|
|
170
|
+
state.maxActivities
|
|
171
|
+
);
|
|
172
|
+
state = { ...state, activities };
|
|
173
|
+
notify();
|
|
174
|
+
},
|
|
175
|
+
clearActivities() {
|
|
176
|
+
state = { ...state, activities: [] };
|
|
177
|
+
notify();
|
|
178
|
+
},
|
|
179
|
+
// Display options
|
|
180
|
+
toggleVerbose() {
|
|
181
|
+
state = { ...state, verbose: !state.verbose };
|
|
182
|
+
notify();
|
|
183
|
+
},
|
|
184
|
+
// Subscription
|
|
185
|
+
subscribe(listener) {
|
|
186
|
+
listeners.add(listener);
|
|
187
|
+
return () => listeners.delete(listener);
|
|
188
|
+
},
|
|
189
|
+
getState() {
|
|
190
|
+
return state;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
return store;
|
|
194
|
+
}
|
|
195
|
+
var globalStore = null;
|
|
196
|
+
function getDashboardStore() {
|
|
197
|
+
if (!globalStore) {
|
|
198
|
+
globalStore = createDashboardStore();
|
|
199
|
+
}
|
|
200
|
+
return globalStore;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export {
|
|
204
|
+
getDashboardStore
|
|
205
|
+
};
|
|
206
|
+
//# sourceMappingURL=chunk-6CC356LV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/serve/dashboard/store.ts"],"sourcesContent":["/**\n * Dashboard state store - simple event-based state management\n */\n\nimport type {\n DashboardState,\n DashboardStore,\n ActivityEntry,\n BackgroundTask,\n WorkspaceInfo,\n ServerStats,\n} from \"./types.js\";\n\ntype Listener = () => void;\n\nlet activityIdCounter = 0;\n\nfunction createInitialState(): DashboardState {\n return {\n isRunning: false,\n port: 9234,\n workspace: null,\n stats: {\n connectedClients: 0,\n subscriptions: 0,\n cacheEntries: 0,\n startTime: new Date(),\n },\n backgroundTasks: new Map(),\n activities: [],\n maxActivities: 50,\n verbose: false,\n };\n}\n\n/**\n * Create a dashboard store instance\n */\nexport function createDashboardStore(): DashboardStore & {\n subscribe: (listener: Listener) => () => void;\n getState: () => DashboardState;\n} {\n let state = createInitialState();\n const listeners = new Set<Listener>();\n\n function notify() {\n for (const listener of listeners) {\n listener();\n }\n }\n\n const store: DashboardStore & {\n subscribe: (listener: Listener) => () => void;\n getState: () => DashboardState;\n } = {\n // State getters\n get isRunning() {\n return state.isRunning;\n },\n get port() {\n return state.port;\n },\n get workspace() {\n return state.workspace;\n },\n get stats() {\n return state.stats;\n },\n get backgroundTasks() {\n return state.backgroundTasks;\n },\n get activities() {\n return state.activities;\n },\n get maxActivities() {\n return state.maxActivities;\n },\n get verbose() {\n return state.verbose;\n },\n\n // Server lifecycle\n setRunning(running: boolean) {\n state = { ...state, isRunning: running };\n if (running) {\n state.stats = { ...state.stats, startTime: new Date() };\n }\n notify();\n },\n\n setPort(port: number) {\n state = { ...state, port };\n notify();\n },\n\n setWorkspace(info: WorkspaceInfo) {\n state = { ...state, workspace: info };\n notify();\n },\n\n // Stats updates\n updateStats(partial: Partial<ServerStats>) {\n state = { ...state, stats: { ...state.stats, ...partial } };\n notify();\n },\n\n incrementClients() {\n state = {\n ...state,\n stats: {\n ...state.stats,\n connectedClients: state.stats.connectedClients + 1,\n },\n };\n notify();\n },\n\n decrementClients() {\n state = {\n ...state,\n stats: {\n ...state.stats,\n connectedClients: Math.max(0, state.stats.connectedClients - 1),\n },\n };\n notify();\n },\n\n incrementSubscriptions() {\n state = {\n ...state,\n stats: {\n ...state.stats,\n subscriptions: state.stats.subscriptions + 1,\n },\n };\n notify();\n },\n\n decrementSubscriptions() {\n state = {\n ...state,\n stats: {\n ...state.stats,\n subscriptions: Math.max(0, state.stats.subscriptions - 1),\n },\n };\n notify();\n },\n\n setCacheEntries(count: number) {\n state = {\n ...state,\n stats: { ...state.stats, cacheEntries: count },\n };\n notify();\n },\n\n // Background tasks\n setBackgroundTask(task: BackgroundTask) {\n const newTasks = new Map(state.backgroundTasks);\n newTasks.set(task.id, task);\n state = { ...state, backgroundTasks: newTasks };\n notify();\n },\n\n updateBackgroundTaskProgress(\n id: string,\n progress: number,\n current?: number,\n total?: number,\n message?: string\n ) {\n const task = state.backgroundTasks.get(id);\n if (task) {\n const newTasks = new Map(state.backgroundTasks);\n newTasks.set(id, {\n ...task,\n progress,\n current,\n total,\n message,\n status: \"running\",\n });\n state = { ...state, backgroundTasks: newTasks };\n notify();\n }\n },\n\n completeBackgroundTask(id: string, error?: string) {\n const task = state.backgroundTasks.get(id);\n if (task) {\n const newTasks = new Map(state.backgroundTasks);\n newTasks.set(id, {\n ...task,\n status: error ? \"error\" : \"complete\",\n progress: error ? task.progress : 100,\n error,\n });\n state = { ...state, backgroundTasks: newTasks };\n notify();\n }\n },\n\n // Activity logging\n addActivity(entry: Omit<ActivityEntry, \"id\" | \"timestamp\">) {\n const newEntry: ActivityEntry = {\n ...entry,\n id: `activity-${++activityIdCounter}`,\n timestamp: new Date(),\n };\n\n // Prepend new entry, trim to max\n const activities = [newEntry, ...state.activities].slice(\n 0,\n state.maxActivities\n );\n state = { ...state, activities };\n notify();\n },\n\n clearActivities() {\n state = { ...state, activities: [] };\n notify();\n },\n\n // Display options\n toggleVerbose() {\n state = { ...state, verbose: !state.verbose };\n notify();\n },\n\n // Subscription\n subscribe(listener: Listener) {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n\n getState() {\n return state;\n },\n };\n\n return store;\n}\n\n// Singleton store instance for use across the application\nlet globalStore: ReturnType<typeof createDashboardStore> | null = null;\n\nexport function getDashboardStore(): ReturnType<typeof createDashboardStore> {\n if (!globalStore) {\n globalStore = createDashboardStore();\n }\n return globalStore;\n}\n\n// Reset store (useful for testing)\nexport function resetDashboardStore(): void {\n globalStore = null;\n}\n"],"mappings":"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","names":[]}
|