ugly-app 0.1.619 → 0.1.621
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/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/native/contract-meta.d.ts +7 -0
- package/dist/native/contract-meta.d.ts.map +1 -0
- package/dist/native/contract-meta.js +105 -0
- package/dist/native/contract-meta.js.map +1 -0
- package/dist/native/contract.d.ts +254 -24
- package/dist/native/contract.d.ts.map +1 -1
- package/dist/native/contract.js +4 -15
- package/dist/native/contract.js.map +1 -1
- package/dist/native/facades/net.d.ts +26 -0
- package/dist/native/facades/net.d.ts.map +1 -0
- package/dist/native/facades/net.js +22 -0
- package/dist/native/facades/net.js.map +1 -0
- package/dist/native/facades/process.d.ts +20 -0
- package/dist/native/facades/process.d.ts.map +1 -0
- package/dist/native/facades/process.js +15 -0
- package/dist/native/facades/process.js.map +1 -0
- package/dist/native/facades/studio.d.ts +47 -0
- package/dist/native/facades/studio.d.ts.map +1 -0
- package/dist/native/facades/studio.js +38 -0
- package/dist/native/facades/studio.js.map +1 -0
- package/dist/native/index.d.ts +10 -3
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +4 -2
- package/dist/native/index.js.map +1 -1
- package/dist/native/install.d.ts.map +1 -1
- package/dist/native/install.js +10 -8
- package/dist/native/install.js.map +1 -1
- package/dist/native/permissions.d.ts +12 -0
- package/dist/native/permissions.d.ts.map +1 -0
- package/dist/native/permissions.js +47 -0
- package/dist/native/permissions.js.map +1 -0
- package/dist/native/protocol.d.ts +5 -1
- package/dist/native/protocol.d.ts.map +1 -1
- package/dist/native/protocol.js +8 -0
- package/dist/native/protocol.js.map +1 -1
- package/dist/native/web-adapter.d.ts +5 -0
- package/dist/native/web-adapter.d.ts.map +1 -0
- package/dist/native/web-adapter.js +111 -0
- package/dist/native/web-adapter.js.map +1 -0
- package/dist/native/wrapper.d.ts +80 -6
- package/dist/native/wrapper.d.ts.map +1 -1
- package/dist/native/wrapper.js +149 -12
- package/dist/native/wrapper.js.map +1 -1
- package/dist/search/server/WebRetriever.d.ts +7 -0
- package/dist/search/server/WebRetriever.d.ts.map +1 -1
- package/dist/search/server/WebRetriever.js +2 -2
- package/dist/search/server/WebRetriever.js.map +1 -1
- package/dist/server/ai/providers/UglyBotWebSearchProvider.d.ts.map +1 -1
- package/dist/server/ai/providers/UglyBotWebSearchProvider.js +11 -8
- package/dist/server/ai/providers/UglyBotWebSearchProvider.js.map +1 -1
- package/dist/server/ai/types.d.ts +7 -0
- package/dist/server/ai/types.d.ts.map +1 -1
- package/dist/server/ai/types.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/native/contract-meta.test.ts +23 -0
- package/src/native/contract-meta.ts +114 -0
- package/src/native/contract.test.ts +13 -7
- package/src/native/contract.ts +130 -32
- package/src/native/facades/facades.test.ts +35 -0
- package/src/native/facades/net.ts +50 -0
- package/src/native/facades/process.ts +37 -0
- package/src/native/facades/studio.ts +73 -0
- package/src/native/index.ts +24 -3
- package/src/native/install.test.ts +8 -0
- package/src/native/install.ts +12 -8
- package/src/native/permissions.test.ts +42 -0
- package/src/native/permissions.ts +53 -0
- package/src/native/protocol.test.ts +15 -0
- package/src/native/protocol.ts +10 -1
- package/src/native/web-adapter.test.ts +27 -0
- package/src/native/web-adapter.ts +118 -0
- package/src/native/wrapper.test.ts +22 -0
- package/src/native/wrapper.ts +163 -13
- package/src/search/server/WebRetriever.ts +9 -4
- package/src/server/ai/providers/UglyBotWebSearchProvider.ts +13 -2
- package/src/server/ai/types.ts +7 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { NativePlatform } from '../protocol.js';
|
|
2
|
+
import type { Platform } from '../contract-meta.js';
|
|
3
|
+
import type { UpdateStatus } from '../contract.js';
|
|
4
|
+
export interface StudioFacade {
|
|
5
|
+
window: {
|
|
6
|
+
minimize(): Promise<void>;
|
|
7
|
+
maximizeToggle(): Promise<boolean>;
|
|
8
|
+
close(): Promise<void>;
|
|
9
|
+
isMaximized(): Promise<boolean>;
|
|
10
|
+
};
|
|
11
|
+
fullscreen: {
|
|
12
|
+
toggle(): Promise<boolean>;
|
|
13
|
+
is(): Promise<boolean>;
|
|
14
|
+
};
|
|
15
|
+
zoom: {
|
|
16
|
+
get(): Promise<number>;
|
|
17
|
+
set(level: number): Promise<void>;
|
|
18
|
+
};
|
|
19
|
+
update: {
|
|
20
|
+
check(): Promise<UpdateStatus>;
|
|
21
|
+
download(): Promise<UpdateStatus>;
|
|
22
|
+
install(): Promise<void>;
|
|
23
|
+
getStatus(): Promise<UpdateStatus>;
|
|
24
|
+
};
|
|
25
|
+
dialog: {
|
|
26
|
+
openDirectory(): Promise<string | null>;
|
|
27
|
+
};
|
|
28
|
+
revealInFolder(path: string): Promise<void>;
|
|
29
|
+
app: {
|
|
30
|
+
version(): Promise<string>;
|
|
31
|
+
platform(): NativePlatform;
|
|
32
|
+
};
|
|
33
|
+
openProjectInNewWindow(path: string): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
type StudioBridge = Partial<{
|
|
36
|
+
window: StudioFacade['window'];
|
|
37
|
+
fullscreen: StudioFacade['fullscreen'];
|
|
38
|
+
zoom: StudioFacade['zoom'];
|
|
39
|
+
update: StudioFacade['update'];
|
|
40
|
+
dialog: StudioFacade['dialog'];
|
|
41
|
+
revealInFolder: (p: string) => Promise<void>;
|
|
42
|
+
getAppVersion: () => Promise<string>;
|
|
43
|
+
openProjectInNewWindow: (p: string) => Promise<void>;
|
|
44
|
+
}>;
|
|
45
|
+
export declare function createStudioFacade(getBridge: () => StudioBridge | undefined, platform: Platform): StudioFacade;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=studio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/native/facades/studio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;KACjC,CAAC;IACF,UAAU,EAAE;QAAE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACnE,IAAI,EAAE;QAAE,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACpE,MAAM,EAAE;QACN,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/B,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;KACpC,CAAC;IACF,MAAM,EAAE;QAAE,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IACpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,EAAE;QAAE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,IAAI,cAAc,CAAA;KAAE,CAAC;IAChE,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,KAAK,YAAY,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,sBAAsB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD,CAAC,CAAC;AAEH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAmC9G"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { NativeUnavailableError } from '../protocol.js';
|
|
2
|
+
export function createStudioFacade(getBridge, platform) {
|
|
3
|
+
const b = () => getBridge();
|
|
4
|
+
const noop = async () => { };
|
|
5
|
+
const unavailable = (ch) => {
|
|
6
|
+
throw new NativeUnavailableError(ch);
|
|
7
|
+
};
|
|
8
|
+
return {
|
|
9
|
+
window: {
|
|
10
|
+
minimize: async () => (b()?.window ? b().window.minimize() : noop()),
|
|
11
|
+
maximizeToggle: async () => (b()?.window ? b().window.maximizeToggle() : false),
|
|
12
|
+
close: async () => (b()?.window ? b().window.close() : noop()),
|
|
13
|
+
isMaximized: async () => (b()?.window ? b().window.isMaximized() : false),
|
|
14
|
+
},
|
|
15
|
+
fullscreen: {
|
|
16
|
+
toggle: async () => (b()?.fullscreen ? b().fullscreen.toggle() : false),
|
|
17
|
+
is: async () => (b()?.fullscreen ? b().fullscreen.is() : false),
|
|
18
|
+
},
|
|
19
|
+
zoom: {
|
|
20
|
+
get: async () => (b()?.zoom ? b().zoom.get() : 0),
|
|
21
|
+
set: async (l) => (b()?.zoom ? b().zoom.set(l) : noop()),
|
|
22
|
+
},
|
|
23
|
+
update: {
|
|
24
|
+
check: async () => (b()?.update ? b().update.check() : unavailable('studio.update.check')),
|
|
25
|
+
download: async () => (b()?.update ? b().update.download() : unavailable('studio.update.download')),
|
|
26
|
+
install: async () => (b()?.update ? b().update.install() : unavailable('studio.update.install')),
|
|
27
|
+
getStatus: async () => (b()?.update ? b().update.getStatus() : unavailable('studio.update.getStatus')),
|
|
28
|
+
},
|
|
29
|
+
dialog: { openDirectory: async () => (b()?.dialog ? b().dialog.openDirectory() : null) },
|
|
30
|
+
revealInFolder: async (p) => (b()?.revealInFolder ? b().revealInFolder(p) : unavailable('studio.revealInFolder')),
|
|
31
|
+
app: {
|
|
32
|
+
version: async () => (b()?.getAppVersion ? b().getAppVersion() : ''),
|
|
33
|
+
platform: () => platform,
|
|
34
|
+
},
|
|
35
|
+
openProjectInNewWindow: async (p) => (b()?.openProjectInNewWindow ? b().openProjectInNewWindow(p) : noop()),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=studio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio.js","sourceRoot":"","sources":["../../../src/native/facades/studio.ts"],"names":[],"mappings":"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"}
|
package/dist/native/index.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
export type { NativeContract, Channel, NativeEvent, PayloadOf, ResultOf, DataOf, WorkoutLAState, CardioLAState, } from './contract.js';
|
|
1
|
+
export type { NativeContract, Channel, NativeEvent, PayloadOf, ResultOf, DataOf, Namespace, WorkoutLAState, CardioLAState, HostDirent, HostStat, UpdateStatus, GrantState, SpawnOpts, SafeAreaInsets, } from './contract.js';
|
|
2
|
+
export { namespaceOf } from './contract.js';
|
|
3
|
+
export type { Platform, Fallback } from './contract-meta.js';
|
|
4
|
+
export { CHANNEL_FALLBACK, NAMESPACES, fallbackFor } from './contract-meta.js';
|
|
2
5
|
export type { NativePlatform, UglyNative } from './protocol.js';
|
|
3
|
-
export { NativeUnavailableError } from './protocol.js';
|
|
4
|
-
export { native, nativePlatform, isNativeAvailable } from './wrapper.js';
|
|
6
|
+
export { NativeUnavailableError, PermissionDeniedError } from './protocol.js';
|
|
5
7
|
export { installUglyNative } from './install.js';
|
|
8
|
+
export { native, permissions, nativePlatform, isNativeAvailable } from './wrapper.js';
|
|
9
|
+
export type { PermissionsFacade } from './permissions.js';
|
|
10
|
+
export type { UglyProcess } from './facades/process.js';
|
|
11
|
+
export type { UglySocket, UglyServer } from './facades/net.js';
|
|
12
|
+
export type { StudioFacade } from './facades/studio.js';
|
|
6
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,QAAQ,EACR,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/native/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { namespaceOf } from './contract.js';
|
|
2
|
+
export { CHANNEL_FALLBACK, NAMESPACES, fallbackFor } from './contract-meta.js';
|
|
3
|
+
export { NativeUnavailableError, PermissionDeniedError } from './protocol.js';
|
|
3
4
|
export { installUglyNative } from './install.js';
|
|
5
|
+
export { native, permissions, nativePlatform, isNativeAvailable } from './wrapper.js';
|
|
4
6
|
//# sourceMappingURL=index.js.map
|
package/dist/native/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/native/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/native/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGlE,KAAK,OAAO,GAAG,gBAAgB,GAAG;IAChC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACpC,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAgExD;AAED,wBAAgB,iBAAiB,IAAI,UAAU,CAM9C"}
|
package/dist/native/install.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NativeUnavailableError } from './protocol.js';
|
|
1
|
+
import { webInvoke } from './web-adapter.js';
|
|
3
2
|
export function buildUglyNative(win) {
|
|
3
|
+
// Native→web event bus: dispatch a uniform CustomEvent the subscriber reads.
|
|
4
|
+
const emit = (event, data) => {
|
|
5
|
+
const detail = { event, data };
|
|
6
|
+
const ev = typeof CustomEvent === 'function'
|
|
7
|
+
? new CustomEvent('uglyNative', { detail })
|
|
8
|
+
: { type: 'uglyNative', detail };
|
|
9
|
+
win.dispatchEvent(ev);
|
|
10
|
+
};
|
|
4
11
|
// ── invoke transport (priority: desktop -> ios -> android -> web) ──
|
|
5
12
|
let platform;
|
|
6
13
|
let rawInvoke;
|
|
@@ -44,12 +51,7 @@ export function buildUglyNative(win) {
|
|
|
44
51
|
}
|
|
45
52
|
else {
|
|
46
53
|
platform = 'web';
|
|
47
|
-
rawInvoke = (channel) =>
|
|
48
|
-
if (CHANNEL_WEB_FALLBACK[channel] === 'throw') {
|
|
49
|
-
return Promise.reject(new NativeUnavailableError(channel));
|
|
50
|
-
}
|
|
51
|
-
return Promise.resolve(undefined);
|
|
52
|
-
};
|
|
54
|
+
rawInvoke = (channel, payload) => webInvoke(channel, payload, emit);
|
|
53
55
|
}
|
|
54
56
|
// ── events: single 'uglyNative' CustomEvent carrying {event, data} ──
|
|
55
57
|
function subscribe(event, cb) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/native/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/native/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Namespace, GrantState } from './contract.js';
|
|
2
|
+
import type { Platform } from './contract-meta.js';
|
|
3
|
+
type Invoke = (channel: string, payload: unknown) => Promise<unknown>;
|
|
4
|
+
export interface PermissionsFacade {
|
|
5
|
+
request(grants: Partial<Record<Namespace, GrantState | boolean>>): Promise<Record<string, GrantState>>;
|
|
6
|
+
query(): Promise<Record<string, GrantState>>;
|
|
7
|
+
revoke(namespace: Namespace): Promise<void>;
|
|
8
|
+
ensure(namespace: Namespace): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function createPermissions(invoke: Invoke, platform: Platform): PermissionsFacade;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/native/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAcnD,KAAK,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,CA4BvF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PermissionDeniedError } from './protocol.js';
|
|
2
|
+
// Namespaces gated by explicit grants (daemon capabilities). OS-backed and app
|
|
3
|
+
// namespaces are not pre-gated here (the OS prompts at call time).
|
|
4
|
+
const GATED = new Set([
|
|
5
|
+
'fs',
|
|
6
|
+
'secrets',
|
|
7
|
+
'serve',
|
|
8
|
+
'workers',
|
|
9
|
+
'net',
|
|
10
|
+
'process',
|
|
11
|
+
]);
|
|
12
|
+
export function createPermissions(invoke, platform) {
|
|
13
|
+
const cache = new Map();
|
|
14
|
+
const facade = {
|
|
15
|
+
async request(grants) {
|
|
16
|
+
const res = (await invoke('permissions.request', { grants }));
|
|
17
|
+
for (const [k, v] of Object.entries(res.granted))
|
|
18
|
+
cache.set(k, v);
|
|
19
|
+
return res.granted;
|
|
20
|
+
},
|
|
21
|
+
async query() {
|
|
22
|
+
const res = (await invoke('permissions.query', undefined));
|
|
23
|
+
for (const [k, v] of Object.entries(res.granted))
|
|
24
|
+
cache.set(k, v);
|
|
25
|
+
return res.granted;
|
|
26
|
+
},
|
|
27
|
+
async revoke(namespace) {
|
|
28
|
+
await invoke('permissions.revoke', { namespace });
|
|
29
|
+
cache.delete(namespace);
|
|
30
|
+
},
|
|
31
|
+
async ensure(namespace) {
|
|
32
|
+
if (!GATED.has(namespace))
|
|
33
|
+
return;
|
|
34
|
+
if (platform === 'web')
|
|
35
|
+
throw new PermissionDeniedError(namespace);
|
|
36
|
+
const cached = cache.get(namespace);
|
|
37
|
+
if (cached && cached !== 'denied' && cached !== 'prompt')
|
|
38
|
+
return;
|
|
39
|
+
const granted = await facade.query();
|
|
40
|
+
const state = granted[namespace];
|
|
41
|
+
if (!state || state === 'denied' || state === 'prompt')
|
|
42
|
+
throw new PermissionDeniedError(namespace);
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
return facade;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/native/permissions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,+EAA+E;AAC/E,mEAAmE;AACnE,MAAM,KAAK,GAA2B,IAAI,GAAG,CAAY;IACvD,IAAI;IACJ,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,SAAS;CACV,CAAC,CAAC;AAWH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,QAAkB;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,MAAM,MAAM,GAAsB;QAChC,KAAK,CAAC,OAAO,CAAC,MAAM;YAClB,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,CAAC,CAA4C,CAAC;YACzG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAc,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,KAAK;YACT,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAA4C,CAAC;YACtG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAc,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,SAAS;YACpB,MAAM,MAAM,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAClD,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,SAAS;YACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO;YAClC,IAAI,QAAQ,KAAK,KAAK;gBAAE,MAAM,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpC,IAAI,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO;YACjE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACrG,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import type { Channel, NativeEvent, PayloadOf, ResultOf, DataOf } from './contract.js';
|
|
1
|
+
import type { Channel, NativeEvent, PayloadOf, ResultOf, DataOf, Namespace } from './contract.js';
|
|
2
2
|
export type NativePlatform = 'ios' | 'android' | 'desktop' | 'web';
|
|
3
3
|
export declare class NativeUnavailableError extends Error {
|
|
4
4
|
constructor(channel: string);
|
|
5
5
|
}
|
|
6
|
+
export declare class PermissionDeniedError extends Error {
|
|
7
|
+
readonly namespace: Namespace;
|
|
8
|
+
constructor(namespace: Namespace);
|
|
9
|
+
}
|
|
6
10
|
export interface UglyNative {
|
|
7
11
|
readonly platform: NativePlatform;
|
|
8
12
|
invoke<C extends Channel>(channel: C, payload: PayloadOf<C>): Promise<ResultOf<C>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/native/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/native/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAElG,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnE,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;gBAClB,SAAS,EAAE,SAAS;CAKjC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACvF;AAQD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AACD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACvE;AACD,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,MAAM,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,eAAe,CAAA;SAAE,CAAA;KAAE,CAAC;IAChE,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACpF"}
|
package/dist/native/protocol.js
CHANGED
|
@@ -4,4 +4,12 @@ export class NativeUnavailableError extends Error {
|
|
|
4
4
|
this.name = 'NativeUnavailableError';
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
+
export class PermissionDeniedError extends Error {
|
|
8
|
+
namespace;
|
|
9
|
+
constructor(namespace) {
|
|
10
|
+
super(`uglyNative.${namespace}.* requires the "${namespace}" permission (not granted)`);
|
|
11
|
+
this.name = 'PermissionDeniedError';
|
|
12
|
+
this.namespace = namespace;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
7
15
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/native/protocol.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,yBAAyB,OAAO,2BAA2B,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/native/protocol.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,yBAAyB,OAAO,2BAA2B,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,SAAS,CAAY;IAC9B,YAAY,SAAoB;QAC9B,KAAK,CAAC,cAAc,SAAS,oBAAoB,SAAS,4BAA4B,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Channel, NativeEvent, DataOf } from './contract.js';
|
|
2
|
+
type Emit = <E extends NativeEvent>(event: E, data: DataOf<E>) => void;
|
|
3
|
+
export declare function webInvoke(channel: Channel, payload: unknown, emit: Emit): Promise<unknown>;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=web-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-adapter.d.ts","sourceRoot":"","sources":["../../src/native/web-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAkB,MAAM,eAAe,CAAC;AAIlF,KAAK,IAAI,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAkBvE,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CA+FhG"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { fallbackFor } from './contract-meta.js';
|
|
2
|
+
import { NativeUnavailableError } from './protocol.js';
|
|
3
|
+
// In-tab alarm timers (web fallback only; cleared on tab close).
|
|
4
|
+
const alarmTimers = new Map();
|
|
5
|
+
let gpsWatchId = null;
|
|
6
|
+
let webAudio = null;
|
|
7
|
+
function readSafeArea() {
|
|
8
|
+
const cs = getComputedStyle(document.documentElement);
|
|
9
|
+
const px = (v) => parseInt(v || '0', 10) || 0;
|
|
10
|
+
return {
|
|
11
|
+
top: px(cs.getPropertyValue('--sat')),
|
|
12
|
+
right: 0,
|
|
13
|
+
bottom: 0,
|
|
14
|
+
left: 0,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export async function webInvoke(channel, payload, emit) {
|
|
18
|
+
switch (channel) {
|
|
19
|
+
case 'clipboard.write':
|
|
20
|
+
await navigator.clipboard.writeText(payload.text);
|
|
21
|
+
return undefined;
|
|
22
|
+
case 'clipboard.read':
|
|
23
|
+
return { text: await navigator.clipboard.readText() };
|
|
24
|
+
case 'system.openExternal':
|
|
25
|
+
window.open(payload.url, '_blank', 'noopener');
|
|
26
|
+
return undefined;
|
|
27
|
+
case 'system.share':
|
|
28
|
+
if (navigator.share)
|
|
29
|
+
await navigator.share(payload);
|
|
30
|
+
return undefined;
|
|
31
|
+
case 'badge.set': {
|
|
32
|
+
const n = payload.count;
|
|
33
|
+
const navAny = navigator;
|
|
34
|
+
if (n > 0)
|
|
35
|
+
await navAny.setAppBadge?.(n);
|
|
36
|
+
else
|
|
37
|
+
await navAny.clearAppBadge?.();
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
case 'ui.getSafeArea':
|
|
41
|
+
return readSafeArea();
|
|
42
|
+
case 'gps.start': {
|
|
43
|
+
if (gpsWatchId != null)
|
|
44
|
+
navigator.geolocation.clearWatch(gpsWatchId);
|
|
45
|
+
gpsWatchId = navigator.geolocation.watchPosition((pos) => emit('gps.position', {
|
|
46
|
+
lat: pos.coords.latitude,
|
|
47
|
+
lng: pos.coords.longitude,
|
|
48
|
+
accuracy: pos.coords.accuracy,
|
|
49
|
+
timestamp: pos.timestamp,
|
|
50
|
+
altitude: pos.coords.altitude ?? undefined,
|
|
51
|
+
speed: pos.coords.speed ?? undefined,
|
|
52
|
+
course: pos.coords.heading ?? undefined,
|
|
53
|
+
}), () => { }, { enableHighAccuracy: true });
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
case 'gps.stop':
|
|
57
|
+
if (gpsWatchId != null) {
|
|
58
|
+
navigator.geolocation.clearWatch(gpsWatchId);
|
|
59
|
+
gpsWatchId = null;
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
case 'alarm.schedule': {
|
|
63
|
+
const p = payload;
|
|
64
|
+
const existing = alarmTimers.get(p.id);
|
|
65
|
+
if (existing)
|
|
66
|
+
clearTimeout(existing);
|
|
67
|
+
alarmTimers.set(p.id, setTimeout(() => {
|
|
68
|
+
alarmTimers.delete(p.id);
|
|
69
|
+
if ('Notification' in window && Notification.permission === 'granted') {
|
|
70
|
+
new Notification(p.title ?? 'Alarm', { body: p.body });
|
|
71
|
+
}
|
|
72
|
+
emit('alarm.fired', { id: p.id });
|
|
73
|
+
}, p.delaySeconds * 1000));
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
case 'alarm.cancel': {
|
|
77
|
+
const id = payload.id;
|
|
78
|
+
if (id) {
|
|
79
|
+
const t = alarmTimers.get(id);
|
|
80
|
+
if (t)
|
|
81
|
+
clearTimeout(t);
|
|
82
|
+
alarmTimers.delete(id);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
for (const t of alarmTimers.values())
|
|
86
|
+
clearTimeout(t);
|
|
87
|
+
alarmTimers.clear();
|
|
88
|
+
}
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
case 'alarm.playAudio': {
|
|
92
|
+
const p = payload;
|
|
93
|
+
webAudio = new Audio(`data:${p.mimeType ?? 'audio/wav'};base64,${p.base64}`);
|
|
94
|
+
await webAudio.play().catch(() => { });
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
case 'capture.screenshot': {
|
|
98
|
+
// Best-effort capture requires a user-gesture-driven display capture; declared
|
|
99
|
+
// web-capable but gated by a gesture, so treat as unavailable until wired by a caller.
|
|
100
|
+
throw new NativeUnavailableError(channel);
|
|
101
|
+
}
|
|
102
|
+
default: {
|
|
103
|
+
const fb = fallbackFor(channel, 'web');
|
|
104
|
+
if (fb === 'throw')
|
|
105
|
+
throw new NativeUnavailableError(channel);
|
|
106
|
+
// 'noop' / 'web'-but-unimplemented (liveActivity, tts, push, …) resolve silently.
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=web-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-adapter.js","sourceRoot":"","sources":["../../src/native/web-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/native/wrapper.d.ts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import type { DataOf, PayloadOf } from './contract.js';
|
|
2
2
|
import type { NativePlatform } from './protocol.js';
|
|
3
|
+
export declare const permissions: import("./permissions.js").PermissionsFacade;
|
|
3
4
|
export declare const native: {
|
|
5
|
+
permissions: import("./permissions.js").PermissionsFacade;
|
|
6
|
+
capture: {
|
|
7
|
+
screenshot: () => Promise<string>;
|
|
8
|
+
};
|
|
4
9
|
gps: {
|
|
5
10
|
start: (p: PayloadOf<"gps.start">) => Promise<void>;
|
|
6
11
|
stop: () => Promise<void>;
|
|
7
12
|
onPosition: (cb: (d: DataOf<"gps.position">) => void) => () => void;
|
|
8
13
|
};
|
|
9
|
-
alarm: {
|
|
10
|
-
schedule: (p: PayloadOf<"alarm.schedule">) => Promise<void>;
|
|
11
|
-
cancel: (p: PayloadOf<"alarm.cancel">) => Promise<void>;
|
|
12
|
-
playAudio: (p: PayloadOf<"alarm.playAudio">) => Promise<void>;
|
|
13
|
-
onFired: (cb: (d: DataOf<"alarm.fired">) => void) => () => void;
|
|
14
|
-
};
|
|
15
14
|
liveActivity: {
|
|
16
15
|
startWorkout: (p: PayloadOf<"liveActivity.startWorkout">) => Promise<void>;
|
|
17
16
|
updateWorkout: (p: PayloadOf<"liveActivity.updateWorkout">) => Promise<void>;
|
|
@@ -20,6 +19,81 @@ export declare const native: {
|
|
|
20
19
|
updateCardio: (p: PayloadOf<"liveActivity.updateCardio">) => Promise<void>;
|
|
21
20
|
endCardio: () => Promise<void>;
|
|
22
21
|
};
|
|
22
|
+
alarm: {
|
|
23
|
+
schedule: (p: PayloadOf<"alarm.schedule">) => Promise<void>;
|
|
24
|
+
cancel: (p: PayloadOf<"alarm.cancel">) => Promise<void>;
|
|
25
|
+
playAudio: (p: PayloadOf<"alarm.playAudio">) => Promise<void>;
|
|
26
|
+
onFired: (cb: (d: DataOf<"alarm.fired">) => void) => () => void;
|
|
27
|
+
};
|
|
28
|
+
tts: {
|
|
29
|
+
start: (p: PayloadOf<"tts.start">) => Promise<void>;
|
|
30
|
+
pause: () => Promise<void>;
|
|
31
|
+
resume: () => Promise<void>;
|
|
32
|
+
stop: () => Promise<void>;
|
|
33
|
+
onState: (cb: (d: DataOf<"tts.state">) => void) => () => void;
|
|
34
|
+
};
|
|
35
|
+
push: {
|
|
36
|
+
register: () => Promise<{
|
|
37
|
+
token: string;
|
|
38
|
+
}>;
|
|
39
|
+
onToken: (cb: (d: DataOf<"push.token">) => void) => () => void;
|
|
40
|
+
onNotificationClick: (cb: (d: DataOf<"push.notificationClick">) => void) => () => void;
|
|
41
|
+
};
|
|
42
|
+
clipboard: {
|
|
43
|
+
write: (p: PayloadOf<"clipboard.write">) => Promise<void>;
|
|
44
|
+
read: () => Promise<{
|
|
45
|
+
text: string;
|
|
46
|
+
}>;
|
|
47
|
+
};
|
|
48
|
+
system: {
|
|
49
|
+
openExternal: (p: PayloadOf<"system.openExternal">) => Promise<void>;
|
|
50
|
+
share: (p: PayloadOf<"system.share">) => Promise<void>;
|
|
51
|
+
};
|
|
52
|
+
badge: {
|
|
53
|
+
set: (p: PayloadOf<"badge.set">) => Promise<void>;
|
|
54
|
+
};
|
|
55
|
+
ui: {
|
|
56
|
+
getSafeArea: () => Promise<import("./contract.js").SafeAreaInsets>;
|
|
57
|
+
onKeyboardHeight: (cb: (d: DataOf<"keyboard.height">) => void) => () => void;
|
|
58
|
+
onSafeAreaInsets: (cb: (d: DataOf<"safeArea.insets">) => void) => () => void;
|
|
59
|
+
};
|
|
60
|
+
fs: {
|
|
61
|
+
readFile: (path: string) => Promise<string>;
|
|
62
|
+
writeFile: (path: string, content: string) => Promise<void>;
|
|
63
|
+
mkdir: (path: string, recursive?: boolean) => Promise<void>;
|
|
64
|
+
rm: (path: string, opts?: {
|
|
65
|
+
recursive?: boolean;
|
|
66
|
+
force?: boolean;
|
|
67
|
+
}) => Promise<void>;
|
|
68
|
+
rename: (from: string, to: string) => Promise<void>;
|
|
69
|
+
readdir: (path: string) => Promise<import("./contract.js").HostDirent[]>;
|
|
70
|
+
stat: (path: string) => Promise<import("./contract.js").HostStat>;
|
|
71
|
+
exists: (path: string) => Promise<boolean>;
|
|
72
|
+
realpath: (path: string) => Promise<string>;
|
|
73
|
+
readFileBytes: (path: string) => Promise<Uint8Array>;
|
|
74
|
+
writeFileBytes: (path: string, bytes: Uint8Array) => Promise<void>;
|
|
75
|
+
};
|
|
76
|
+
process: import("./facades/process.js").ProcessFacade;
|
|
77
|
+
net: import("./facades/net.js").NetFacade;
|
|
78
|
+
studio: import("./facades/studio.js").StudioFacade;
|
|
79
|
+
secrets: {
|
|
80
|
+
get: (key: string) => Promise<string | null>;
|
|
81
|
+
set: (key: string, value: string) => Promise<void>;
|
|
82
|
+
delete: (key: string) => Promise<void>;
|
|
83
|
+
list: () => Promise<string[]>;
|
|
84
|
+
};
|
|
85
|
+
serve: {
|
|
86
|
+
start: (dir?: string) => Promise<{
|
|
87
|
+
port: number;
|
|
88
|
+
url: string;
|
|
89
|
+
}>;
|
|
90
|
+
stop: (port: number) => Promise<void>;
|
|
91
|
+
};
|
|
92
|
+
workers: {
|
|
93
|
+
register: (path: string, boot?: boolean) => Promise<string>;
|
|
94
|
+
unregister: (id: string) => Promise<void>;
|
|
95
|
+
list: () => Promise<string[]>;
|
|
96
|
+
};
|
|
23
97
|
};
|
|
24
98
|
export declare function nativePlatform(): NativePlatform;
|
|
25
99
|
export declare function isNativeAvailable(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/native/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/native/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAE,SAAS,EAAY,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAYpD,eAAO,MAAM,WAAW,8CAAgF,CAAC;AAezG,eAAO,MAAM,MAAM;;;;;;mBAMJ,SAAS,CAAC,WAAW,CAAC;;yBAEhB,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI;;;0BAGlC,SAAS,CAAC,2BAA2B,CAAC;2BACrC,SAAS,CAAC,4BAA4B,CAAC;;yBAEzC,SAAS,CAAC,0BAA0B,CAAC;0BACpC,SAAS,CAAC,2BAA2B,CAAC;;;;sBAI1C,SAAS,CAAC,gBAAgB,CAAC;oBAC7B,SAAS,CAAC,cAAc,CAAC;uBACtB,SAAS,CAAC,iBAAiB,CAAC;sBAC7B,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI;;;mBAGrC,SAAS,CAAC,WAAW,CAAC;;;;sBAInB,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI;;;;;;sBAIhC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI;kCACrB,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,KAAK,IAAI;;;mBAI5D,SAAS,CAAC,iBAAiB,CAAC;;;;;;0BAIrB,SAAS,CAAC,qBAAqB,CAAC;mBACvC,SAAS,CAAC,cAAc,CAAC;;;iBAG3B,SAAS,CAAC,WAAW,CAAC;;;;+BAIR,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI;+BACtC,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI;;;yBAGtC,MAAM;0BAIL,MAAM,WAAW,MAAM;sBAI3B,MAAM;mBAIT,MAAM,SAAQ;YAAE,SAAS,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE;uBAIlD,MAAM,MAAM,MAAM;wBAIjB,MAAM;qBAIT,MAAM;uBAIJ,MAAM;yBAIJ,MAAM;8BAID,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC;+BAM3B,MAAM,SAAS,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;mBAWrD,MAAM;mBAIN,MAAM,SAAS,MAAM;sBAIlB,MAAM;;;;sBAUN,MAAM;;;;qBAIP,MAAM;;;yBAMF,MAAM;yBAIN,MAAM;;;CAShC,CAAC;AAEF,wBAAgB,cAAc,IAAI,cAAc,CAE/C;AACD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|