@omujs/omu 0.9.43 → 0.9.48
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 +43 -0
- package/package.json +1 -1
- package/src/api/dashboard/extension.ts +17 -8
- package/src/api/dashboard/handler.ts +1 -1
- package/src/api/registry/extension.ts +109 -23
- package/src/network/network.ts +5 -0
- package/src/omu.ts +1 -0
- package/src/serialize/bytebuffer.ts +8 -0
- package/src/version.ts +1 -1
- package/dist/dts/address.d.ts +0 -6
- package/dist/dts/api/asset/extension.d.ts +0 -25
- package/dist/dts/api/asset/index.d.ts +0 -2
- package/dist/dts/api/dashboard/extension.d.ts +0 -181
- package/dist/dts/api/dashboard/handler.d.ts +0 -22
- package/dist/dts/api/dashboard/index.d.ts +0 -3
- package/dist/dts/api/dashboard/packets.d.ts +0 -73
- package/dist/dts/api/endpoint/endpoint.d.ts +0 -32
- package/dist/dts/api/endpoint/extension.d.ts +0 -23
- package/dist/dts/api/endpoint/index.d.ts +0 -2
- package/dist/dts/api/endpoint/packets.d.ts +0 -51
- package/dist/dts/api/extension-registry.d.ts +0 -8
- package/dist/dts/api/extension.d.ts +0 -11
- package/dist/dts/api/http/extension.d.ts +0 -41
- package/dist/dts/api/http/http.d.ts +0 -36
- package/dist/dts/api/http/index.d.ts +0 -2
- package/dist/dts/api/http/websocket.d.ts +0 -123
- package/dist/dts/api/i18n/extension.d.ts +0 -19
- package/dist/dts/api/i18n/index.d.ts +0 -1
- package/dist/dts/api/index.d.ts +0 -2
- package/dist/dts/api/logger/extension.d.ts +0 -25
- package/dist/dts/api/logger/index.d.ts +0 -1
- package/dist/dts/api/logger/packets.d.ts +0 -18
- package/dist/dts/api/permission/extension.d.ts +0 -19
- package/dist/dts/api/permission/index.d.ts +0 -1
- package/dist/dts/api/permission/permission.d.ts +0 -25
- package/dist/dts/api/plugin/extension.d.ts +0 -43
- package/dist/dts/api/plugin/index.d.ts +0 -2
- package/dist/dts/api/plugin/package-info.d.ts +0 -84
- package/dist/dts/api/registry/extension.d.ts +0 -26
- package/dist/dts/api/registry/index.d.ts +0 -2
- package/dist/dts/api/registry/packets.d.ts +0 -20
- package/dist/dts/api/registry/registry.d.ts +0 -57
- package/dist/dts/api/server/extension.d.ts +0 -61
- package/dist/dts/api/server/index.d.ts +0 -1
- package/dist/dts/api/session/extension.d.ts +0 -52
- package/dist/dts/api/session/index.d.ts +0 -1
- package/dist/dts/api/signal/extension.d.ts +0 -22
- package/dist/dts/api/signal/index.d.ts +0 -1
- package/dist/dts/api/signal/packets.d.ts +0 -21
- package/dist/dts/api/signal/signal.d.ts +0 -33
- package/dist/dts/api/table/extension.d.ts +0 -29
- package/dist/dts/api/table/index.d.ts +0 -2
- package/dist/dts/api/table/packets.d.ts +0 -65
- package/dist/dts/api/table/table.d.ts +0 -76
- package/dist/dts/app.d.ts +0 -49
- package/dist/dts/const.d.ts +0 -2
- package/dist/dts/errors.d.ts +0 -36
- package/dist/dts/event/index.d.ts +0 -6
- package/dist/dts/helper.d.ts +0 -13
- package/dist/dts/identifier.d.ts +0 -51
- package/dist/dts/index.d.ts +0 -36
- package/dist/dts/localization/index.d.ts +0 -2
- package/dist/dts/localization/locale.d.ts +0 -735
- package/dist/dts/localization/localization.d.ts +0 -5
- package/dist/dts/lock.d.ts +0 -6
- package/dist/dts/network/connection.d.ts +0 -17
- package/dist/dts/network/encryption.d.ts +0 -38
- package/dist/dts/network/frame-transport.d.ts +0 -22
- package/dist/dts/network/index.d.ts +0 -5
- package/dist/dts/network/network.d.ts +0 -58
- package/dist/dts/network/packet/index.d.ts +0 -2
- package/dist/dts/network/packet/packet-types.d.ts +0 -84
- package/dist/dts/network/packet/packet.d.ts +0 -28
- package/dist/dts/network/websocket-transport.d.ts +0 -24
- package/dist/dts/omu.d.ts +0 -61
- package/dist/dts/result.d.ts +0 -41
- package/dist/dts/serialize/bytebuffer.d.ts +0 -71
- package/dist/dts/serialize/index.d.ts +0 -2
- package/dist/dts/serialize/serializer.d.ts +0 -38
- package/dist/dts/token.d.ts +0 -14
- package/dist/dts/version.d.ts +0 -2
- package/dist/esm/address.js +0 -4
- package/dist/esm/api/asset/extension.js +0 -905
- package/dist/esm/api/asset/index.js +0 -903
- package/dist/esm/api/dashboard/extension.js +0 -1343
- package/dist/esm/api/dashboard/handler.js +0 -4
- package/dist/esm/api/dashboard/index.js +0 -1342
- package/dist/esm/api/dashboard/packets.js +0 -413
- package/dist/esm/api/endpoint/endpoint.js +0 -383
- package/dist/esm/api/endpoint/extension.js +0 -1090
- package/dist/esm/api/endpoint/index.js +0 -383
- package/dist/esm/api/endpoint/packets.js +0 -793
- package/dist/esm/api/extension-registry.js +0 -23
- package/dist/esm/api/extension.js +0 -278
- package/dist/esm/api/http/extension.js +0 -1414
- package/dist/esm/api/http/http.js +0 -442
- package/dist/esm/api/http/index.js +0 -1413
- package/dist/esm/api/http/websocket.js +0 -220
- package/dist/esm/api/i18n/extension.js +0 -1270
- package/dist/esm/api/i18n/index.js +0 -1268
- package/dist/esm/api/index.js +0 -295
- package/dist/esm/api/logger/extension.js +0 -850
- package/dist/esm/api/logger/index.js +0 -846
- package/dist/esm/api/logger/packets.js +0 -667
- package/dist/esm/api/permission/extension.js +0 -535
- package/dist/esm/api/permission/index.js +0 -294
- package/dist/esm/api/permission/permission.js +0 -294
- package/dist/esm/api/plugin/extension.js +0 -531
- package/dist/esm/api/plugin/index.js +0 -529
- package/dist/esm/api/plugin/package-info.js +0 -4
- package/dist/esm/api/registry/extension.js +0 -1217
- package/dist/esm/api/registry/index.js +0 -1216
- package/dist/esm/api/registry/packets.js +0 -688
- package/dist/esm/api/registry/registry.js +0 -383
- package/dist/esm/api/server/extension.js +0 -2071
- package/dist/esm/api/server/index.js +0 -2049
- package/dist/esm/api/session/extension.js +0 -2166
- package/dist/esm/api/session/index.js +0 -2166
- package/dist/esm/api/signal/extension.js +0 -1025
- package/dist/esm/api/signal/index.js +0 -379
- package/dist/esm/api/signal/packets.js +0 -684
- package/dist/esm/api/signal/signal.js +0 -379
- package/dist/esm/api/table/extension.js +0 -1547
- package/dist/esm/api/table/index.js +0 -1546
- package/dist/esm/api/table/packets.js +0 -898
- package/dist/esm/api/table/table.js +0 -383
- package/dist/esm/app.js +0 -264
- package/dist/esm/const.js +0 -11
- package/dist/esm/errors.js +0 -548
- package/dist/esm/event/index.js +0 -22
- package/dist/esm/helper.js +0 -15
- package/dist/esm/identifier.js +0 -266
- package/dist/esm/index.js +0 -5099
- package/dist/esm/localization/index.js +0 -742
- package/dist/esm/localization/locale.js +0 -742
- package/dist/esm/localization/localization.js +0 -4
- package/dist/esm/lock.js +0 -46
- package/dist/esm/network/connection.js +0 -293
- package/dist/esm/network/encryption.js +0 -980
- package/dist/esm/network/frame-transport.js +0 -525
- package/dist/esm/network/index.js +0 -1617
- package/dist/esm/network/network.js +0 -1358
- package/dist/esm/network/packet/index.js +0 -485
- package/dist/esm/network/packet/packet-types.js +0 -486
- package/dist/esm/network/packet/packet.js +0 -126
- package/dist/esm/network/websocket-transport.js +0 -487
- package/dist/esm/omu.js +0 -4858
- package/dist/esm/result.js +0 -68
- package/dist/esm/serialize/bytebuffer.js +0 -378
- package/dist/esm/serialize/index.js +0 -465
- package/dist/esm/serialize/serializer.js +0 -97
- package/dist/esm/token.js +0 -42
- package/dist/esm/version.js +0 -11
- package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,49 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 0.9.48 (2025-12-18)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @omujs/omu
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## 0.9.47 (2025-12-18)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @omujs/omu
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## 0.9.46 (2025-12-09)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @omujs/omu
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 0.9.45 (2025-11-23)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* **dash:** token.txtを生成できない場合のエラーメッセージを修正 ([29d4c34](https://github.com/OMUAPPS/omuapps/commit/29d4c34e1fbfa60b909a56d7fbcc5e65c3424cae))
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## 0.9.44 (2025-11-22)
|
|
42
|
+
|
|
43
|
+
**Note:** Version bump only for package @omujs/omu
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
6
49
|
## 0.9.43 (2025-11-22)
|
|
7
50
|
|
|
8
51
|
**Note:** Version bump only for package @omujs/omu
|
package/package.json
CHANGED
|
@@ -340,12 +340,12 @@ export class DashboardExtension {
|
|
|
340
340
|
DASHBOARD_PROMPT_REQUEST,
|
|
341
341
|
DASHBOARD_PROMPT_RESPONSE,
|
|
342
342
|
);
|
|
343
|
-
omu.network.addPacketHandler(DASHBOARD_PROMPT_REQUEST, (request) =>
|
|
344
|
-
this.handlePromptRequest(request)
|
|
345
|
-
);
|
|
346
|
-
omu.network.addPacketHandler(DASHBOARD_OPEN_APP_PACKET, (app) =>
|
|
347
|
-
this.handleOpenApp(app)
|
|
348
|
-
);
|
|
343
|
+
omu.network.addPacketHandler(DASHBOARD_PROMPT_REQUEST, (request) => {
|
|
344
|
+
this.handlePromptRequest(request);
|
|
345
|
+
});
|
|
346
|
+
omu.network.addPacketHandler(DASHBOARD_OPEN_APP_PACKET, (app) => {
|
|
347
|
+
this.handleOpenApp(app);
|
|
348
|
+
});
|
|
349
349
|
omu.network.addPacketHandler(DASHBOARD_DRAG_DROP_REQUEST_PACKET, (request) => {
|
|
350
350
|
this.handleDragDropRequest(request);
|
|
351
351
|
});
|
|
@@ -444,15 +444,24 @@ export class DashboardExtension {
|
|
|
444
444
|
}
|
|
445
445
|
this.dashboard = dashboard;
|
|
446
446
|
|
|
447
|
+
this.omu.server.apps.event.remove.listen(async (apps) => {
|
|
448
|
+
for (const app of apps.values()) {
|
|
449
|
+
const hosts = await this.allowedHosts.get(app.id.key());
|
|
450
|
+
if (!hosts) continue;
|
|
451
|
+
this.allowedHosts.remove(hosts);
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
|
|
447
455
|
const requireHost = async (params: InvokedParams, host: string): Promise<UserResponse<undefined>> => {
|
|
448
456
|
const id = params.caller.key();
|
|
449
457
|
const hostEntry: AllowedHost = await this.allowedHosts.get(id) ?? { id: id, hosts: [] };
|
|
450
458
|
const allowed = hostEntry.hosts.includes(host);
|
|
451
459
|
if (!allowed) {
|
|
452
|
-
const result = await dashboard.
|
|
460
|
+
const result = await dashboard.handleHostRequest({
|
|
453
461
|
host,
|
|
454
462
|
}, params);
|
|
455
|
-
if (result
|
|
463
|
+
if (result === 'accept') {
|
|
464
|
+
const hostEntry: AllowedHost = await this.allowedHosts.get(id) ?? { id: id, hosts: [] };
|
|
456
465
|
hostEntry.hosts.push(host);
|
|
457
466
|
await this.allowedHosts.update(hostEntry);
|
|
458
467
|
} else {
|
|
@@ -15,8 +15,8 @@ export interface DashboardHandler {
|
|
|
15
15
|
handleOpenApp(app: App): Promise<void>;
|
|
16
16
|
handleDragDropRequest(request: DragDropRequestDashboard): Promise<boolean>;
|
|
17
17
|
handleDragDropReadRequest(request: DragDropReadRequestDashboard): Promise<DragDropReadResponse>;
|
|
18
|
+
handleHostRequest(request: HostRequest, params: InvokedParams): Promise<PromptResult>;
|
|
18
19
|
getCookies(request: GetCookiesRequest): Promise<UserResponse<Cookie[]>>;
|
|
19
|
-
hostRequested(request: HostRequest, params: InvokedParams): Promise<UserResponse>;
|
|
20
20
|
createWebview(request: WebviewRequest, params: InvokedParams, emit: (event: WebviewEvent) => Promise<void>): Promise<Identifier>;
|
|
21
21
|
getWebview(request: WebviewPacket, params: InvokedParams): Promise<Identifier | undefined>;
|
|
22
22
|
closeWebview(request: WebviewPacket, params: InvokedParams): Promise<Identifier | undefined>;
|
|
@@ -164,51 +164,137 @@ class RegistryImpl<T> implements Registry<T> {
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
public compatSvelte(): Writable<T> {
|
|
167
|
-
let
|
|
168
|
-
|
|
167
|
+
let isReady = false;
|
|
168
|
+
const context = {
|
|
169
|
+
changed: false,
|
|
170
|
+
markChanged: () => {
|
|
171
|
+
context.changed = true;
|
|
172
|
+
this.#set(this.value);
|
|
173
|
+
handle(this.value);
|
|
174
|
+
},
|
|
175
|
+
};
|
|
169
176
|
const listeners = new Set<(value: T) => void>();
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
+
|
|
178
|
+
const handle = (newValue: T) => {
|
|
179
|
+
isReady = true;
|
|
180
|
+
emit(newValue);
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
const unsubscribe = this.listen(handle);
|
|
184
|
+
|
|
185
|
+
const emit = (value: T) => {
|
|
186
|
+
this.value = value;
|
|
187
|
+
const proxied = proxy(value, context);
|
|
188
|
+
listeners.forEach(listener => listener(proxied));
|
|
189
|
+
};
|
|
190
|
+
|
|
177
191
|
return {
|
|
178
192
|
set: (value: T) => {
|
|
179
|
-
if (!
|
|
193
|
+
if (!isReady) {
|
|
180
194
|
throw new Error(`Registry ${this.type.id.key()} is not ready`);
|
|
181
195
|
}
|
|
182
|
-
|
|
196
|
+
const proxied = value?.[PROXIED_SYMBOL];
|
|
197
|
+
if (proxied && !context.changed) return;
|
|
198
|
+
this.#set(value);
|
|
199
|
+
emit(value);
|
|
200
|
+
context.changed = false;
|
|
183
201
|
},
|
|
184
|
-
subscribe: (run) => {
|
|
202
|
+
subscribe: (run: (value: T) => void) => {
|
|
185
203
|
listeners.add(run);
|
|
186
|
-
run(value);
|
|
204
|
+
run(proxy(this.value, context));
|
|
205
|
+
|
|
187
206
|
return () => {
|
|
188
207
|
listeners.delete(run);
|
|
208
|
+
if (listeners.size === 0) {
|
|
209
|
+
unsubscribe?.();
|
|
210
|
+
}
|
|
189
211
|
};
|
|
190
212
|
},
|
|
191
|
-
update: (fn) => {
|
|
192
|
-
if (!
|
|
213
|
+
update: (fn: (value: T) => T) => {
|
|
214
|
+
if (!isReady) {
|
|
193
215
|
throw new Error(`Registry ${this.type.id.key()} is not ready`);
|
|
194
216
|
}
|
|
195
217
|
this.update(fn);
|
|
196
218
|
},
|
|
197
|
-
wait: () => {
|
|
198
|
-
return
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
219
|
+
wait: (): Promise<T> => {
|
|
220
|
+
return isReady
|
|
221
|
+
? Promise.resolve(this.value)
|
|
222
|
+
: new Promise(resolve => {
|
|
223
|
+
const unsubscribe = this.listen((value: T) => {
|
|
224
|
+
unsubscribe?.();
|
|
203
225
|
resolve(value);
|
|
204
226
|
});
|
|
205
|
-
}
|
|
206
|
-
});
|
|
227
|
+
});
|
|
207
228
|
},
|
|
208
229
|
};
|
|
209
230
|
}
|
|
210
231
|
}
|
|
211
232
|
|
|
233
|
+
const PROXIED_SYMBOL = Symbol('ProxiedRegistry');
|
|
234
|
+
|
|
235
|
+
function deepEqual(objA, objB) {
|
|
236
|
+
if (objA === objB) return true; // Check for referential equality and primitive values
|
|
237
|
+
|
|
238
|
+
if (
|
|
239
|
+
typeof objA !== 'object' ||
|
|
240
|
+
typeof objB !== 'object' ||
|
|
241
|
+
objA === null ||
|
|
242
|
+
objB === null
|
|
243
|
+
) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const keysA = Object.keys(objA);
|
|
248
|
+
const keysB = Object.keys(objB);
|
|
249
|
+
|
|
250
|
+
if (keysA.length !== keysB.length) return false; // Different number of properties
|
|
251
|
+
|
|
252
|
+
for (const key of keysA) {
|
|
253
|
+
if (!keysB.includes(key) || !deepEqual(objA[key], objB[key])) {
|
|
254
|
+
return false; // Property missing or values are not deeply equal
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return true; // All properties and their values are deeply equal
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
type ProxyContext = {
|
|
262
|
+
changed: boolean;
|
|
263
|
+
markChanged: () => void;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
function proxy<T>(
|
|
267
|
+
value: T,
|
|
268
|
+
context: ProxyContext,
|
|
269
|
+
) {
|
|
270
|
+
if (typeof value !== 'object' || value === null) {
|
|
271
|
+
return value;
|
|
272
|
+
}
|
|
273
|
+
if (PROXIED_SYMBOL in value) {
|
|
274
|
+
return value;
|
|
275
|
+
}
|
|
276
|
+
let changed = false;
|
|
277
|
+
return new Proxy(value, {
|
|
278
|
+
set(target, prop, value) {
|
|
279
|
+
changed = !deepEqual(target[prop], value);
|
|
280
|
+
if (!changed) return true;
|
|
281
|
+
target[prop] = value;
|
|
282
|
+
context.markChanged();
|
|
283
|
+
return true;
|
|
284
|
+
},
|
|
285
|
+
get(target, prop) {
|
|
286
|
+
if (prop === PROXIED_SYMBOL) {
|
|
287
|
+
return value;
|
|
288
|
+
}
|
|
289
|
+
return proxy(target[prop], context);
|
|
290
|
+
},
|
|
291
|
+
has(target, p) {
|
|
292
|
+
if (p === PROXIED_SYMBOL) return true;
|
|
293
|
+
return p in target;
|
|
294
|
+
},
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
|
|
212
298
|
export const REGISTRY_EXTENSION_TYPE: ExtensionType<RegistryExtension> = new ExtensionType(
|
|
213
299
|
'registry',
|
|
214
300
|
(omu: Omu) => new RegistryExtension(omu),
|
package/src/network/network.ts
CHANGED
package/src/omu.ts
CHANGED
|
@@ -257,6 +257,14 @@ export class ByteWriter {
|
|
|
257
257
|
this.finished = true;
|
|
258
258
|
return new Uint8Array(this.buffer, 0, this.offset);
|
|
259
259
|
}
|
|
260
|
+
|
|
261
|
+
public toUint8Array(): Uint8Array {
|
|
262
|
+
return new Uint8Array(this.buffer, 0, this.offset);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
public toArrayBuffer(): ArrayBuffer {
|
|
266
|
+
return this.buffer.slice(0, this.offset);
|
|
267
|
+
}
|
|
260
268
|
}
|
|
261
269
|
|
|
262
270
|
export class ByteReader {
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.9.
|
|
1
|
+
export const VERSION = '0.9.48';
|
|
2
2
|
export const VERSION_MINOR = '0.9.0';
|
package/dist/dts/address.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Identifier, IntoId } from "../../identifier";
|
|
2
|
-
import { Omu } from "../../omu";
|
|
3
|
-
import { ExtensionType } from "../extension.js";
|
|
4
|
-
export declare const ASSET_EXTENSION_TYPE: ExtensionType<AssetExtension>;
|
|
5
|
-
export type Asset = {
|
|
6
|
-
id: Identifier;
|
|
7
|
-
buffer: Uint8Array;
|
|
8
|
-
};
|
|
9
|
-
export declare const ASSET_PERMISSION_ID: Identifier;
|
|
10
|
-
export declare class AssetExtension {
|
|
11
|
-
private readonly omu;
|
|
12
|
-
readonly type: ExtensionType<AssetExtension>;
|
|
13
|
-
private assetToken;
|
|
14
|
-
constructor(omu: Omu);
|
|
15
|
-
upload(identifier: IntoId, buffer: Uint8Array): Promise<Identifier>;
|
|
16
|
-
uploadMany(...files: Asset[]): Promise<Identifier[]>;
|
|
17
|
-
download(identifier: IntoId): Promise<Asset>;
|
|
18
|
-
downloadMany(...identifiers: IntoId[]): Promise<Asset[]>;
|
|
19
|
-
delete(identifier: IntoId): Promise<void>;
|
|
20
|
-
private requestGenerateAssetToken;
|
|
21
|
-
url(id: IntoId, options?: {
|
|
22
|
-
cache?: "no-cache";
|
|
23
|
-
}): string;
|
|
24
|
-
proxy(url: string): string;
|
|
25
|
-
}
|
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
import { App, AppJson } from "../../app.js";
|
|
2
|
-
import { Identifier } from "../../identifier";
|
|
3
|
-
import { Omu } from "../../omu.js";
|
|
4
|
-
import { PromiseResult } from "../../result.js";
|
|
5
|
-
import { ExtensionType } from "../extension.js";
|
|
6
|
-
import { PermissionTypeJson } from "../permission/permission.js";
|
|
7
|
-
import { PackageInfo } from "../plugin/package-info.js";
|
|
8
|
-
import { Registry } from "../registry/registry.js";
|
|
9
|
-
import { AppIndexRegistryMeta } from "../server/extension.js";
|
|
10
|
-
import type { Table } from "../table/table.js";
|
|
11
|
-
import type { DashboardHandler } from "./handler.js";
|
|
12
|
-
import { AppInstallResponse, DragDrop, DragDropReadResponse, DragEnter, DragLeave, DragOver, FileDragPacket } from "./packets.js";
|
|
13
|
-
export declare const DASHBOARD_EXTENSION_TYPE: ExtensionType<DashboardExtension>;
|
|
14
|
-
export declare const DASHBOARD_SET_PERMISSION_ID: Identifier;
|
|
15
|
-
export declare const DASHBOARD_OPEN_APP_PERMISSION_ID: Identifier;
|
|
16
|
-
export declare const DASHOBARD_APP_READ_PERMISSION_ID: Identifier;
|
|
17
|
-
export declare const DASHOBARD_APP_EDIT_PERMISSION_ID: Identifier;
|
|
18
|
-
export declare const DASHBOARD_APP_INSTALL_PERMISSION_ID: Identifier;
|
|
19
|
-
export declare const DAShBOARD_DRAG_DROP_PERMISSION_ID: Identifier;
|
|
20
|
-
type DragDropHandler = {
|
|
21
|
-
onEnter(fn: (event: DragEnter) => unknown): void;
|
|
22
|
-
onOver(fn: (event: DragOver) => unknown): void;
|
|
23
|
-
onDrop(fn: (event: DragDrop) => unknown): void;
|
|
24
|
-
onLeave(fn: (event: DragLeave) => unknown): void;
|
|
25
|
-
read(id: string): Promise<DragDropReadResponse>;
|
|
26
|
-
};
|
|
27
|
-
export type Cookie = {
|
|
28
|
-
name: string;
|
|
29
|
-
value: string;
|
|
30
|
-
};
|
|
31
|
-
export type WebviewRequest = {
|
|
32
|
-
url: string;
|
|
33
|
-
script?: string;
|
|
34
|
-
};
|
|
35
|
-
export type WebviewPacket = {
|
|
36
|
-
id: string;
|
|
37
|
-
};
|
|
38
|
-
export type UserResponse<T = undefined> = {
|
|
39
|
-
type: "ok";
|
|
40
|
-
value: T;
|
|
41
|
-
} | {
|
|
42
|
-
type: "blocked";
|
|
43
|
-
} | {
|
|
44
|
-
type: "cancelled";
|
|
45
|
-
};
|
|
46
|
-
export type UserError = Exclude<UserResponse, {
|
|
47
|
-
type: "ok";
|
|
48
|
-
}>;
|
|
49
|
-
export type WebviewResponse = UserResponse<WebviewPacket>;
|
|
50
|
-
export declare const DASHBOARD_WEBVIEW_PERMISSION_ID: Identifier;
|
|
51
|
-
export type HostRequest = {
|
|
52
|
-
host: string;
|
|
53
|
-
};
|
|
54
|
-
export type GetCookiesRequest = {
|
|
55
|
-
url: string;
|
|
56
|
-
};
|
|
57
|
-
export type WebviewEvent = {
|
|
58
|
-
type: "closed";
|
|
59
|
-
} | {
|
|
60
|
-
type: "resize";
|
|
61
|
-
dimentions: {
|
|
62
|
-
x: number;
|
|
63
|
-
y: number;
|
|
64
|
-
};
|
|
65
|
-
} | {
|
|
66
|
-
type: "cookie";
|
|
67
|
-
cookies: Cookie[];
|
|
68
|
-
};
|
|
69
|
-
export type WebviewEventListeners = { [K in WebviewEvent["type"]]? : Array<(event: Extract<WebviewEvent, {
|
|
70
|
-
type: K;
|
|
71
|
-
}>) => void> };
|
|
72
|
-
export type WebviewEventPacket = {
|
|
73
|
-
id: Identifier;
|
|
74
|
-
target: Identifier;
|
|
75
|
-
event: WebviewEvent;
|
|
76
|
-
};
|
|
77
|
-
export type WebviewHandle = {
|
|
78
|
-
readonly id: Identifier;
|
|
79
|
-
readonly url: string;
|
|
80
|
-
getCookies(): PromiseResult<Cookie[], UserError>;
|
|
81
|
-
on<T extends WebviewEvent["type"]>(key: T, callback: (event: Extract<WebviewEvent, {
|
|
82
|
-
type: T;
|
|
83
|
-
}>) => void): void;
|
|
84
|
-
close(): Promise<void>;
|
|
85
|
-
join(): Promise<void>;
|
|
86
|
-
};
|
|
87
|
-
export type WebviewEventEmit = <T extends WebviewEvent["type"]>(event: Extract<WebviewEvent, {
|
|
88
|
-
type: T;
|
|
89
|
-
}>) => void;
|
|
90
|
-
type AllowedHost = {
|
|
91
|
-
id: string;
|
|
92
|
-
hosts: string[];
|
|
93
|
-
};
|
|
94
|
-
export declare const DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID: Identifier;
|
|
95
|
-
export type TranscriptSegment = {
|
|
96
|
-
confidence: number;
|
|
97
|
-
transcript: string;
|
|
98
|
-
};
|
|
99
|
-
export type TranscriptStatus = {
|
|
100
|
-
type: "idle";
|
|
101
|
-
} | {
|
|
102
|
-
type: "result";
|
|
103
|
-
timestamp: number;
|
|
104
|
-
segments: TranscriptSegment[];
|
|
105
|
-
} | {
|
|
106
|
-
type: "final";
|
|
107
|
-
timestamp: number;
|
|
108
|
-
segments: TranscriptSegment[];
|
|
109
|
-
} | {
|
|
110
|
-
type: "audio_started";
|
|
111
|
-
timestamp: number;
|
|
112
|
-
} | {
|
|
113
|
-
type: "audio_ended";
|
|
114
|
-
timestamp: number;
|
|
115
|
-
};
|
|
116
|
-
export type SpeechRecognitionStart = {
|
|
117
|
-
type: "start";
|
|
118
|
-
};
|
|
119
|
-
interface PromptRequestBase<T extends string> {
|
|
120
|
-
kind: T;
|
|
121
|
-
id: string;
|
|
122
|
-
}
|
|
123
|
-
export interface PromptRequestAppPermissions extends PromptRequestBase<"app/permissions"> {
|
|
124
|
-
app: AppJson;
|
|
125
|
-
permissions: PermissionTypeJson[];
|
|
126
|
-
}
|
|
127
|
-
export interface PromptRequestAppPlugins extends PromptRequestBase<"app/plugins"> {
|
|
128
|
-
app: AppJson;
|
|
129
|
-
packages: PackageInfo[];
|
|
130
|
-
}
|
|
131
|
-
export interface PromptRequestAppInstall extends PromptRequestBase<"app/install"> {
|
|
132
|
-
app: AppJson;
|
|
133
|
-
dependencies: Record<string, AppJson>;
|
|
134
|
-
}
|
|
135
|
-
export interface PromptRequestAppUpdate extends PromptRequestBase<"app/update"> {
|
|
136
|
-
old_app: AppJson;
|
|
137
|
-
new_app: AppJson;
|
|
138
|
-
dependencies: Record<string, AppJson>;
|
|
139
|
-
}
|
|
140
|
-
export interface PromptRequestIndexInstall extends PromptRequestBase<"index/install"> {
|
|
141
|
-
index_url: string;
|
|
142
|
-
meta?: AppIndexRegistryMeta;
|
|
143
|
-
}
|
|
144
|
-
export interface PortProcess {
|
|
145
|
-
port: number;
|
|
146
|
-
name: string;
|
|
147
|
-
exe: string;
|
|
148
|
-
}
|
|
149
|
-
export interface PromptRequestHttpPort extends PromptRequestBase<"http/port"> {
|
|
150
|
-
app: AppJson;
|
|
151
|
-
processes: PortProcess[];
|
|
152
|
-
}
|
|
153
|
-
export type PromptRequest = (PromptRequestAppPermissions | PromptRequestAppPlugins | PromptRequestAppInstall | PromptRequestAppUpdate | PromptRequestIndexInstall | PromptRequestHttpPort);
|
|
154
|
-
export type PromptResult = "accept" | "deny" | "block";
|
|
155
|
-
export declare class DashboardExtension {
|
|
156
|
-
private readonly omu;
|
|
157
|
-
readonly type: ExtensionType<DashboardExtension>;
|
|
158
|
-
private dashboard;
|
|
159
|
-
private dragDropHandler;
|
|
160
|
-
private dragDropListeners;
|
|
161
|
-
readonly allowedHosts: Table<AllowedHost>;
|
|
162
|
-
readonly speechRecognition: Registry<TranscriptStatus>;
|
|
163
|
-
private readonly webviewHandles;
|
|
164
|
-
constructor(omu: Omu);
|
|
165
|
-
private executeRequestForDashboard;
|
|
166
|
-
private handlePromptRequest;
|
|
167
|
-
private handleOpenApp;
|
|
168
|
-
private handleDragDropRequest;
|
|
169
|
-
private handleDragDropReadRequest;
|
|
170
|
-
private getDashboard;
|
|
171
|
-
set(dashboard: DashboardHandler): void;
|
|
172
|
-
requestWebview(options: WebviewRequest): PromiseResult<WebviewHandle, UserError>;
|
|
173
|
-
getCookies(options: GetCookiesRequest): PromiseResult<Cookie[], UserError>;
|
|
174
|
-
openApp(app: App): Promise<void>;
|
|
175
|
-
installApp(app: App): Promise<AppInstallResponse>;
|
|
176
|
-
clearBlockedPrompts(): Promise<null>;
|
|
177
|
-
requestDragDrop(): Promise<DragDropHandler>;
|
|
178
|
-
notifyDropDragState(packet: FileDragPacket): Promise<void>;
|
|
179
|
-
requestSpeechRecognition(): PromiseResult<Registry<TranscriptStatus>, UserError>;
|
|
180
|
-
}
|
|
181
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { App } from "../../app.js";
|
|
2
|
-
import { Identifier } from "../../identifier";
|
|
3
|
-
import { InvokedParams } from "../endpoint/packets.js";
|
|
4
|
-
import { Cookie, GetCookiesRequest, HostRequest, PromptRequestAppInstall, PromptRequestAppPermissions, PromptRequestAppPlugins, PromptRequestAppUpdate, PromptRequestHttpPort, PromptRequestIndexInstall, PromptResult, SpeechRecognitionStart, UserResponse, WebviewEvent, WebviewPacket, WebviewRequest } from "./extension.js";
|
|
5
|
-
import type { DragDropReadRequestDashboard, DragDropReadResponse, DragDropRequestDashboard } from "./packets.js";
|
|
6
|
-
export interface DashboardHandler {
|
|
7
|
-
handlePermissionRequest(request: PromptRequestAppPermissions): Promise<PromptResult>;
|
|
8
|
-
handlePluginRequest(request: PromptRequestAppPlugins): Promise<PromptResult>;
|
|
9
|
-
handleInstallApp(request: PromptRequestAppInstall): Promise<PromptResult>;
|
|
10
|
-
handleUpdateApp(request: PromptRequestAppUpdate): Promise<PromptResult>;
|
|
11
|
-
handleIndexInstall(request: PromptRequestIndexInstall): Promise<PromptResult>;
|
|
12
|
-
handleHttpPortRequest(request: PromptRequestHttpPort): Promise<PromptResult>;
|
|
13
|
-
handleOpenApp(app: App): Promise<void>;
|
|
14
|
-
handleDragDropRequest(request: DragDropRequestDashboard): Promise<boolean>;
|
|
15
|
-
handleDragDropReadRequest(request: DragDropReadRequestDashboard): Promise<DragDropReadResponse>;
|
|
16
|
-
getCookies(request: GetCookiesRequest): Promise<UserResponse<Cookie[]>>;
|
|
17
|
-
hostRequested(request: HostRequest, params: InvokedParams): Promise<UserResponse>;
|
|
18
|
-
createWebview(request: WebviewRequest, params: InvokedParams, emit: (event: WebviewEvent) => Promise<void>): Promise<Identifier>;
|
|
19
|
-
getWebview(request: WebviewPacket, params: InvokedParams): Promise<Identifier | undefined>;
|
|
20
|
-
closeWebview(request: WebviewPacket, params: InvokedParams): Promise<Identifier | undefined>;
|
|
21
|
-
speechRecognitionStart(request: SpeechRecognitionStart, params: InvokedParams): Promise<UserResponse<undefined>>;
|
|
22
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { Cookie, DASHBOARD_APP_INSTALL_PERMISSION_ID, DAShBOARD_DRAG_DROP_PERMISSION_ID, DASHBOARD_OPEN_APP_PERMISSION_ID, DASHBOARD_SET_PERMISSION_ID, DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID, DASHBOARD_WEBVIEW_PERMISSION_ID, DASHOBARD_APP_EDIT_PERMISSION_ID, DASHOBARD_APP_READ_PERMISSION_ID, GetCookiesRequest, HostRequest, UserResponse, WebviewPacket, WebviewRequest, type PortProcess, type PromptRequest, type PromptRequestAppInstall, type PromptRequestAppPermissions, type PromptRequestAppPlugins, type PromptRequestAppUpdate, type PromptRequestHttpPort, type PromptRequestIndexInstall, type PromptResult, type SpeechRecognitionStart, type TranscriptSegment, type TranscriptStatus, type WebviewEvent } from "./extension.js";
|
|
2
|
-
export type { DashboardHandler } from "./handler";
|
|
3
|
-
export { DragDropFile, DragDropReadRequestDashboard, DragDropReadResponse, DragDropRequestDashboard, FileData } from "./packets.js";
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { App, AppJson } from "../../app.js";
|
|
2
|
-
export type AppInstallResponse = {
|
|
3
|
-
accepted: boolean;
|
|
4
|
-
};
|
|
5
|
-
export type DragDropFile = {
|
|
6
|
-
type: "file" | "directory";
|
|
7
|
-
size: number;
|
|
8
|
-
name: string;
|
|
9
|
-
};
|
|
10
|
-
export type DragDropPosition = {
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
};
|
|
14
|
-
export type DragEnter = {
|
|
15
|
-
type: "enter";
|
|
16
|
-
drag_id: string;
|
|
17
|
-
files: DragDropFile[];
|
|
18
|
-
position: DragDropPosition;
|
|
19
|
-
};
|
|
20
|
-
export type DragOver = {
|
|
21
|
-
type: "over";
|
|
22
|
-
drag_id: string;
|
|
23
|
-
position: DragDropPosition;
|
|
24
|
-
};
|
|
25
|
-
export type DragDrop = {
|
|
26
|
-
type: "drop";
|
|
27
|
-
drag_id: string;
|
|
28
|
-
position: DragDropPosition;
|
|
29
|
-
files: DragDropFile[];
|
|
30
|
-
};
|
|
31
|
-
export type DragLeave = {
|
|
32
|
-
type: "leave";
|
|
33
|
-
drag_id: string;
|
|
34
|
-
};
|
|
35
|
-
export type DragState = DragEnter | DragOver | DragDrop | DragLeave;
|
|
36
|
-
export type FileDragPacket = {
|
|
37
|
-
drag_id: string;
|
|
38
|
-
app: App;
|
|
39
|
-
state: DragState;
|
|
40
|
-
};
|
|
41
|
-
export type DragDropReadRequest = {
|
|
42
|
-
drag_id: string;
|
|
43
|
-
};
|
|
44
|
-
export type DragDropReadRequestDashboard = {
|
|
45
|
-
request_id: string;
|
|
46
|
-
drag_id: string;
|
|
47
|
-
};
|
|
48
|
-
export type DragDropReadMeta = {
|
|
49
|
-
request_id: string;
|
|
50
|
-
drag_id: string;
|
|
51
|
-
files: readonly DragDropFile[];
|
|
52
|
-
};
|
|
53
|
-
export type FileData = {
|
|
54
|
-
file: DragDropFile;
|
|
55
|
-
buffer: Uint8Array;
|
|
56
|
-
};
|
|
57
|
-
export declare class DragDropReadResponse {
|
|
58
|
-
readonly meta: DragDropReadMeta;
|
|
59
|
-
readonly files: Record<string, FileData>;
|
|
60
|
-
readonly version: number;
|
|
61
|
-
constructor(meta: DragDropReadMeta, files: Record<string, FileData>, version?: number);
|
|
62
|
-
static serialize(data: DragDropReadResponse): Uint8Array;
|
|
63
|
-
static deserialize(data: Uint8Array): DragDropReadResponse;
|
|
64
|
-
}
|
|
65
|
-
export type DragDropRequest = object;
|
|
66
|
-
export type DragDropRequestDashboard = {
|
|
67
|
-
request_id: string;
|
|
68
|
-
app: AppJson;
|
|
69
|
-
};
|
|
70
|
-
export type DragDropRequestResponse = {
|
|
71
|
-
request_id: string;
|
|
72
|
-
ok: boolean;
|
|
73
|
-
};
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Identifier, IntoId } from "../../identifier";
|
|
2
|
-
import { JsonType, type Serializable } from "../../serialize";
|
|
3
|
-
export declare class EndpointType<
|
|
4
|
-
Req = unknown,
|
|
5
|
-
Res = unknown
|
|
6
|
-
> {
|
|
7
|
-
readonly id: Identifier;
|
|
8
|
-
readonly requestSerializer: Serializable<Req, Uint8Array>;
|
|
9
|
-
readonly responseSerializer: Serializable<Res, Uint8Array>;
|
|
10
|
-
readonly permissionId?: Identifier | undefined;
|
|
11
|
-
constructor(id: Identifier, requestSerializer: Serializable<Req, Uint8Array>, responseSerializer: Serializable<Res, Uint8Array>, permissionId?: Identifier | undefined);
|
|
12
|
-
static createJson<
|
|
13
|
-
Req,
|
|
14
|
-
Res,
|
|
15
|
-
ReqData extends JsonType = JsonType,
|
|
16
|
-
ResData extends JsonType = JsonType
|
|
17
|
-
>(identifier: IntoId, { name, requestSerializer, responseSerializer, permissionId }: {
|
|
18
|
-
name: string;
|
|
19
|
-
requestSerializer?: Serializable<Req, ReqData>;
|
|
20
|
-
responseSerializer?: Serializable<Res, ResData>;
|
|
21
|
-
permissionId?: IntoId;
|
|
22
|
-
}): EndpointType<Req, Res>;
|
|
23
|
-
static createSerialized<
|
|
24
|
-
Req,
|
|
25
|
-
Res
|
|
26
|
-
>(identifier: IntoId, { name, requestSerializer, responseSerializer, permissionId }: {
|
|
27
|
-
name: string;
|
|
28
|
-
requestSerializer: Serializable<Req, Uint8Array>;
|
|
29
|
-
responseSerializer: Serializable<Res, Uint8Array>;
|
|
30
|
-
permissionId?: IntoId;
|
|
31
|
-
}): EndpointType<Req, Res>;
|
|
32
|
-
}
|