@flighthq/host-web 0.4.0-edge.1908.751021c

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 (165) hide show
  1. package/dist/contract.d.ts +32 -0
  2. package/dist/contract.d.ts.map +1 -0
  3. package/dist/contract.js +32 -0
  4. package/dist/contract.js.map +1 -0
  5. package/dist/enableHostWeb.d.ts +2 -0
  6. package/dist/enableHostWeb.d.ts.map +1 -0
  7. package/dist/enableHostWeb.js +47 -0
  8. package/dist/enableHostWeb.js.map +1 -0
  9. package/dist/index.d.ts +32 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +32 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/webAccessibility.d.ts +3 -0
  14. package/dist/webAccessibility.d.ts.map +1 -0
  15. package/dist/webAccessibility.js +12 -0
  16. package/dist/webAccessibility.js.map +1 -0
  17. package/dist/webApp.d.ts +3 -0
  18. package/dist/webApp.d.ts.map +1 -0
  19. package/dist/webApp.js +156 -0
  20. package/dist/webApp.js.map +1 -0
  21. package/dist/webClipboard.d.ts +3 -0
  22. package/dist/webClipboard.d.ts.map +1 -0
  23. package/dist/webClipboard.js +132 -0
  24. package/dist/webClipboard.js.map +1 -0
  25. package/dist/webConnectivity.d.ts +3 -0
  26. package/dist/webConnectivity.d.ts.map +1 -0
  27. package/dist/webConnectivity.js +58 -0
  28. package/dist/webConnectivity.js.map +1 -0
  29. package/dist/webCursor.d.ts +3 -0
  30. package/dist/webCursor.d.ts.map +1 -0
  31. package/dist/webCursor.js +8 -0
  32. package/dist/webCursor.js.map +1 -0
  33. package/dist/webDevice.d.ts +3 -0
  34. package/dist/webDevice.d.ts.map +1 -0
  35. package/dist/webDevice.js +12 -0
  36. package/dist/webDevice.js.map +1 -0
  37. package/dist/webDialog.d.ts +3 -0
  38. package/dist/webDialog.d.ts.map +1 -0
  39. package/dist/webDialog.js +47 -0
  40. package/dist/webDialog.js.map +1 -0
  41. package/dist/webFilesystem.d.ts +3 -0
  42. package/dist/webFilesystem.d.ts.map +1 -0
  43. package/dist/webFilesystem.js +12 -0
  44. package/dist/webFilesystem.js.map +1 -0
  45. package/dist/webGeolocation.d.ts +3 -0
  46. package/dist/webGeolocation.d.ts.map +1 -0
  47. package/dist/webGeolocation.js +58 -0
  48. package/dist/webGeolocation.js.map +1 -0
  49. package/dist/webGlyphRasterizer.d.ts +5 -0
  50. package/dist/webGlyphRasterizer.d.ts.map +1 -0
  51. package/dist/webGlyphRasterizer.js +101 -0
  52. package/dist/webGlyphRasterizer.js.map +1 -0
  53. package/dist/webHaptics.d.ts +3 -0
  54. package/dist/webHaptics.d.ts.map +1 -0
  55. package/dist/webHaptics.js +12 -0
  56. package/dist/webHaptics.js.map +1 -0
  57. package/dist/webImage.d.ts +3 -0
  58. package/dist/webImage.d.ts.map +1 -0
  59. package/dist/webImage.js +26 -0
  60. package/dist/webImage.js.map +1 -0
  61. package/dist/webKeyboard.d.ts +3 -0
  62. package/dist/webKeyboard.d.ts.map +1 -0
  63. package/dist/webKeyboard.js +12 -0
  64. package/dist/webKeyboard.js.map +1 -0
  65. package/dist/webLifecycle.d.ts +3 -0
  66. package/dist/webLifecycle.d.ts.map +1 -0
  67. package/dist/webLifecycle.js +12 -0
  68. package/dist/webLifecycle.js.map +1 -0
  69. package/dist/webLoop.d.ts +3 -0
  70. package/dist/webLoop.d.ts.map +1 -0
  71. package/dist/webLoop.js +38 -0
  72. package/dist/webLoop.js.map +1 -0
  73. package/dist/webMediasession.d.ts +3 -0
  74. package/dist/webMediasession.d.ts.map +1 -0
  75. package/dist/webMediasession.js +51 -0
  76. package/dist/webMediasession.js.map +1 -0
  77. package/dist/webMenu.d.ts +3 -0
  78. package/dist/webMenu.d.ts.map +1 -0
  79. package/dist/webMenu.js +31 -0
  80. package/dist/webMenu.js.map +1 -0
  81. package/dist/webNotification.d.ts +3 -0
  82. package/dist/webNotification.d.ts.map +1 -0
  83. package/dist/webNotification.js +85 -0
  84. package/dist/webNotification.js.map +1 -0
  85. package/dist/webPermissions.d.ts +3 -0
  86. package/dist/webPermissions.d.ts.map +1 -0
  87. package/dist/webPermissions.js +37 -0
  88. package/dist/webPermissions.js.map +1 -0
  89. package/dist/webPlatform.d.ts +3 -0
  90. package/dist/webPlatform.d.ts.map +1 -0
  91. package/dist/webPlatform.js +12 -0
  92. package/dist/webPlatform.js.map +1 -0
  93. package/dist/webPower.d.ts +3 -0
  94. package/dist/webPower.d.ts.map +1 -0
  95. package/dist/webPower.js +217 -0
  96. package/dist/webPower.js.map +1 -0
  97. package/dist/webProtocol.d.ts +3 -0
  98. package/dist/webProtocol.d.ts.map +1 -0
  99. package/dist/webProtocol.js +78 -0
  100. package/dist/webProtocol.js.map +1 -0
  101. package/dist/webScreen.d.ts +3 -0
  102. package/dist/webScreen.d.ts.map +1 -0
  103. package/dist/webScreen.js +12 -0
  104. package/dist/webScreen.js.map +1 -0
  105. package/dist/webSensors.d.ts +3 -0
  106. package/dist/webSensors.d.ts.map +1 -0
  107. package/dist/webSensors.js +12 -0
  108. package/dist/webSensors.js.map +1 -0
  109. package/dist/webShare.d.ts +3 -0
  110. package/dist/webShare.d.ts.map +1 -0
  111. package/dist/webShare.js +33 -0
  112. package/dist/webShare.js.map +1 -0
  113. package/dist/webShell.d.ts +3 -0
  114. package/dist/webShell.d.ts.map +1 -0
  115. package/dist/webShell.js +51 -0
  116. package/dist/webShell.js.map +1 -0
  117. package/dist/webStatusbar.d.ts +3 -0
  118. package/dist/webStatusbar.d.ts.map +1 -0
  119. package/dist/webStatusbar.js +52 -0
  120. package/dist/webStatusbar.js.map +1 -0
  121. package/dist/webStorage.d.ts +3 -0
  122. package/dist/webStorage.d.ts.map +1 -0
  123. package/dist/webStorage.js +12 -0
  124. package/dist/webStorage.js.map +1 -0
  125. package/dist/webWebcam.d.ts +3 -0
  126. package/dist/webWebcam.d.ts.map +1 -0
  127. package/dist/webWebcam.js +12 -0
  128. package/dist/webWebcam.js.map +1 -0
  129. package/dist/webWindow.d.ts +3 -0
  130. package/dist/webWindow.d.ts.map +1 -0
  131. package/dist/webWindow.js +135 -0
  132. package/dist/webWindow.js.map +1 -0
  133. package/package.json +76 -0
  134. package/src/enableHostWeb.test.ts +12 -0
  135. package/src/evidence.test.ts +172 -0
  136. package/src/webAccessibility.test.ts +22 -0
  137. package/src/webApp.test.ts +22 -0
  138. package/src/webClipboard.test.ts +22 -0
  139. package/src/webConnectivity.test.ts +22 -0
  140. package/src/webCursor.test.ts +26 -0
  141. package/src/webDevice.test.ts +22 -0
  142. package/src/webDialog.test.ts +22 -0
  143. package/src/webFilesystem.test.ts +22 -0
  144. package/src/webGeolocation.test.ts +22 -0
  145. package/src/webGlyphRasterizer.test.ts +153 -0
  146. package/src/webHaptics.test.ts +22 -0
  147. package/src/webImage.test.ts +22 -0
  148. package/src/webKeyboard.test.ts +22 -0
  149. package/src/webLifecycle.test.ts +22 -0
  150. package/src/webLoop.test.ts +123 -0
  151. package/src/webMediasession.test.ts +22 -0
  152. package/src/webMenu.test.ts +22 -0
  153. package/src/webNotification.test.ts +22 -0
  154. package/src/webPermissions.test.ts +22 -0
  155. package/src/webPlatform.test.ts +22 -0
  156. package/src/webPower.test.ts +22 -0
  157. package/src/webProtocol.test.ts +22 -0
  158. package/src/webScreen.test.ts +22 -0
  159. package/src/webSensors.test.ts +22 -0
  160. package/src/webShare.test.ts +22 -0
  161. package/src/webShell.test.ts +22 -0
  162. package/src/webStatusbar.test.ts +22 -0
  163. package/src/webStorage.test.ts +22 -0
  164. package/src/webWebcam.test.ts +22 -0
  165. package/src/webWindow.test.ts +22 -0
@@ -0,0 +1,8 @@
1
+ export function createWebCursorBackend(element) {
2
+ return {
3
+ setCursor(cursor) {
4
+ element.style.cursor = cursor ?? '';
5
+ },
6
+ };
7
+ }
8
+ //# sourceMappingURL=webCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webCursor.js","sourceRoot":"","sources":["../src/webCursor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,OAAO;QACL,SAAS,CAAC,MAAqB;YAC7B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebDevice(): void;
2
+ export declare function resetHostWebDeviceForTest(): void;
3
+ //# sourceMappingURL=webDevice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webDevice.d.ts","sourceRoot":"","sources":["../src/webDevice.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -0,0 +1,12 @@
1
+ import { createWebDeviceBackend, installDeviceHostBackend } from '@flighthq/device/contract';
2
+ export function enableHostWebDevice() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ installDeviceHostBackend(createWebDeviceBackend());
7
+ }
8
+ export function resetHostWebDeviceForTest() {
9
+ _enabled = false;
10
+ }
11
+ let _enabled = false;
12
+ //# sourceMappingURL=webDevice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webDevice.js","sourceRoot":"","sources":["../src/webDevice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE7F,MAAM,UAAU,mBAAmB;IACjC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,wBAAwB,CAAC,sBAAsB,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebDialog(): void;
2
+ export declare function resetHostWebDialogForTest(): void;
3
+ //# sourceMappingURL=webDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webDialog.d.ts","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,IAAI,IAAI,CAuC1C;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -0,0 +1,47 @@
1
+ import { createWebDialogBackend, installDialogHostBackend, observeDialogHostResult } from '@flighthq/dialog/contract';
2
+ export function enableHostWebDialog() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ const base = createWebDialogBackend();
7
+ const observed = {
8
+ async confirm(options) {
9
+ const result = await base.confirm(options);
10
+ // The base returns false both for user-cancel and for missing window.confirm. Observe whether
11
+ // the surface exists so the diagnostic distinguishes "no API" from "user said no."
12
+ observeDialogHostResult('confirm', typeof window !== 'undefined' && typeof window.confirm === 'function');
13
+ return result;
14
+ },
15
+ async message(options) {
16
+ const result = await base.message(options);
17
+ observeDialogHostResult('message', typeof window !== 'undefined' && typeof window.alert === 'function');
18
+ return result;
19
+ },
20
+ async openDirectory(options) {
21
+ const result = await base.openDirectory(options);
22
+ observeDialogHostResult('openDirectory', result.length > 0);
23
+ return result;
24
+ },
25
+ async openFile(options) {
26
+ const result = await base.openFile(options);
27
+ observeDialogHostResult('openFile', result.length > 0);
28
+ return result;
29
+ },
30
+ async prompt(options) {
31
+ const result = await base.prompt(options);
32
+ observeDialogHostResult('prompt', typeof window !== 'undefined' && typeof window.prompt === 'function');
33
+ return result;
34
+ },
35
+ async saveFile(options) {
36
+ const result = await base.saveFile(options);
37
+ observeDialogHostResult('saveFile', result !== null);
38
+ return result;
39
+ },
40
+ };
41
+ installDialogHostBackend(observed);
42
+ }
43
+ export function resetHostWebDialogForTest() {
44
+ _enabled = false;
45
+ }
46
+ let _enabled = false;
47
+ //# sourceMappingURL=webDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webDialog.js","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGtH,MAAM,UAAU,mBAAmB;IACjC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAkB;QAC9B,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,8FAA8F;YAC9F,mFAAmF;YACnF,uBAAuB,CAAC,SAAS,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;YAC1G,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,uBAAuB,CAAC,SAAS,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;YACxG,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,OAAO;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjD,uBAAuB,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5C,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,uBAAuB,CAAC,QAAQ,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;YACxG,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,OAAO;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5C,uBAAuB,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;IACF,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebFileSystem(): void;
2
+ export declare function resetHostWebFilesystemForTest(): void;
3
+ //# sourceMappingURL=webFilesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webFilesystem.d.ts","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"AAEA,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
@@ -0,0 +1,12 @@
1
+ import { createWebFileSystemBackend, installFileSystemHostBackend } from '@flighthq/filesystem/contract';
2
+ export function enableHostWebFileSystem() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ installFileSystemHostBackend(createWebFileSystemBackend());
7
+ }
8
+ export function resetHostWebFilesystemForTest() {
9
+ _enabled = false;
10
+ }
11
+ let _enabled = false;
12
+ //# sourceMappingURL=webFilesystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webFilesystem.js","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAEzG,MAAM,UAAU,uBAAuB;IACrC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,4BAA4B,CAAC,0BAA0B,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebGeolocation(): void;
2
+ export declare function resetHostWebGeolocationForTest(): void;
3
+ //# sourceMappingURL=webGeolocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webGeolocation.d.ts","sourceRoot":"","sources":["../src/webGeolocation.ts"],"names":[],"mappings":"AAOA,wBAAgB,wBAAwB,IAAI,IAAI,CAgD/C;AAED,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
@@ -0,0 +1,58 @@
1
+ import { createWebGeolocationBackend, installGeolocationHostBackend, observeGeolocationHostResult, } from '@flighthq/geolocation/contract';
2
+ export function enableHostWebGeolocation() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ const inner = createWebGeolocationBackend();
7
+ const backend = {
8
+ clearWatch(id) {
9
+ inner.clearWatch(id);
10
+ },
11
+ getCurrentPosition(options) {
12
+ return inner.getCurrentPosition(options).then((position) => {
13
+ observeGeolocationHostResult('getCurrentPosition', position !== null);
14
+ return position;
15
+ });
16
+ },
17
+ getCurrentPositionResult(options) {
18
+ return inner.getCurrentPositionResult(options).then((result) => {
19
+ observeGeolocationHostResult('getCurrentPositionResult', result.position !== null);
20
+ return result;
21
+ });
22
+ },
23
+ async getPermission() {
24
+ try {
25
+ const state = await inner.getPermission();
26
+ observeGeolocationHostResult('getPermission', true);
27
+ return state;
28
+ }
29
+ catch {
30
+ observeGeolocationHostResult('getPermission', false);
31
+ return 'prompt';
32
+ }
33
+ },
34
+ async requestPermission() {
35
+ try {
36
+ const result = await inner.requestPermission();
37
+ observeGeolocationHostResult('requestPermission', result);
38
+ return result;
39
+ }
40
+ catch {
41
+ observeGeolocationHostResult('requestPermission', false);
42
+ return false;
43
+ }
44
+ },
45
+ subscribePermission(listener) {
46
+ return inner.subscribePermission(listener);
47
+ },
48
+ watchPosition(listener, options, onError) {
49
+ return inner.watchPosition(listener, options, onError);
50
+ },
51
+ };
52
+ installGeolocationHostBackend(backend);
53
+ }
54
+ export function resetHostWebGeolocationForTest() {
55
+ _enabled = false;
56
+ }
57
+ let _enabled = false;
58
+ //# sourceMappingURL=webGeolocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webGeolocation.js","sourceRoot":"","sources":["../src/webGeolocation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AAGxC,MAAM,UAAU,wBAAwB;IACtC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,KAAK,GAAG,2BAA2B,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAuB;QAClC,UAAU,CAAC,EAAE;YACX,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,kBAAkB,CAAC,OAAO;YACxB,OAAO,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACzD,4BAA4B,CAAC,oBAAoB,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;gBACtE,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,wBAAwB,CAAC,OAAO;YAC9B,OAAO,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7D,4BAA4B,CAAC,0BAA0B,EAAE,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;gBACnF,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC1C,4BAA4B,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBACrD,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,iBAAiB;YACrB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC/C,4BAA4B,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;gBAC1D,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBACzD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,mBAAmB,CAAC,QAAQ;YAC1B,OAAO,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO;YACtC,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;IACF,6BAA6B,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { GlyphRasterizerBackend } from '@flighthq/types/contract';
2
+ export declare function createWebGlyphRasterizerBackend(): GlyphRasterizerBackend;
3
+ export declare function enableHostWebGlyphRasterizer(): void;
4
+ export declare function resetHostWebGlyphRasterizerForTest(): void;
5
+ //# sourceMappingURL=webGlyphRasterizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webGlyphRasterizer.d.ts","sourceRoot":"","sources":["../src/webGlyphRasterizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,+BAA+B,IAAI,sBAAsB,CA8BxE;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAInD;AAsED,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
@@ -0,0 +1,101 @@
1
+ import { installGlyphRasterizerHostBackend, observeGlyphRasterizerHostResult } from '@flighthq/glyphatlas/contract';
2
+ export function createWebGlyphRasterizerBackend() {
3
+ return {
4
+ measureMetrics(options) {
5
+ const context = _acquireGlyphRasterContext();
6
+ if (context === null) {
7
+ observeGlyphRasterizerHostResult('measureMetrics', false);
8
+ return null;
9
+ }
10
+ _applyGlyphRasterFont(context, options);
11
+ const metrics = context.measureText('Hg');
12
+ const ascent = metrics.fontBoundingBoxAscent;
13
+ const descent = metrics.fontBoundingBoxDescent;
14
+ if (!(ascent > 0) || !(descent >= 0)) {
15
+ observeGlyphRasterizerHostResult('measureMetrics', false);
16
+ return null;
17
+ }
18
+ observeGlyphRasterizerHostResult('measureMetrics', true);
19
+ return { ascent, descent, lineGap: 0 };
20
+ },
21
+ rasterize(codepoint, options) {
22
+ const context = _acquireGlyphRasterContext();
23
+ if (context === null) {
24
+ observeGlyphRasterizerHostResult('rasterize', false);
25
+ return null;
26
+ }
27
+ // Observe on context acquisition, not on result: null is valid for zero-ink glyphs (space).
28
+ observeGlyphRasterizerHostResult('rasterize', true);
29
+ return _rasterizeGlyphOnContext(context, codepoint, options);
30
+ },
31
+ };
32
+ }
33
+ export function enableHostWebGlyphRasterizer() {
34
+ if (_enabled)
35
+ return;
36
+ _enabled = true;
37
+ installGlyphRasterizerHostBackend(createWebGlyphRasterizerBackend());
38
+ }
39
+ function _acquireGlyphRasterContext() {
40
+ try {
41
+ if (typeof OffscreenCanvas !== 'undefined') {
42
+ const context = new OffscreenCanvas(1, 1).getContext('2d');
43
+ if (context !== null)
44
+ return context;
45
+ }
46
+ if (typeof document !== 'undefined' && typeof document.createElement === 'function') {
47
+ const context = document.createElement('canvas').getContext('2d');
48
+ if (context !== null)
49
+ return context;
50
+ }
51
+ }
52
+ catch {
53
+ return null;
54
+ }
55
+ return null;
56
+ }
57
+ function _applyGlyphRasterFont(context, options) {
58
+ const fontStyle = options.fontStyle ?? 'normal';
59
+ const fontWeight = options.fontWeight ?? 'normal';
60
+ context.font = `${fontStyle} ${fontWeight} ${options.fontSize}px ${options.fontFamily}`;
61
+ }
62
+ function _rasterizeGlyphOnContext(context, codepoint, options) {
63
+ const text = String.fromCodePoint(codepoint);
64
+ _applyGlyphRasterFont(context, options);
65
+ context.textBaseline = 'alphabetic';
66
+ context.textAlign = 'left';
67
+ const metrics = context.measureText(text);
68
+ const advance = metrics.width;
69
+ const left = metrics.actualBoundingBoxLeft ?? 0;
70
+ const right = metrics.actualBoundingBoxRight ?? advance;
71
+ const ascent = metrics.actualBoundingBoxAscent ?? options.fontSize;
72
+ const descent = metrics.actualBoundingBoxDescent ?? 0;
73
+ const guard = 1;
74
+ const width = Math.max(0, Math.ceil(left + right)) + guard * 2;
75
+ const height = Math.max(0, Math.ceil(ascent + descent)) + guard * 2;
76
+ if (width <= guard * 2 || height <= guard * 2)
77
+ return null;
78
+ const canvas = context.canvas;
79
+ canvas.width = width;
80
+ canvas.height = height;
81
+ _applyGlyphRasterFont(context, options);
82
+ context.textBaseline = 'alphabetic';
83
+ context.textAlign = 'left';
84
+ context.clearRect(0, 0, width, height);
85
+ context.fillStyle = '#ffffff';
86
+ context.fillText(text, guard + left, guard + ascent);
87
+ const image = context.getImageData(0, 0, width, height);
88
+ return {
89
+ advance,
90
+ bearingX: -left,
91
+ bearingY: ascent,
92
+ height,
93
+ pixels: new Uint8ClampedArray(image.data),
94
+ width,
95
+ };
96
+ }
97
+ export function resetHostWebGlyphRasterizerForTest() {
98
+ _enabled = false;
99
+ }
100
+ let _enabled = false;
101
+ //# sourceMappingURL=webGlyphRasterizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webGlyphRasterizer.js","sourceRoot":"","sources":["../src/webGlyphRasterizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebHaptics(): void;
2
+ export declare function resetHostWebHapticsForTest(): void;
3
+ //# sourceMappingURL=webHaptics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webHaptics.d.ts","sourceRoot":"","sources":["../src/webHaptics.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,IAAI,IAAI,CAI3C;AAED,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
@@ -0,0 +1,12 @@
1
+ import { createWebHapticsBackend, installHapticsHostBackend } from '@flighthq/haptics/contract';
2
+ export function enableHostWebHaptics() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ installHapticsHostBackend(createWebHapticsBackend());
7
+ }
8
+ export function resetHostWebHapticsForTest() {
9
+ _enabled = false;
10
+ }
11
+ let _enabled = false;
12
+ //# sourceMappingURL=webHaptics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webHaptics.js","sourceRoot":"","sources":["../src/webHaptics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEhG,MAAM,UAAU,oBAAoB;IAClC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,yBAAyB,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebImage(): void;
2
+ export declare function resetHostWebImageForTest(): void;
3
+ //# sourceMappingURL=webImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webImage.d.ts","sourceRoot":"","sources":["../src/webImage.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,IAAI,IAAI,CAiBzC;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
@@ -0,0 +1,26 @@
1
+ import { createWebImageBackend, installImageHostBackend, observeImageHostResult } from '@flighthq/image/contract';
2
+ export function enableHostWebImage() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ const inner = createWebImageBackend();
7
+ const backend = {
8
+ async loadImageFromUrl(url, crossOrigin, signal) {
9
+ try {
10
+ const result = await inner.loadImageFromUrl(url, crossOrigin, signal);
11
+ observeImageHostResult('loadImageFromUrl', true);
12
+ return result;
13
+ }
14
+ catch (error) {
15
+ observeImageHostResult('loadImageFromUrl', false);
16
+ throw error;
17
+ }
18
+ },
19
+ };
20
+ installImageHostBackend(backend);
21
+ }
22
+ export function resetHostWebImageForTest() {
23
+ _enabled = false;
24
+ }
25
+ let _enabled = false;
26
+ //# sourceMappingURL=webImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webImage.js","sourceRoot":"","sources":["../src/webImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlH,MAAM,UAAU,kBAAkB;IAChC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAiB;QAC5B,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM;YAC7C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;gBACtE,sBAAsB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,sBAAsB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IACF,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebSoftKeyboard(): void;
2
+ export declare function resetHostWebKeyboardForTest(): void;
3
+ //# sourceMappingURL=webKeyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webKeyboard.d.ts","sourceRoot":"","sources":["../src/webKeyboard.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
@@ -0,0 +1,12 @@
1
+ import { createWebSoftKeyboardBackend, installSoftKeyboardHostBackend } from '@flighthq/keyboard/contract';
2
+ export function enableHostWebSoftKeyboard() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ installSoftKeyboardHostBackend(createWebSoftKeyboardBackend());
7
+ }
8
+ export function resetHostWebKeyboardForTest() {
9
+ _enabled = false;
10
+ }
11
+ let _enabled = false;
12
+ //# sourceMappingURL=webKeyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webKeyboard.js","sourceRoot":"","sources":["../src/webKeyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE3G,MAAM,UAAU,yBAAyB;IACvC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,8BAA8B,CAAC,4BAA4B,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebLifecycle(): void;
2
+ export declare function resetHostWebLifecycleForTest(): void;
3
+ //# sourceMappingURL=webLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webLifecycle.d.ts","sourceRoot":"","sources":["../src/webLifecycle.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
@@ -0,0 +1,12 @@
1
+ import { createWebLifecycleBackend, installLifecycleHostBackend } from '@flighthq/lifecycle/contract';
2
+ export function enableHostWebLifecycle() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ installLifecycleHostBackend(createWebLifecycleBackend());
7
+ }
8
+ export function resetHostWebLifecycleForTest() {
9
+ _enabled = false;
10
+ }
11
+ let _enabled = false;
12
+ //# sourceMappingURL=webLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webLifecycle.js","sourceRoot":"","sources":["../src/webLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEtG,MAAM,UAAU,sBAAsB;IACpC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,2BAA2B,CAAC,yBAAyB,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebLoop(): void;
2
+ export declare function resetHostWebLoopForTest(): void;
3
+ //# sourceMappingURL=webLoop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webLoop.d.ts","sourceRoot":"","sources":["../src/webLoop.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,IAAI,IAAI,CA4BxC;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,38 @@
1
+ import { createWebLoopBackend, installLoopHostBackend, observeLoopHostResult } from '@flighthq/application/contract';
2
+ export function enableHostWebLoop() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ const inner = createWebLoopBackend();
7
+ const backend = {
8
+ requestFrame(callback) {
9
+ try {
10
+ const handle = inner.requestFrame(callback);
11
+ observeLoopHostResult('requestFrame', true);
12
+ return handle;
13
+ }
14
+ catch {
15
+ observeLoopHostResult('requestFrame', false);
16
+ return null;
17
+ }
18
+ },
19
+ cancelFrame(handle) {
20
+ try {
21
+ inner.cancelFrame(handle);
22
+ observeLoopHostResult('cancelFrame', true);
23
+ }
24
+ catch {
25
+ observeLoopHostResult('cancelFrame', false);
26
+ }
27
+ },
28
+ now() {
29
+ return inner.now();
30
+ },
31
+ };
32
+ installLoopHostBackend(backend);
33
+ }
34
+ export function resetHostWebLoopForTest() {
35
+ _enabled = false;
36
+ }
37
+ let _enabled = false;
38
+ //# sourceMappingURL=webLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webLoop.js","sourceRoot":"","sources":["../src/webLoop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGrH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAgB;QAC3B,YAAY,CAAC,QAAgC;YAC3C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5C,qBAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC5C,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,WAAW,CAAC,MAAe;YACzB,IAAI,CAAC;gBACH,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC1B,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,GAAG;YACD,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;IACF,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebMediaSession(): void;
2
+ export declare function resetHostWebMediasessionForTest(): void;
3
+ //# sourceMappingURL=webMediasession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webMediasession.d.ts","sourceRoot":"","sources":["../src/webMediasession.ts"],"names":[],"mappings":"AAOA,wBAAgB,yBAAyB,IAAI,IAAI,CAuChD;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
@@ -0,0 +1,51 @@
1
+ import { createWebMediaSessionBackend, installMediaSessionHostBackend, observeMediaSessionHostResult, } from '@flighthq/mediasession/contract';
2
+ export function enableHostWebMediaSession() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ const inner = createWebMediaSessionBackend();
7
+ const backend = {
8
+ setActionHandler(action, handler) {
9
+ try {
10
+ inner.setActionHandler(action, handler);
11
+ observeMediaSessionHostResult('setActionHandler', true);
12
+ }
13
+ catch {
14
+ observeMediaSessionHostResult('setActionHandler', false);
15
+ }
16
+ },
17
+ setMetadata(metadata) {
18
+ try {
19
+ inner.setMetadata(metadata);
20
+ observeMediaSessionHostResult('setMetadata', true);
21
+ }
22
+ catch {
23
+ observeMediaSessionHostResult('setMetadata', false);
24
+ }
25
+ },
26
+ setPlaybackState(state) {
27
+ try {
28
+ inner.setPlaybackState(state);
29
+ observeMediaSessionHostResult('setPlaybackState', true);
30
+ }
31
+ catch {
32
+ observeMediaSessionHostResult('setPlaybackState', false);
33
+ }
34
+ },
35
+ setPositionState(state) {
36
+ try {
37
+ inner.setPositionState(state);
38
+ observeMediaSessionHostResult('setPositionState', true);
39
+ }
40
+ catch {
41
+ observeMediaSessionHostResult('setPositionState', false);
42
+ }
43
+ },
44
+ };
45
+ installMediaSessionHostBackend(backend);
46
+ }
47
+ export function resetHostWebMediasessionForTest() {
48
+ _enabled = false;
49
+ }
50
+ let _enabled = false;
51
+ //# sourceMappingURL=webMediasession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webMediasession.js","sourceRoot":"","sources":["../src/webMediasession.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,iCAAiC,CAAC;AAGzC,MAAM,UAAU,yBAAyB;IACvC,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,KAAK,GAAG,4BAA4B,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAwB;QACnC,gBAAgB,CAAC,MAAM,EAAE,OAAO;YAC9B,IAAI,CAAC;gBACH,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxC,6BAA6B,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,WAAW,CAAC,QAAQ;YAClB,IAAI,CAAC;gBACH,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5B,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,gBAAgB,CAAC,KAAK;YACpB,IAAI,CAAC;gBACH,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9B,6BAA6B,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,gBAAgB,CAAC,KAAK;YACpB,IAAI,CAAC;gBACH,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC9B,6BAA6B,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;KACF,CAAC;IACF,8BAA8B,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebMenu(): void;
2
+ export declare function resetHostWebMenuForTest(): void;
3
+ //# sourceMappingURL=webMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webMenu.d.ts","sourceRoot":"","sources":["../src/webMenu.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,31 @@
1
+ import { installMenuHostBackend, observeMenuHostResult, showWebContextMenu } from '@flighthq/menu/contract';
2
+ export function enableHostWebMenu() {
3
+ if (_enabled)
4
+ return;
5
+ _enabled = true;
6
+ const backend = {
7
+ popupContextMenu(items, x, y) {
8
+ try {
9
+ const result = showWebContextMenu(items, x, y);
10
+ observeMenuHostResult('popupContextMenu', true);
11
+ return result;
12
+ }
13
+ catch {
14
+ observeMenuHostResult('popupContextMenu', false);
15
+ return Promise.resolve(null);
16
+ }
17
+ },
18
+ setApplicationMenu() {
19
+ return false;
20
+ },
21
+ subscribeSelect() {
22
+ return () => { };
23
+ },
24
+ };
25
+ installMenuHostBackend(backend);
26
+ }
27
+ export function resetHostWebMenuForTest() {
28
+ _enabled = false;
29
+ }
30
+ let _enabled = false;
31
+ //# sourceMappingURL=webMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webMenu.js","sourceRoot":"","sources":["../src/webMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG5G,MAAM,UAAU,iBAAiB;IAC/B,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,MAAM,OAAO,GAAgB;QAC3B,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/C,qBAAqB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBAChD,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,qBAAqB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,kBAAkB;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,eAAe;YACb,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;IACF,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function enableHostWebNotification(): void;
2
+ export declare function resetHostWebNotificationForTest(): void;
3
+ //# sourceMappingURL=webNotification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webNotification.d.ts","sourceRoot":"","sources":["../src/webNotification.ts"],"names":[],"mappings":"AAOA,wBAAgB,yBAAyB,IAAI,IAAI,CA4FhD;AAED,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}