@zenbujs/core 0.0.5 → 0.0.8
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/{advice-config-QYB2qEd_.mjs → advice-config-DXSIo0sg.mjs} +40 -39
- package/dist/advice.d.mts +8 -8
- package/dist/advice.mjs +2 -2
- package/dist/{base-window-BbFRRhKP.mjs → base-window-BxBZ2md_.mjs} +51 -7
- package/dist/{transforms-CuTODvDx.d.mts → build-config-Dzg2frpk.d.mts} +98 -28
- package/dist/build-config-pWdmLnrk.mjs +53 -0
- package/dist/{build-electron-CNJ0dLND.mjs → build-electron-Dsbb1EMl.mjs} +308 -120
- package/dist/{build-source-C2puqEVr.mjs → build-source-d1J3shV8.mjs} +62 -27
- package/dist/cli/bin.mjs +7 -7
- package/dist/cli/build.d.mts +2 -2
- package/dist/cli/build.mjs +2 -3
- package/dist/cli/resolve-config.mjs +1 -1
- package/dist/{cli-C3R1LBMY.mjs → cli-kL6mPgBE.mjs} +2 -2
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +2 -3
- package/dist/{db-xjvahRFJ.mjs → db-Bc292RYo.mjs} +2 -2
- package/dist/db.d.mts +1 -1
- package/dist/dev-B2emj0HZ.mjs +301 -0
- package/dist/env-bootstrap.d.mts +1 -1
- package/dist/events.d.mts +19 -0
- package/dist/events.mjs +1 -0
- package/dist/host-version-BIrF8tX7.mjs +65 -0
- package/dist/index-w5QyDjuf.d.mts +780 -0
- package/dist/index.d.mts +5 -6
- package/dist/index.mjs +2 -2
- package/dist/installing-preload.cjs +60 -0
- package/dist/launcher.mjs +2615 -122
- package/dist/{link-c0_aLWQ3.mjs → link-glX89NV5.mjs} +215 -89
- package/dist/{load-config-xMf2wxH8.mjs → load-config-C4Oe2qZO.mjs} +5 -1
- package/dist/loaders/zenbu.mjs +102 -0
- package/dist/node-loader.mjs +1 -1
- package/dist/{publish-source-Dill72NS.mjs → publish-source-Dq2c0iOw.mjs} +2 -2
- package/dist/react.d.mts +55 -6
- package/dist/react.mjs +116 -5
- package/dist/registry-CMp8FYgS.d.mts +47 -0
- package/dist/registry-generated.d.mts +26 -0
- package/dist/registry-generated.mjs +1 -0
- package/dist/registry.d.mts +2 -2
- package/dist/{reloader-DzEO8kJr.mjs → reloader-B22UiNA2.mjs} +2 -4
- package/dist/{renderer-host-Cau9JK0v.mjs → renderer-host-DD16MXhI.mjs} +152 -43
- package/dist/{rpc-JfGv-Wuw.mjs → rpc-C4_NQmpT.mjs} +5 -4
- package/dist/{runtime-pCeVzj--.d.mts → runtime-BQWntcOb.d.mts} +85 -48
- package/dist/runtime.d.mts +2 -2
- package/dist/runtime.mjs +139 -83
- package/dist/{schema-Dl85YjXW.d.mts → schema-CjrMVk36.d.mts} +3 -3
- package/dist/schema.d.mts +1 -1
- package/dist/schema.mjs +1 -1
- package/dist/{server-y3PPbh3l.mjs → server-CZLMF8Dj.mjs} +1 -3
- package/dist/services/default.d.mts +3 -3
- package/dist/services/default.mjs +14 -13
- package/dist/services/index.d.mts +2 -280
- package/dist/services/index.mjs +8 -7
- package/dist/setup-gate.d.mts +1 -1
- package/dist/setup-gate.mjs +117 -24
- package/dist/{transform-CmFYPmt8.mjs → transform-BzrwkEdf.mjs} +22 -916
- package/dist/updater-DCkz9M1c.mjs +1008 -0
- package/dist/{vite-plugins-Do7liKi_.mjs → vite-plugins-tt6KAtyE.mjs} +26 -25
- package/dist/vite.d.mts +3 -3
- package/dist/vite.mjs +1 -1
- package/dist/{window-o2NGUsIb.mjs → window-YFKvAM0l.mjs} +30 -16
- package/package.json +15 -2
- package/dist/build-config-C3a-o3_B.mjs +0 -23
- package/dist/dev-Dazhu66l.mjs +0 -85
- package/dist/registry-eX6e2oql.d.mts +0 -61
- package/dist/transforms-htxfTwsY.mjs +0 -47
- /package/dist/{config-DXRCDUxG.mjs → config-BK78JDRI.mjs} +0 -0
- /package/dist/{env-bootstrap-DW2hVhSO.d.mts → env-bootstrap-rTs8KR3-.d.mts} +0 -0
- /package/dist/{index-M_lSNBrq.d.mts → index-DeDxePAa.d.mts} +0 -0
- /package/dist/{mirror-sync-PDzxhf1w.mjs → mirror-sync-pYU6f3-c.mjs} +0 -0
- /package/dist/{monorepo-3avKJwzJ.mjs → monorepo-Dct-kkbQ.mjs} +0 -0
- /package/dist/{node-_8xShqxr.mjs → node-BhfLKYCi.mjs} +0 -0
- /package/dist/{setup-gate-Dcy8gGPJ.d.mts → setup-gate-BQq0QgZH.d.mts} +0 -0
|
@@ -0,0 +1,780 @@
|
|
|
1
|
+
import { i as Service, t as CleanupReason } from "./runtime-BQWntcOb.mjs";
|
|
2
|
+
import { c as EffectFieldNode, d as KyjuError, l as FieldNode, r as createRouter, t as Db } from "./index-DeDxePAa.mjs";
|
|
3
|
+
import { n as ResolvedEvents, t as ResolvedDbRoot } from "./registry-CMp8FYgS.mjs";
|
|
4
|
+
import http from "node:http";
|
|
5
|
+
import { WebSocket, WebSocketServer } from "ws";
|
|
6
|
+
import { ViteDevServer } from "vite";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import { BaseWindow, WebPreferences } from "electron";
|
|
9
|
+
import * as _$stream from "stream";
|
|
10
|
+
|
|
11
|
+
//#region src/services/server.d.ts
|
|
12
|
+
type UpgradeHandler = (req: http.IncomingMessage, socket: _$stream.Duplex, head: Buffer) => boolean;
|
|
13
|
+
declare const ServerService_base: (abstract new () => {
|
|
14
|
+
ctx: {};
|
|
15
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
16
|
+
evaluate(): void | Promise<void>;
|
|
17
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
18
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
19
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
20
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
21
|
+
}) & {
|
|
22
|
+
key: "server";
|
|
23
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
24
|
+
key: string;
|
|
25
|
+
})>;
|
|
26
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
27
|
+
key: string;
|
|
28
|
+
})> = {}>(config: {
|
|
29
|
+
key: TKey;
|
|
30
|
+
deps?: TDeps;
|
|
31
|
+
}): (abstract new () => {
|
|
32
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
33
|
+
key: string;
|
|
34
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
35
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
36
|
+
evaluate(): void | Promise<void>;
|
|
37
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
38
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
39
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
40
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
41
|
+
}) & {
|
|
42
|
+
key: TKey;
|
|
43
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
44
|
+
key: string;
|
|
45
|
+
})>;
|
|
46
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
47
|
+
key: string;
|
|
48
|
+
})> = {}>(config: {
|
|
49
|
+
key: TKey;
|
|
50
|
+
deps?: TDeps;
|
|
51
|
+
}): /*elided*/any;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
declare class ServerService extends ServerService_base {
|
|
55
|
+
server: http.Server | null;
|
|
56
|
+
wss: WebSocketServer | null;
|
|
57
|
+
port: number;
|
|
58
|
+
authToken: string;
|
|
59
|
+
private upgradeHandlers;
|
|
60
|
+
addUpgradeHandler(handler: UpgradeHandler): () => void;
|
|
61
|
+
evaluate(): Promise<void>;
|
|
62
|
+
private isAuthorizedUpgrade;
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/services/reloader.d.ts
|
|
66
|
+
interface ReloaderEntry {
|
|
67
|
+
id: string;
|
|
68
|
+
root: string;
|
|
69
|
+
url: string;
|
|
70
|
+
port: number;
|
|
71
|
+
viteServer: ViteDevServer;
|
|
72
|
+
}
|
|
73
|
+
declare const ReloaderService_base: (abstract new () => {
|
|
74
|
+
ctx: {};
|
|
75
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
76
|
+
evaluate(): void | Promise<void>;
|
|
77
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
78
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
79
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
80
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
81
|
+
}) & {
|
|
82
|
+
key: "reloader";
|
|
83
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
84
|
+
key: string;
|
|
85
|
+
})>;
|
|
86
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
87
|
+
key: string;
|
|
88
|
+
})> = {}>(config: {
|
|
89
|
+
key: TKey;
|
|
90
|
+
deps?: TDeps;
|
|
91
|
+
}): (abstract new () => {
|
|
92
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
93
|
+
key: string;
|
|
94
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
95
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
96
|
+
evaluate(): void | Promise<void>;
|
|
97
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
98
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
99
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
100
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
101
|
+
}) & {
|
|
102
|
+
key: TKey;
|
|
103
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
104
|
+
key: string;
|
|
105
|
+
})>;
|
|
106
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
107
|
+
key: string;
|
|
108
|
+
})> = {}>(config: {
|
|
109
|
+
key: TKey;
|
|
110
|
+
deps?: TDeps;
|
|
111
|
+
}): /*elided*/any;
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
declare class ReloaderService extends ReloaderService_base {
|
|
115
|
+
private servers;
|
|
116
|
+
create(id: string, root: string, configFile?: string | false): Promise<ReloaderEntry>;
|
|
117
|
+
get(id: string): ReloaderEntry | undefined;
|
|
118
|
+
remove(id: string): Promise<void>;
|
|
119
|
+
evaluate(): void;
|
|
120
|
+
}
|
|
121
|
+
//#endregion
|
|
122
|
+
//#region src/services/http.d.ts
|
|
123
|
+
type ConnectedCallback = (id: string, ws: WebSocket) => void;
|
|
124
|
+
type DisconnectedCallback = (id: string) => void;
|
|
125
|
+
type RequestHandler = (req: http.IncomingMessage, res: http.ServerResponse) => void;
|
|
126
|
+
declare const HttpService_base: (abstract new () => {
|
|
127
|
+
ctx: {
|
|
128
|
+
server: ServerService;
|
|
129
|
+
reloader: ReloaderService;
|
|
130
|
+
};
|
|
131
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
132
|
+
evaluate(): void | Promise<void>;
|
|
133
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
134
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
135
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
136
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
137
|
+
}) & {
|
|
138
|
+
key: "http";
|
|
139
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
140
|
+
key: string;
|
|
141
|
+
})>;
|
|
142
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
143
|
+
key: string;
|
|
144
|
+
})> = {}>(config: {
|
|
145
|
+
key: TKey;
|
|
146
|
+
deps?: TDeps;
|
|
147
|
+
}): (abstract new () => {
|
|
148
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
149
|
+
key: string;
|
|
150
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
151
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
152
|
+
evaluate(): void | Promise<void>;
|
|
153
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
154
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
155
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
156
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
157
|
+
}) & {
|
|
158
|
+
key: TKey;
|
|
159
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
160
|
+
key: string;
|
|
161
|
+
})>;
|
|
162
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
163
|
+
key: string;
|
|
164
|
+
})> = {}>(config: {
|
|
165
|
+
key: TKey;
|
|
166
|
+
deps?: TDeps;
|
|
167
|
+
}): /*elided*/any;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
declare class HttpService extends HttpService_base {
|
|
171
|
+
connectedCallbacks: ConnectedCallback[];
|
|
172
|
+
disconnectedCallbacks: DisconnectedCallback[];
|
|
173
|
+
activeConnections: Map<string, WebSocket>;
|
|
174
|
+
private requestHandlers;
|
|
175
|
+
get port(): number;
|
|
176
|
+
get authToken(): string;
|
|
177
|
+
addRequestHandler(prefix: string, handler: RequestHandler): () => void;
|
|
178
|
+
onConnected(cb: ConnectedCallback): () => void;
|
|
179
|
+
onDisconnected(cb: DisconnectedCallback): () => void;
|
|
180
|
+
evaluate(): void;
|
|
181
|
+
}
|
|
182
|
+
//#endregion
|
|
183
|
+
//#region src/services/db.d.ts
|
|
184
|
+
type EffectSectionProxy<S> = { [K in keyof S]: EffectFieldNode<S[K]> };
|
|
185
|
+
type SectionProxy<S> = { [K in keyof S]: FieldNode<S[K]> };
|
|
186
|
+
type Root = ResolvedDbRoot;
|
|
187
|
+
type Plugin$1 = Root extends {
|
|
188
|
+
plugin: infer P;
|
|
189
|
+
} ? P : never;
|
|
190
|
+
type SectionedEffectClient = {
|
|
191
|
+
readRoot(): Root;
|
|
192
|
+
update(fn: (root: Root) => void | Root): Effect.Effect<void, KyjuError>;
|
|
193
|
+
createBlob(data: Uint8Array, hot?: boolean): Effect.Effect<string, KyjuError>;
|
|
194
|
+
deleteBlob(blobId: string): Effect.Effect<void, KyjuError>;
|
|
195
|
+
getBlobData(blobId: string): Effect.Effect<Uint8Array | null, KyjuError>;
|
|
196
|
+
plugin: { [K in keyof Plugin$1]: EffectSectionProxy<Plugin$1[K]> };
|
|
197
|
+
};
|
|
198
|
+
type SectionedClient = {
|
|
199
|
+
readRoot(): Root;
|
|
200
|
+
update(fn: (root: Root) => void | Root): Promise<void>;
|
|
201
|
+
createBlob(data: Uint8Array, hot?: boolean): Promise<string>;
|
|
202
|
+
deleteBlob(blobId: string): Promise<void>;
|
|
203
|
+
getBlobData(blobId: string): Promise<Uint8Array | null>;
|
|
204
|
+
plugin: { [K in keyof Plugin$1]: SectionProxy<Plugin$1[K]> };
|
|
205
|
+
};
|
|
206
|
+
declare const DbService_base: (abstract new () => {
|
|
207
|
+
ctx: {
|
|
208
|
+
http: HttpService;
|
|
209
|
+
};
|
|
210
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
211
|
+
evaluate(): void | Promise<void>;
|
|
212
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
213
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
214
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
215
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
216
|
+
}) & {
|
|
217
|
+
key: "db";
|
|
218
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
219
|
+
key: string;
|
|
220
|
+
})>;
|
|
221
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
222
|
+
key: string;
|
|
223
|
+
})> = {}>(config: {
|
|
224
|
+
key: TKey;
|
|
225
|
+
deps?: TDeps;
|
|
226
|
+
}): (abstract new () => {
|
|
227
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
228
|
+
key: string;
|
|
229
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
230
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
231
|
+
evaluate(): void | Promise<void>;
|
|
232
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
233
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
234
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
235
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
236
|
+
}) & {
|
|
237
|
+
key: TKey;
|
|
238
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
239
|
+
key: string;
|
|
240
|
+
})>;
|
|
241
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
242
|
+
key: string;
|
|
243
|
+
})> = {}>(config: {
|
|
244
|
+
key: TKey;
|
|
245
|
+
deps?: TDeps;
|
|
246
|
+
}): /*elided*/any;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
declare class DbService extends DbService_base {
|
|
250
|
+
db: Db | null;
|
|
251
|
+
dbRouter: ReturnType<typeof createRouter> | null;
|
|
252
|
+
private sectionsHash;
|
|
253
|
+
private _dbPath;
|
|
254
|
+
/**
|
|
255
|
+
* Resolved DB path. Throws if accessed before `evaluate()` has run — the
|
|
256
|
+
* service contract guarantees deps are evaluated before dependents, so any
|
|
257
|
+
* access from a dependent service or RPC handler is safe.
|
|
258
|
+
*/
|
|
259
|
+
get dbPath(): string;
|
|
260
|
+
get client(): SectionedClient;
|
|
261
|
+
get effectClient(): SectionedEffectClient;
|
|
262
|
+
/**
|
|
263
|
+
* Drain kyju's lagged-persistence queue. Safe to call anytime; idempotent
|
|
264
|
+
* when nothing is pending. Used by service teardown (effect cleanup) so
|
|
265
|
+
* shutdown / hot-reload don't lose in-memory writes.
|
|
266
|
+
*/
|
|
267
|
+
flush(): Promise<void>;
|
|
268
|
+
/**
|
|
269
|
+
* Flush + release the kyju cross-process lock at `<dbPath>/.lock`.
|
|
270
|
+
* Called on service teardown so a subsequent process can open the DB
|
|
271
|
+
* without seeing a stale lock. Idempotent.
|
|
272
|
+
*/
|
|
273
|
+
close(): Promise<void>;
|
|
274
|
+
evaluate(): Promise<void>;
|
|
275
|
+
}
|
|
276
|
+
//#endregion
|
|
277
|
+
//#region src/services/view-registry.d.ts
|
|
278
|
+
interface ViewEntry {
|
|
279
|
+
type: string;
|
|
280
|
+
url: string;
|
|
281
|
+
port: number;
|
|
282
|
+
ownsServer: boolean;
|
|
283
|
+
meta?: {
|
|
284
|
+
kind?: string;
|
|
285
|
+
sidebar?: boolean;
|
|
286
|
+
bottomPanel?: boolean;
|
|
287
|
+
label?: string;
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
declare const ViewRegistryService_base: (abstract new () => {
|
|
291
|
+
ctx: {
|
|
292
|
+
reloader: ReloaderService;
|
|
293
|
+
db: DbService;
|
|
294
|
+
};
|
|
295
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
296
|
+
evaluate(): void | Promise<void>;
|
|
297
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
298
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
299
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
300
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
301
|
+
}) & {
|
|
302
|
+
key: "view-registry";
|
|
303
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
304
|
+
key: string;
|
|
305
|
+
})>;
|
|
306
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
307
|
+
key: string;
|
|
308
|
+
})> = {}>(config: {
|
|
309
|
+
key: TKey;
|
|
310
|
+
deps?: TDeps;
|
|
311
|
+
}): (abstract new () => {
|
|
312
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
313
|
+
key: string;
|
|
314
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
315
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
316
|
+
evaluate(): void | Promise<void>;
|
|
317
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
318
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
319
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
320
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
321
|
+
}) & {
|
|
322
|
+
key: TKey;
|
|
323
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
324
|
+
key: string;
|
|
325
|
+
})>;
|
|
326
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
327
|
+
key: string;
|
|
328
|
+
})> = {}>(config: {
|
|
329
|
+
key: TKey;
|
|
330
|
+
deps?: TDeps;
|
|
331
|
+
}): /*elided*/any;
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
declare class ViewRegistryService extends ViewRegistryService_base {
|
|
335
|
+
private views;
|
|
336
|
+
private manifestIcons;
|
|
337
|
+
register(type: string, root: string, configFile?: string | false, meta?: {
|
|
338
|
+
kind?: string;
|
|
339
|
+
sidebar?: boolean;
|
|
340
|
+
bottomPanel?: boolean;
|
|
341
|
+
label?: string;
|
|
342
|
+
}): Promise<ViewEntry>;
|
|
343
|
+
registerAlias(type: string, reloaderId: string, pathPrefix: string, meta?: {
|
|
344
|
+
kind?: string;
|
|
345
|
+
sidebar?: boolean;
|
|
346
|
+
bottomPanel?: boolean;
|
|
347
|
+
label?: string;
|
|
348
|
+
}): ViewEntry;
|
|
349
|
+
unregister(type: string): Promise<void>;
|
|
350
|
+
get(type: string): ViewEntry | undefined;
|
|
351
|
+
evaluate(): void;
|
|
352
|
+
private loadManifestIcons;
|
|
353
|
+
private syncToDb;
|
|
354
|
+
}
|
|
355
|
+
//#endregion
|
|
356
|
+
//#region src/services/renderer-host.d.ts
|
|
357
|
+
declare const RendererHostService_base: (abstract new () => {
|
|
358
|
+
ctx: {
|
|
359
|
+
reloader: ReloaderService;
|
|
360
|
+
viewRegistry: ViewRegistryService;
|
|
361
|
+
};
|
|
362
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
363
|
+
evaluate(): void | Promise<void>;
|
|
364
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
365
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
366
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
367
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
368
|
+
}) & {
|
|
369
|
+
key: "renderer-host";
|
|
370
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
371
|
+
key: string;
|
|
372
|
+
})>;
|
|
373
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
374
|
+
key: string;
|
|
375
|
+
})> = {}>(config: {
|
|
376
|
+
key: TKey;
|
|
377
|
+
deps?: TDeps;
|
|
378
|
+
}): (abstract new () => {
|
|
379
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
380
|
+
key: string;
|
|
381
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
382
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
383
|
+
evaluate(): void | Promise<void>;
|
|
384
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
385
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
386
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
387
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
388
|
+
}) & {
|
|
389
|
+
key: TKey;
|
|
390
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
391
|
+
key: string;
|
|
392
|
+
})>;
|
|
393
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
394
|
+
key: string;
|
|
395
|
+
})> = {}>(config: {
|
|
396
|
+
key: TKey;
|
|
397
|
+
deps?: TDeps;
|
|
398
|
+
}): /*elided*/any;
|
|
399
|
+
};
|
|
400
|
+
};
|
|
401
|
+
declare class RendererHostService extends RendererHostService_base {
|
|
402
|
+
url: string;
|
|
403
|
+
port: number;
|
|
404
|
+
evaluate(): Promise<void>;
|
|
405
|
+
}
|
|
406
|
+
//#endregion
|
|
407
|
+
//#region src/services/base-window.d.ts
|
|
408
|
+
declare const MAIN_WINDOW_ID = "main";
|
|
409
|
+
type WindowBounds = {
|
|
410
|
+
x: number;
|
|
411
|
+
y: number;
|
|
412
|
+
width: number;
|
|
413
|
+
height: number;
|
|
414
|
+
};
|
|
415
|
+
declare const BaseWindowService_base: (abstract new () => {
|
|
416
|
+
ctx: {
|
|
417
|
+
db: DbService;
|
|
418
|
+
};
|
|
419
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
420
|
+
evaluate(): void | Promise<void>;
|
|
421
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
422
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
423
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
424
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
425
|
+
}) & {
|
|
426
|
+
key: "base-window";
|
|
427
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
428
|
+
key: string;
|
|
429
|
+
})>;
|
|
430
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
431
|
+
key: string;
|
|
432
|
+
})> = {}>(config: {
|
|
433
|
+
key: TKey;
|
|
434
|
+
deps?: TDeps;
|
|
435
|
+
}): (abstract new () => {
|
|
436
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
437
|
+
key: string;
|
|
438
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
439
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
440
|
+
evaluate(): void | Promise<void>;
|
|
441
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
442
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
443
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
444
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
445
|
+
}) & {
|
|
446
|
+
key: TKey;
|
|
447
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
448
|
+
key: string;
|
|
449
|
+
})>;
|
|
450
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
451
|
+
key: string;
|
|
452
|
+
})> = {}>(config: {
|
|
453
|
+
key: TKey;
|
|
454
|
+
deps?: TDeps;
|
|
455
|
+
}): /*elided*/any;
|
|
456
|
+
};
|
|
457
|
+
};
|
|
458
|
+
declare class BaseWindowService extends BaseWindowService_base {
|
|
459
|
+
windows: Map<string, BaseWindow>;
|
|
460
|
+
private get bootWindows();
|
|
461
|
+
private set bootWindows(value);
|
|
462
|
+
private getZenWidth;
|
|
463
|
+
getWindowId(win: BaseWindow): string | undefined;
|
|
464
|
+
createWindow(opts?: Partial<WindowBounds> & {
|
|
465
|
+
windowId?: string;
|
|
466
|
+
show?: boolean;
|
|
467
|
+
}): {
|
|
468
|
+
win: BaseWindow;
|
|
469
|
+
windowId: string;
|
|
470
|
+
};
|
|
471
|
+
evaluate(): void;
|
|
472
|
+
}
|
|
473
|
+
//#endregion
|
|
474
|
+
//#region src/services/rpc.d.ts
|
|
475
|
+
type EmitProxy<T> = { [K in keyof T]: T[K] extends Record<string, any> ? EmitProxy<T[K]> & ((data: T[K]) => void) : (data: T[K]) => void };
|
|
476
|
+
declare const RpcService_base: (abstract new () => {
|
|
477
|
+
ctx: {
|
|
478
|
+
http: HttpService;
|
|
479
|
+
};
|
|
480
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
481
|
+
evaluate(): void | Promise<void>;
|
|
482
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
483
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
484
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
485
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
486
|
+
}) & {
|
|
487
|
+
key: "rpc";
|
|
488
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
489
|
+
key: string;
|
|
490
|
+
})>;
|
|
491
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
492
|
+
key: string;
|
|
493
|
+
})> = {}>(config: {
|
|
494
|
+
key: TKey;
|
|
495
|
+
deps?: TDeps;
|
|
496
|
+
}): (abstract new () => {
|
|
497
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
498
|
+
key: string;
|
|
499
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
500
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
501
|
+
evaluate(): void | Promise<void>;
|
|
502
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
503
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
504
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
505
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
506
|
+
}) & {
|
|
507
|
+
key: TKey;
|
|
508
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
509
|
+
key: string;
|
|
510
|
+
})>;
|
|
511
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
512
|
+
key: string;
|
|
513
|
+
})> = {}>(config: {
|
|
514
|
+
key: TKey;
|
|
515
|
+
deps?: TDeps;
|
|
516
|
+
}): /*elided*/any;
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
declare class RpcService extends RpcService_base {
|
|
520
|
+
private _emit;
|
|
521
|
+
get emit(): EmitProxy<ResolvedEvents>;
|
|
522
|
+
evaluate(): void;
|
|
523
|
+
}
|
|
524
|
+
//#endregion
|
|
525
|
+
//#region src/services/window.d.ts
|
|
526
|
+
declare const WindowService_base: (abstract new () => {
|
|
527
|
+
ctx: {
|
|
528
|
+
baseWindow: BaseWindowService;
|
|
529
|
+
viewRegistry: ViewRegistryService;
|
|
530
|
+
http: HttpService;
|
|
531
|
+
rendererHost: RendererHostService;
|
|
532
|
+
};
|
|
533
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
534
|
+
evaluate(): void | Promise<void>;
|
|
535
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
536
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
537
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
538
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
539
|
+
}) & {
|
|
540
|
+
key: "window";
|
|
541
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
542
|
+
key: string;
|
|
543
|
+
})>;
|
|
544
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
545
|
+
key: string;
|
|
546
|
+
})> = {}>(config: {
|
|
547
|
+
key: TKey;
|
|
548
|
+
deps?: TDeps;
|
|
549
|
+
}): (abstract new () => {
|
|
550
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
551
|
+
key: string;
|
|
552
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
553
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
554
|
+
evaluate(): void | Promise<void>;
|
|
555
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
556
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
557
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
558
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
559
|
+
}) & {
|
|
560
|
+
key: TKey;
|
|
561
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
562
|
+
key: string;
|
|
563
|
+
})>;
|
|
564
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
565
|
+
key: string;
|
|
566
|
+
})> = {}>(config: {
|
|
567
|
+
key: TKey;
|
|
568
|
+
deps?: TDeps;
|
|
569
|
+
}): /*elided*/any;
|
|
570
|
+
};
|
|
571
|
+
};
|
|
572
|
+
declare class WindowService extends WindowService_base {
|
|
573
|
+
private mounted;
|
|
574
|
+
evaluate(): void;
|
|
575
|
+
openView(args: {
|
|
576
|
+
type: string;
|
|
577
|
+
windowId?: string;
|
|
578
|
+
query?: Record<string, string | number | boolean | null | undefined>;
|
|
579
|
+
view?: {
|
|
580
|
+
backgroundColor?: string;
|
|
581
|
+
webPreferences?: WebPreferences;
|
|
582
|
+
};
|
|
583
|
+
}): Promise<{
|
|
584
|
+
windowId: string;
|
|
585
|
+
}>;
|
|
586
|
+
focusWindow(windowId: string): Promise<{
|
|
587
|
+
ok: true;
|
|
588
|
+
}>;
|
|
589
|
+
pickFiles(): Promise<string[] | null>;
|
|
590
|
+
pickDirectory(): Promise<string | null>;
|
|
591
|
+
openExternal(url: string): Promise<void>;
|
|
592
|
+
openPath(filePath: string): Promise<void>;
|
|
593
|
+
copyToClipboard(text: string): void;
|
|
594
|
+
}
|
|
595
|
+
//#endregion
|
|
596
|
+
//#region src/shared/pm-install.d.ts
|
|
597
|
+
/**
|
|
598
|
+
* Bundled-toolchain `<pm> install` helpers.
|
|
599
|
+
*
|
|
600
|
+
* Imported by both:
|
|
601
|
+
* - `packages/core/src/launcher.ts` (tsdown inlines this into
|
|
602
|
+
* `dist/launcher.mjs`; the launcher cannot `import "@zenbujs/core"`)
|
|
603
|
+
* - `packages/core/src/services/updater.ts` (resolved through normal
|
|
604
|
+
* `@zenbujs/core/...` resolution at runtime)
|
|
605
|
+
*
|
|
606
|
+
* Both call sites operate on the apps-dir (`~/.zenbu/apps/<name>/`) and
|
|
607
|
+
* the .app's `Resources/` (where `provisionToolchain` staged
|
|
608
|
+
* `bun`, `pnpm`, etc.). The launcher kicks off the FIRST install at
|
|
609
|
+
* launch; the updater service runs the SAME logic when an `update()`
|
|
610
|
+
* lockfile-diff says deps drifted.
|
|
611
|
+
*/
|
|
612
|
+
type PackageManagerSpec = {
|
|
613
|
+
type: "pnpm";
|
|
614
|
+
version: string;
|
|
615
|
+
} | {
|
|
616
|
+
type: "npm";
|
|
617
|
+
version: string;
|
|
618
|
+
} | {
|
|
619
|
+
type: "yarn";
|
|
620
|
+
version: string;
|
|
621
|
+
} | {
|
|
622
|
+
type: "bun";
|
|
623
|
+
version: string;
|
|
624
|
+
};
|
|
625
|
+
//#endregion
|
|
626
|
+
//#region src/services/updater.d.ts
|
|
627
|
+
type UpdaterPhase = {
|
|
628
|
+
phase: "idle";
|
|
629
|
+
} | {
|
|
630
|
+
phase: "checking";
|
|
631
|
+
} | {
|
|
632
|
+
phase: "fetching";
|
|
633
|
+
loaded?: number;
|
|
634
|
+
total?: number;
|
|
635
|
+
ratio?: number;
|
|
636
|
+
} | {
|
|
637
|
+
phase: "resolving";
|
|
638
|
+
depthConsidered: number;
|
|
639
|
+
} | {
|
|
640
|
+
phase: "installing";
|
|
641
|
+
pm: string;
|
|
642
|
+
line?: string;
|
|
643
|
+
loaded?: number;
|
|
644
|
+
total?: number;
|
|
645
|
+
ratio?: number;
|
|
646
|
+
} | {
|
|
647
|
+
phase: "applied";
|
|
648
|
+
sha: string;
|
|
649
|
+
reranInstall: boolean;
|
|
650
|
+
} | {
|
|
651
|
+
phase: "up-to-date";
|
|
652
|
+
sha: string;
|
|
653
|
+
} | {
|
|
654
|
+
phase: "incompatible";
|
|
655
|
+
remoteHead: string;
|
|
656
|
+
reason: string;
|
|
657
|
+
} | {
|
|
658
|
+
phase: "error";
|
|
659
|
+
message: string;
|
|
660
|
+
};
|
|
661
|
+
interface UpdaterInfo {
|
|
662
|
+
mode: "bundle" | "dev";
|
|
663
|
+
appsDir: string | null;
|
|
664
|
+
hostVersion: string | null;
|
|
665
|
+
currentSha: string | null;
|
|
666
|
+
mirror: {
|
|
667
|
+
url: string;
|
|
668
|
+
branch: string;
|
|
669
|
+
} | null;
|
|
670
|
+
packageManager: PackageManagerSpec | null;
|
|
671
|
+
}
|
|
672
|
+
interface UpdaterCheckResult {
|
|
673
|
+
status: "ok" | "dev-mode" | "error" | "no-mirror" | "no-host-version";
|
|
674
|
+
currentSha: string | null;
|
|
675
|
+
targetSha: string | null;
|
|
676
|
+
tipSha: string | null;
|
|
677
|
+
hasUpdate: boolean;
|
|
678
|
+
incompatibleHead: boolean;
|
|
679
|
+
error?: string;
|
|
680
|
+
}
|
|
681
|
+
interface UpdaterUpdateResult {
|
|
682
|
+
status: "applied" | "up-to-date" | "incompatible" | "dirty-tree" | "dev-mode" | "no-mirror" | "no-host-version" | "in-progress" | "error";
|
|
683
|
+
appliedSha?: string;
|
|
684
|
+
reranInstall?: boolean;
|
|
685
|
+
error?: string;
|
|
686
|
+
}
|
|
687
|
+
declare const UpdaterService_base: (abstract new () => {
|
|
688
|
+
ctx: {};
|
|
689
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
690
|
+
evaluate(): void | Promise<void>;
|
|
691
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
692
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
693
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
694
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
695
|
+
}) & {
|
|
696
|
+
key: "updater";
|
|
697
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
698
|
+
key: string;
|
|
699
|
+
})>;
|
|
700
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
701
|
+
key: string;
|
|
702
|
+
})> = {}>(config: {
|
|
703
|
+
key: TKey;
|
|
704
|
+
deps?: TDeps;
|
|
705
|
+
}): (abstract new () => {
|
|
706
|
+
ctx: { [K in keyof TDeps]: TDeps[K] extends infer T ? T extends TDeps[K] ? T extends (abstract new (...args: any[]) => Service) & {
|
|
707
|
+
key: string;
|
|
708
|
+
} ? InstanceType<T> : unknown : never : never };
|
|
709
|
+
__setupCleanups: Map<string, (reason: CleanupReason) => void | Promise<void>>;
|
|
710
|
+
evaluate(): void | Promise<void>;
|
|
711
|
+
setup(key: string, fn: () => void | ((reason: CleanupReason) => void | Promise<void>)): void;
|
|
712
|
+
trace<T>(_name: string, fn: () => T | Promise<T>, _meta?: Record<string, unknown>): Promise<T>;
|
|
713
|
+
traceSync<T>(_name: string, fn: () => T, _meta?: Record<string, unknown>): T;
|
|
714
|
+
__cleanupAllSetups(reason?: CleanupReason): Promise<void>;
|
|
715
|
+
}) & {
|
|
716
|
+
key: TKey;
|
|
717
|
+
deps: Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
718
|
+
key: string;
|
|
719
|
+
})>;
|
|
720
|
+
create<TKey extends string, TDeps extends Record<string, string | ((abstract new (...args: any[]) => Service) & {
|
|
721
|
+
key: string;
|
|
722
|
+
})> = {}>(config: {
|
|
723
|
+
key: TKey;
|
|
724
|
+
deps?: TDeps;
|
|
725
|
+
}): /*elided*/any;
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
declare class UpdaterService extends UpdaterService_base {
|
|
729
|
+
status: UpdaterPhase;
|
|
730
|
+
private listeners;
|
|
731
|
+
private inflight;
|
|
732
|
+
private pollDisposers;
|
|
733
|
+
evaluate(): void;
|
|
734
|
+
/**
|
|
735
|
+
* Returns the current `UpdaterPhase`. Cheap; safe to poll from the
|
|
736
|
+
* renderer at ~250ms cadence to drive a progress UI while
|
|
737
|
+
* `update()` runs.
|
|
738
|
+
*/
|
|
739
|
+
getStatus(): Promise<UpdaterPhase>;
|
|
740
|
+
/**
|
|
741
|
+
* Synchronous-ish snapshot of the updater's environment. Doesn't
|
|
742
|
+
* touch the network. `currentSha` is read off-disk so very recent
|
|
743
|
+
* checkouts may lag by a few ms; callers that care about exactness
|
|
744
|
+
* should call `check()` first.
|
|
745
|
+
*/
|
|
746
|
+
getInfo(): Promise<UpdaterInfo>;
|
|
747
|
+
/**
|
|
748
|
+
* Fetch + resolve target sha without touching the working tree. Use
|
|
749
|
+
* this for "is there an update?" UI. Cheap enough to call on a timer.
|
|
750
|
+
*/
|
|
751
|
+
check(): Promise<UpdaterCheckResult>;
|
|
752
|
+
/**
|
|
753
|
+
* Apply the latest compatible commit. Pauses HMR while git operations
|
|
754
|
+
* and `<pm> install` run, so the renderer never sees a half-applied
|
|
755
|
+
* tree. Refuses when the apps-dir has uncommitted edits.
|
|
756
|
+
*/
|
|
757
|
+
update(opts?: {
|
|
758
|
+
dryRun?: boolean;
|
|
759
|
+
}): Promise<UpdaterUpdateResult>;
|
|
760
|
+
/**
|
|
761
|
+
* Subscribe to phase transitions. Fires synchronously with the
|
|
762
|
+
* current status on attach so callers can render initial state
|
|
763
|
+
* without a separate read.
|
|
764
|
+
*/
|
|
765
|
+
onChange(cb: (s: UpdaterPhase) => void): () => void;
|
|
766
|
+
/**
|
|
767
|
+
* Convenience polling loop. Calls `check()` every `intervalMs` and,
|
|
768
|
+
* when `autoApply` is set, invokes `update()` whenever a new
|
|
769
|
+
* compatible target is found. Returns a disposer.
|
|
770
|
+
*/
|
|
771
|
+
startPolling(intervalMs: number, opts?: {
|
|
772
|
+
autoApply?: boolean;
|
|
773
|
+
}): () => void;
|
|
774
|
+
private loadContext;
|
|
775
|
+
private setStatus;
|
|
776
|
+
private makeReporter;
|
|
777
|
+
private makeInstallReporter;
|
|
778
|
+
}
|
|
779
|
+
//#endregion
|
|
780
|
+
export { MAIN_WINDOW_ID as a, DbService as c, ServerService as d, BaseWindowService as i, HttpService as l, WindowService as n, RendererHostService as o, RpcService as r, ViewRegistryService as s, UpdaterService as t, ReloaderService as u };
|