@swiftbrowser/native 0.18.0 → 0.18.2

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.
Files changed (69) hide show
  1. package/README.md +73 -8
  2. package/dist/bridge.d.ts +64 -2
  3. package/dist/bridge.d.ts.map +1 -1
  4. package/dist/bridge.js.map +1 -1
  5. package/dist/geolocation.d.ts +73 -0
  6. package/dist/geolocation.d.ts.map +1 -0
  7. package/dist/geolocation.js +109 -0
  8. package/dist/geolocation.js.map +1 -0
  9. package/dist/hostRequests.d.ts +3 -1
  10. package/dist/hostRequests.d.ts.map +1 -1
  11. package/dist/hostRequests.js +46 -5
  12. package/dist/hostRequests.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/nativeFunctions.d.ts +35 -0
  18. package/dist/nativeFunctions.d.ts.map +1 -0
  19. package/dist/nativeFunctions.js +90 -0
  20. package/dist/nativeFunctions.js.map +1 -0
  21. package/dist/reachability.d.ts +24 -0
  22. package/dist/reachability.d.ts.map +1 -0
  23. package/dist/reachability.js +41 -0
  24. package/dist/reachability.js.map +1 -0
  25. package/dist/run.d.ts.map +1 -1
  26. package/dist/run.js +3 -1
  27. package/dist/run.js.map +1 -1
  28. package/dist/runtime.d.ts +9 -2
  29. package/dist/runtime.d.ts.map +1 -1
  30. package/dist/runtime.js +62 -5
  31. package/dist/runtime.js.map +1 -1
  32. package/dist/speech.d.ts +148 -0
  33. package/dist/speech.d.ts.map +1 -0
  34. package/dist/speech.js +243 -0
  35. package/dist/speech.js.map +1 -0
  36. package/dist/wakeLock.d.ts +32 -0
  37. package/dist/wakeLock.d.ts.map +1 -0
  38. package/dist/wakeLock.js +60 -0
  39. package/dist/wakeLock.js.map +1 -0
  40. package/package.json +3 -3
  41. package/src/bridge.ts +70 -2
  42. package/src/geolocation.ts +160 -0
  43. package/src/hostRequests.ts +47 -7
  44. package/src/index.ts +1 -0
  45. package/src/nativeFunctions.ts +94 -0
  46. package/src/reachability.ts +49 -0
  47. package/src/run.ts +5 -3
  48. package/src/runtime.ts +58 -5
  49. package/src/speech.ts +312 -0
  50. package/src/wakeLock.ts +63 -0
  51. package/swift/Sources/SwiftBrowserNative/Host/AppleSignInBridge.swift +139 -0
  52. package/swift/Sources/SwiftBrowserNative/Host/AudioRecorderBridge.swift +5 -0
  53. package/swift/Sources/SwiftBrowserNative/Host/FilesBridge.swift +83 -12
  54. package/swift/Sources/SwiftBrowserNative/Host/GeolocationBridge.swift +150 -0
  55. package/swift/Sources/SwiftBrowserNative/Host/HostBridge.swift +131 -2
  56. package/swift/Sources/SwiftBrowserNative/Host/HostRequestBridge.swift +81 -11
  57. package/swift/Sources/SwiftBrowserNative/Host/ICloudBridge.swift +112 -0
  58. package/swift/Sources/SwiftBrowserNative/Host/ReachabilityBridge.swift +47 -0
  59. package/swift/Sources/SwiftBrowserNative/Host/SpeechBridge.swift +106 -0
  60. package/swift/Sources/SwiftBrowserNative/Host/SpeechRecognitionBridge.swift +198 -0
  61. package/swift/Sources/SwiftBrowserNative/Host/WorkerHost.swift +14 -5
  62. package/swift/Sources/SwiftBrowserNative/Runtime/NativeFunctions.swift +134 -0
  63. package/swift/Sources/SwiftBrowserNative/Views/ElementView.swift +1 -0
  64. package/swift/Sources/SwiftBrowserNative/Views/Kinds/Controls.swift +2 -0
  65. package/swift/Sources/SwiftBrowserNative/Views/Kinds/TextInputHints.swift +105 -0
  66. package/swift/Sources/SwiftBrowserNative/Views/Kinds/Touches.swift +102 -0
  67. package/swift/Sources/SwiftBrowserProtocol/Props.swift +13 -0
  68. package/swift/Sources/SwiftBrowserProtocol/RendererEvent.swift +9 -0
  69. package/wasm/SwiftBrowserNative.wasm +2 -2
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Swift the app calls: the function half of the escape hatch (docs/native.md;
3
+ * `<Native>` in native.ts is the view half). The Swift app registers
4
+ * functions with `NativeFunctions.register(name) { call in ... }`
5
+ * (Native/Sources/SwiftBrowserNative/Runtime/NativeFunctions.swift);
6
+ * `callNative(name, params)` runs one and resolves with what it returned,
7
+ * through the host request `app:<name>` (hostRequests.ts), `callNativeSync`
8
+ * runs a sync one inline over the bridge's `callNativeSync(name, json)`, and
9
+ * `nativeFunctions()` lists them over `nativeFunctions()`. What Swift sends
10
+ * with `NativeFunctions.send(name, value)` arrives at `__sbNativeEvent(name,
11
+ * json)` and reaches `onNativeEvent(name)`'s listeners.
12
+ *
13
+ * On a page, or in a host without the functions, `callNative` rejects and
14
+ * `callNativeSync` throws `unsupported:`, and `nativeFunctions()` is empty:
15
+ * an app checks `hasNativeFunction(name)` and falls back to the web's way.
16
+ * A function that throws `NativeFunctionCancelled` rejects with an
17
+ * `AbortError`, as the system pickers' cancellations do.
18
+ */
19
+ import type { NativeBridge } from './bridge';
20
+ export type NativeFunctionsBridge = Pick<NativeBridge, 'nativeFunctions' | 'callNativeSync'>;
21
+ /** Points the functions at the bridge (the runtime, once per install); null forgets it. */
22
+ export declare function installNativeFunctions(native: NativeFunctionsBridge | null): void;
23
+ /** The names the Swift app registered; empty on a page. */
24
+ export declare function nativeFunctions(): string[];
25
+ /** Whether the Swift app registered `name`. */
26
+ export declare function hasNativeFunction(name: string): boolean;
27
+ /** Runs the function registered under `name` with `params`; resolves with what it returned. */
28
+ export declare function callNative<T = unknown>(name: string, params?: Record<string, unknown>): Promise<T>;
29
+ /** Runs the sync function registered under `name` inline; returns what it returned. */
30
+ export declare function callNativeSync<T = unknown>(name: string, params?: Record<string, unknown>): T;
31
+ /** Listens for what Swift sends under `name` (`NativeFunctions.send`); returns the function that stops listening. */
32
+ export declare function onNativeEvent<T = unknown>(name: string, listener: (value: T) => void): () => void;
33
+ /** The bridge's `__sbNativeEvent(name, json)`. */
34
+ export declare function receiveNativeEvent(name: string, value: unknown): void;
35
+ //# sourceMappingURL=nativeFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeFunctions.d.ts","sourceRoot":"","sources":["../src/nativeFunctions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;AAK7F,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAGjF;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEtG;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,CAAC,CAcjG;AAED,qHAAqH;AACrH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAYjG;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAYrE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Swift the app calls: the function half of the escape hatch (docs/native.md;
3
+ * `<Native>` in native.ts is the view half). The Swift app registers
4
+ * functions with `NativeFunctions.register(name) { call in ... }`
5
+ * (Native/Sources/SwiftBrowserNative/Runtime/NativeFunctions.swift);
6
+ * `callNative(name, params)` runs one and resolves with what it returned,
7
+ * through the host request `app:<name>` (hostRequests.ts), `callNativeSync`
8
+ * runs a sync one inline over the bridge's `callNativeSync(name, json)`, and
9
+ * `nativeFunctions()` lists them over `nativeFunctions()`. What Swift sends
10
+ * with `NativeFunctions.send(name, value)` arrives at `__sbNativeEvent(name,
11
+ * json)` and reaches `onNativeEvent(name)`'s listeners.
12
+ *
13
+ * On a page, or in a host without the functions, `callNative` rejects and
14
+ * `callNativeSync` throws `unsupported:`, and `nativeFunctions()` is empty:
15
+ * an app checks `hasNativeFunction(name)` and falls back to the web's way.
16
+ * A function that throws `NativeFunctionCancelled` rejects with an
17
+ * `AbortError`, as the system pickers' cancellations do.
18
+ */
19
+ import { hostRequest } from './hostRequests';
20
+ let bridge = null;
21
+ const listeners = new Map();
22
+ /** Points the functions at the bridge (the runtime, once per install); null forgets it. */
23
+ export function installNativeFunctions(native) {
24
+ bridge = native;
25
+ listeners.clear();
26
+ }
27
+ /** The names the Swift app registered; empty on a page. */
28
+ export function nativeFunctions() {
29
+ return bridge?.nativeFunctions?.() ?? [];
30
+ }
31
+ /** Whether the Swift app registered `name`. */
32
+ export function hasNativeFunction(name) {
33
+ return nativeFunctions().includes(name);
34
+ }
35
+ /** Runs the function registered under `name` with `params`; resolves with what it returned. */
36
+ export function callNative(name, params = {}) {
37
+ return hostRequest(`app:${name}`, params);
38
+ }
39
+ /** Runs the sync function registered under `name` inline; returns what it returned. */
40
+ export function callNativeSync(name, params = {}) {
41
+ if (!bridge?.callNativeSync)
42
+ throw new Error(`unsupported: no native host for ${name}`);
43
+ let result;
44
+ try {
45
+ result = JSON.parse(bridge.callNativeSync(name, JSON.stringify(params)));
46
+ }
47
+ catch {
48
+ throw new Error(`${name}: malformed response`);
49
+ }
50
+ if (typeof result.error === 'string') {
51
+ const error = new Error(result.error);
52
+ if (result.error.startsWith('cancelled'))
53
+ error.name = 'AbortError';
54
+ throw error;
55
+ }
56
+ return result.value;
57
+ }
58
+ /** Listens for what Swift sends under `name` (`NativeFunctions.send`); returns the function that stops listening. */
59
+ export function onNativeEvent(name, listener) {
60
+ let set = listeners.get(name);
61
+ if (!set) {
62
+ set = new Set();
63
+ listeners.set(name, set);
64
+ }
65
+ const entry = listener;
66
+ set.add(entry);
67
+ return () => {
68
+ set.delete(entry);
69
+ if (set.size === 0)
70
+ listeners.delete(name);
71
+ };
72
+ }
73
+ /** The bridge's `__sbNativeEvent(name, json)`. */
74
+ export function receiveNativeEvent(name, value) {
75
+ const set = listeners.get(name);
76
+ if (!set)
77
+ return;
78
+ let parsed = value;
79
+ if (typeof value === 'string') {
80
+ try {
81
+ parsed = JSON.parse(value);
82
+ }
83
+ catch {
84
+ return;
85
+ }
86
+ }
87
+ for (const listener of [...set])
88
+ listener(parsed);
89
+ }
90
+ //# sourceMappingURL=nativeFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeFunctions.js","sourceRoot":"","sources":["../src/nativeFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `navigator.onLine` and the `online` and `offline` events over the host's
3
+ * path monitor (`online()` on the bridge, `__sbOnline(bool)` back). The
4
+ * value is what the host last said (`NWPathMonitor`'s path status, true
5
+ * where the host has no monitor); the events reach listeners on the global
6
+ * (`addEventListener('online', …)`, which the runtime defines in the app's
7
+ * context, where a page's `window` would take them) and the global's
8
+ * `ononline` and `onoffline` handlers.
9
+ */
10
+ import type { NativeBridge } from './bridge';
11
+ type Listener = (event: {
12
+ type: 'online' | 'offline';
13
+ }) => void;
14
+ export interface Reachability {
15
+ /** `navigator.onLine`. */
16
+ readonly onLine: boolean;
17
+ addEventListener(type: string, listener: Listener): void;
18
+ removeEventListener(type: string, listener: Listener): void;
19
+ /** `__sbOnline(online)`: the host's path changed. */
20
+ receive(online: boolean): void;
21
+ }
22
+ export declare function createReachability(native: NativeBridge, target: Record<string, unknown>): Reachability;
23
+ export {};
24
+ //# sourceMappingURL=reachability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachability.d.ts","sourceRoot":"","sources":["../src/reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,KAAK,IAAI,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACzD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5D,qDAAqD;IACrD,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAyBtG"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * `navigator.onLine` and the `online` and `offline` events over the host's
3
+ * path monitor (`online()` on the bridge, `__sbOnline(bool)` back). The
4
+ * value is what the host last said (`NWPathMonitor`'s path status, true
5
+ * where the host has no monitor); the events reach listeners on the global
6
+ * (`addEventListener('online', …)`, which the runtime defines in the app's
7
+ * context, where a page's `window` would take them) and the global's
8
+ * `ononline` and `onoffline` handlers.
9
+ */
10
+ export function createReachability(native, target) {
11
+ let online = native.online?.() ?? true;
12
+ const listeners = { online: new Set(), offline: new Set() };
13
+ const isKind = (type) => type === 'online' || type === 'offline';
14
+ return {
15
+ get onLine() {
16
+ return online;
17
+ },
18
+ addEventListener(type, listener) {
19
+ if (isKind(type) && typeof listener === 'function')
20
+ listeners[type].add(listener);
21
+ },
22
+ removeEventListener(type, listener) {
23
+ if (isKind(type))
24
+ listeners[type].delete(listener);
25
+ },
26
+ receive(next) {
27
+ const value = Boolean(next);
28
+ if (value === online)
29
+ return;
30
+ online = value;
31
+ const type = value ? 'online' : 'offline';
32
+ const event = { type };
33
+ const handler = target[value ? 'ononline' : 'onoffline'];
34
+ if (typeof handler === 'function')
35
+ handler(event);
36
+ for (const listener of [...listeners[type]])
37
+ listener(event);
38
+ },
39
+ };
40
+ }
41
+ //# sourceMappingURL=reachability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachability.js","sourceRoot":"","sources":["../src/reachability.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAeH,MAAM,UAAU,kBAAkB,CAAC,MAAoB,EAAE,MAA+B;IACtF,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,GAAG,EAAY,EAAE,OAAO,EAAE,IAAI,GAAG,EAAY,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAgC,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,CAAC;IACvG,OAAO;QACL,IAAI,MAAM;YACR,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,gBAAgB,CAAC,IAAI,EAAE,QAAQ;YAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,QAAQ,KAAK,UAAU;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpF,CAAC;QACD,mBAAmB,CAAC,IAAI,EAAE,QAAQ;YAChC,IAAI,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,IAAI;YACV,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO;YAC7B,MAAM,GAAG,KAAK,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1C,MAAM,KAAK,GAAG,EAAE,IAAI,EAAW,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAG,OAAoB,CAAC,KAAK,CAAC,CAAC;YAChE,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA0C,KAAK,WAAW,EAA6B,MAAM,qBAAqB,CAAC;AAC1H,OAAO,KAAK,EAAM,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAI3D,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,OAAO,IAAI,IAAI,CAAC;CACjB;AAYD,wBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CA0EzE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA4D,KAAK,WAAW,EAA6B,MAAM,qBAAqB,CAAC;AAC5I,OAAO,KAAK,EAAM,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAI3D,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,OAAO,IAAI,IAAI,CAAC;CACjB;AAaD,wBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CA2EzE"}
package/dist/run.js CHANGED
@@ -64,9 +64,11 @@ export function run(element, options = {}) {
64
64
  updateMediaEnvironment({ colorScheme: fields.colorScheme });
65
65
  }
66
66
  if (fields.dynamicTypeSize)
67
- next['dynamicTypeSize'] = fields.dynamicTypeSize;
67
+ next.dynamicTypeSize = fields.dynamicTypeSize;
68
68
  if (fields.horizontalSizeClass)
69
69
  next.horizontalSizeClass = fields.horizontalSizeClass;
70
+ if (fields.scenePhase)
71
+ next.scenePhase = fields.scenePhase;
70
72
  if (Object.keys(next).length > 0)
71
73
  root.setEnvironment(next);
72
74
  return;
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -11,12 +11,19 @@
11
11
  * `atob`, `btoa`, `fetch` with `Headers`, `Request`, `Response`,
12
12
  * `AbortController` and `AbortSignal`, `URL`, `URLSearchParams`, `crypto`
13
13
  * (`getRandomValues`, `randomUUID`), `localStorage`, `structuredClone`,
14
- * `navigator` (with `mediaSession` and `MediaMetadata` on a bridge with
14
+ * `navigator` (with `onLine` from the host's path monitor, reachability.ts,
15
+ * whose `online` and `offline` events `addEventListener` on the global takes
16
+ * with the bridge's `__sbOnline`; with `wakeLock` and `WakeLockSentinel` on
17
+ * a bridge with `wakeLock`, wakeLock.ts; with `geolocation` and
18
+ * `GeolocationPositionError` on a bridge with `geolocation`, geolocation.ts,
19
+ * with the bridge's `__sbGeolocation`; with `mediaSession` and `MediaMetadata` on a bridge with
15
20
  * `mediaSession`, mediaSession.ts), `Image` (image.ts, on a bridge with `probeImage`) with the
16
21
  * bridge's `__sbImageProbed`, `Worker` (worker.ts) with the bridge's
17
22
  * `__sbWorkerMessage` and `__sbWorkerError`, `__sbOpenURL` (openURL.ts),
18
23
  * `__sbNotificationPermission`, `__sbPushRegistered` and `__sbNotification` (notifications.ts),
19
- * `__sbUndoCommand` (undo.ts, on a bridge with `undoState`),
24
+ * `__sbUndoCommand` (undo.ts, on a bridge with `undoState`), `speechSynthesis`,
25
+ * `SpeechSynthesisUtterance` and `__sbSpeechEvent` on a bridge with `speak`,
26
+ * `SpeechRecognition` and `__sbRecognition` on one with `recognize` (speech.ts),
20
27
  * and the bridge's callbacks `__sbTimerFired` and `__sbFetchResult`. In a
21
28
  * worker's own context (its bridge has
22
29
  * `workerPostMessage`), `self`, `postMessage`, `addEventListener` and
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAiB3D,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAQzC,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,GAAE,SAA8C,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CA2PnJ"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAsB3D,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAQzC,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,GAAE,SAA8C,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAoSnJ"}
package/dist/runtime.js CHANGED
@@ -11,12 +11,19 @@
11
11
  * `atob`, `btoa`, `fetch` with `Headers`, `Request`, `Response`,
12
12
  * `AbortController` and `AbortSignal`, `URL`, `URLSearchParams`, `crypto`
13
13
  * (`getRandomValues`, `randomUUID`), `localStorage`, `structuredClone`,
14
- * `navigator` (with `mediaSession` and `MediaMetadata` on a bridge with
14
+ * `navigator` (with `onLine` from the host's path monitor, reachability.ts,
15
+ * whose `online` and `offline` events `addEventListener` on the global takes
16
+ * with the bridge's `__sbOnline`; with `wakeLock` and `WakeLockSentinel` on
17
+ * a bridge with `wakeLock`, wakeLock.ts; with `geolocation` and
18
+ * `GeolocationPositionError` on a bridge with `geolocation`, geolocation.ts,
19
+ * with the bridge's `__sbGeolocation`; with `mediaSession` and `MediaMetadata` on a bridge with
15
20
  * `mediaSession`, mediaSession.ts), `Image` (image.ts, on a bridge with `probeImage`) with the
16
21
  * bridge's `__sbImageProbed`, `Worker` (worker.ts) with the bridge's
17
22
  * `__sbWorkerMessage` and `__sbWorkerError`, `__sbOpenURL` (openURL.ts),
18
23
  * `__sbNotificationPermission`, `__sbPushRegistered` and `__sbNotification` (notifications.ts),
19
- * `__sbUndoCommand` (undo.ts, on a bridge with `undoState`),
24
+ * `__sbUndoCommand` (undo.ts, on a bridge with `undoState`), `speechSynthesis`,
25
+ * `SpeechSynthesisUtterance` and `__sbSpeechEvent` on a bridge with `speak`,
26
+ * `SpeechRecognition` and `__sbRecognition` on one with `recognize` (speech.ts),
20
27
  * and the bridge's callbacks `__sbTimerFired` and `__sbFetchResult`. In a
21
28
  * worker's own context (its bridge has
22
29
  * `workerPostMessage`), `self`, `postMessage`, `addEventListener` and
@@ -39,7 +46,12 @@ import { NativeWebSocket } from './webSocket';
39
46
  import { createSubtleCrypto } from './subtle';
40
47
  import { matchMedia } from './matchMedia';
41
48
  import { createUndoHost, installUndoHost } from './undo';
42
- import { installHostRequests, receiveHostResponse } from './hostRequests';
49
+ import { installHostRequests, receiveFilesChanged, receiveHostResponse } from './hostRequests';
50
+ import { installNativeFunctions, receiveNativeEvent } from './nativeFunctions';
51
+ import { createReachability } from './reachability';
52
+ import { createWakeLock, WakeLockSentinel } from './wakeLock';
53
+ import { createGeolocation, GeolocationPositionError } from './geolocation';
54
+ import { createSpeechSynthesis, SpeechRecognition, SpeechSynthesisUtterance } from './speech';
43
55
  /**
44
56
  * Installs the runtime on `target` (the global object) over `native`.
45
57
  * Returns what it installed, by name.
@@ -194,6 +206,16 @@ export function installRuntime(native, target = globalThis, options = {}) {
194
206
  if (native.hostRequest && !native.workerPostMessage) {
195
207
  installHostRequests({ hostRequest: native.hostRequest.bind(native), ...(native.appDirectories ? { appDirectories: native.appDirectories.bind(native) } : {}) });
196
208
  define('__sbHostResponse', receiveHostResponse);
209
+ define('__sbFilesChanged', receiveFilesChanged);
210
+ // The escape hatch's functions (nativeFunctions.ts): `callNative` rides `hostRequest`.
211
+ installNativeFunctions({
212
+ ...(native.nativeFunctions ? { nativeFunctions: native.nativeFunctions.bind(native) } : {}),
213
+ ...(native.callNativeSync ? { callNativeSync: native.callNativeSync.bind(native) } : {}),
214
+ });
215
+ define('__sbNativeEvent', receiveNativeEvent);
216
+ }
217
+ else {
218
+ installNativeFunctions(null);
197
219
  }
198
220
  // The window's undo manager (undo.ts), mirroring the app's: the system's undo comes to `__sbUndoCommand`.
199
221
  if (native.undoState && !native.workerPostMessage) {
@@ -239,11 +261,15 @@ export function installRuntime(native, target = globalThis, options = {}) {
239
261
  };
240
262
  define('localStorage', storage);
241
263
  define('structuredClone', (value) => (value === undefined ? value : JSON.parse(JSON.stringify(value))));
264
+ // Reachability (reachability.ts): `navigator.onLine` from the host's path monitor.
265
+ const reachability = createReachability(native, target);
242
266
  const navigator = {
243
267
  userAgent: 'SwiftBrowserNative',
244
268
  language: native.locale().replace('_', '-'),
245
269
  languages: [native.locale().replace('_', '-')],
246
- onLine: true,
270
+ get onLine() {
271
+ return reachability.onLine;
272
+ },
247
273
  platform: 'iOS',
248
274
  hardwareConcurrency: 1,
249
275
  // A haptic for a vibration; the pattern's length does not matter.
@@ -257,6 +283,14 @@ export function installRuntime(native, target = globalThis, options = {}) {
257
283
  return true;
258
284
  },
259
285
  };
286
+ // The screen wake lock (wakeLock.ts) over the host's idle timer; not in a worker.
287
+ const wakeLock = native.wakeLock && !native.workerPostMessage ? createWakeLock(native) : null;
288
+ if (wakeLock)
289
+ navigator['wakeLock'] = wakeLock;
290
+ // The viewer's position (geolocation.ts) over the host's location manager; not in a worker.
291
+ const geolocation = native.geolocation && !native.workerPostMessage ? createGeolocation(native, target) : null;
292
+ if (geolocation)
293
+ navigator['geolocation'] = geolocation.geolocation;
260
294
  // What plays, for the lock screen and the media keys (mediaSession.ts); not in a worker.
261
295
  const mediaSession = native.mediaSession && !native.workerPostMessage ? createMediaSession(native) : null;
262
296
  if (mediaSession)
@@ -269,6 +303,25 @@ export function installRuntime(native, target = globalThis, options = {}) {
269
303
  navigator['clearAppBadge'] = notifications.clearAppBadge;
270
304
  }
271
305
  define('navigator', navigator);
306
+ if (wakeLock)
307
+ define('WakeLockSentinel', WakeLockSentinel);
308
+ if (geolocation) {
309
+ define('GeolocationPositionError', GeolocationPositionError);
310
+ define('__sbGeolocation', geolocation.receive);
311
+ }
312
+ // Speech (speech.ts): synthesis on AVSpeechSynthesizer, recognition on SFSpeechRecognizer; not in a worker.
313
+ if (native.speak && native.speechControl && !native.workerPostMessage) {
314
+ const synthesis = createSpeechSynthesis(native);
315
+ define('speechSynthesis', synthesis.speechSynthesis);
316
+ define('SpeechSynthesisUtterance', SpeechSynthesisUtterance);
317
+ define('__sbSpeechEvent', synthesis.receive);
318
+ }
319
+ if (native.recognize && !native.workerPostMessage) {
320
+ SpeechRecognition.install({ recognize: native.recognize.bind(native) });
321
+ define('SpeechRecognition', SpeechRecognition);
322
+ define('webkitSpeechRecognition', SpeechRecognition);
323
+ define('__sbRecognition', SpeechRecognition.receive);
324
+ }
272
325
  if (mediaSession) {
273
326
  define('MediaMetadata', NativeMediaMetadata);
274
327
  define('__sbMediaSessionCommand', mediaSession.receive);
@@ -283,8 +336,12 @@ export function installRuntime(native, target = globalThis, options = {}) {
283
336
  installed.push(...installWorkerScope(native, target));
284
337
  }
285
338
  else {
286
- // The app's context: the URLs it is opened with (openURL.ts), and workers.
339
+ // The app's context: the URLs it is opened with (openURL.ts), the
340
+ // `online` and `offline` events (a page's `window` takes them), and workers.
287
341
  define('__sbOpenURL', receiveOpenURL);
342
+ define('addEventListener', reachability.addEventListener);
343
+ define('removeEventListener', reachability.removeEventListener);
344
+ define('__sbOnline', reachability.receive);
288
345
  if (native.workerStart) {
289
346
  define('Worker', NativeWorker);
290
347
  define('__sbWorkerMessage', NativeWorker.receive);
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * The Web Speech API over the host: `speechSynthesis` and
3
+ * `SpeechSynthesisUtterance` on `AVSpeechSynthesizer` (the bridge's
4
+ * `speak(id, json)` and `speechControl(action)`, events at
5
+ * `__sbSpeechEvent(id, json)`), and `SpeechRecognition` on
6
+ * `SFSpeechRecognizer` (`recognize(id, action, json)`, events at
7
+ * `__sbRecognition(id, json)`; the app's Info.plist names
8
+ * `NSSpeechRecognitionUsageDescription` and `NSMicrophoneUsageDescription`).
9
+ * The shapes apps use: an utterance's `text`, `lang`, `rate`, `pitch`,
10
+ * `volume` and its `start`, `end`, `error`, `pause`, `resume` and `boundary`
11
+ * events; a recognition's `lang`, `continuous`, `interimResults`, `start()`,
12
+ * `stop()`, `abort()` and its `start`, `result` (with `results[i][0].transcript`
13
+ * and `isFinal`), `error` (`error`: `not-allowed`, `audio-capture`,
14
+ * `no-speech`, `network`, `aborted`) and `end` events.
15
+ */
16
+ import type { NativeBridge } from './bridge';
17
+ type Listener<E> = (event: E) => void;
18
+ /** Handlers and listeners by event type, as the DOM's targets have them. */
19
+ declare class Target<E extends {
20
+ type: string;
21
+ }> {
22
+ private readonly handlers;
23
+ private readonly listeners;
24
+ constructor(handlers: Record<string, unknown>);
25
+ add(type: string, listener: Listener<E>): void;
26
+ remove(type: string, listener: Listener<E>): void;
27
+ fire(event: E): void;
28
+ }
29
+ export interface SpeechSynthesisEvent {
30
+ type: 'start' | 'end' | 'error' | 'pause' | 'resume' | 'boundary';
31
+ utterance: SpeechSynthesisUtterance;
32
+ charIndex: number;
33
+ charLength: number;
34
+ elapsedTime: number;
35
+ name: string;
36
+ error?: string;
37
+ }
38
+ export declare class SpeechSynthesisUtterance {
39
+ text: string;
40
+ lang: string;
41
+ voice: {
42
+ name: string;
43
+ lang: string;
44
+ } | null;
45
+ volume: number;
46
+ rate: number;
47
+ pitch: number;
48
+ onstart: Listener<SpeechSynthesisEvent> | null;
49
+ onend: Listener<SpeechSynthesisEvent> | null;
50
+ onerror: Listener<SpeechSynthesisEvent> | null;
51
+ onpause: Listener<SpeechSynthesisEvent> | null;
52
+ onresume: Listener<SpeechSynthesisEvent> | null;
53
+ onboundary: Listener<SpeechSynthesisEvent> | null;
54
+ onmark: Listener<SpeechSynthesisEvent> | null;
55
+ /** @internal */
56
+ readonly target: Target<SpeechSynthesisEvent>;
57
+ constructor(text?: string);
58
+ addEventListener(type: string, listener: Listener<SpeechSynthesisEvent>): void;
59
+ removeEventListener(type: string, listener: Listener<SpeechSynthesisEvent>): void;
60
+ }
61
+ export interface SpeechSynthesis {
62
+ readonly speaking: boolean;
63
+ readonly pending: boolean;
64
+ readonly paused: boolean;
65
+ onvoiceschanged: (() => void) | null;
66
+ speak(utterance: SpeechSynthesisUtterance): void;
67
+ cancel(): void;
68
+ pause(): void;
69
+ resume(): void;
70
+ getVoices(): {
71
+ name: string;
72
+ lang: string;
73
+ default: boolean;
74
+ localService: boolean;
75
+ voiceURI: string;
76
+ }[];
77
+ addEventListener(type: string, listener: () => void): void;
78
+ removeEventListener(type: string, listener: () => void): void;
79
+ }
80
+ /** The host's event for utterance `id`. */
81
+ export interface NativeSpeechEvent {
82
+ type: 'start' | 'end' | 'cancel' | 'pause' | 'resume' | 'boundary' | 'error';
83
+ charIndex?: number;
84
+ charLength?: number;
85
+ message?: string;
86
+ }
87
+ export declare function createSpeechSynthesis(native: NativeBridge): {
88
+ speechSynthesis: SpeechSynthesis;
89
+ receive(id: number, json: string): void;
90
+ };
91
+ export interface SpeechRecognitionAlternative {
92
+ transcript: string;
93
+ confidence: number;
94
+ }
95
+ export interface SpeechRecognitionResult {
96
+ readonly isFinal: boolean;
97
+ readonly length: number;
98
+ [index: number]: SpeechRecognitionAlternative;
99
+ item(index: number): SpeechRecognitionAlternative;
100
+ }
101
+ export interface SpeechRecognitionEvent {
102
+ type: 'start' | 'audiostart' | 'result' | 'error' | 'end' | 'audioend' | 'nomatch';
103
+ resultIndex: number;
104
+ results: SpeechRecognitionResult[];
105
+ error?: string;
106
+ message?: string;
107
+ }
108
+ /** The host's event for recognition `id`. */
109
+ export interface NativeRecognitionEvent {
110
+ type: 'start' | 'result' | 'error' | 'end';
111
+ transcript?: string;
112
+ isFinal?: boolean;
113
+ confidence?: number;
114
+ error?: string;
115
+ message?: string;
116
+ }
117
+ export type RecognitionBridge = Required<Pick<NativeBridge, 'recognize'>>;
118
+ export declare class SpeechRecognition {
119
+ lang: string;
120
+ continuous: boolean;
121
+ interimResults: boolean;
122
+ maxAlternatives: number;
123
+ onstart: Listener<SpeechRecognitionEvent> | null;
124
+ onaudiostart: Listener<SpeechRecognitionEvent> | null;
125
+ onresult: Listener<SpeechRecognitionEvent> | null;
126
+ onerror: Listener<SpeechRecognitionEvent> | null;
127
+ onend: Listener<SpeechRecognitionEvent> | null;
128
+ onaudioend: Listener<SpeechRecognitionEvent> | null;
129
+ onnomatch: Listener<SpeechRecognitionEvent> | null;
130
+ private readonly target;
131
+ private id;
132
+ /** The final results so far in this session, then the interim one (if any) last. */
133
+ private results;
134
+ static install(bridge: RecognitionBridge): void;
135
+ start(): void;
136
+ /** Stops listening; what was heard is still delivered, then `end`. */
137
+ stop(): void;
138
+ /** Stops listening and keeps nothing more. */
139
+ abort(): void;
140
+ addEventListener(type: string, listener: Listener<SpeechRecognitionEvent>): void;
141
+ removeEventListener(type: string, listener: Listener<SpeechRecognitionEvent>): void;
142
+ /** `__sbRecognition(id, json)`. */
143
+ static receive(id: number, json: string): void;
144
+ private event;
145
+ private handle;
146
+ }
147
+ export {};
148
+ //# sourceMappingURL=speech.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../src/speech.ts"],"names":[],"mappings":"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"}