@flighthq/dialog 0.5.1-next.704.19c91ec → 0.5.1-next.730.f29a5aa
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 +2 -2
- 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/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/dist/mediaDialog.d.ts +5 -0
- package/dist/mediaDialog.d.ts.map +1 -0
- package/dist/mediaDialog.js +10 -0
- package/dist/mediaDialog.js.map +1 -0
- package/package.json +3 -3
- package/src/mediaDialog.test.ts +88 -0
package/README.md
CHANGED
|
@@ -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.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/dialog@0.5.1-next.730.f29a5aa](https://github.com/flighthq/flight/tree/f29a5aab5db192284ce5cadf08ffae2649a598ea/packages/dialog)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/f29a5aab5db192284ce5cadf08ffae2649a598ea/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;AACzB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,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;AACzB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createFileDialogHandle, getFileDialogHandleOperations, showConfirmDialog, showErrorBox, showErrorDialog, showInfoDialog, showMessageDialog, showOpenDirectoryDialog, showOpenFileDialog, showPromptDialog, showSaveFileDialog, showWarningDialog, } from './contract';
|
|
1
|
+
export { createFileDialogHandle, getFileDialogHandleOperations, showCapturePhotoDialog, showCaptureVideoDialog, showConfirmDialog, showErrorBox, showErrorDialog, showInfoDialog, showMessageDialog, showOpenDirectoryDialog, showOpenFileDialog, showOpenImageDialog, 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,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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createFileDialogHandle, getFileDialogHandleOperations, showConfirmDialog, showErrorBox, showErrorDialog, showInfoDialog, showMessageDialog, showOpenDirectoryDialog, showOpenFileDialog, showPromptDialog, showSaveFileDialog, showWarningDialog, } from './contract';
|
|
1
|
+
export { createFileDialogHandle, getFileDialogHandleOperations, showCapturePhotoDialog, showCaptureVideoDialog, showConfirmDialog, showErrorBox, showErrorDialog, showInfoDialog, showMessageDialog, showOpenDirectoryDialog, showOpenFileDialog, showOpenImageDialog, showPromptDialog, showSaveFileDialog, showWarningDialog, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CapturePhotoDialogOptions, CaptureVideoDialogOptions, HasDialogImageOpen, HasDialogPhotoCapture, HasDialogVideoCapture, ImageOpenDialogResult, OpenImageDialogOptions, PhotoCaptureDialogResult, VideoCaptureDialogResult } from '@flighthq/types/contract';
|
|
2
|
+
export declare function showCapturePhotoDialog(host: HasDialogPhotoCapture, options?: Readonly<CapturePhotoDialogOptions>): Promise<PhotoCaptureDialogResult>;
|
|
3
|
+
export declare function showCaptureVideoDialog(host: HasDialogVideoCapture, options?: Readonly<CaptureVideoDialogOptions>): Promise<VideoCaptureDialogResult>;
|
|
4
|
+
export declare function showOpenImageDialog(host: HasDialogImageOpen, options?: Readonly<OpenImageDialogOptions>): Promise<ImageOpenDialogResult>;
|
|
5
|
+
//# sourceMappingURL=mediaDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaDialog.d.ts","sourceRoot":"","sources":["../src/mediaDialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAAC,wBAAwB,CAAC,CAEnC;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAAC,wBAAwB,CAAC,CAEnC;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,qBAAqB,CAAC,CAEhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function showCapturePhotoDialog(host, options) {
|
|
2
|
+
return options === undefined ? host.dialog.photoCapture.capture() : host.dialog.photoCapture.capture(options);
|
|
3
|
+
}
|
|
4
|
+
export function showCaptureVideoDialog(host, options) {
|
|
5
|
+
return options === undefined ? host.dialog.videoCapture.capture() : host.dialog.videoCapture.capture(options);
|
|
6
|
+
}
|
|
7
|
+
export function showOpenImageDialog(host, options) {
|
|
8
|
+
return options === undefined ? host.dialog.imageOpen.open() : host.dialog.imageOpen.open(options);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=mediaDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaDialog.js","sourceRoot":"","sources":["../src/mediaDialog.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,sBAAsB,CACpC,IAA2B,EAC3B,OAA6C;IAE7C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAA2B,EAC3B,OAA6C;IAE7C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAwB,EACxB,OAA0C;IAE1C,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/dialog",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.730.f29a5aa",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.730.f29a5aa",
|
|
42
|
+
"@flighthq/types": "0.5.1-next.730.f29a5aa"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^5.3.0"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { createEntity } from '@flighthq/entity/contract';
|
|
2
|
+
import type {
|
|
3
|
+
CapturePhotoDialogOptions,
|
|
4
|
+
CaptureVideoDialogOptions,
|
|
5
|
+
HasDialogImageOpen,
|
|
6
|
+
HasDialogPhotoCapture,
|
|
7
|
+
HasDialogVideoCapture,
|
|
8
|
+
ImageOpenDialogBackend,
|
|
9
|
+
OpenImageDialogOptions,
|
|
10
|
+
PhotoCaptureDialogBackend,
|
|
11
|
+
VideoCaptureDialogBackend,
|
|
12
|
+
} from '@flighthq/types/contract';
|
|
13
|
+
|
|
14
|
+
import { showCapturePhotoDialog, showCaptureVideoDialog, showOpenImageDialog } from './mediaDialog';
|
|
15
|
+
|
|
16
|
+
describe('showCapturePhotoDialog', () => {
|
|
17
|
+
it('routes capture through the explicit photo-capture slot and forwards options', async () => {
|
|
18
|
+
const capture = vi.fn(async () => ({
|
|
19
|
+
outcome: 'selected' as const,
|
|
20
|
+
photo: { dataUrl: 'data:image/png;base64,AA==', height: 480, mimeType: 'image/png', width: 640 },
|
|
21
|
+
}));
|
|
22
|
+
const host: HasDialogPhotoCapture = {
|
|
23
|
+
dialog: { photoCapture: createEntity({ capture }) as PhotoCaptureDialogBackend },
|
|
24
|
+
};
|
|
25
|
+
const options: CapturePhotoDialogOptions = {
|
|
26
|
+
facingMode: 'user',
|
|
27
|
+
signal: new AbortController().signal,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const result = await showCapturePhotoDialog(host, options);
|
|
31
|
+
|
|
32
|
+
expect(result.outcome === 'selected' ? result.photo.width : 0).toBe(640);
|
|
33
|
+
expect(capture).toHaveBeenCalledWith(options);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('preserves the operation-specific failure outcome', async () => {
|
|
37
|
+
const capture = async () => ({ outcome: 'photo-capture-failed' as const });
|
|
38
|
+
const host: HasDialogPhotoCapture = {
|
|
39
|
+
dialog: {
|
|
40
|
+
photoCapture: createEntity({ capture }) as PhotoCaptureDialogBackend,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
expect(await showCapturePhotoDialog(host)).toEqual({ outcome: 'photo-capture-failed' });
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
describe('showCaptureVideoDialog', () => {
|
|
49
|
+
it('routes capture through the explicit video-capture slot and preserves decoded duration', async () => {
|
|
50
|
+
const capture = vi.fn(async () => ({
|
|
51
|
+
outcome: 'selected' as const,
|
|
52
|
+
video: { dataUrl: 'data:video/mp4;base64,AA==', duration: 2.5, mimeType: 'video/mp4' },
|
|
53
|
+
}));
|
|
54
|
+
const host: HasDialogVideoCapture = {
|
|
55
|
+
dialog: { videoCapture: createEntity({ capture }) as VideoCaptureDialogBackend },
|
|
56
|
+
};
|
|
57
|
+
const options: CaptureVideoDialogOptions = { facingMode: 'environment' };
|
|
58
|
+
|
|
59
|
+
const result = await showCaptureVideoDialog(host, options);
|
|
60
|
+
|
|
61
|
+
expect(result.outcome === 'selected' ? result.video.duration : 0).toBe(2.5);
|
|
62
|
+
expect(capture).toHaveBeenCalledWith(options);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
describe('showOpenImageDialog', () => {
|
|
67
|
+
it('routes selection through the explicit image-open slot and forwards cancellation', async () => {
|
|
68
|
+
const open = vi.fn(async () => ({ outcome: 'cancelled' as const }));
|
|
69
|
+
const host: HasDialogImageOpen = {
|
|
70
|
+
dialog: { imageOpen: createEntity({ open }) as ImageOpenDialogBackend },
|
|
71
|
+
};
|
|
72
|
+
const options: OpenImageDialogOptions = { signal: new AbortController().signal };
|
|
73
|
+
|
|
74
|
+
await expect(showOpenImageDialog(host, options)).resolves.toEqual({ outcome: 'cancelled' });
|
|
75
|
+
expect(open).toHaveBeenCalledWith(options);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('preserves the operation-specific failure outcome', async () => {
|
|
79
|
+
const open = async () => ({ outcome: 'image-open-failed' as const });
|
|
80
|
+
const host: HasDialogImageOpen = {
|
|
81
|
+
dialog: {
|
|
82
|
+
imageOpen: createEntity({ open }) as ImageOpenDialogBackend,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
expect(await showOpenImageDialog(host)).toEqual({ outcome: 'image-open-failed' });
|
|
87
|
+
});
|
|
88
|
+
});
|