@flighthq/host-tauri 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.638.d4dbd4e

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 (55) hide show
  1. package/README.md +3 -3
  2. package/dist/tauriApp.d.ts +2 -2
  3. package/dist/tauriApp.d.ts.map +1 -1
  4. package/dist/tauriApp.js +27 -161
  5. package/dist/tauriApp.js.map +1 -1
  6. package/dist/tauriClipboard.d.ts +2 -2
  7. package/dist/tauriClipboard.d.ts.map +1 -1
  8. package/dist/tauriClipboard.js +5 -70
  9. package/dist/tauriClipboard.js.map +1 -1
  10. package/dist/tauriDialog.d.ts +5 -2
  11. package/dist/tauriDialog.d.ts.map +1 -1
  12. package/dist/tauriDialog.js +121 -53
  13. package/dist/tauriDialog.js.map +1 -1
  14. package/dist/tauriMenu.d.ts +6 -2
  15. package/dist/tauriMenu.d.ts.map +1 -1
  16. package/dist/tauriMenu.js +53 -33
  17. package/dist/tauriMenu.js.map +1 -1
  18. package/dist/tauriNotification.d.ts +2 -2
  19. package/dist/tauriNotification.d.ts.map +1 -1
  20. package/dist/tauriNotification.js +75 -98
  21. package/dist/tauriNotification.js.map +1 -1
  22. package/dist/tauriPlatform.d.ts.map +1 -1
  23. package/dist/tauriPlatform.js +3 -2
  24. package/dist/tauriPlatform.js.map +1 -1
  25. package/dist/tauriRegister.d.ts +7 -2
  26. package/dist/tauriRegister.d.ts.map +1 -1
  27. package/dist/tauriRegister.js +63 -35
  28. package/dist/tauriRegister.js.map +1 -1
  29. package/dist/tauriShell.d.ts +2 -2
  30. package/dist/tauriShell.d.ts.map +1 -1
  31. package/dist/tauriShell.js +23 -46
  32. package/dist/tauriShell.js.map +1 -1
  33. package/dist/tauriShortcut.d.ts +3 -2
  34. package/dist/tauriShortcut.d.ts.map +1 -1
  35. package/dist/tauriShortcut.js +59 -46
  36. package/dist/tauriShortcut.js.map +1 -1
  37. package/dist/tauriTray.d.ts +2 -2
  38. package/dist/tauriTray.d.ts.map +1 -1
  39. package/dist/tauriTray.js +259 -133
  40. package/dist/tauriTray.js.map +1 -1
  41. package/dist/tauriWindow.d.ts +2 -2
  42. package/dist/tauriWindow.d.ts.map +1 -1
  43. package/dist/tauriWindow.js +77 -38
  44. package/dist/tauriWindow.js.map +1 -1
  45. package/package.json +15 -14
  46. package/src/tauriApp.test.ts +39 -55
  47. package/src/tauriClipboard.test.ts +2 -11
  48. package/src/tauriDialog.test.ts +92 -38
  49. package/src/tauriMenu.test.ts +78 -6
  50. package/src/tauriNotification.test.ts +53 -44
  51. package/src/tauriRegister.test.ts +47 -28
  52. package/src/tauriShell.test.ts +34 -23
  53. package/src/tauriShortcut.test.ts +82 -57
  54. package/src/tauriTray.test.ts +215 -82
  55. package/src/tauriWindow.test.ts +161 -17
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @flighthq/host-tauri
2
2
 
3
- Tauri (v2) host backend: registers Tauri JS API implementations of Flight's window/app/dialog/clipboard/menu/tray/shortcut/platform/notification/shell seams over an injected TauriApi
3
+ Tauri v2 host adapter with injected API modules and exact explicit capability subsets
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.0-next.1944.cd6b6e7](https://github.com/flighthq/flight/tree/cd6b6e71eb472b3a4249830a7743333f019fa7b7/packages/host-tauri)
17
- - [License](https://github.com/flighthq/flight/blob/cd6b6e71eb472b3a4249830a7743333f019fa7b7/LICENSE.md)
16
+ - [Source for @flighthq/host-tauri@0.5.1-edge.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/host-tauri)
17
+ - [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
@@ -1,3 +1,3 @@
1
- import type { AppBackend, TauriApi } from '@flighthq/types/contract';
2
- export declare function createTauriAppBackend(tauri: TauriApi): AppBackend;
1
+ import type { TauriApi, TauriAppCapabilities } from '@flighthq/types/contract';
2
+ export declare function createTauriAppCapabilities(tauri: TauriApi): TauriAppCapabilities;
3
3
  //# sourceMappingURL=tauriApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriApp.d.ts","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAgB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAYnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CA0JjE"}
1
+ {"version":3,"file":"tauriApp.d.ts","sourceRoot":"","sources":["../src/tauriApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE/E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CA6BhF"}
package/dist/tauriApp.js CHANGED
@@ -1,166 +1,32 @@
1
- // Maps Flight's AppBackend onto Tauri's `@tauri-apps/api/app` (identity + hide/show) and
2
- // `@tauri-apps/plugin-process` (quit/relaunch), with the locale sourced from `@tauri-apps/plugin-os`.
3
- //
4
- // Async→sync bridge: AppBackend's getName/getVersion are synchronous, while Tauri's are async, so the
5
- // adapter prefetches both once at construction and the getters return the cached value — '' until the
6
- // first probe resolves. Control methods (quit/relaunch/hide/show) return void or a boolean and simply
7
- // fire the async Tauri call and forget. The remaining surface — recent documents, dock, single-instance
8
- // locking, badge, attention, login item, and the lifecycle subscriptions — has no modeled Tauri call
9
- // here and reports the contract sentinels (''/[]/false/-1/no-op/inert unsubscribe). Deep-link and
10
- // single-instance events would come from `plugin-deep-link` / `plugin-single-instance`, left to the app.
11
- export function createTauriAppBackend(tauri) {
12
- const app = tauri.app;
13
- const os = tauri.os;
14
- const process = tauri.process;
15
- // Sync getters over async Tauri: prefetch once, serve the cached value.
16
- let cachedName = '';
17
- let cachedVersion = '';
18
- let cachedLocale = '';
19
- app
1
+ import { createEntity } from '@flighthq/entity/contract';
2
+ export function createTauriAppCapabilities(tauri) {
3
+ let locale = '';
4
+ let name = '';
5
+ let version = '';
6
+ void tauri.app
20
7
  .getName()
21
- .then((name) => {
22
- cachedName = name;
23
- })
24
- .catch(() => {
25
- /* leave '' */
26
- });
27
- os.locale()
28
- .then((locale) => {
29
- cachedLocale = locale ?? '';
30
- })
31
- .catch(() => {
32
- /* leave '' */
33
- });
34
- app
8
+ .then((value) => (name = value))
9
+ .catch(() => { });
10
+ void tauri.app
35
11
  .getVersion()
36
- .then((version) => {
37
- cachedVersion = version;
38
- })
39
- .catch(() => {
40
- /* leave '' */
12
+ .then((value) => (version = value))
13
+ .catch(() => { });
14
+ void tauri.os
15
+ .locale()
16
+ .then((value) => (locale = value ?? ''))
17
+ .catch(() => { });
18
+ return createEntity({
19
+ locale: createEntity({
20
+ getLocale: () => locale,
21
+ getPreferredSystemLanguages: () => (locale === '' ? [] : [locale]),
22
+ getSystemLocale: () => locale,
23
+ }),
24
+ name: createEntity({ getName: () => name }),
25
+ hide: createEntity({ hideApp: () => void tauri.app.hide().catch(() => { }) }),
26
+ quit: createEntity({ quit: () => void tauri.process.exit(0).catch(() => { }) }),
27
+ relaunch: createEntity({ relaunch: () => void tauri.process.relaunch().catch(() => { }) }),
28
+ show: createEntity({ showApp: () => void tauri.app.show().catch(() => { }) }),
29
+ version: createEntity({ getVersion: () => version }),
41
30
  });
42
- return {
43
- addRecentDocument() {
44
- // No Tauri recent-documents API.
45
- },
46
- bounceDock() {
47
- return -1;
48
- },
49
- cancelAttention() {
50
- // No attention request to cancel.
51
- },
52
- cancelDockBounce() {
53
- // No dock bounce to cancel.
54
- },
55
- clearRecentDocuments() {
56
- // No Tauri recent-documents API.
57
- },
58
- focus() {
59
- // App-level focus is a window concern in Tauri; handled by the window backend, no-op here.
60
- },
61
- getAppDirectoryPath() {
62
- // App-relative paths come from `@tauri-apps/api/path` (async); not bridged into this sync getter.
63
- return '';
64
- },
65
- getAppPath() {
66
- return '';
67
- },
68
- getCommandLine() {
69
- return [];
70
- },
71
- getExecutablePath() {
72
- return '';
73
- },
74
- getLocale() {
75
- return cachedLocale;
76
- },
77
- getLoginItem() {
78
- const out = { openAtLogin: false, openAsHidden: false, path: '', args: [] };
79
- return out;
80
- },
81
- getName() {
82
- return cachedName;
83
- },
84
- getPreferredSystemLanguages() {
85
- return cachedLocale ? [cachedLocale] : [];
86
- },
87
- getSystemLocale() {
88
- return cachedLocale;
89
- },
90
- getVersion() {
91
- return cachedVersion;
92
- },
93
- hasSingleInstanceLock() {
94
- return false;
95
- },
96
- hideApp() {
97
- app.hide().catch(() => { });
98
- return true;
99
- },
100
- isAppHidden() {
101
- return false;
102
- },
103
- quit() {
104
- process.exit(0).catch(() => { });
105
- },
106
- relaunch() {
107
- process.relaunch().catch(() => { });
108
- },
109
- releaseSingleInstanceLock() {
110
- // No single-instance lock held.
111
- },
112
- requestAttention() {
113
- return -1;
114
- },
115
- requestSingleInstanceLock() {
116
- // Single-instance is a `plugin-single-instance` concern, configured app-side; report held.
117
- return true;
118
- },
119
- setActivationPolicy() {
120
- // No modeled Tauri activation-policy call.
121
- },
122
- setBadgeCount() {
123
- return false;
124
- },
125
- setDockBadge() {
126
- // No modeled Tauri dock-badge call.
127
- },
128
- setDockMenu() {
129
- // No modeled Tauri dock-menu call.
130
- },
131
- setLoginItem() {
132
- // Login item is an autostart-plugin concern, not modeled here.
133
- return false;
134
- },
135
- setName() {
136
- // Tauri's app name is fixed at build time; report unsupported.
137
- return false;
138
- },
139
- setUserModelId() {
140
- return false;
141
- },
142
- showApp() {
143
- app.show().catch(() => { });
144
- return true;
145
- },
146
- subscribeActivate() {
147
- return () => { };
148
- },
149
- subscribeAllWindowsClosed() {
150
- return () => { };
151
- },
152
- subscribeOpenFile() {
153
- return () => { };
154
- },
155
- subscribeQuitRequest() {
156
- return () => { };
157
- },
158
- subscribeReady() {
159
- return () => { };
160
- },
161
- subscribeSecondInstance() {
162
- return () => { };
163
- },
164
- };
165
31
  }
166
32
  //# 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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,MAAM,UAAU,0BAA0B,CAAC,KAAe;IACxD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,KAAK,CAAC,GAAG;SACX,OAAO,EAAE;SACT,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;SAC/B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnB,KAAK,KAAK,CAAC,GAAG;SACX,UAAU,EAAE;SACZ,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;SAClC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnB,KAAK,KAAK,CAAC,EAAE;SACV,MAAM,EAAE;SACR,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;SACvC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnB,OAAO,YAAY,CAAC;QAClB,MAAM,EAAE,YAAY,CAAC;YACnB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;YACvB,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAClE,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM;SAC9B,CAAC;QACF,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC;QAC5E,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC;QAC9E,QAAQ,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC;QACzF,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,EAAE,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;KACrD,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { ClipboardBackend, TauriApi } from '@flighthq/types/contract';
2
- export declare function createTauriClipboardBackend(tauri: TauriApi): ClipboardBackend;
1
+ import type { ClipboardTextBackend, TauriApi } from '@flighthq/types/contract';
2
+ export declare function createTauriClipboardBackend(tauri: TauriApi): ClipboardTextBackend;
3
3
  //# sourceMappingURL=tauriClipboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriClipboard.d.ts","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAiG7E"}
1
+ {"version":3,"file":"tauriClipboard.d.ts","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAoB,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAIjG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CAkCjF"}
@@ -1,11 +1,9 @@
1
- // Maps Flight's ClipboardBackend onto Tauri's async `@tauri-apps/plugin-clipboard-manager`. Both sides
2
- // are Promise-based, so text and clear map directly. Tauri's clipboard has no HTML/RTF/bookmark read,
3
- // no arbitrary MIME flavors, no file list, no change counter, and crosses images as an `Image` object
4
- // rather than a data URL — those methods therefore report the contract's sentinels ('' / false / null /
5
- // [] / -1) rather than a fabricated result. Reads resolve to sentinels on failure instead of throwing.
1
+ import { createEntity } from '@flighthq/entity/contract';
2
+ // Tauri's clipboard-manager coverage is the text/clear capability vector. Other clipboard
3
+ // capability slots are deliberately absent from the Tauri host rather than simulated by sentinels.
6
4
  export function createTauriClipboardBackend(tauri) {
7
5
  const clipboard = tauri.clipboard;
8
- return {
6
+ return createEntity({
9
7
  async readText() {
10
8
  try {
11
9
  return await clipboard.readText();
@@ -23,14 +21,6 @@ export function createTauriClipboardBackend(tauri) {
23
21
  return false;
24
22
  }
25
23
  },
26
- async readHtml() {
27
- // Tauri's clipboard exposes no HTML read; report the empty sentinel.
28
- return '';
29
- },
30
- async writeHtml() {
31
- // Tauri's clipboard exposes no HTML write; report unsupported.
32
- return false;
33
- },
34
24
  async hasText() {
35
25
  try {
36
26
  return (await clipboard.readText()).length > 0;
@@ -39,53 +29,6 @@ export function createTauriClipboardBackend(tauri) {
39
29
  return false;
40
30
  }
41
31
  },
42
- async readImage() {
43
- // Tauri crosses clipboard images as an `Image` object, not a data URL; report none.
44
- return '';
45
- },
46
- async writeImage() {
47
- // Writing a data URL is not expressible through Tauri's `Image`-typed clipboard write here.
48
- return false;
49
- },
50
- async hasImage() {
51
- return false;
52
- },
53
- async readRTF() {
54
- return '';
55
- },
56
- async writeRTF() {
57
- return false;
58
- },
59
- async readBookmark() {
60
- return null;
61
- },
62
- async writeBookmark() {
63
- return false;
64
- },
65
- async readFormat() {
66
- return '';
67
- },
68
- async writeFormat() {
69
- return false;
70
- },
71
- async hasFormat() {
72
- return false;
73
- },
74
- async getFormats() {
75
- return [];
76
- },
77
- async readItems() {
78
- return {};
79
- },
80
- async writeItems() {
81
- return false;
82
- },
83
- async readFiles() {
84
- return [];
85
- },
86
- async writeFiles() {
87
- return false;
88
- },
89
32
  async clear() {
90
33
  try {
91
34
  await clipboard.clear();
@@ -95,14 +38,6 @@ export function createTauriClipboardBackend(tauri) {
95
38
  return false;
96
39
  }
97
40
  },
98
- getChangeCount() {
99
- // Tauri exposes no clipboard change counter; -1 sentinel per the contract.
100
- return -1;
101
- },
102
- subscribeClipboardChange() {
103
- // Tauri emits no clipboard-change event; inert unsubscribe.
104
- return () => { };
105
- },
106
- };
41
+ });
107
42
  }
108
43
  //# sourceMappingURL=tauriClipboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriClipboard.js","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAEA,uGAAuG;AACvG,sGAAsG;AACtG,sGAAsG;AACtG,wGAAwG;AACxG,uGAAuG;AACvG,MAAM,UAAU,2BAA2B,CAAC,KAAe;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI;YAClB,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,qEAAqE;YACrE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,SAAS;YACb,+DAA+D;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,SAAS;YACb,oFAAoF;YACpF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,UAAU;YACd,4FAA4F;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,aAAa;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,UAAU;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,WAAW;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,SAAS;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,UAAU;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,SAAS;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,UAAU;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,SAAS;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,UAAU;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,cAAc;YACZ,2EAA2E;YAC3E,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,wBAAwB;YACtB,4DAA4D;YAC5D,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tauriClipboard.js","sourceRoot":"","sources":["../src/tauriClipboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,0FAA0F;AAC1F,mGAAmG;AACnG,MAAM,UAAU,2BAA2B,CAAC,KAAe;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,OAAO,YAAY,CAAC;QAClB,KAAK,CAAC,QAAQ;YACZ,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI;YAClB,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,OAAO;YACX,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KAC4D,CAAC,CAAC;AACnE,CAAC"}
@@ -1,3 +1,6 @@
1
- import type { DialogBackend, TauriApi } from '@flighthq/types/contract';
2
- export declare function createTauriDialogBackend(tauri: TauriApi): DialogBackend;
1
+ import type { DirectoryOpenDialogBackend, Entity, FileOpenDialogBackend, FileSaveDialogBackend, MessageDialogBackend, TauriApi } 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;
3
6
  //# sourceMappingURL=tauriDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriDialog.d.ts","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAIb,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAQlC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAiDvE"}
1
+ {"version":3,"file":"tauriDialog.d.ts","sourceRoot":"","sources":["../src/tauriDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,0BAA0B,EAE1B,MAAM,EAGN,qBAAqB,EAErB,qBAAqB,EAErB,oBAAoB,EAEpB,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,QAAQ,GAAG,0BAA0B,GAAG,MAAM,CAoB1G;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,MAAM,CAwBhG;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,MAAM,CAkBhG;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,QAAQ,GAAG,oBAAoB,CAiBrF"}
@@ -1,45 +1,92 @@
1
- // Maps Flight's DialogBackend onto Tauri's async `@tauri-apps/plugin-dialog`. Both sides are
2
- // Promise-based. Open/save resolve to sentinels ([] / null) on cancel. Tauri returns real host paths,
3
- // so FileDialogHandles carry a populated `path`. Two contract gaps are handled honestly: Tauri's
4
- // `message` is a single-button acknowledgement (it cannot report a multi-button choice), so `message`
5
- // resolves buttonIndex 0 / not-cancelled; and Tauri has no text-input dialog, so `prompt` resolves the
6
- // null sentinel. The modal parent window is not threaded through, so dialogs are application-modal.
7
- export function createTauriDialogBackend(tauri) {
8
- const dialog = tauri.dialog;
9
- return {
10
- async openFile(options) {
11
- const result = await dialog.open({
12
- title: options.title,
13
- defaultPath: options.defaultPath,
14
- multiple: options.multiple,
15
- directory: options.directory,
16
- filters: options.filters?.map(toTauriFilter),
17
- });
18
- const kind = options.directory ? 'Directory' : 'File';
19
- return toHandles(result, kind);
1
+ import { createFileDialogHandle } from '@flighthq/dialog/contract';
2
+ import { createEntity } from '@flighthq/entity/contract';
3
+ export function createTauriDirectoryOpenDialogBackend(tauri) {
4
+ return createEntity({
5
+ async open() {
6
+ const open = tauri.dialog?.open;
7
+ if (typeof open !== 'function')
8
+ return { outcome: 'runtime-unavailable' };
9
+ try {
10
+ const result = await open.call(tauri.dialog, { directory: true, multiple: false });
11
+ const paths = normalizePaths(result);
12
+ if (paths === null)
13
+ return { outcome: 'cancelled' };
14
+ const [path] = paths;
15
+ if (path === undefined)
16
+ return { outcome: 'directory-open-failed' };
17
+ return {
18
+ handle: createNativeHandle(path, 'Directory'),
19
+ outcome: 'selected',
20
+ };
21
+ }
22
+ catch (error) {
23
+ return { outcome: classifyFailure(error, 'directory-open-failed') };
24
+ }
20
25
  },
21
- async openDirectory(options) {
22
- const result = await dialog.open({
23
- title: options.title,
24
- multiple: options.multiple,
25
- directory: true,
26
- });
27
- return toHandles(result, 'Directory');
26
+ });
27
+ }
28
+ export function createTauriFileOpenDialogBackend(tauri) {
29
+ return createEntity({
30
+ async open(options) {
31
+ const open = tauri.dialog?.open;
32
+ if (typeof open !== 'function')
33
+ return { outcome: 'runtime-unavailable' };
34
+ try {
35
+ const result = await open.call(tauri.dialog, {
36
+ directory: false,
37
+ filters: toTauriFilters(options.filters),
38
+ multiple: options.multiple ?? false,
39
+ });
40
+ const paths = normalizePaths(result);
41
+ if (paths === null)
42
+ return { outcome: 'cancelled' };
43
+ if (paths.length === 0)
44
+ return { outcome: 'file-open-failed' };
45
+ const handles = paths.map((path) => createNativeHandle(path, 'File'));
46
+ return {
47
+ handles: handles,
48
+ outcome: 'selected',
49
+ };
50
+ }
51
+ catch (error) {
52
+ return { outcome: classifyFailure(error, 'file-open-failed') };
53
+ }
28
54
  },
29
- async saveFile(options) {
30
- const path = await dialog.save({
31
- title: options.title,
32
- defaultPath: options.defaultPath,
33
- filters: options.filters?.map(toTauriFilter),
34
- });
35
- return path === null ? null : toFileHandle(path, 'File');
55
+ });
56
+ }
57
+ export function createTauriFileSaveDialogBackend(tauri) {
58
+ return createEntity({
59
+ async save(options) {
60
+ const save = tauri.dialog?.save;
61
+ if (typeof save !== 'function')
62
+ return { outcome: 'runtime-unavailable' };
63
+ try {
64
+ const path = await save.call(tauri.dialog, {
65
+ defaultPath: options.defaultName,
66
+ filters: toTauriFilters(options.filters),
67
+ });
68
+ if (path === null)
69
+ return { outcome: 'cancelled' };
70
+ if (path === '')
71
+ return { outcome: 'file-save-failed' };
72
+ return { handle: createNativeHandle(path, 'File'), outcome: 'selected' };
73
+ }
74
+ catch (error) {
75
+ return { outcome: classifyFailure(error, 'file-save-failed') };
76
+ }
36
77
  },
78
+ });
79
+ }
80
+ // Tauri provides message and confirmation surfaces but no native text-input prompt. Consumers can
81
+ // therefore assemble dialog.message while leaving dialog.prompt absent.
82
+ export function createTauriMessageDialogBackend(tauri) {
83
+ const dialog = tauri.dialog;
84
+ return {
37
85
  async message(options) {
38
86
  await dialog.message(options.message, {
39
87
  title: options.title,
40
88
  kind: toTauriMessageKind(options.kind),
41
89
  });
42
- // Tauri's message is a single-button acknowledgement; it reports no button choice or checkbox.
43
90
  return { buttonIndex: 0, cancelled: false, checkboxChecked: false };
44
91
  },
45
92
  async confirm(options) {
@@ -48,26 +95,52 @@ export function createTauriDialogBackend(tauri) {
48
95
  kind: toTauriMessageKind(options.kind),
49
96
  });
50
97
  },
51
- async prompt() {
52
- // Tauri has no native text-input dialog; report unsupported via the null sentinel.
53
- return null;
54
- },
55
98
  };
56
99
  }
57
- function toFileHandle(path, kind) {
58
- return { kind, name: basename(path), path };
100
+ function createNativeHandle(path, kind) {
101
+ return createFileDialogHandle(kind, basename(path), path);
59
102
  }
60
- function toHandles(result, kind) {
103
+ function normalizePaths(result) {
61
104
  if (result === null)
62
- return [];
63
- const paths = Array.isArray(result) ? result : [result];
64
- return paths.map((path) => toFileHandle(path, kind));
105
+ return null;
106
+ return Array.isArray(result) ? result : [result];
107
+ }
108
+ function toTauriFilters(filters) {
109
+ if (filters === undefined)
110
+ return undefined;
111
+ const result = filters
112
+ .map((filter) => ({ name: filter.name, extensions: flattenExtensions(filter) }))
113
+ .filter((filter) => filter.extensions.length > 0);
114
+ return result.length > 0 ? result : undefined;
65
115
  }
66
- function toTauriFilter(filter) {
67
- return { name: filter.name, extensions: [...filter.extensions] };
116
+ function flattenExtensions(filter) {
117
+ const extensions = new Set();
118
+ for (const values of Object.values(filter.accept)) {
119
+ for (const extension of values) {
120
+ const normalized = extension.replace(/^\./, '');
121
+ if (normalized !== '' && normalized !== '*')
122
+ extensions.add(normalized);
123
+ }
124
+ }
125
+ return [...extensions];
126
+ }
127
+ function basename(path) {
128
+ const normalized = path.replace(/[/\\]+$/, '');
129
+ if (normalized === '')
130
+ return path.startsWith('\\') ? '\\' : '/';
131
+ const index = Math.max(normalized.lastIndexOf('/'), normalized.lastIndexOf('\\'));
132
+ return index >= 0 ? normalized.slice(index + 1) : normalized;
133
+ }
134
+ function classifyFailure(error, failure) {
135
+ if (error !== null && typeof error === 'object') {
136
+ const name = 'name' in error && typeof error.name === 'string' ? error.name : null;
137
+ const code = 'code' in error && typeof error.code === 'string' ? error.code : null;
138
+ if (name === 'SecurityError' || name === 'NotAllowedError' || code === 'EACCES' || code === 'EPERM') {
139
+ return 'security-denied';
140
+ }
141
+ }
142
+ return failure;
68
143
  }
69
- // Tauri's message/confirm accept only info/warning/error; Flight's 'question' has no Tauri glyph, so it
70
- // falls back to 'info'.
71
144
  function toTauriMessageKind(kind) {
72
145
  if (kind === 'warning')
73
146
  return 'warning';
@@ -75,9 +148,4 @@ function toTauriMessageKind(kind) {
75
148
  return 'error';
76
149
  return 'info';
77
150
  }
78
- function basename(path) {
79
- const normalized = path.replace(/[/\\]+$/, '');
80
- const index = Math.max(normalized.lastIndexOf('/'), normalized.lastIndexOf('\\'));
81
- return index >= 0 ? normalized.slice(index + 1) : normalized;
82
- }
83
151
  //# sourceMappingURL=tauriDialog.js.map
@@ -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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"}
@@ -1,3 +1,7 @@
1
- import type { MenuBackend, TauriApi } from '@flighthq/types/contract';
2
- export declare function createTauriMenuBackend(tauri: TauriApi): MenuBackend;
1
+ import type { MenuApplicationBackend, MenuPopupBackend, MenuSelectBackend, TauriApi } from '@flighthq/types/contract';
2
+ export declare function createTauriMenuBackends(tauri: TauriApi): {
3
+ application: MenuApplicationBackend;
4
+ popup: MenuPopupBackend;
5
+ select: MenuSelectBackend;
6
+ };
3
7
  //# sourceMappingURL=tauriMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tauriMenu.d.ts","sourceRoot":"","sources":["../src/tauriMenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAoB,QAAQ,EAAuB,MAAM,0BAA0B,CAAC;AAS7G,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,CA+BnE"}
1
+ {"version":3,"file":"tauriMenu.d.ts","sourceRoot":"","sources":["../src/tauriMenu.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EAEtB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAYlC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG;IACxD,WAAW,EAAE,sBAAsB,CAAC;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;CAC3B,CA8CA"}