@flighthq/host-tauri 0.5.1-next.1069.554a2ac → 0.5.1-next.1201.9b49dee

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 (72) hide show
  1. package/README.md +3 -3
  2. package/dist/contract.d.ts +2 -5
  3. package/dist/contract.d.ts.map +1 -1
  4. package/dist/contract.js +2 -5
  5. package/dist/contract.js.map +1 -1
  6. package/dist/tauriApp.d.ts +9 -3
  7. package/dist/tauriApp.d.ts.map +1 -1
  8. package/dist/tauriApp.js +51 -33
  9. package/dist/tauriApp.js.map +1 -1
  10. package/dist/tauriClipboard.d.ts +3 -3
  11. package/dist/tauriClipboard.d.ts.map +1 -1
  12. package/dist/tauriClipboard.js +11 -10
  13. package/dist/tauriClipboard.js.map +1 -1
  14. package/dist/tauriDialog.d.ts +6 -9
  15. package/dist/tauriDialog.d.ts.map +1 -1
  16. package/dist/tauriDialog.js +20 -12
  17. package/dist/tauriDialog.js.map +1 -1
  18. package/dist/tauriHost.d.ts +3 -0
  19. package/dist/tauriHost.d.ts.map +1 -0
  20. package/dist/tauriHost.js +45 -0
  21. package/dist/tauriHost.js.map +1 -0
  22. package/dist/tauriMenu.d.ts +5 -3
  23. package/dist/tauriMenu.d.ts.map +1 -1
  24. package/dist/tauriMenu.js +40 -23
  25. package/dist/tauriMenu.js.map +1 -1
  26. package/dist/tauriNotification.d.ts +5 -3
  27. package/dist/tauriNotification.d.ts.map +1 -1
  28. package/dist/tauriNotification.js +33 -17
  29. package/dist/tauriNotification.js.map +1 -1
  30. package/dist/tauriPlatform.d.ts +3 -3
  31. package/dist/tauriPlatform.d.ts.map +1 -1
  32. package/dist/tauriPlatform.js +5 -8
  33. package/dist/tauriPlatform.js.map +1 -1
  34. package/dist/tauriShell.d.ts +5 -5
  35. package/dist/tauriShell.d.ts.map +1 -1
  36. package/dist/tauriShell.js +24 -23
  37. package/dist/tauriShell.js.map +1 -1
  38. package/dist/tauriShortcut.d.ts +4 -5
  39. package/dist/tauriShortcut.d.ts.map +1 -1
  40. package/dist/tauriShortcut.js +17 -16
  41. package/dist/tauriShortcut.js.map +1 -1
  42. package/dist/tauriTray.d.ts +10 -3
  43. package/dist/tauriTray.d.ts.map +1 -1
  44. package/dist/tauriTray.js +252 -211
  45. package/dist/tauriTray.js.map +1 -1
  46. package/dist/tauriUnsupportedHostGroups.d.ts +18 -0
  47. package/dist/tauriUnsupportedHostGroups.d.ts.map +1 -0
  48. package/dist/tauriUnsupportedHostGroups.js +51 -0
  49. package/dist/tauriUnsupportedHostGroups.js.map +1 -0
  50. package/dist/tauriWindow.d.ts +2 -3
  51. package/dist/tauriWindow.d.ts.map +1 -1
  52. package/dist/tauriWindow.js +5 -5
  53. package/dist/tauriWindow.js.map +1 -1
  54. package/package.json +18 -15
  55. package/src/tauriApp.test.ts +48 -9
  56. package/src/tauriClipboard.test.ts +13 -10
  57. package/src/tauriDialog.test.ts +34 -52
  58. package/src/tauriHost.test.ts +212 -0
  59. package/src/tauriMenu.test.ts +28 -14
  60. package/src/tauriNotification.test.ts +28 -10
  61. package/src/tauriPackage.test.ts +299 -0
  62. package/src/tauriPlatform.test.ts +11 -8
  63. package/src/tauriShell.test.ts +22 -30
  64. package/src/tauriShortcut.test.ts +16 -23
  65. package/src/tauriTray.test.ts +89 -38
  66. package/src/tauriUnsupportedHostGroups.test.ts +41 -0
  67. package/src/tauriWindow.test.ts +15 -20
  68. package/dist/tauriRegister.d.ts +0 -4
  69. package/dist/tauriRegister.d.ts.map +0 -1
  70. package/dist/tauriRegister.js +0 -69
  71. package/dist/tauriRegister.js.map +0 -1
  72. package/src/tauriRegister.test.ts +0 -91
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @flighthq/host-tauri
2
2
 
3
- Tauri v2 host adapter with injected API modules and exact explicit capability subsets
3
+ Dependency-injected Tauri Host providers over a minimal TauriApi
4
4
 
5
5
  ## Install
6
6
 
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/host-tauri`. The `@f
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/host-tauri@0.5.1-next.1069.554a2ac](https://github.com/flighthq/flight/tree/554a2acc3fecf189b89b0729308ff890a15c21cc/packages/host-tauri)
17
- - [License](https://github.com/flighthq/flight/blob/554a2acc3fecf189b89b0729308ff890a15c21cc/LICENSE.md)
16
+ - [Source for @flighthq/host-tauri@0.5.1-next.1201.9b49dee](https://github.com/flighthq/flight/tree/9b49dee3f22f6b2838c3d237edcc77bca65734f2/packages/host-tauri)
17
+ - [License](https://github.com/flighthq/flight/blob/9b49dee3f22f6b2838c3d237edcc77bca65734f2/LICENSE.md)
@@ -1,16 +1,13 @@
1
1
  export * from './tauriApp';
2
2
  export * from './tauriClipboard';
3
3
  export * from './tauriDialog';
4
+ export * from './tauriHost';
4
5
  export * from './tauriMenu';
5
6
  export * from './tauriNotification';
6
7
  export * from './tauriPlatform';
7
- export * from './tauriRegister';
8
8
  export * from './tauriShell';
9
9
  export * from './tauriShortcut';
10
10
  export * from './tauriTray';
11
+ export * from './tauriUnsupportedHostGroups';
11
12
  export * from './tauriWindow';
12
- export { initializeTauriDirectoryOpenDialogBackend, initializeTauriFileOpenDialogBackend, initializeTauriFileSaveDialogBackend, initializeTauriMessageDialogBackend, } from './tauriDialog';
13
- export { initializeTauriWindowBackend } from './tauriWindow';
14
- export { initializeTauriPlatformBackend } from './tauriPlatform';
15
- export { initializeTauriNotificationCapabilities } from './tauriNotification';
16
13
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,yCAAyC,EACzC,oCAAoC,EACpC,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,uCAAuC,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC"}
package/dist/contract.js CHANGED
@@ -1,16 +1,13 @@
1
1
  export * from './tauriApp';
2
2
  export * from './tauriClipboard';
3
3
  export * from './tauriDialog';
4
+ export * from './tauriHost';
4
5
  export * from './tauriMenu';
5
6
  export * from './tauriNotification';
6
7
  export * from './tauriPlatform';
7
- export * from './tauriRegister';
8
8
  export * from './tauriShell';
9
9
  export * from './tauriShortcut';
10
10
  export * from './tauriTray';
11
+ export * from './tauriUnsupportedHostGroups';
11
12
  export * from './tauriWindow';
12
- export { initializeTauriDirectoryOpenDialogBackend, initializeTauriFileOpenDialogBackend, initializeTauriFileSaveDialogBackend, initializeTauriMessageDialogBackend, } from './tauriDialog';
13
- export { initializeTauriWindowBackend } from './tauriWindow';
14
- export { initializeTauriPlatformBackend } from './tauriPlatform';
15
- export { initializeTauriNotificationCapabilities } from './tauriNotification';
16
13
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,yCAAyC,EACzC,oCAAoC,EACpC,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,uCAAuC,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC"}
@@ -1,4 +1,10 @@
1
- import type { EntityConstruction, TauriApi, TauriAppCapabilities } from '@flighthq/types/contract';
2
- export declare function createTauriAppCapabilities(tauri: TauriApi): TauriAppCapabilities;
3
- export declare function initializeTauriAppCapabilities(out: EntityConstruction<TauriAppCapabilities>, tauri: TauriApi): void;
1
+ import type { HostAppHideProvider, HostAppLocaleProvider, HostAppNameProvider, HostAppQuitProvider, HostAppRelaunchProvider, HostAppShowProvider, HostAppVersionProvider, TauriApi, TauriAppCapabilities } from '@flighthq/types/contract';
2
+ export declare function tauriHostApp(tauri: TauriApi): TauriAppCapabilities;
3
+ export declare function tauriHostAppHide(tauri: TauriApi): HostAppHideProvider;
4
+ export declare function tauriHostAppLocale(tauri: TauriApi): HostAppLocaleProvider;
5
+ export declare function tauriHostAppName(tauri: TauriApi): HostAppNameProvider;
6
+ export declare function tauriHostAppQuit(tauri: TauriApi): HostAppQuitProvider;
7
+ export declare function tauriHostAppRelaunch(tauri: TauriApi): HostAppRelaunchProvider;
8
+ export declare function tauriHostAppShow(tauri: TauriApi): HostAppShowProvider;
9
+ export declare function tauriHostAppVersion(tauri: TauriApi): HostAppVersionProvider;
4
10
  //# sourceMappingURL=tauriApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriApp.d.ts","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAQV,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CAIhF;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAuCnH"}
1
+ {"version":3,"file":"tauriApp.d.ts","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CAUlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CAIrE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAWzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CASrE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CAIrE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,uBAAuB,CAI7E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,mBAAmB,CAIrE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,sBAAsB,CAS3E"}
package/dist/tauriApp.js CHANGED
@@ -1,47 +1,65 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
- export function createTauriAppCapabilities(tauri) {
3
- const out = allocateEntity();
4
- initializeTauriAppCapabilities(out, tauri);
5
- return finishEntity(out);
2
+ export function tauriHostApp(tauri) {
3
+ const group = allocateEntity();
4
+ group.hide = tauriHostAppHide(tauri);
5
+ group.locale = tauriHostAppLocale(tauri);
6
+ group.name = tauriHostAppName(tauri);
7
+ group.quit = tauriHostAppQuit(tauri);
8
+ group.relaunch = tauriHostAppRelaunch(tauri);
9
+ group.show = tauriHostAppShow(tauri);
10
+ group.version = tauriHostAppVersion(tauri);
11
+ return finishEntity(group);
6
12
  }
7
- export function initializeTauriAppCapabilities(out, tauri) {
13
+ export function tauriHostAppHide(tauri) {
14
+ const provider = allocateEntity();
15
+ provider.hideApp = () => void tauri.app.hide().catch(() => { });
16
+ return finishEntity(provider);
17
+ }
18
+ export function tauriHostAppLocale(tauri) {
8
19
  let locale = '';
20
+ void tauri.os
21
+ .locale()
22
+ .then((value) => (locale = value ?? ''))
23
+ .catch(() => { });
24
+ const provider = allocateEntity();
25
+ provider.getLocale = () => locale;
26
+ provider.getPreferredSystemLanguages = () => (locale === '' ? [] : [locale]);
27
+ provider.getSystemLocale = () => locale;
28
+ return finishEntity(provider);
29
+ }
30
+ export function tauriHostAppName(tauri) {
9
31
  let name = '';
10
- let version = '';
11
32
  void tauri.app
12
33
  .getName()
13
34
  .then((value) => (name = value))
14
35
  .catch(() => { });
36
+ const provider = allocateEntity();
37
+ provider.getName = () => name;
38
+ return finishEntity(provider);
39
+ }
40
+ export function tauriHostAppQuit(tauri) {
41
+ const provider = allocateEntity();
42
+ provider.quit = () => void tauri.process.exit(0).catch(() => { });
43
+ return finishEntity(provider);
44
+ }
45
+ export function tauriHostAppRelaunch(tauri) {
46
+ const provider = allocateEntity();
47
+ provider.relaunch = () => void tauri.process.relaunch().catch(() => { });
48
+ return finishEntity(provider);
49
+ }
50
+ export function tauriHostAppShow(tauri) {
51
+ const provider = allocateEntity();
52
+ provider.showApp = () => void tauri.app.show().catch(() => { });
53
+ return finishEntity(provider);
54
+ }
55
+ export function tauriHostAppVersion(tauri) {
56
+ let version = '';
15
57
  void tauri.app
16
58
  .getVersion()
17
59
  .then((value) => (version = value))
18
60
  .catch(() => { });
19
- void tauri.os
20
- .locale()
21
- .then((value) => (locale = value ?? ''))
22
- .catch(() => { });
23
- const hideBackend = allocateEntity();
24
- hideBackend.hideApp = () => void tauri.app.hide().catch(() => { });
25
- out.hide = finishEntity(hideBackend);
26
- const localeBackend = allocateEntity();
27
- localeBackend.getLocale = () => locale;
28
- localeBackend.getPreferredSystemLanguages = () => (locale === '' ? [] : [locale]);
29
- localeBackend.getSystemLocale = () => locale;
30
- out.locale = finishEntity(localeBackend);
31
- const nameBackend = allocateEntity();
32
- nameBackend.getName = () => name;
33
- out.name = finishEntity(nameBackend);
34
- const quitBackend = allocateEntity();
35
- quitBackend.quit = () => void tauri.process.exit(0).catch(() => { });
36
- out.quit = finishEntity(quitBackend);
37
- const relaunchBackend = allocateEntity();
38
- relaunchBackend.relaunch = () => void tauri.process.relaunch().catch(() => { });
39
- out.relaunch = finishEntity(relaunchBackend);
40
- const showBackend = allocateEntity();
41
- showBackend.showApp = () => void tauri.app.show().catch(() => { });
42
- out.show = finishEntity(showBackend);
43
- const versionBackend = allocateEntity();
44
- versionBackend.getVersion = () => version;
45
- out.version = finishEntity(versionBackend);
61
+ const provider = allocateEntity();
62
+ provider.getVersion = () => version;
63
+ return finishEntity(provider);
46
64
  }
47
65
  //# sourceMappingURL=tauriApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriApp.js","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tauriApp.js","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ClipboardTextBackend, EntityConstruction, TauriApi } from '@flighthq/types/contract';
2
- export declare function createTauriClipboardBackend(tauri: TauriApi): ClipboardTextBackend;
3
- export declare function initializeTauriClipboardBackend(out: EntityConstruction<ClipboardTextBackend>, clipboard: TauriApi['clipboard']): void;
1
+ import type { HostClipboardCapabilities, HostClipboardTextProvider, TauriApi } from '@flighthq/types/contract';
2
+ export declare function tauriHostClipboard(tauri: TauriApi): HostClipboardCapabilities & Required<Pick<HostClipboardCapabilities, 'text'>>;
3
+ export declare function tauriHostClipboardText(tauri: TauriApi): HostClipboardTextProvider;
4
4
  //# sourceMappingURL=tauriClipboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriClipboard.d.ts","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAInG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CAIjF;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,EAC7C,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC/B,IAAI,CA+BN"}
1
+ {"version":3,"file":"tauriClipboard.d.ts","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE/G,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,GACd,yBAAyB,GAAG,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAE/E;AAID,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,yBAAyB,CAkCjF"}
@@ -1,13 +1,13 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
+ export function tauriHostClipboard(tauri) {
3
+ return { text: tauriHostClipboardText(tauri) };
4
+ }
2
5
  // Tauri's clipboard-manager coverage is the text/clear capability vector. Other clipboard
3
6
  // capability slots are deliberately absent from the Tauri host rather than simulated by sentinels.
4
- export function createTauriClipboardBackend(tauri) {
5
- const out = allocateEntity();
6
- initializeTauriClipboardBackend(out, tauri.clipboard);
7
- return finishEntity(out);
8
- }
9
- export function initializeTauriClipboardBackend(out, clipboard) {
10
- out.clear = async () => {
7
+ export function tauriHostClipboardText(tauri) {
8
+ const clipboard = tauri.clipboard;
9
+ const provider = allocateEntity();
10
+ provider.clear = async () => {
11
11
  try {
12
12
  await clipboard.clear();
13
13
  return true;
@@ -16,7 +16,7 @@ export function initializeTauriClipboardBackend(out, clipboard) {
16
16
  return false;
17
17
  }
18
18
  };
19
- out.hasText = async () => {
19
+ provider.hasText = async () => {
20
20
  try {
21
21
  return (await clipboard.readText()).length > 0;
22
22
  }
@@ -24,7 +24,7 @@ export function initializeTauriClipboardBackend(out, clipboard) {
24
24
  return false;
25
25
  }
26
26
  };
27
- out.readText = async () => {
27
+ provider.readText = async () => {
28
28
  try {
29
29
  return await clipboard.readText();
30
30
  }
@@ -32,7 +32,7 @@ export function initializeTauriClipboardBackend(out, clipboard) {
32
32
  return '';
33
33
  }
34
34
  };
35
- out.writeText = async (text) => {
35
+ provider.writeText = async (text) => {
36
36
  try {
37
37
  await clipboard.writeText(text);
38
38
  return true;
@@ -41,5 +41,6 @@ export function initializeTauriClipboardBackend(out, clipboard) {
41
41
  return false;
42
42
  }
43
43
  };
44
+ return finishEntity(provider);
44
45
  }
45
46
  //# sourceMappingURL=tauriClipboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriClipboard.js","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,0FAA0F;AAC1F,mGAAmG;AACnG,MAAM,UAAU,2BAA2B,CAAC,KAAe;IACzD,MAAM,GAAG,GAAG,cAAc,EAAwB,CAAC;IACnD,+BAA+B,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,GAA6C,EAC7C,SAAgC;IAEhC,GAAG,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,GAAG,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tauriClipboard.js","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,MAAM,UAAU,kBAAkB,CAChC,KAAe;IAEf,OAAO,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,0FAA0F;AAC1F,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,KAAe;IACpD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,MAAM,QAAQ,GAAG,cAAc,EAA6B,CAAC;IAC7D,QAAQ,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,QAAQ,CAAC,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
@@ -1,10 +1,7 @@
1
- import type { DirectoryOpenDialogBackend, Entity, FileOpenDialogBackend, FileSaveDialogBackend, MessageDialogBackend, TauriApi, EntityConstruction } from '@flighthq/types/contract';
2
- export declare function createTauriDirectoryOpenDialogBackend(tauri: TauriApi): DirectoryOpenDialogBackend & Entity;
3
- export declare function createTauriFileOpenDialogBackend(tauri: TauriApi): FileOpenDialogBackend & Entity;
4
- export declare function createTauriFileSaveDialogBackend(tauri: TauriApi): FileSaveDialogBackend & Entity;
5
- export declare function createTauriMessageDialogBackend(tauri: TauriApi): MessageDialogBackend & Entity;
6
- export declare function initializeTauriDirectoryOpenDialogBackend(out: EntityConstruction<DirectoryOpenDialogBackend>, tauri: TauriApi): void;
7
- export declare function initializeTauriFileOpenDialogBackend(out: EntityConstruction<FileOpenDialogBackend>, tauri: TauriApi): void;
8
- export declare function initializeTauriFileSaveDialogBackend(out: EntityConstruction<FileSaveDialogBackend>, tauri: TauriApi): void;
9
- export declare function initializeTauriMessageDialogBackend(out: EntityConstruction<MessageDialogBackend>, tauri: TauriApi): void;
1
+ import type { HostDirectoryOpenDialogProvider, Entity, HostFileOpenDialogProvider, HostFileSaveDialogProvider, HostMessageDialogProvider, HostDialogCapabilities, TauriApi } from '@flighthq/types/contract';
2
+ export declare function tauriHostDialog(tauri: TauriApi): HostDialogCapabilities & Required<Pick<HostDialogCapabilities, 'directoryOpen' | 'fileOpen' | 'fileSave' | 'message'>>;
3
+ export declare function tauriHostDirectoryOpenDialog(tauri: TauriApi): HostDirectoryOpenDialogProvider & Entity;
4
+ export declare function tauriHostFileOpenDialog(tauri: TauriApi): HostFileOpenDialogProvider & Entity;
5
+ export declare function tauriHostFileSaveDialog(tauri: TauriApi): HostFileSaveDialogProvider & Entity;
6
+ export declare function tauriHostMessageDialog(tauri: TauriApi): HostMessageDialogProvider & Entity;
10
7
  //# sourceMappingURL=tauriDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriDialog.d.ts","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,0BAA0B,EAE1B,MAAM,EAEN,qBAAqB,EAErB,qBAAqB,EAErB,oBAAoB,EAEpB,QAAQ,EAER,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,QAAQ,GAAG,0BAA0B,GAAG,MAAM,CAI1G;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,MAAM,CAIhG;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,MAAM,CAIhG;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,GAAG,MAAM,CAI9F;AAED,wBAAgB,yCAAyC,CACvD,GAAG,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,EACnD,KAAK,EAAE,QAAQ,GACd,IAAI,CAmBN;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAC9C,KAAK,EAAE,QAAQ,GACd,IAAI,CAuBN;AAED,wBAAgB,oCAAoC,CAClD,GAAG,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAC9C,KAAK,EAAE,QAAQ,GACd,IAAI,CAiBN;AAID,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,EAC7C,KAAK,EAAE,QAAQ,GACd,IAAI,CAuBN"}
1
+ {"version":3,"file":"tauriDialog.d.ts","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAE/B,MAAM,EAEN,0BAA0B,EAE1B,0BAA0B,EAE1B,yBAAyB,EACzB,sBAAsB,EAEtB,QAAQ,EAGT,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,GACd,sBAAsB,GACvB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC,CAO9F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,QAAQ,GAAG,+BAA+B,GAAG,MAAM,CAItG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,0BAA0B,GAAG,MAAM,CAI5F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,0BAA0B,GAAG,MAAM,CAI5F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,yBAAyB,GAAG,MAAM,CAI1F"}
@@ -1,26 +1,34 @@
1
1
  import { createFileDialogHandle } from '@flighthq/dialog/contract';
2
2
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
3
- export function createTauriDirectoryOpenDialogBackend(tauri) {
3
+ export function tauriHostDialog(tauri) {
4
+ return {
5
+ directoryOpen: tauriHostDirectoryOpenDialog(tauri),
6
+ fileOpen: tauriHostFileOpenDialog(tauri),
7
+ fileSave: tauriHostFileSaveDialog(tauri),
8
+ message: tauriHostMessageDialog(tauri),
9
+ };
10
+ }
11
+ export function tauriHostDirectoryOpenDialog(tauri) {
4
12
  const out = allocateEntity();
5
- initializeTauriDirectoryOpenDialogBackend(out, tauri);
13
+ configureDirectoryOpenDialog(out, tauri);
6
14
  return finishEntity(out);
7
15
  }
8
- export function createTauriFileOpenDialogBackend(tauri) {
16
+ export function tauriHostFileOpenDialog(tauri) {
9
17
  const out = allocateEntity();
10
- initializeTauriFileOpenDialogBackend(out, tauri);
18
+ configureFileOpenDialog(out, tauri);
11
19
  return finishEntity(out);
12
20
  }
13
- export function createTauriFileSaveDialogBackend(tauri) {
21
+ export function tauriHostFileSaveDialog(tauri) {
14
22
  const out = allocateEntity();
15
- initializeTauriFileSaveDialogBackend(out, tauri);
23
+ configureFileSaveDialog(out, tauri);
16
24
  return finishEntity(out);
17
25
  }
18
- export function createTauriMessageDialogBackend(tauri) {
26
+ export function tauriHostMessageDialog(tauri) {
19
27
  const out = allocateEntity();
20
- initializeTauriMessageDialogBackend(out, tauri);
28
+ configureMessageDialog(out, tauri);
21
29
  return finishEntity(out);
22
30
  }
23
- export function initializeTauriDirectoryOpenDialogBackend(out, tauri) {
31
+ function configureDirectoryOpenDialog(out, tauri) {
24
32
  out.open = async (options) => {
25
33
  if (options?.signal?.aborted)
26
34
  return { outcome: 'cancelled' };
@@ -45,7 +53,7 @@ export function initializeTauriDirectoryOpenDialogBackend(out, tauri) {
45
53
  }
46
54
  };
47
55
  }
48
- export function initializeTauriFileOpenDialogBackend(out, tauri) {
56
+ function configureFileOpenDialog(out, tauri) {
49
57
  out.open = async (options) => {
50
58
  if (options.signal?.aborted)
51
59
  return { outcome: 'cancelled' };
@@ -74,7 +82,7 @@ export function initializeTauriFileOpenDialogBackend(out, tauri) {
74
82
  }
75
83
  };
76
84
  }
77
- export function initializeTauriFileSaveDialogBackend(out, tauri) {
85
+ function configureFileSaveDialog(out, tauri) {
78
86
  out.save = async (options) => {
79
87
  if (options.signal?.aborted)
80
88
  return { outcome: 'cancelled' };
@@ -99,7 +107,7 @@ export function initializeTauriFileSaveDialogBackend(out, tauri) {
99
107
  }
100
108
  // Tauri provides message and confirmation surfaces but no native text-input prompt. Consumers can
101
109
  // therefore assemble dialog.message while leaving dialog.prompt absent.
102
- export function initializeTauriMessageDialogBackend(out, tauri) {
110
+ function configureMessageDialog(out, tauri) {
103
111
  const dialog = tauri.dialog;
104
112
  out.message = async (options) => {
105
113
  if (options.signal?.aborted) {
@@ -1 +1 @@
1
- {"version":3,"file":"tauriDialog.js","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tauriDialog.js","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DesktopOsProfile, TauriApi, TauriHost } from '@flighthq/types/contract';
2
+ export declare function tauriHost<Profile extends DesktopOsProfile>(tauri: TauriApi, profile: Profile): TauriHost<Profile>;
3
+ //# sourceMappingURL=tauriHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tauriHost.d.ts","sourceRoot":"","sources":["../src/tauriHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAiCtF,wBAAgB,SAAS,CAAC,OAAO,SAAS,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CA6BjH"}
@@ -0,0 +1,45 @@
1
+ import { createHost } from '@flighthq/entity/contract';
2
+ import { tauriHostApp } from './tauriApp';
3
+ import { tauriHostClipboard } from './tauriClipboard';
4
+ import { tauriHostDialog } from './tauriDialog';
5
+ import { tauriHostMenu } from './tauriMenu';
6
+ import { tauriHostNotification } from './tauriNotification';
7
+ import { tauriHostSystem } from './tauriPlatform';
8
+ import { tauriHostShell } from './tauriShell';
9
+ import { tauriHostShortcut } from './tauriShortcut';
10
+ import { tauriHostTray } from './tauriTray';
11
+ import { tauriHostAccessibility, tauriHostConnectivity, tauriHostGraphics, tauriHostInput, tauriHostIpc, tauriHostMedia, tauriHostMidi, tauriHostNet, tauriHostPower, tauriHostProtocol, tauriHostScreen, tauriHostShare, tauriHostStorage, tauriHostText, tauriHostUi, tauriHostUpdater, } from './tauriUnsupportedHostGroups';
12
+ import { tauriHostWindow } from './tauriWindow';
13
+ // Builds the explicit Tauri host from an injected aggregate of the Tauri v2 JS API modules and
14
+ // plugins. Unsupported groups are constructed explicitly so capability absence remains honest.
15
+ export function tauriHost(tauri, profile) {
16
+ return createHost({
17
+ accessibility: tauriHostAccessibility(),
18
+ app: tauriHostApp(tauri),
19
+ clipboard: tauriHostClipboard(tauri),
20
+ connectivity: tauriHostConnectivity(),
21
+ dialog: tauriHostDialog(tauri),
22
+ graphics: tauriHostGraphics(),
23
+ input: tauriHostInput(),
24
+ ipc: tauriHostIpc(),
25
+ media: tauriHostMedia(),
26
+ menu: tauriHostMenu(tauri),
27
+ midi: tauriHostMidi(),
28
+ net: tauriHostNet(),
29
+ notification: tauriHostNotification(tauri),
30
+ power: tauriHostPower(),
31
+ protocol: tauriHostProtocol(),
32
+ screen: tauriHostScreen(),
33
+ share: tauriHostShare(),
34
+ shell: tauriHostShell(tauri),
35
+ shortcut: tauriHostShortcut(tauri),
36
+ storage: tauriHostStorage(),
37
+ system: tauriHostSystem(tauri),
38
+ text: tauriHostText(),
39
+ tray: tauriHostTray(tauri, profile),
40
+ ui: tauriHostUi(),
41
+ updater: tauriHostUpdater(),
42
+ window: tauriHostWindow(tauri),
43
+ });
44
+ }
45
+ //# sourceMappingURL=tauriHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tauriHost.js","sourceRoot":"","sources":["../src/tauriHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,+FAA+F;AAC/F,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAmC,KAAe,EAAE,OAAgB;IAC3F,OAAO,UAAU,CAAC;QAChB,aAAa,EAAE,sBAAsB,EAAE;QACvC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;QACxB,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACpC,YAAY,EAAE,qBAAqB,EAAE;QACrC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9B,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,KAAK,EAAE,cAAc,EAAE;QACvB,GAAG,EAAE,YAAY,EAAE;QACnB,KAAK,EAAE,cAAc,EAAE;QACvB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;QAC1B,IAAI,EAAE,aAAa,EAAE;QACrB,GAAG,EAAE,YAAY,EAAE;QACnB,YAAY,EAAE,qBAAqB,CAAC,KAAK,CAAC;QAC1C,KAAK,EAAE,cAAc,EAAE;QACvB,QAAQ,EAAE,iBAAiB,EAAE;QAC7B,MAAM,EAAE,eAAe,EAAE;QACzB,KAAK,EAAE,cAAc,EAAE;QACvB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,gBAAgB,EAAE;QAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;QAC9B,IAAI,EAAE,aAAa,EAAE;QACrB,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;QACnC,EAAE,EAAE,WAAW,EAAE;QACjB,OAAO,EAAE,gBAAgB,EAAE;QAC3B,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { EntityConstruction, TauriApi, TauriMenuCapabilities } from '@flighthq/types/contract';
2
- export declare function createTauriMenuBackends(tauri: TauriApi): TauriMenuCapabilities;
3
- export declare function initializeTauriMenuBackends(out: EntityConstruction<TauriMenuCapabilities>, tauri: TauriApi): void;
1
+ import type { HostMenuApplicationProvider, HostMenuPopupProvider, HostMenuSelectProvider, TauriApi, TauriMenuCapabilities } from '@flighthq/types/contract';
2
+ export declare function tauriHostMenu(tauri: TauriApi): TauriMenuCapabilities;
3
+ export declare function tauriHostMenuApplication(tauri: TauriApi): HostMenuApplicationProvider;
4
+ export declare function tauriHostMenuPopup(tauri: TauriApi): HostMenuPopupProvider;
5
+ export declare function tauriHostMenuSelect(tauri: TauriApi): HostMenuSelectProvider;
4
6
  //# sourceMappingURL=tauriMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriMenu.d.ts","sourceRoot":"","sources":["../src/tauriMenu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAKlB,QAAQ,EACR,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAI9E;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CA4CjH"}
1
+ {"version":3,"file":"tauriMenu.d.ts","sourceRoot":"","sources":["../src/tauriMenu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,2BAA2B,EAE3B,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,qBAAqB,EAEtB,MAAM,0BAA0B,CAAC;AAUlC,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAOpE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,2BAA2B,CAErF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,CAEzE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,sBAAsB,CAG3E"}
package/dist/tauriMenu.js CHANGED
@@ -7,31 +7,43 @@ import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
7
7
  // seam. popup resolves null only if the async build/popup throws; otherwise it resolves on the first item
8
8
  // click (Tauri exposes no menu-dismiss event).
9
9
  //
10
- // Built together because `application` and `select` share the listener closure; kept as separate slots
11
- // because their shapes are incompatible.
12
- export function createTauriMenuBackends(tauri) {
10
+ export function tauriHostMenu(tauri) {
11
+ const state = createMenuState();
13
12
  const out = allocateEntity();
14
- initializeTauriMenuBackends(out, tauri);
13
+ out.application = createMenuApplication(tauri, state);
14
+ out.popup = createMenuPopup(tauri);
15
+ out.select = createMenuSelect(state);
15
16
  return finishEntity(out);
16
17
  }
17
- export function initializeTauriMenuBackends(out, tauri) {
18
+ export function tauriHostMenuApplication(tauri) {
19
+ return createMenuApplication(tauri, createMenuState());
20
+ }
21
+ export function tauriHostMenuPopup(tauri) {
22
+ return createMenuPopup(tauri);
23
+ }
24
+ export function tauriHostMenuSelect(tauri) {
25
+ void tauri;
26
+ return createMenuSelect(createMenuState());
27
+ }
28
+ function createMenuState() {
29
+ return { destroyed: false, selectListener: null };
30
+ }
31
+ function createMenuApplication(tauri, state) {
18
32
  const menuModule = tauri.menu;
19
- let selectListener = null;
20
- let destroyed = false;
21
33
  // Tauri's menu API is entirely async — there is no synchronous path to clear the native app menu.
22
34
  // A fire-and-forget async clear races with a replacement's setApplicationMenu: the outgoing
23
35
  // destroy's empty-menu promise can settle AFTER the successor installs its real menu, overwriting
24
36
  // it with an empty one. Destroy therefore releases JS-owned state only; the native menu stays
25
37
  // until a replacement installs its own.
26
- const applicationBackend = allocateEntity();
27
- applicationBackend.destroy = () => {
28
- if (destroyed)
38
+ const applicationProvider = allocateEntity();
39
+ applicationProvider.destroy = () => {
40
+ if (state.destroyed)
29
41
  return;
30
- destroyed = true;
42
+ state.destroyed = true;
31
43
  };
32
- applicationBackend.setApplicationMenu = (items) => {
44
+ applicationProvider.setApplicationMenu = (items) => {
33
45
  void (async () => {
34
- const built = await buildItems(menuModule, items, (id) => selectListener?.(id));
46
+ const built = await buildItems(menuModule, items, (id) => state.selectListener?.(id));
35
47
  const menu = await menuModule.Menu.new({ items: built });
36
48
  await menu.setAsAppMenu();
37
49
  })().catch(() => {
@@ -39,9 +51,12 @@ export function initializeTauriMenuBackends(out, tauri) {
39
51
  });
40
52
  return true;
41
53
  };
42
- out.application = finishEntity(applicationBackend);
43
- const popupBackend = allocateEntity();
44
- popupBackend.popup = (items, x, y) => {
54
+ return finishEntity(applicationProvider);
55
+ }
56
+ function createMenuPopup(tauri) {
57
+ const menuModule = tauri.menu;
58
+ const popupProvider = allocateEntity();
59
+ popupProvider.popup = (items, x, y) => {
45
60
  return new Promise((resolve) => {
46
61
  void (async () => {
47
62
  const built = await buildItems(menuModule, items, (id) => resolve(id));
@@ -50,16 +65,18 @@ export function initializeTauriMenuBackends(out, tauri) {
50
65
  })().catch(() => resolve(null));
51
66
  });
52
67
  };
53
- out.popup = finishEntity(popupBackend);
54
- const selectBackend = allocateEntity();
55
- selectBackend.subscribe = (listener) => {
56
- selectListener = listener;
68
+ return finishEntity(popupProvider);
69
+ }
70
+ function createMenuSelect(state) {
71
+ const selectProvider = allocateEntity();
72
+ selectProvider.subscribe = (listener) => {
73
+ state.selectListener = listener;
57
74
  return () => {
58
- if (selectListener === listener)
59
- selectListener = null;
75
+ if (state.selectListener === listener)
76
+ state.selectListener = null;
60
77
  };
61
78
  };
62
- out.select = finishEntity(selectBackend);
79
+ return finishEntity(selectProvider);
63
80
  }
64
81
  // Recursively builds Tauri menu item handles from Flight templates. Separators become a predefined
65
82
  // item; submenus recurse; a selectable leaf with an id gets an `action` that reports its id through