@flighthq/dialog 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.
- package/README.md +3 -3
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/dialog.d.ts +10 -35
- package/dist/dialog.d.ts.map +1 -1
- package/dist/dialog.js +23 -386
- package/dist/dialog.js.map +1 -1
- package/dist/fileDialog.d.ts +7 -0
- package/dist/fileDialog.d.ts.map +1 -0
- package/dist/fileDialog.js +27 -0
- package/dist/fileDialog.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/src/dialog.test.ts +57 -409
- package/src/fileDialog.test.ts +118 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @flighthq/dialog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Host-explicit open/save file, message, confirm, and prompt dialog operations
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/dialog`. The `@fligh
|
|
|
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/dialog@0.5.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/dialog@0.5.1-edge.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/dialog)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
package/dist/contract.js
CHANGED
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
|
package/dist/dialog.d.ts
CHANGED
|
@@ -1,36 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function showConfirmDialog(options: Readonly<MessageDialogOptions>): Promise<boolean>;
|
|
12
|
-
export declare function showErrorBox(title: string, content: string): Promise<MessageDialogResult>;
|
|
13
|
-
export declare function showErrorDialog(options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
14
|
-
export declare function showInfoDialog(options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
15
|
-
export declare function showMessageDialog(options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
16
|
-
export declare function showOpenDirectoryDialog(options: Readonly<OpenDirectoryDialogOptions>): Promise<FileDialogHandle[]>;
|
|
17
|
-
export declare function showOpenFileDialog(options: Readonly<OpenFileDialogOptions>): Promise<FileDialogHandle[]>;
|
|
18
|
-
export declare function showPromptDialog(options: Readonly<PromptDialogOptions>): Promise<string | null>;
|
|
19
|
-
export declare function showSaveFileDialog(options: Readonly<SaveFileDialogOptions>): Promise<FileDialogHandle | null>;
|
|
20
|
-
export declare function showWarningDialog(options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
21
|
-
interface FileSystemFileHandle {
|
|
22
|
-
readonly kind: 'file';
|
|
23
|
-
readonly name: string;
|
|
24
|
-
getFile(): Promise<File>;
|
|
25
|
-
createWritable(): Promise<FileSystemWritableFileStream>;
|
|
26
|
-
}
|
|
27
|
-
interface FileSystemWritableFileStream {
|
|
28
|
-
write(data: BufferSource | Blob | string): Promise<void>;
|
|
29
|
-
close(): Promise<void>;
|
|
30
|
-
}
|
|
31
|
-
interface FileSystemDirectoryHandle {
|
|
32
|
-
readonly kind: 'directory';
|
|
33
|
-
readonly name: string;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
1
|
+
import type { HasDialogMessage, HasDialogPrompt, MessageDialogBackend, MessageDialogOptions, MessageDialogResult, PromptDialogBackend, PromptDialogOptions } from '@flighthq/types/contract';
|
|
2
|
+
export declare const webMessageDialogBackend: MessageDialogBackend;
|
|
3
|
+
export declare const webPromptDialogBackend: PromptDialogBackend;
|
|
4
|
+
export declare function showConfirmDialog(host: HasDialogMessage, options: Readonly<MessageDialogOptions>): Promise<boolean>;
|
|
5
|
+
export declare function showErrorBox(host: HasDialogMessage, title: string, content: string): Promise<MessageDialogResult>;
|
|
6
|
+
export declare function showErrorDialog(host: HasDialogMessage, options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
7
|
+
export declare function showInfoDialog(host: HasDialogMessage, options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
8
|
+
export declare function showMessageDialog(host: HasDialogMessage, options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
9
|
+
export declare function showPromptDialog(host: HasDialogPrompt, options: Readonly<PromptDialogOptions>): Promise<string | null>;
|
|
10
|
+
export declare function showWarningDialog(host: HasDialogMessage, options: Readonly<MessageDialogOptions>): Promise<MessageDialogResult>;
|
|
36
11
|
//# sourceMappingURL=dialog.d.ts.map
|
package/dist/dialog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,uBAAuB,sBAAkC,CAAC;AACvE,eAAO,MAAM,sBAAsB,qBAAiC,CAAC;AAwCrE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnH;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEjH;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACrC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAExB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAE9B"}
|
package/dist/dialog.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
// These two providers predate the file-dialog split and remain here until their own domain slices move
|
|
2
|
+
// them into host-web. File-picker providers live exclusively in @flighthq/host-web.
|
|
3
|
+
export const webMessageDialogBackend = createWebMessageDialogBackend();
|
|
4
|
+
export const webPromptDialogBackend = createWebPromptDialogBackend();
|
|
5
|
+
function createWebMessageDialogBackend() {
|
|
6
6
|
return {
|
|
7
7
|
async confirm(options) {
|
|
8
8
|
if (typeof window === 'undefined' || typeof window.confirm !== 'function')
|
|
9
9
|
return false;
|
|
10
10
|
try {
|
|
11
|
-
// Coerce to a strict boolean: a real browser returns boolean, but jsdom can return undefined.
|
|
12
11
|
return window.confirm(options.message) === true;
|
|
13
12
|
}
|
|
14
13
|
catch {
|
|
@@ -16,8 +15,6 @@ export function createWebDialogBackend() {
|
|
|
16
15
|
}
|
|
17
16
|
},
|
|
18
17
|
async message(options) {
|
|
19
|
-
// The web platform has no multi-button/checkbox message box; alert() shows the text only and
|
|
20
|
-
// always yields button 0. Native hosts honor buttons, checkboxLabel, defaultId, and cancelId.
|
|
21
18
|
const checkboxChecked = options.checkboxChecked ?? false;
|
|
22
19
|
if (typeof window === 'undefined' || typeof window.alert !== 'function') {
|
|
23
20
|
return { buttonIndex: 0, cancelled: false, checkboxChecked };
|
|
@@ -30,12 +27,10 @@ export function createWebDialogBackend() {
|
|
|
30
27
|
}
|
|
31
28
|
return { buttonIndex: 0, cancelled: false, checkboxChecked };
|
|
32
29
|
},
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return openWebFileDialog(options);
|
|
38
|
-
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function createWebPromptDialogBackend() {
|
|
33
|
+
return {
|
|
39
34
|
async prompt(options) {
|
|
40
35
|
if (typeof window === 'undefined' || typeof window.prompt !== 'function')
|
|
41
36
|
return null;
|
|
@@ -46,385 +41,27 @@ export function createWebDialogBackend() {
|
|
|
46
41
|
return null;
|
|
47
42
|
}
|
|
48
43
|
},
|
|
49
|
-
async saveFile(options) {
|
|
50
|
-
return saveWebFile(options);
|
|
51
|
-
},
|
|
52
44
|
};
|
|
53
45
|
}
|
|
54
|
-
export function
|
|
55
|
-
|
|
56
|
-
return { conflict: _hostConflict, layer: 'custom', operation: null, viability: 'unobserved' };
|
|
57
|
-
}
|
|
58
|
-
if (_host !== null) {
|
|
59
|
-
return {
|
|
60
|
-
conflict: _hostConflict,
|
|
61
|
-
layer: 'host',
|
|
62
|
-
operation: _hostObservation !== null ? _hostObservation.operation : null,
|
|
63
|
-
viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return { conflict: false, layer: 'host-not-enabled', operation: null, viability: 'unobserved' };
|
|
67
|
-
}
|
|
68
|
-
export function getDialogBackend() {
|
|
69
|
-
return _custom ?? _host ?? _sentinel;
|
|
70
|
-
}
|
|
71
|
-
// Retrieves the underlying web FileSystemDirectoryHandle stashed for a dialog directory handle, if any.
|
|
72
|
-
// Used by @flighthq/filesystem or other I/O cells to traverse and read the directory natively.
|
|
73
|
-
// Returns null when the handle was produced by the legacy <input webkitdirectory> fallback.
|
|
74
|
-
export function getWebDirectorySystemHandle(handle) {
|
|
75
|
-
return _fileSystemDirectoryHandleRegistry.get(handle) ?? null;
|
|
76
|
-
}
|
|
77
|
-
// Retrieves the underlying web FileSystemFileHandle stashed for a dialog handle, if any.
|
|
78
|
-
// Used by @flighthq/filesystem or other I/O cells to access the writable/readable native handle.
|
|
79
|
-
// Returns null when the handle was produced by a legacy <input> fallback (no File System Access).
|
|
80
|
-
export function getWebFileSystemHandle(handle) {
|
|
81
|
-
return _fileSystemHandleRegistry.get(handle) ?? null;
|
|
82
|
-
}
|
|
83
|
-
export function installDialogHostBackend(backend) {
|
|
84
|
-
if (_host !== null) {
|
|
85
|
-
if (_host !== backend)
|
|
86
|
-
_hostConflict = true;
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
_host = backend;
|
|
90
|
-
}
|
|
91
|
-
export function observeDialogHostResult(operation, succeeded) {
|
|
92
|
-
_hostObservation = {
|
|
93
|
-
operation,
|
|
94
|
-
viability: succeeded ? 'available' : 'runtime-api-unavailable',
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
export function resetDialogBackendForTest() {
|
|
98
|
-
_custom = null;
|
|
99
|
-
_host = null;
|
|
100
|
-
_hostConflict = false;
|
|
101
|
-
_hostObservation = null;
|
|
102
|
-
}
|
|
103
|
-
export function setDialogBackend(backend) {
|
|
104
|
-
_custom = backend;
|
|
105
|
-
}
|
|
106
|
-
// Shows a yes/no confirmation. Returns false on cancel or when the host lacks the surface.
|
|
107
|
-
export function showConfirmDialog(options) {
|
|
108
|
-
return getDialogBackend().confirm(options);
|
|
46
|
+
export function showConfirmDialog(host, options) {
|
|
47
|
+
return host.dialog.message.confirm(options);
|
|
109
48
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
export function showErrorBox(title, content) {
|
|
113
|
-
return getDialogBackend().message({ kind: 'error', message: content, title });
|
|
49
|
+
export function showErrorBox(host, title, content) {
|
|
50
|
+
return host.dialog.message.message({ kind: 'error', message: content, title });
|
|
114
51
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return getDialogBackend().message({ ...options, kind: 'error' });
|
|
52
|
+
export function showErrorDialog(host, options) {
|
|
53
|
+
return host.dialog.message.message({ ...options, kind: 'error' });
|
|
118
54
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return getDialogBackend().message({ ...options, kind: 'info' });
|
|
55
|
+
export function showInfoDialog(host, options) {
|
|
56
|
+
return host.dialog.message.message({ ...options, kind: 'info' });
|
|
122
57
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
export function showMessageDialog(options) {
|
|
126
|
-
return getDialogBackend().message(options);
|
|
127
|
-
}
|
|
128
|
-
// Shows a directory picker as a first-class call (distinct from showOpenFileDialog({ directory: true })).
|
|
129
|
-
// Returns selected directory handles ([] on cancel). On web, path is null in each handle.
|
|
130
|
-
export function showOpenDirectoryDialog(options) {
|
|
131
|
-
return getDialogBackend().openDirectory(options);
|
|
132
|
-
}
|
|
133
|
-
// Shows an open-file picker. Returns selected handles ([] on cancel). On web, path is null in each
|
|
134
|
-
// handle — browsers cannot expose real host paths. Use @flighthq/filesystem to read handle contents.
|
|
135
|
-
export function showOpenFileDialog(options) {
|
|
136
|
-
return getDialogBackend().openFile(options);
|
|
137
|
-
}
|
|
138
|
-
// Shows a text prompt. Returns the entered string, or null on cancel / when the host lacks the surface.
|
|
139
|
-
// Accepts an options object (title, message, defaultValue, placeholder) aligning it with its siblings.
|
|
140
|
-
export function showPromptDialog(options) {
|
|
141
|
-
return getDialogBackend().prompt(options);
|
|
142
|
-
}
|
|
143
|
-
// Shows a save-file picker. Returns a handle for the chosen destination, or null on cancel.
|
|
144
|
-
// On web, uses the File System Access API (showSaveFilePicker) when available, yielding a handle
|
|
145
|
-
// whose writable can be opened by @flighthq/filesystem. Falls back to null when the API is absent.
|
|
146
|
-
export function showSaveFileDialog(options) {
|
|
147
|
-
return getDialogBackend().saveFile(options);
|
|
148
|
-
}
|
|
149
|
-
// Shows a warning-severity message dialog. Returns the full result including cancelled flag.
|
|
150
|
-
export function showWarningDialog(options) {
|
|
151
|
-
return getDialogBackend().message({ ...options, kind: 'warning' });
|
|
152
|
-
}
|
|
153
|
-
let _custom = null;
|
|
154
|
-
let _host = null;
|
|
155
|
-
let _hostConflict = false;
|
|
156
|
-
let _hostObservation = null;
|
|
157
|
-
const _sentinel = {
|
|
158
|
-
async confirm() {
|
|
159
|
-
return false;
|
|
160
|
-
},
|
|
161
|
-
async message(options) {
|
|
162
|
-
return { buttonIndex: 0, cancelled: false, checkboxChecked: options.checkboxChecked ?? false };
|
|
163
|
-
},
|
|
164
|
-
async openDirectory() {
|
|
165
|
-
return [];
|
|
166
|
-
},
|
|
167
|
-
async openFile() {
|
|
168
|
-
return [];
|
|
169
|
-
},
|
|
170
|
-
async prompt() {
|
|
171
|
-
return null;
|
|
172
|
-
},
|
|
173
|
-
async saveFile() {
|
|
174
|
-
return null;
|
|
175
|
-
},
|
|
176
|
-
};
|
|
177
|
-
// Registry mapping FileDialogHandle → live web FileSystemDirectoryHandle, enabling @flighthq/filesystem
|
|
178
|
-
// to enumerate and read directories without dialog owning the I/O. Populated by showDirectoryPicker path.
|
|
179
|
-
// Keys are plain FileDialogHandle objects (reference equality); values are the native handles.
|
|
180
|
-
const _fileSystemDirectoryHandleRegistry = new WeakMap();
|
|
181
|
-
// Registry mapping FileDialogHandle → live web FileSystemFileHandle, enabling @flighthq/filesystem
|
|
182
|
-
// to read from or write to a picked file without dialog owning the I/O. Dialog holds this registry
|
|
183
|
-
// because it is the only party that creates and observes the FileSystemFileHandle lifecycle.
|
|
184
|
-
// Keys are plain FileDialogHandle objects (reference equality); values are the native handles.
|
|
185
|
-
const _fileSystemHandleRegistry = new WeakMap();
|
|
186
|
-
// Builds a FileDialogFilter accept list for the File System Access API's 'types' option.
|
|
187
|
-
function buildFileSystemAccessTypes(filters) {
|
|
188
|
-
if (filters === undefined || filters.length === 0)
|
|
189
|
-
return undefined;
|
|
190
|
-
const types = [];
|
|
191
|
-
for (const filter of filters) {
|
|
192
|
-
const accept = {};
|
|
193
|
-
const extensions = filter.extensions.filter((e) => e !== '*').map((e) => (e.startsWith('.') ? e : `.${e}`));
|
|
194
|
-
if (extensions.length > 0) {
|
|
195
|
-
const mime = filter.mimeTypes && filter.mimeTypes.length > 0 ? filter.mimeTypes[0] : 'application/octet-stream';
|
|
196
|
-
accept[mime] = extensions;
|
|
197
|
-
}
|
|
198
|
-
if (filter.mimeTypes) {
|
|
199
|
-
for (const mime of filter.mimeTypes) {
|
|
200
|
-
if (!accept[mime])
|
|
201
|
-
accept[mime] = extensions;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
if (Object.keys(accept).length === 0)
|
|
205
|
-
continue;
|
|
206
|
-
types.push({ accept, description: filter.name });
|
|
207
|
-
}
|
|
208
|
-
return types.length > 0 ? types : undefined;
|
|
209
|
-
}
|
|
210
|
-
// Builds the accept attribute value for a legacy <input type=file>.
|
|
211
|
-
function buildAcceptAttribute(filters) {
|
|
212
|
-
if (filters === undefined || filters.length === 0)
|
|
213
|
-
return '';
|
|
214
|
-
const parts = [];
|
|
215
|
-
for (const filter of filters) {
|
|
216
|
-
for (const extension of filter.extensions) {
|
|
217
|
-
if (extension === '*')
|
|
218
|
-
continue;
|
|
219
|
-
parts.push(extension.startsWith('.') ? extension : `.${extension}`);
|
|
220
|
-
}
|
|
221
|
-
if (filter.mimeTypes) {
|
|
222
|
-
for (const mime of filter.mimeTypes) {
|
|
223
|
-
parts.push(mime);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
return parts.join(',');
|
|
228
|
-
}
|
|
229
|
-
// Maps a FileDialogStartIn value to a File System Access API startIn token.
|
|
230
|
-
// The File System Access API only accepts: 'desktop'|'documents'|'downloads'|'music'|'pictures'|'videos'
|
|
231
|
-
// Unsupported values ('home', 'temp', 'appData', 'cache') are silently dropped.
|
|
232
|
-
function toFileSystemAccessStartIn(startIn) {
|
|
233
|
-
const allowed = new Set(['desktop', 'documents', 'downloads', 'music', 'pictures', 'videos']);
|
|
234
|
-
return allowed.has(startIn) ? startIn : undefined;
|
|
235
|
-
}
|
|
236
|
-
// Opens a directory picker on web. Prefers the File System Access API showDirectoryPicker when
|
|
237
|
-
// available (Chrome/Edge 86+) with a readwrite mode that enables real directory handle I/O.
|
|
238
|
-
// Falls back to a webkitdirectory <input> (the legacy path that returns only File objects with
|
|
239
|
-
// no writable access), which is non-standard but broadly supported.
|
|
240
|
-
function openWebDirectoryDialog(options) {
|
|
241
|
-
// File System Access API path: showDirectoryPicker yields a real FileSystemDirectoryHandle.
|
|
242
|
-
if (typeof window !== 'undefined' &&
|
|
243
|
-
typeof window.showDirectoryPicker === 'function') {
|
|
244
|
-
return openDirectoryPickerAccessApi(options);
|
|
245
|
-
}
|
|
246
|
-
// Legacy fallback: <input webkitdirectory>
|
|
247
|
-
if (typeof document === 'undefined' || typeof document.createElement !== 'function') {
|
|
248
|
-
return Promise.resolve([]);
|
|
249
|
-
}
|
|
250
|
-
return new Promise((resolve) => {
|
|
251
|
-
try {
|
|
252
|
-
const input = document.createElement('input');
|
|
253
|
-
input.type = 'file';
|
|
254
|
-
if (options.multiple === true)
|
|
255
|
-
input.multiple = true;
|
|
256
|
-
// webkitdirectory is non-standard but the only browser path-less directory picker fallback.
|
|
257
|
-
input.webkitdirectory = true;
|
|
258
|
-
input.addEventListener('change', () => {
|
|
259
|
-
const files = input.files;
|
|
260
|
-
if (files === null || files.length === 0) {
|
|
261
|
-
resolve([]);
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
// For directory inputs, each file's webkitRelativePath starts with the directory name.
|
|
265
|
-
// Derive unique directory handles from the top-level directory names.
|
|
266
|
-
const seenDirs = new Set();
|
|
267
|
-
const handles = [];
|
|
268
|
-
for (let i = 0; i < files.length; i++) {
|
|
269
|
-
const rel = files[i].webkitRelativePath ?? '';
|
|
270
|
-
const dirName = rel.split('/')[0] || files[i].name;
|
|
271
|
-
if (!seenDirs.has(dirName)) {
|
|
272
|
-
seenDirs.add(dirName);
|
|
273
|
-
handles.push({ kind: 'Directory', name: dirName, path: null });
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
resolve(handles);
|
|
277
|
-
});
|
|
278
|
-
input.addEventListener('cancel', () => resolve([]));
|
|
279
|
-
input.click();
|
|
280
|
-
}
|
|
281
|
-
catch {
|
|
282
|
-
resolve([]);
|
|
283
|
-
}
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
// Uses the File System Access API showDirectoryPicker. AbortError (user cancel) → sentinel [].
|
|
287
|
-
// SecurityError (permission denied) → sentinel []. Other errors → sentinel [].
|
|
288
|
-
// Stores the live FileSystemDirectoryHandle in the registry so @flighthq/filesystem can enumerate
|
|
289
|
-
// and read contents through the handle without requiring a path.
|
|
290
|
-
async function openDirectoryPickerAccessApi(options) {
|
|
291
|
-
const win = window;
|
|
292
|
-
if (typeof win.showDirectoryPicker !== 'function')
|
|
293
|
-
return [];
|
|
294
|
-
try {
|
|
295
|
-
const pickerOptions = {
|
|
296
|
-
// readwrite gives the most capability; if the user denies write permission the browser degrades.
|
|
297
|
-
mode: 'readwrite',
|
|
298
|
-
};
|
|
299
|
-
if (options.startIn !== undefined) {
|
|
300
|
-
const startIn = toFileSystemAccessStartIn(options.startIn);
|
|
301
|
-
if (startIn !== undefined)
|
|
302
|
-
pickerOptions.startIn = startIn;
|
|
303
|
-
}
|
|
304
|
-
const nativeHandle = await win.showDirectoryPicker(pickerOptions);
|
|
305
|
-
const handle = { kind: 'Directory', name: nativeHandle.name, path: null };
|
|
306
|
-
// Stash the live FileSystemDirectoryHandle so @flighthq/filesystem can traverse it.
|
|
307
|
-
_fileSystemDirectoryHandleRegistry.set(handle, nativeHandle);
|
|
308
|
-
return [handle];
|
|
309
|
-
}
|
|
310
|
-
catch {
|
|
311
|
-
// AbortError (cancel) and SecurityError (denied) both resolve to the sentinel.
|
|
312
|
-
return [];
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
// Opens a file picker on web. Uses the File System Access API (showOpenFilePicker) when available,
|
|
316
|
-
// stashing the live FileSystemFileHandle in the web handle registry for @flighthq/filesystem to read.
|
|
317
|
-
// Falls back to a transient <input type=file> for browsers without the API.
|
|
318
|
-
function openWebFileDialog(options) {
|
|
319
|
-
// File System Access API path (Chrome/Edge). Returns real writable handles.
|
|
320
|
-
if (typeof window !== 'undefined' &&
|
|
321
|
-
typeof window.showOpenFilePicker === 'function') {
|
|
322
|
-
return openFileSystemAccessPicker(options);
|
|
323
|
-
}
|
|
324
|
-
// Legacy <input type=file> fallback.
|
|
325
|
-
if (typeof document === 'undefined' || typeof document.createElement !== 'function') {
|
|
326
|
-
return Promise.resolve([]);
|
|
327
|
-
}
|
|
328
|
-
return new Promise((resolve) => {
|
|
329
|
-
try {
|
|
330
|
-
const input = document.createElement('input');
|
|
331
|
-
input.type = 'file';
|
|
332
|
-
if (options.multiple === true)
|
|
333
|
-
input.multiple = true;
|
|
334
|
-
if (options.directory === true) {
|
|
335
|
-
input.webkitdirectory = true;
|
|
336
|
-
}
|
|
337
|
-
const accept = buildAcceptAttribute(options.filters);
|
|
338
|
-
if (accept !== '')
|
|
339
|
-
input.accept = accept;
|
|
340
|
-
input.addEventListener('change', () => {
|
|
341
|
-
const files = input.files;
|
|
342
|
-
if (files === null || files.length === 0) {
|
|
343
|
-
resolve([]);
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
const handles = [];
|
|
347
|
-
for (let i = 0; i < files.length; i++) {
|
|
348
|
-
handles.push({ kind: 'File', name: files[i].name, path: null });
|
|
349
|
-
}
|
|
350
|
-
resolve(handles);
|
|
351
|
-
});
|
|
352
|
-
// A cancelled picker fires no change event in many browsers; the 'cancel' event covers newer ones.
|
|
353
|
-
input.addEventListener('cancel', () => resolve([]));
|
|
354
|
-
input.click();
|
|
355
|
-
}
|
|
356
|
-
catch {
|
|
357
|
-
resolve([]);
|
|
358
|
-
}
|
|
359
|
-
});
|
|
58
|
+
export function showMessageDialog(host, options) {
|
|
59
|
+
return host.dialog.message.message(options);
|
|
360
60
|
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
async function openFileSystemAccessPicker(options) {
|
|
364
|
-
const win = window;
|
|
365
|
-
const showPicker = win.showOpenFilePicker;
|
|
366
|
-
if (typeof showPicker !== 'function')
|
|
367
|
-
return [];
|
|
368
|
-
try {
|
|
369
|
-
const pickerOptions = {
|
|
370
|
-
multiple: options.multiple ?? false,
|
|
371
|
-
};
|
|
372
|
-
const types = buildFileSystemAccessTypes(options.filters);
|
|
373
|
-
if (types !== undefined)
|
|
374
|
-
pickerOptions.types = types;
|
|
375
|
-
if (options.startIn !== undefined) {
|
|
376
|
-
const startIn = toFileSystemAccessStartIn(options.startIn);
|
|
377
|
-
if (startIn !== undefined)
|
|
378
|
-
pickerOptions.startIn = startIn;
|
|
379
|
-
}
|
|
380
|
-
const nativeHandles = await showPicker.call(win, pickerOptions);
|
|
381
|
-
const handles = [];
|
|
382
|
-
for (const nativeHandle of nativeHandles) {
|
|
383
|
-
const handle = { kind: 'File', name: nativeHandle.name, path: null };
|
|
384
|
-
// Stash the live FileSystemFileHandle in the registry so @flighthq/filesystem can read it.
|
|
385
|
-
_fileSystemHandleRegistry.set(handle, nativeHandle);
|
|
386
|
-
handles.push(handle);
|
|
387
|
-
}
|
|
388
|
-
return handles;
|
|
389
|
-
}
|
|
390
|
-
catch {
|
|
391
|
-
// AbortError (cancel) and SecurityError (permission denied) both resolve to the sentinel.
|
|
392
|
-
return [];
|
|
393
|
-
}
|
|
61
|
+
export function showPromptDialog(host, options) {
|
|
62
|
+
return host.dialog.prompt.prompt(options);
|
|
394
63
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
const win = window;
|
|
398
|
-
if (typeof win.showSaveFilePicker !== 'function') {
|
|
399
|
-
// The web platform cannot expose or choose a writable host path without this API.
|
|
400
|
-
return null;
|
|
401
|
-
}
|
|
402
|
-
try {
|
|
403
|
-
const pickerOptions = {};
|
|
404
|
-
if (options.defaultName !== undefined) {
|
|
405
|
-
pickerOptions.suggestedName = options.defaultName;
|
|
406
|
-
}
|
|
407
|
-
else if (options.defaultPath !== undefined) {
|
|
408
|
-
// Extract filename portion from the defaultPath for the suggestedName heuristic.
|
|
409
|
-
const parts = options.defaultPath.replace(/\\/g, '/').split('/');
|
|
410
|
-
pickerOptions.suggestedName = parts[parts.length - 1];
|
|
411
|
-
}
|
|
412
|
-
const types = buildFileSystemAccessTypes(options.filters);
|
|
413
|
-
if (types !== undefined)
|
|
414
|
-
pickerOptions.types = types;
|
|
415
|
-
if (options.startIn !== undefined) {
|
|
416
|
-
const startIn = toFileSystemAccessStartIn(options.startIn);
|
|
417
|
-
if (startIn !== undefined)
|
|
418
|
-
pickerOptions.startIn = startIn;
|
|
419
|
-
}
|
|
420
|
-
const nativeHandle = await win.showSaveFilePicker(pickerOptions);
|
|
421
|
-
const handle = { kind: 'File', name: nativeHandle.name, path: null };
|
|
422
|
-
// Stash the live FileSystemFileHandle for @flighthq/filesystem to write to.
|
|
423
|
-
_fileSystemHandleRegistry.set(handle, nativeHandle);
|
|
424
|
-
return handle;
|
|
425
|
-
}
|
|
426
|
-
catch {
|
|
427
|
-
return null;
|
|
428
|
-
}
|
|
64
|
+
export function showWarningDialog(host, options) {
|
|
65
|
+
return host.dialog.message.message({ ...options, kind: 'warning' });
|
|
429
66
|
}
|
|
430
67
|
//# sourceMappingURL=dialog.js.map
|
package/dist/dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dialog.js","sourceRoot":"","sources":["../src/dialog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DirectoryOpenDialogResult, FileDialogHandle, FileDialogHandleOperations, FileOpenDialogResult, FileSaveDialogResult, HasDialogDirectoryOpen, HasDialogFileOpen, HasDialogFileSave, OpenFileDialogOptions, SaveFileDialogOptions } from '@flighthq/types/contract';
|
|
2
|
+
export declare function createFileDialogHandle(kind: FileDialogHandle['kind'], name: string, path: string | null, operations?: FileDialogHandleOperations | null): FileDialogHandle;
|
|
3
|
+
export declare function getFileDialogHandleOperations(handle: Readonly<FileDialogHandle>): Readonly<FileDialogHandleOperations> | null;
|
|
4
|
+
export declare function showOpenDirectoryDialog(host: HasDialogDirectoryOpen): Promise<DirectoryOpenDialogResult>;
|
|
5
|
+
export declare function showOpenFileDialog(host: HasDialogFileOpen, options: Readonly<OpenFileDialogOptions>): Promise<FileOpenDialogResult>;
|
|
6
|
+
export declare function showSaveFileDialog(host: HasDialogFileSave, options: Readonly<SaveFileDialogOptions>): Promise<FileSaveDialogResult>;
|
|
7
|
+
//# sourceMappingURL=fileDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileDialog.d.ts","sourceRoot":"","sources":["../src/fileDialog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EAChB,0BAA0B,EAE1B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,UAAU,GAAE,0BAA0B,GAAG,IAAW,GACnD,gBAAgB,CAMlB;AAID,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACjC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAG7C;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAExG;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACvC,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACvC,OAAO,CAAC,oBAAoB,CAAC,CAE/B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createEntity, createEntityRuntime } from '@flighthq/entity/contract';
|
|
2
|
+
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
3
|
+
// Constructs the identity that crosses from a picker provider into filesystem. `operations` is an
|
|
4
|
+
// internal runtime extension point, not serialized descriptor data; native path handles use null.
|
|
5
|
+
export function createFileDialogHandle(kind, name, path, operations = null) {
|
|
6
|
+
const handle = createEntity({ kind, name, path });
|
|
7
|
+
const runtime = createEntityRuntime();
|
|
8
|
+
runtime.operations = operations;
|
|
9
|
+
handle[EntityRuntimeKey] = runtime;
|
|
10
|
+
return handle;
|
|
11
|
+
}
|
|
12
|
+
// Provider-neutral access to the handle's package-crossing runtime operations. A deserialized DTO or
|
|
13
|
+
// forged object has no runtime and therefore cannot acquire authority by matching public fields.
|
|
14
|
+
export function getFileDialogHandleOperations(handle) {
|
|
15
|
+
const runtime = handle[EntityRuntimeKey];
|
|
16
|
+
return runtime?.operations ?? null;
|
|
17
|
+
}
|
|
18
|
+
export function showOpenDirectoryDialog(host) {
|
|
19
|
+
return host.dialog.directoryOpen.open();
|
|
20
|
+
}
|
|
21
|
+
export function showOpenFileDialog(host, options) {
|
|
22
|
+
return host.dialog.fileOpen.open(options);
|
|
23
|
+
}
|
|
24
|
+
export function showSaveFileDialog(host, options) {
|
|
25
|
+
return host.dialog.fileSave.save(options);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=fileDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileDialog.js","sourceRoot":"","sources":["../src/fileDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAc9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,kGAAkG;AAClG,kGAAkG;AAClG,MAAM,UAAU,sBAAsB,CACpC,IAA8B,EAC9B,IAAY,EACZ,IAAmB,EACnB,aAAgD,IAAI;IAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAqB,CAAC;IACtE,MAAM,OAAO,GAAG,mBAAmB,EAA6B,CAAC;IACjE,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IAChC,MAAM,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qGAAqG;AACrG,iGAAiG;AACjG,MAAM,UAAU,6BAA6B,CAC3C,MAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAwC,CAAC;IAChF,OAAO,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAA4B;IAClE,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAuB,EACvB,OAAwC;IAExC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAuB,EACvB,OAAwC;IAExC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createFileDialogHandle, getFileDialogHandleOperations, showConfirmDialog, showErrorBox, showErrorDialog, showInfoDialog, showMessageDialog, showOpenDirectoryDialog, showOpenFileDialog, showPromptDialog, showSaveFileDialog, showWarningDialog, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|