@flighthq/host-web 0.5.1-next.658.9cb44d7 → 0.5.1-next.685.f72fc7f

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 CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/host-web`. The `@fli
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-web@0.5.1-next.658.9cb44d7](https://github.com/flighthq/flight/tree/9cb44d76b981adad2503d5e62207be99adb35c55/packages/host-web)
17
- - [License](https://github.com/flighthq/flight/blob/9cb44d76b981adad2503d5e62207be99adb35c55/LICENSE.md)
16
+ - [Source for @flighthq/host-web@0.5.1-next.685.f72fc7f](https://github.com/flighthq/flight/tree/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/packages/host-web)
17
+ - [License](https://github.com/flighthq/flight/blob/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/LICENSE.md)
@@ -1,4 +1,4 @@
1
- import type { DirectoryOpenDialogResult, FileOpenDialogResult, FileSaveDialogResult, OpenFileDialogOptions, SaveFileDialogOptions } from '@flighthq/types/contract';
1
+ import type { DirectoryOpenDialogResult, FileOpenDialogResult, FileSaveDialogResult, OpenDirectoryDialogOptions, OpenFileDialogOptions, SaveFileDialogOptions } from '@flighthq/types/contract';
2
2
  export { webMessageDialogBackend, webPromptDialogBackend } from '@flighthq/dialog/contract';
3
3
  export declare const webDirectoryOpenDialogBackend: {
4
4
  open: typeof openDirectory;
@@ -9,7 +9,7 @@ export declare const webFileOpenDialogBackend: {
9
9
  export declare const webFileSaveDialogBackend: {
10
10
  save: typeof saveFile;
11
11
  } & import("@flighthq/types/Entity").Entity;
12
- declare function openDirectory(): Promise<DirectoryOpenDialogResult>;
12
+ declare function openDirectory(options?: Readonly<OpenDirectoryDialogOptions>): Promise<DirectoryOpenDialogResult>;
13
13
  declare function openFile(options: Readonly<OpenFileDialogOptions>): Promise<FileOpenDialogResult>;
14
14
  declare function saveFile(options: Readonly<SaveFileDialogOptions>): Promise<FileSaveDialogResult>;
15
15
  //# sourceMappingURL=webDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webDialog.d.ts","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,yBAAyB,EAKzB,oBAAoB,EAEpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,eAAO,MAAM,6BAA6B;;2CAE4B,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,iBAAe,aAAa,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAajE;AAED,iBAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAMzF;AA2FD,iBAAe,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAiB/F"}
1
+ {"version":3,"file":"webDialog.d.ts","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,yBAAyB,EAKzB,oBAAoB,EAEpB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,eAAO,MAAM,6BAA6B;;2CAE4B,CAAC;AAEvE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,eAAO,MAAM,wBAAwB;;2CAE4B,CAAC;AAElE,iBAAe,aAAa,CAAC,OAAO,GAAE,QAAQ,CAAC,0BAA0B,CAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAcnH;AAED,iBAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAOzF;AAkGD,iBAAe,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkB/F"}
package/dist/webDialog.js CHANGED
@@ -10,7 +10,9 @@ export const webFileOpenDialogBackend = createEntity({
10
10
  export const webFileSaveDialogBackend = createEntity({
11
11
  save: saveFile,
12
12
  });
13
- async function openDirectory() {
13
+ async function openDirectory(options = {}) {
14
+ if (options.signal?.aborted)
15
+ return { outcome: 'cancelled' };
14
16
  if (typeof window === 'undefined')
15
17
  return { outcome: 'runtime-unavailable' };
16
18
  const picker = window.showDirectoryPicker;
@@ -28,6 +30,8 @@ async function openDirectory() {
28
30
  }
29
31
  }
30
32
  function openFile(options) {
33
+ if (options.signal?.aborted)
34
+ return Promise.resolve({ outcome: 'cancelled' });
31
35
  if (typeof window !== 'undefined') {
32
36
  const picker = window.showOpenFilePicker;
33
37
  if (typeof picker === 'function')
@@ -36,6 +40,8 @@ function openFile(options) {
36
40
  return openLegacyFilePicker(options);
37
41
  }
38
42
  async function openFileSystemAccessPicker(win, picker, options) {
43
+ if (options.signal?.aborted)
44
+ return { outcome: 'cancelled' };
39
45
  try {
40
46
  const pickerOptions = { multiple: options.multiple ?? false };
41
47
  const types = buildFileSystemAccessTypes(options.filters);
@@ -55,6 +61,8 @@ async function openFileSystemAccessPicker(win, picker, options) {
55
61
  }
56
62
  }
57
63
  function openLegacyFilePicker(options) {
64
+ if (options.signal?.aborted)
65
+ return Promise.resolve({ outcome: 'cancelled' });
58
66
  if (typeof document === 'undefined' ||
59
67
  typeof document.createElement !== 'function' ||
60
68
  typeof window === 'undefined' ||
@@ -74,6 +82,7 @@ function openLegacyFilePicker(options) {
74
82
  input.removeEventListener('change', onChange);
75
83
  input.removeEventListener('cancel', onCancel);
76
84
  window.removeEventListener('focus', onFocus);
85
+ options.signal?.removeEventListener('abort', onAbort);
77
86
  if (focusTimer !== null)
78
87
  clearTimeout(focusTimer);
79
88
  focusTimer = null;
@@ -108,9 +117,13 @@ function openLegacyFilePicker(options) {
108
117
  // the no-event cancellation path deterministic.
109
118
  focusTimer = setTimeout(() => finish(selectedResult() ?? { outcome: 'cancelled' }), 0);
110
119
  }
120
+ function onAbort() {
121
+ finish({ outcome: 'cancelled' });
122
+ }
111
123
  input.addEventListener('change', onChange);
112
124
  input.addEventListener('cancel', onCancel);
113
125
  window.addEventListener('focus', onFocus);
126
+ options.signal?.addEventListener('abort', onAbort, { once: true });
114
127
  try {
115
128
  input.click();
116
129
  }
@@ -120,6 +133,8 @@ function openLegacyFilePicker(options) {
120
133
  });
121
134
  }
122
135
  async function saveFile(options) {
136
+ if (options.signal?.aborted)
137
+ return { outcome: 'cancelled' };
123
138
  if (typeof window === 'undefined')
124
139
  return { outcome: 'runtime-unavailable' };
125
140
  const picker = window.showSaveFilePicker;
@@ -192,7 +207,8 @@ function errorName(error) {
192
207
  }
193
208
  function retainedFileOperations(file) {
194
209
  return {
195
- async readBinary() {
210
+ async readBinary(signal) {
211
+ signal?.throwIfAborted();
196
212
  try {
197
213
  return new Uint8Array(await file.arrayBuffer());
198
214
  }
@@ -200,7 +216,8 @@ function retainedFileOperations(file) {
200
216
  return null;
201
217
  }
202
218
  },
203
- async readText() {
219
+ async readText(signal) {
220
+ signal?.throwIfAborted();
204
221
  try {
205
222
  return await file.text();
206
223
  }
@@ -212,47 +229,91 @@ function retainedFileOperations(file) {
212
229
  }
213
230
  function fileSystemHandleOperations(handle) {
214
231
  return {
215
- async readBinary() {
232
+ async readBinary(signal) {
233
+ signal?.throwIfAborted();
234
+ let file;
235
+ try {
236
+ file = await handle.getFile();
237
+ }
238
+ catch {
239
+ return null;
240
+ }
241
+ signal?.throwIfAborted();
216
242
  try {
217
- const file = await handle.getFile();
218
243
  return new Uint8Array(await file.arrayBuffer());
219
244
  }
220
245
  catch {
221
246
  return null;
222
247
  }
223
248
  },
224
- async readText() {
249
+ async readText(signal) {
250
+ signal?.throwIfAborted();
251
+ let file;
225
252
  try {
226
- return await (await handle.getFile()).text();
253
+ file = await handle.getFile();
254
+ }
255
+ catch {
256
+ return null;
257
+ }
258
+ signal?.throwIfAborted();
259
+ try {
260
+ return await file.text();
227
261
  }
228
262
  catch {
229
263
  return null;
230
264
  }
231
265
  },
232
- async writeBinary(data) {
233
- return writeFileSystemHandle(handle, data.slice());
266
+ async writeBinary(data, signal) {
267
+ signal?.throwIfAborted();
268
+ return writeFileSystemHandle(handle, data.slice(), signal);
234
269
  },
235
- async writeText(data) {
236
- return writeFileSystemHandle(handle, data);
270
+ async writeText(data, signal) {
271
+ signal?.throwIfAborted();
272
+ return writeFileSystemHandle(handle, data, signal);
237
273
  },
238
274
  };
239
275
  }
240
- async function writeFileSystemHandle(handle, data) {
276
+ async function writeFileSystemHandle(handle, data, signal) {
277
+ signal?.throwIfAborted();
241
278
  let writable = null;
242
279
  try {
243
280
  writable = await handle.createWritable();
281
+ }
282
+ catch {
283
+ return false;
284
+ }
285
+ if (signal?.aborted) {
286
+ await writable.abort?.(signal.reason).catch(() => { });
287
+ throw signal.reason;
288
+ }
289
+ let aborted = false;
290
+ let abortPromise = null;
291
+ const onAbort = () => {
292
+ aborted = true;
293
+ abortPromise = writable?.abort?.(signal?.reason).catch(() => { }) ?? Promise.resolve();
294
+ };
295
+ if (writable.abort !== undefined)
296
+ signal?.addEventListener('abort', onAbort, { once: true });
297
+ try {
244
298
  await writable.write(data);
299
+ if (aborted) {
300
+ await abortPromise;
301
+ throw signal?.reason;
302
+ }
245
303
  await writable.close();
246
304
  return true;
247
305
  }
248
306
  catch {
249
- try {
250
- await writable?.abort?.();
251
- }
252
- catch {
253
- // The write failure remains authoritative; abort is best-effort teardown of the owned stream.
254
- }
307
+ if (abortPromise === null)
308
+ await writable.abort?.().catch(() => { });
309
+ else
310
+ await abortPromise;
311
+ if (aborted)
312
+ throw signal?.reason;
255
313
  return false;
256
314
  }
315
+ finally {
316
+ signal?.removeEventListener('abort', onAbort);
317
+ }
257
318
  }
258
319
  //# sourceMappingURL=webDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webDialog.js","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAezD,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;IACxD,IAAI,EAAE,aAAa;CACgD,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;IACnD,IAAI,EAAE,QAAQ;CACgD,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;IACnD,IAAI,EAAE,QAAQ;CACgD,CAAC,CAAC;AAElE,KAAK,UAAU,aAAa;IAC1B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAI,MAAqC,CAAC,mBAAmB,CAAC;IAC1E,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC;YACpE,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAAE,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAwC;IACxD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,MAAM,GAAI,MAAqC,CAAC,kBAAkB,CAAC;QACzE,IAAI,OAAO,MAAM,KAAK,UAAU;YAAE,OAAO,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,GAAW,EACX,MAAqE,EACrE,OAAwC;IAExC,IAAI,CAAC;QACH,MAAM,aAAa,GAAsC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC;QACjG,MAAM,KAAK,GAAG,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS;YAAE,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;QACrD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC5D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CACjD,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC,CAClG,CAAC;QACF,OAAO;YACL,OAAO,EAAE,OAAoE;YAC7E,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC;IACvE,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAwC;IACpE,IACE,OAAO,QAAQ,KAAK,WAAW;QAC/B,OAAO,QAAQ,CAAC,aAAa,KAAK,UAAU;QAC5C,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAC7C,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,EAAE;QACnD,IAAI,UAAU,GAAyC,IAAI,CAAC;QAC5D,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,EAAE;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAEzC,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9C,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,UAAU,KAAK,IAAI;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YAClD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,MAA4B,EAAE,EAAE;YAC9C,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,cAAc,GAAG,GAAgC,EAAE;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CACzC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAC9E,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,OAAoE;gBAC7E,OAAO,EAAE,UAAU;aACpB,CAAC;QACJ,CAAC,CAAC;QACF,SAAS,QAAQ;YACf,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,QAAQ;YACf,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,SAAS,OAAO;YACd,IAAI,UAAU,KAAK,IAAI;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YAClD,8FAA8F;YAC9F,gDAAgD;YAChD,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,OAAwC;IAC9D,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC7E,MAAM,MAAM,GAAI,MAAqC,CAAC,kBAAkB,CAAC;IACzE,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAC5E,IAAI,CAAC;QACH,MAAM,aAAa,GAAsC,EAAE,CAAC;QAC5D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,aAAa,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;QACzF,MAAM,KAAK,GAAG,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,SAAS;YAAE,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9D,OAAO;YACL,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;YACzG,OAAO,EAAE,UAAU;SACpB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC;IACvE,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAgD;IAEhD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;QAC3D,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgD;IAC5E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,QAAQ,KAAK,EAAE;gBAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,MAAM,SAAS,IAAI,mBAAmB,CAAC,UAAU,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA6B;IACxD,OAAO,UAAU;SACd,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,GAAG,CAAC;SAC5D,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,qBAAqB,CAC5B,KAAc,EACd,OAAgB;IAEhB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,WAAW,CAAC;IAC9C,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IACrF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAU;IACxC,OAAO;QACL,KAAK,CAAC,UAAU;YACd,IAAI,CAAC;gBACH,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA4B;IAC9D,OAAO;QACL,KAAK,CAAC,UAAU;YACd,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,OAAO,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,IAAI;YACpB,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI;YAClB,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,MAA4B,EAAE,IAAyB;IAC1F,IAAI,QAAQ,GAAwC,IAAI,CAAC;IACzD,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,8FAA8F;QAChG,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"webDialog.js","sourceRoot":"","sources":["../src/webDialog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webFilesystem.d.ts","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjF,eAAO,MAAM,oBAAoB,EAAE,qBA8MlC,CAAC"}
1
+ {"version":3,"file":"webFilesystem.d.ts","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAIjF,eAAO,MAAM,oBAAoB,EAAE,qBAmQlC,CAAC"}
@@ -1,18 +1,23 @@
1
1
  // Stable OPFS provider. Unsupported symlink, permissions, real-path, watch, and well-known-path
2
2
  // operations are intentionally absent; @flighthq/filesystem owns those documented absence results.
3
3
  export const webFileSystemBackend = {
4
- async appendTextFile(path, data) {
4
+ async appendTextFile(path, data, signal) {
5
+ signal?.throwIfAborted();
5
6
  const handle = await getFileHandle(path, false);
7
+ signal?.throwIfAborted();
6
8
  let existing = '';
7
9
  if (handle !== null) {
8
10
  try {
9
- existing = await (await handle.getFile()).text();
11
+ const file = await handle.getFile();
12
+ signal?.throwIfAborted();
13
+ existing = await file.text();
10
14
  }
11
15
  catch {
12
16
  existing = '';
13
17
  }
14
18
  }
15
- return writeFile(path, existing + data);
19
+ signal?.throwIfAborted();
20
+ return writeFile(path, existing + data, signal);
16
21
  },
17
22
  async canAccessFile(path, mode) {
18
23
  if (mode === 'executable')
@@ -73,10 +78,13 @@ export const webFileSystemBackend = {
73
78
  const root = await getRoot();
74
79
  return root !== null && (await getDirectoryHandle(root, splitPath(path), true)) !== null;
75
80
  },
76
- async openFileReadStream(path) {
81
+ async openFileReadStream(path, signal) {
82
+ signal?.throwIfAborted();
77
83
  const handle = await getFileHandle(path, false);
84
+ signal?.throwIfAborted();
78
85
  if (handle === null)
79
86
  return null;
87
+ signal?.throwIfAborted();
80
88
  try {
81
89
  return (await handle.getFile()).stream();
82
90
  }
@@ -84,10 +92,13 @@ export const webFileSystemBackend = {
84
92
  return null;
85
93
  }
86
94
  },
87
- async openFileWriteStream(path) {
95
+ async openFileWriteStream(path, signal) {
96
+ signal?.throwIfAborted();
88
97
  const handle = await getFileHandle(path, true);
98
+ signal?.throwIfAborted();
89
99
  if (handle === null || typeof handle.createWritable !== 'function')
90
100
  return null;
101
+ signal?.throwIfAborted();
91
102
  try {
92
103
  return (await handle.createWritable());
93
104
  }
@@ -95,42 +106,65 @@ export const webFileSystemBackend = {
95
106
  return null;
96
107
  }
97
108
  },
98
- async readBinaryFile(path) {
109
+ async readBinaryFile(path, signal) {
110
+ signal?.throwIfAborted();
99
111
  const handle = await getFileHandle(path, false);
112
+ signal?.throwIfAborted();
100
113
  if (handle === null)
101
114
  return null;
115
+ let file;
102
116
  try {
103
- return new Uint8Array(await (await handle.getFile()).arrayBuffer());
117
+ file = await handle.getFile();
118
+ }
119
+ catch {
120
+ return null;
121
+ }
122
+ signal?.throwIfAborted();
123
+ try {
124
+ return new Uint8Array(await file.arrayBuffer());
104
125
  }
105
126
  catch {
106
127
  return null;
107
128
  }
108
129
  },
109
- async readBinaryFileRange(path, offset, length) {
130
+ async readBinaryFileRange(path, offset, length, signal) {
131
+ signal?.throwIfAborted();
110
132
  const handle = await getFileHandle(path, false);
133
+ signal?.throwIfAborted();
111
134
  if (handle === null)
112
135
  return null;
136
+ let file;
137
+ try {
138
+ file = await handle.getFile();
139
+ }
140
+ catch {
141
+ return null;
142
+ }
143
+ signal?.throwIfAborted();
144
+ if (offset >= file.size)
145
+ return new Uint8Array(0);
113
146
  try {
114
- const file = await handle.getFile();
115
- if (offset >= file.size)
116
- return new Uint8Array(0);
117
147
  return new Uint8Array(await file.slice(offset, offset + length).arrayBuffer());
118
148
  }
119
149
  catch {
120
150
  return null;
121
151
  }
122
152
  },
123
- async readDirectory(path) {
153
+ async readDirectory(path, signal) {
154
+ signal?.throwIfAborted();
124
155
  const root = await getRoot();
156
+ signal?.throwIfAborted();
125
157
  if (root === null)
126
158
  return [];
127
159
  const directory = await getDirectoryHandle(root, splitPath(path), false);
160
+ signal?.throwIfAborted();
128
161
  if (directory === null)
129
162
  return [];
130
163
  const entries = [];
131
164
  try {
132
165
  const base = normalizePath(path);
133
166
  for await (const [name, handle] of asAsyncEntries(directory)) {
167
+ signal?.throwIfAborted();
134
168
  entries.push({
135
169
  isDirectory: handle.kind === 'directory',
136
170
  name,
@@ -140,31 +174,48 @@ export const webFileSystemBackend = {
140
174
  return entries;
141
175
  }
142
176
  catch {
177
+ if (signal?.aborted)
178
+ throw signal.reason;
143
179
  return [];
144
180
  }
145
181
  },
146
182
  async readDirectoryRecursive(path, options) {
183
+ options?.signal?.throwIfAborted();
147
184
  const root = await getRoot();
185
+ options?.signal?.throwIfAborted();
148
186
  if (root === null)
149
187
  return [];
150
188
  const directory = await getDirectoryHandle(root, splitPath(path), false);
189
+ options?.signal?.throwIfAborted();
151
190
  if (directory === null)
152
191
  return [];
153
192
  const entries = [];
154
193
  try {
155
- await walkDirectory(directory, normalizePath(path), entries, 0, options?.maxDepth ?? Infinity);
194
+ await walkDirectory(directory, normalizePath(path), entries, 0, options?.maxDepth ?? Infinity, options?.signal);
156
195
  return entries;
157
196
  }
158
197
  catch {
198
+ if (options?.signal?.aborted)
199
+ throw options.signal.reason;
159
200
  return [];
160
201
  }
161
202
  },
162
- async readTextFile(path) {
203
+ async readTextFile(path, signal) {
204
+ signal?.throwIfAborted();
163
205
  const handle = await getFileHandle(path, false);
206
+ signal?.throwIfAborted();
164
207
  if (handle === null)
165
208
  return null;
209
+ let file;
210
+ try {
211
+ file = await handle.getFile();
212
+ }
213
+ catch {
214
+ return null;
215
+ }
216
+ signal?.throwIfAborted();
166
217
  try {
167
- return await (await handle.getFile()).text();
218
+ return await file.text();
168
219
  }
169
220
  catch {
170
221
  return null;
@@ -217,30 +268,39 @@ export const webFileSystemBackend = {
217
268
  return null;
218
269
  return { createdTime: 0, isDirectory: true, isSymlink: false, modifiedTime: 0, size: 0 };
219
270
  },
220
- async writeBinaryFile(path, data) {
221
- return writeFile(path, data.slice());
271
+ async writeBinaryFile(path, data, signal) {
272
+ signal?.throwIfAborted();
273
+ return writeFile(path, data.slice(), signal);
222
274
  },
223
- async writeFileAtomic(path, data) {
275
+ async writeFileAtomic(path, data, signal) {
276
+ signal?.throwIfAborted();
224
277
  const temporaryPath = path + '.__atomic_tmp__';
225
278
  const payload = typeof data === 'string' ? data : data.slice();
226
- if (!(await writeFile(temporaryPath, payload)))
227
- return false;
228
- const temporaryHandle = await getFileHandle(temporaryPath, false);
229
- if (temporaryHandle === null)
230
- return false;
231
279
  try {
232
- const bytes = new Uint8Array(await (await temporaryHandle.getFile()).arrayBuffer());
233
- const written = await writeFile(path, bytes);
234
- await removeFile(temporaryPath);
235
- return written;
280
+ if (!(await writeFile(temporaryPath, payload, signal)))
281
+ return false;
282
+ const temporaryHandle = await getFileHandle(temporaryPath, false);
283
+ signal?.throwIfAborted();
284
+ if (temporaryHandle === null)
285
+ return false;
286
+ const file = await temporaryHandle.getFile();
287
+ signal?.throwIfAborted();
288
+ const bytes = new Uint8Array(await file.arrayBuffer());
289
+ signal?.throwIfAborted();
290
+ return await writeFile(path, bytes, signal);
236
291
  }
237
292
  catch {
238
- await removeFile(temporaryPath);
293
+ if (signal?.aborted)
294
+ throw signal.reason;
239
295
  return false;
240
296
  }
297
+ finally {
298
+ await removeFile(temporaryPath);
299
+ }
241
300
  },
242
- async writeTextFile(path, data) {
243
- return writeFile(path, data);
301
+ async writeTextFile(path, data, signal) {
302
+ signal?.throwIfAborted();
303
+ return writeFile(path, data, signal);
244
304
  },
245
305
  };
246
306
  function asAsyncEntries(directory) {
@@ -311,28 +371,61 @@ async function removeFile(path) {
311
371
  function splitPath(path) {
312
372
  return path.split('/').filter((segment) => segment !== '' && segment !== '.');
313
373
  }
314
- async function walkDirectory(directory, basePath, out, depth, maxDepth) {
374
+ async function walkDirectory(directory, basePath, out, depth, maxDepth, signal) {
315
375
  for await (const [name, handle] of asAsyncEntries(directory)) {
376
+ signal?.throwIfAborted();
316
377
  const path = basePath === '' ? name : `${basePath}/${name}`;
317
378
  const isDirectory = handle.kind === 'directory';
318
379
  out.push({ isDirectory, name, path });
319
380
  if (isDirectory && depth < maxDepth) {
320
- await walkDirectory(handle, path, out, depth + 1, maxDepth);
381
+ await walkDirectory(handle, path, out, depth + 1, maxDepth, signal);
321
382
  }
322
383
  }
323
384
  }
324
- async function writeFile(path, data) {
385
+ async function writeFile(path, data, signal) {
386
+ signal?.throwIfAborted();
325
387
  const handle = await getFileHandle(path, true);
388
+ signal?.throwIfAborted();
326
389
  if (handle === null || typeof handle.createWritable !== 'function')
327
390
  return false;
391
+ let writable;
392
+ try {
393
+ writable = await handle.createWritable();
394
+ }
395
+ catch {
396
+ return false;
397
+ }
398
+ if (signal?.aborted) {
399
+ await writable.abort(signal.reason).catch(() => { });
400
+ throw signal.reason;
401
+ }
402
+ let aborted = false;
403
+ let abortPromise = null;
404
+ const onAbort = () => {
405
+ aborted = true;
406
+ abortPromise = writable.abort(signal?.reason).catch(() => { });
407
+ };
408
+ signal?.addEventListener('abort', onAbort, { once: true });
328
409
  try {
329
- const writable = await handle.createWritable();
330
410
  await writable.write(data);
411
+ if (aborted) {
412
+ await abortPromise;
413
+ throw signal?.reason;
414
+ }
331
415
  await writable.close();
332
416
  return true;
333
417
  }
334
418
  catch {
419
+ if (abortPromise === null)
420
+ await writable.abort().catch(() => { });
421
+ else
422
+ await abortPromise;
423
+ if (aborted)
424
+ throw signal?.reason;
335
425
  return false;
336
426
  }
427
+ finally {
428
+ signal?.removeEventListener('abort', onAbort);
429
+ }
337
430
  }
338
431
  //# sourceMappingURL=webFilesystem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webFilesystem.js","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webFilesystem.js","sourceRoot":"","sources":["../src/webFilesystem.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/host-web",
3
- "version": "0.5.1-next.658.9cb44d7",
3
+ "version": "0.5.1-next.685.f72fc7f",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,41 +38,41 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/app": "0.5.1-next.658.9cb44d7",
42
- "@flighthq/application": "0.5.1-next.658.9cb44d7",
43
- "@flighthq/audio": "0.5.1-next.658.9cb44d7",
44
- "@flighthq/bitmap": "0.5.1-next.658.9cb44d7",
45
- "@flighthq/device": "0.5.1-next.658.9cb44d7",
46
- "@flighthq/dialog": "0.5.1-next.658.9cb44d7",
47
- "@flighthq/entity": "0.5.1-next.658.9cb44d7",
48
- "@flighthq/filesystem": "0.5.1-next.658.9cb44d7",
49
- "@flighthq/font": "0.5.1-next.658.9cb44d7",
50
- "@flighthq/geolocation": "0.5.1-next.658.9cb44d7",
51
- "@flighthq/glyphatlas": "0.5.1-next.658.9cb44d7",
52
- "@flighthq/haptics": "0.5.1-next.658.9cb44d7",
53
- "@flighthq/image": "0.5.1-next.658.9cb44d7",
54
- "@flighthq/lifecycle": "0.5.1-next.658.9cb44d7",
55
- "@flighthq/media": "0.5.1-next.658.9cb44d7",
56
- "@flighthq/menu": "0.5.1-next.658.9cb44d7",
57
- "@flighthq/midi": "0.5.1-next.658.9cb44d7",
58
- "@flighthq/notification": "0.5.1-next.658.9cb44d7",
59
- "@flighthq/platform": "0.5.1-next.658.9cb44d7",
60
- "@flighthq/power": "0.5.1-next.658.9cb44d7",
61
- "@flighthq/protocol": "0.5.1-next.658.9cb44d7",
62
- "@flighthq/render": "0.5.1-next.658.9cb44d7",
63
- "@flighthq/render-gl": "0.5.1-next.658.9cb44d7",
64
- "@flighthq/render-wgpu": "0.5.1-next.658.9cb44d7",
65
- "@flighthq/screen": "0.5.1-next.658.9cb44d7",
66
- "@flighthq/sensors": "0.5.1-next.658.9cb44d7",
67
- "@flighthq/socket": "0.5.1-next.658.9cb44d7",
68
- "@flighthq/share": "0.5.1-next.658.9cb44d7",
69
- "@flighthq/signals": "0.5.1-next.658.9cb44d7",
70
- "@flighthq/statusbar": "0.5.1-next.658.9cb44d7",
71
- "@flighthq/storage": "0.5.1-next.658.9cb44d7",
72
- "@flighthq/types": "0.5.1-next.658.9cb44d7",
73
- "@flighthq/useragent": "0.5.1-next.658.9cb44d7",
74
- "@flighthq/video": "0.5.1-next.658.9cb44d7",
75
- "@flighthq/webcam": "0.5.1-next.658.9cb44d7"
41
+ "@flighthq/app": "0.5.1-next.685.f72fc7f",
42
+ "@flighthq/application": "0.5.1-next.685.f72fc7f",
43
+ "@flighthq/audio": "0.5.1-next.685.f72fc7f",
44
+ "@flighthq/bitmap": "0.5.1-next.685.f72fc7f",
45
+ "@flighthq/device": "0.5.1-next.685.f72fc7f",
46
+ "@flighthq/dialog": "0.5.1-next.685.f72fc7f",
47
+ "@flighthq/entity": "0.5.1-next.685.f72fc7f",
48
+ "@flighthq/filesystem": "0.5.1-next.685.f72fc7f",
49
+ "@flighthq/font": "0.5.1-next.685.f72fc7f",
50
+ "@flighthq/geolocation": "0.5.1-next.685.f72fc7f",
51
+ "@flighthq/glyphatlas": "0.5.1-next.685.f72fc7f",
52
+ "@flighthq/haptics": "0.5.1-next.685.f72fc7f",
53
+ "@flighthq/image": "0.5.1-next.685.f72fc7f",
54
+ "@flighthq/lifecycle": "0.5.1-next.685.f72fc7f",
55
+ "@flighthq/media": "0.5.1-next.685.f72fc7f",
56
+ "@flighthq/menu": "0.5.1-next.685.f72fc7f",
57
+ "@flighthq/midi": "0.5.1-next.685.f72fc7f",
58
+ "@flighthq/notification": "0.5.1-next.685.f72fc7f",
59
+ "@flighthq/platform": "0.5.1-next.685.f72fc7f",
60
+ "@flighthq/power": "0.5.1-next.685.f72fc7f",
61
+ "@flighthq/protocol": "0.5.1-next.685.f72fc7f",
62
+ "@flighthq/render": "0.5.1-next.685.f72fc7f",
63
+ "@flighthq/render-gl": "0.5.1-next.685.f72fc7f",
64
+ "@flighthq/render-wgpu": "0.5.1-next.685.f72fc7f",
65
+ "@flighthq/screen": "0.5.1-next.685.f72fc7f",
66
+ "@flighthq/sensors": "0.5.1-next.685.f72fc7f",
67
+ "@flighthq/socket": "0.5.1-next.685.f72fc7f",
68
+ "@flighthq/share": "0.5.1-next.685.f72fc7f",
69
+ "@flighthq/signals": "0.5.1-next.685.f72fc7f",
70
+ "@flighthq/statusbar": "0.5.1-next.685.f72fc7f",
71
+ "@flighthq/storage": "0.5.1-next.685.f72fc7f",
72
+ "@flighthq/types": "0.5.1-next.685.f72fc7f",
73
+ "@flighthq/useragent": "0.5.1-next.685.f72fc7f",
74
+ "@flighthq/video": "0.5.1-next.685.f72fc7f",
75
+ "@flighthq/webcam": "0.5.1-next.685.f72fc7f"
76
76
  },
77
77
  "devDependencies": {
78
78
  "typescript": "^5.3.0"
@@ -146,6 +146,24 @@ describe('webFileOpenDialogBackend', () => {
146
146
  expect(removeInput).toHaveBeenCalledWith('cancel', expect.any(Function));
147
147
  expect(removeWindow).toHaveBeenCalledWith('focus', expect.any(Function));
148
148
  });
149
+
150
+ it('settles an in-flight legacy picker abort once and removes every listener', async () => {
151
+ const input = document.createElement('input');
152
+ const removeInput = vi.spyOn(input, 'removeEventListener');
153
+ const removeWindow = vi.spyOn(window, 'removeEventListener');
154
+ const controller = new AbortController();
155
+ const removeSignal = vi.spyOn(controller.signal, 'removeEventListener');
156
+ vi.spyOn(document, 'createElement').mockReturnValue(input as never);
157
+
158
+ const pending = webFileOpenDialogBackend.open({ signal: controller.signal });
159
+ controller.abort(new Error('cancel picker'));
160
+
161
+ await expect(pending).resolves.toEqual({ outcome: 'cancelled' });
162
+ expect(removeInput).toHaveBeenCalledWith('change', expect.any(Function));
163
+ expect(removeInput).toHaveBeenCalledWith('cancel', expect.any(Function));
164
+ expect(removeWindow).toHaveBeenCalledWith('focus', expect.any(Function));
165
+ expect(removeSignal).toHaveBeenCalledWith('abort', expect.any(Function));
166
+ });
149
167
  });
150
168
 
151
169
  describe('webFileSaveDialogBackend', () => {
@@ -179,12 +197,36 @@ describe('webFileSaveDialogBackend', () => {
179
197
  expect(writes).toEqual(['saved']);
180
198
  expect(closes).toBe(1);
181
199
  });
200
+
201
+ it('aborts an in-flight handle write and releases the signal listener', async () => {
202
+ const reason = new Error('cancel handle write');
203
+ const controller = new AbortController();
204
+ const remove = vi.spyOn(controller.signal, 'removeEventListener');
205
+ const abort = vi.fn(async () => {});
206
+ (window as Window & { showSaveFilePicker?: unknown }).showSaveFilePicker = async () =>
207
+ fileSystemHandle('out.txt', '', {
208
+ abort,
209
+ async close() {},
210
+ async write() {
211
+ controller.abort(reason);
212
+ throw reason;
213
+ },
214
+ });
215
+ const result = await webFileSaveDialogBackend.save({});
216
+ expect(result.outcome).toBe('selected');
217
+ if (result.outcome !== 'selected') return;
218
+
219
+ const write = getFileDialogHandleOperations(result.handle)?.writeText;
220
+ await expect(write?.('saved', controller.signal)).rejects.toBe(reason);
221
+ expect(abort).toHaveBeenCalledWith(reason);
222
+ expect(remove).toHaveBeenCalledWith('abort', expect.any(Function));
223
+ });
182
224
  });
183
225
 
184
226
  function fileSystemHandle(
185
227
  name: string,
186
228
  text: string,
187
- writable?: { close(): Promise<void>; write(data: unknown): Promise<void> },
229
+ writable?: { abort?(reason?: unknown): Promise<void>; close(): Promise<void>; write(data: unknown): Promise<void> },
188
230
  ) {
189
231
  return {
190
232
  kind: 'file' as const,
@@ -1,8 +1,10 @@
1
- import { describe, expect, it } from 'vitest';
1
+ import { describe, expect, it, vi } from 'vitest';
2
2
 
3
3
  import { webFileSystemBackend } from './webFilesystem';
4
4
 
5
5
  describe('webFileSystemBackend', () => {
6
+ afterEach(() => vi.unstubAllGlobals());
7
+
6
8
  it('publishes exactly the genuine OPFS operation family', () => {
7
9
  expect(Object.keys(webFileSystemBackend).sort()).toEqual([
8
10
  'appendTextFile',
@@ -33,4 +35,82 @@ describe('webFileSystemBackend', () => {
33
35
  await expect(webFileSystemBackend.readTextFile?.('a')).resolves.toBe(null);
34
36
  await expect(webFileSystemBackend.writeTextFile?.('a', 'b')).resolves.toBe(false);
35
37
  });
38
+
39
+ it('aborts an in-flight owned writable and releases the signal listener', async () => {
40
+ const reason = new Error('cancel OPFS write');
41
+ const controller = new AbortController();
42
+ const remove = vi.spyOn(controller.signal, 'removeEventListener');
43
+ const abort = vi.fn(async () => {});
44
+ const writable = {
45
+ abort,
46
+ async close() {},
47
+ async write() {
48
+ controller.abort(reason);
49
+ throw reason;
50
+ },
51
+ };
52
+ vi.stubGlobal('navigator', {
53
+ storage: {
54
+ async getDirectory() {
55
+ return {
56
+ async getFileHandle() {
57
+ return {
58
+ async createWritable() {
59
+ return writable;
60
+ },
61
+ };
62
+ },
63
+ };
64
+ },
65
+ },
66
+ });
67
+
68
+ await expect(webFileSystemBackend.writeTextFile?.('a', 'b', controller.signal)).rejects.toBe(reason);
69
+ expect(abort).toHaveBeenCalledWith(reason);
70
+ expect(remove).toHaveBeenCalledWith('abort', expect.any(Function));
71
+ });
72
+
73
+ it('stops an in-flight recursive directory walk', async () => {
74
+ const reason = new Error('cancel OPFS walk');
75
+ const controller = new AbortController();
76
+ vi.stubGlobal('navigator', {
77
+ storage: {
78
+ async getDirectory() {
79
+ return {
80
+ async *entries() {
81
+ controller.abort(reason);
82
+ yield ['ignored', { kind: 'file' }];
83
+ },
84
+ };
85
+ },
86
+ },
87
+ });
88
+
89
+ await expect(webFileSystemBackend.readDirectoryRecursive?.('', { signal: controller.signal })).rejects.toBe(reason);
90
+ });
91
+
92
+ it('does not let a late abort rewrite a completed write', async () => {
93
+ const controller = new AbortController();
94
+ const abort = vi.fn(async () => {});
95
+ const writable = { abort, async close() {}, async write() {} };
96
+ vi.stubGlobal('navigator', {
97
+ storage: {
98
+ async getDirectory() {
99
+ return {
100
+ async getFileHandle() {
101
+ return {
102
+ async createWritable() {
103
+ return writable;
104
+ },
105
+ };
106
+ },
107
+ };
108
+ },
109
+ },
110
+ });
111
+
112
+ await expect(webFileSystemBackend.writeTextFile?.('a', 'b', controller.signal)).resolves.toBe(true);
113
+ controller.abort(new Error('too late'));
114
+ expect(abort).not.toHaveBeenCalled();
115
+ });
36
116
  });
@@ -182,6 +182,73 @@ describe('createWebNetBackend', () => {
182
182
  expect(res.statusText).toBe('aborted');
183
183
  });
184
184
 
185
+ it('never reaches the transport when the caller signal is already aborted', () => {
186
+ // The pre-aborted branch is the one a caller hits by passing a signal from a scope torn down
187
+ // before the request was issued. Asserted through the signal fetch actually receives, so the
188
+ // check cannot pass by the request merely failing for some other reason.
189
+ let observedAborted: boolean | null = null;
190
+ globalThis.fetch = ((_url: string, init: RequestInit) => {
191
+ const signal = init.signal as AbortSignal;
192
+ observedAborted = signal.aborted;
193
+ return Promise.reject(new DOMException('aborted', 'AbortError'));
194
+ }) as unknown as typeof fetch;
195
+ const controller = new AbortController();
196
+ controller.abort();
197
+ return createWebNetBackend()
198
+ .sendNetRequest({ method: 'GET', url: 'u' }, { signal: controller.signal })
199
+ .then((res) => {
200
+ expect(observedAborted).toBe(true);
201
+ expect(res.status).toBe(0);
202
+ expect(res.ok).toBe(false);
203
+ expect(res.statusText).toBe('aborted');
204
+ });
205
+ });
206
+
207
+ it('labels a caller abort apart from a timeout even when both are configured', async () => {
208
+ // A request carrying both timeoutMs and a caller signal must report which one fired. The timeout
209
+ // here is long enough that only the explicit abort can win, so the case needs no timer to elapse.
210
+ globalThis.fetch = ((_url: string, init: RequestInit) =>
211
+ new Promise<Response>((_resolve, reject) => {
212
+ const signal = init.signal as AbortSignal;
213
+ signal.addEventListener('abort', () => reject(new DOMException('aborted', 'AbortError')));
214
+ })) as unknown as typeof fetch;
215
+ const controller = new AbortController();
216
+ const promise = createWebNetBackend().sendNetRequest(
217
+ { method: 'GET', timeoutMs: 60_000, url: 'u' },
218
+ { signal: controller.signal },
219
+ );
220
+ controller.abort();
221
+ const res = await promise;
222
+ expect(res.statusText).toBe('aborted');
223
+ });
224
+
225
+ it('releases its abort listener from the caller signal once the request settles', async () => {
226
+ // A caller signal outlives the requests made with it — a per-request listener left attached is a
227
+ // leak that grows with every call and that no behavioural assertion would ever notice.
228
+ globalThis.fetch = (async () => fakeResponse({ text: 'ok' })) as unknown as typeof fetch;
229
+ const controller = new AbortController();
230
+ let attached = 0;
231
+ const target = controller.signal as AbortSignal & {
232
+ addEventListener: AbortSignal['addEventListener'];
233
+ removeEventListener: AbortSignal['removeEventListener'];
234
+ };
235
+ const add = target.addEventListener.bind(target);
236
+ const remove = target.removeEventListener.bind(target);
237
+ target.addEventListener = ((...args: Parameters<AbortSignal['addEventListener']>) => {
238
+ attached++;
239
+ return add(...args);
240
+ }) as AbortSignal['addEventListener'];
241
+ target.removeEventListener = ((...args: Parameters<AbortSignal['removeEventListener']>) => {
242
+ attached--;
243
+ return remove(...args);
244
+ }) as AbortSignal['removeEventListener'];
245
+
246
+ const backend = createWebNetBackend();
247
+ await backend.sendNetRequest({ method: 'GET', url: 'u' }, { signal: controller.signal });
248
+ await backend.sendNetRequest({ method: 'GET', url: 'u' }, { signal: controller.signal });
249
+ expect(attached).toBe(0);
250
+ });
251
+
185
252
  it('emits download progress ticks when a progress signal is supplied', async () => {
186
253
  globalThis.fetch = (async () =>
187
254
  fakeResponse({