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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/clipboard`. The `@fl
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/clipboard@0.5.1-next.1069.554a2ac](https://github.com/flighthq/flight/tree/554a2acc3fecf189b89b0729308ff890a15c21cc/packages/clipboard)
17
- - [License](https://github.com/flighthq/flight/blob/554a2acc3fecf189b89b0729308ff890a15c21cc/LICENSE.md)
16
+ - [Source for @flighthq/clipboard@0.5.1-next.1201.9b49dee](https://github.com/flighthq/flight/tree/9b49dee3f22f6b2838c3d237edcc77bca65734f2/packages/clipboard)
17
+ - [License](https://github.com/flighthq/flight/blob/9b49dee3f22f6b2838c3d237edcc77bca65734f2/LICENSE.md)
@@ -1,29 +1,29 @@
1
- import type { ClipboardBookmark, ClipboardWatch, ClipboardWriteItem, EntityConstruction, HasClipboardBookmark, HasClipboardChange, HasClipboardFormats, HasClipboardImage, HasClipboardText } from '@flighthq/types/contract';
2
- export declare function attachClipboardWatch(host: HasClipboardChange, watch: ClipboardWatch): void;
3
- export declare function clearClipboard(host: HasClipboardText): Promise<boolean>;
1
+ import type { ClipboardBookmark, ClipboardWatch, ClipboardWriteItem, EntityConstruction, HostClipboardBookmarkProvider, HostClipboardChangeProvider, HostClipboardFormatsProvider, HostClipboardImageProvider, HostClipboardTextProvider } from '@flighthq/types/contract';
2
+ export declare function attachClipboardWatch(hostClipboardChange: Readonly<Required<Pick<HostClipboardChangeProvider, 'subscribe' | 'unsubscribe'>>>, watch: ClipboardWatch): void;
3
+ export declare function clearClipboard(hostClipboardText: Readonly<HostClipboardTextProvider>): Promise<boolean>;
4
4
  export declare function createClipboardWatch(): ClipboardWatch;
5
5
  export declare function detachClipboardWatch(watch: ClipboardWatch): void;
6
6
  export declare function disposeClipboardWatch(watch: ClipboardWatch): void;
7
- export declare function getClipboardFormats(host: HasClipboardFormats): Promise<readonly string[]>;
8
- export declare function hasClipboardBookmark(host: HasClipboardBookmark): Promise<boolean>;
9
- export declare function hasClipboardFormat(host: HasClipboardFormats, format: string): Promise<boolean>;
10
- export declare function hasClipboardHtml(host: HasClipboardFormats): Promise<boolean>;
11
- export declare function hasClipboardImage(host: HasClipboardImage): Promise<boolean>;
12
- export declare function hasClipboardRTF(host: HasClipboardFormats): Promise<boolean>;
13
- export declare function hasClipboardText(host: HasClipboardText): Promise<boolean>;
7
+ export declare function getClipboardFormats(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>): Promise<readonly string[]>;
8
+ export declare function hasClipboardBookmark(hostClipboardBookmark: Readonly<HostClipboardBookmarkProvider>): Promise<boolean>;
9
+ export declare function hasClipboardFormat(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, format: string): Promise<boolean>;
10
+ export declare function hasClipboardHtml(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>): Promise<boolean>;
11
+ export declare function hasClipboardImage(hostClipboardImage: Readonly<HostClipboardImageProvider>): Promise<boolean>;
12
+ export declare function hasClipboardRTF(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>): Promise<boolean>;
13
+ export declare function hasClipboardText(hostClipboardText: Readonly<HostClipboardTextProvider>): Promise<boolean>;
14
14
  export declare function initializeClipboardWatch(out: EntityConstruction<ClipboardWatch>): void;
15
- export declare function readClipboard(host: HasClipboardFormats, formats: readonly string[]): Promise<Readonly<Record<string, string>>>;
16
- export declare function readClipboardBookmark(host: HasClipboardBookmark): Promise<ClipboardBookmark | null>;
17
- export declare function readClipboardFormat(host: HasClipboardFormats, format: string): Promise<string>;
18
- export declare function readClipboardHtml(host: HasClipboardFormats): Promise<string>;
19
- export declare function readClipboardImage(host: HasClipboardImage): Promise<string>;
20
- export declare function readClipboardRTF(host: HasClipboardFormats): Promise<string>;
21
- export declare function readClipboardText(host: HasClipboardText): Promise<string>;
22
- export declare function writeClipboard(host: HasClipboardFormats, items: readonly Readonly<ClipboardWriteItem>[]): Promise<boolean>;
23
- export declare function writeClipboardBookmark(host: HasClipboardBookmark, title: string, url: string): Promise<boolean>;
24
- export declare function writeClipboardFormat(host: HasClipboardFormats, format: string, data: string): Promise<boolean>;
25
- export declare function writeClipboardHtml(host: HasClipboardFormats, html: string): Promise<boolean>;
26
- export declare function writeClipboardImage(host: HasClipboardImage, dataUrl: string): Promise<boolean>;
27
- export declare function writeClipboardRTF(host: HasClipboardFormats, rtf: string): Promise<boolean>;
28
- export declare function writeClipboardText(host: HasClipboardText, text: string): Promise<boolean>;
15
+ export declare function readClipboard(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, formats: readonly string[]): Promise<Readonly<Record<string, string>>>;
16
+ export declare function readClipboardBookmark(hostClipboardBookmark: Readonly<HostClipboardBookmarkProvider>): Promise<ClipboardBookmark | null>;
17
+ export declare function readClipboardFormat(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, format: string): Promise<string>;
18
+ export declare function readClipboardHtml(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>): Promise<string>;
19
+ export declare function readClipboardImage(hostClipboardImage: Readonly<HostClipboardImageProvider>): Promise<string>;
20
+ export declare function readClipboardRTF(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>): Promise<string>;
21
+ export declare function readClipboardText(hostClipboardText: Readonly<HostClipboardTextProvider>): Promise<string>;
22
+ export declare function writeClipboard(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, items: readonly Readonly<ClipboardWriteItem>[]): Promise<boolean>;
23
+ export declare function writeClipboardBookmark(hostClipboardBookmark: Readonly<HostClipboardBookmarkProvider>, title: string, url: string): Promise<boolean>;
24
+ export declare function writeClipboardFormat(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, format: string, data: string): Promise<boolean>;
25
+ export declare function writeClipboardHtml(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, html: string): Promise<boolean>;
26
+ export declare function writeClipboardImage(hostClipboardImage: Readonly<HostClipboardImageProvider>, dataUrl: string): Promise<boolean>;
27
+ export declare function writeClipboardRTF(hostClipboardFormats: Readonly<HostClipboardFormatsProvider>, rtf: string): Promise<boolean>;
28
+ export declare function writeClipboardText(hostClipboardText: Readonly<HostClipboardTextProvider>, text: string): Promise<boolean>;
29
29
  //# sourceMappingURL=clipboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"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"}
package/dist/clipboard.js CHANGED
@@ -3,16 +3,16 @@ import { createSignal, emitSignal } from '@flighthq/signals/contract';
3
3
  import { ClipboardFormatHtml, ClipboardFormatRtf } from '@flighthq/types/contract';
4
4
  // Attaches watch to the explicitly supplied host's clipboard change subscription. Attaching the
5
5
  // same watch again first releases its prior subscription, even when the new host is different.
6
- export function attachClipboardWatch(host, watch) {
6
+ export function attachClipboardWatch(hostClipboardChange, watch) {
7
7
  detachClipboardWatch(watch);
8
- const change = host.clipboard.change;
8
+ const change = hostClipboardChange;
9
9
  const callback = () => emitSignal(watch.onChange);
10
10
  change.subscribe(callback);
11
11
  _watchSubscriptions.set(watch, { callback, change });
12
12
  }
13
13
  // Clears the system clipboard. Returns false when the host denies access. Sentinel, not throw.
14
- export function clearClipboard(host) {
15
- return host.clipboard.text.clear();
14
+ export function clearClipboard(hostClipboardText) {
15
+ return hostClipboardText.clear();
16
16
  }
17
17
  // Allocates a ClipboardWatch event entity with an inert signal.
18
18
  // Call attachClipboardWatch to start delivery; call disposeClipboardWatch when done.
@@ -29,99 +29,99 @@ export function detachClipboardWatch(watch) {
29
29
  _watchSubscriptions.delete(watch);
30
30
  }
31
31
  }
32
- // Detaches watch's backend subscription and releases it for garbage collection.
32
+ // Detaches watch's provider subscription and releases it for garbage collection.
33
33
  // The signal remains plain GC-managed memory afterward.
34
34
  export function disposeClipboardWatch(watch) {
35
35
  detachClipboardWatch(watch);
36
36
  }
37
37
  // Returns the list of MIME/format strings currently on the clipboard. [] sentinel on access denied.
38
- export function getClipboardFormats(host) {
39
- return host.clipboard.formats.getFormats();
38
+ export function getClipboardFormats(hostClipboardFormats) {
39
+ return hostClipboardFormats.getFormats();
40
40
  }
41
41
  // True when the clipboard currently holds a bookmark. Returns false when access is denied.
42
- export async function hasClipboardBookmark(host) {
43
- return (await host.clipboard.bookmark.readBookmark()) !== null;
42
+ export async function hasClipboardBookmark(hostClipboardBookmark) {
43
+ return (await hostClipboardBookmark.readBookmark()) !== null;
44
44
  }
45
45
  // True when the given MIME/format string is currently present on the clipboard.
46
- export function hasClipboardFormat(host, format) {
47
- return host.clipboard.formats.hasFormat(format);
46
+ export function hasClipboardFormat(hostClipboardFormats, format) {
47
+ return hostClipboardFormats.hasFormat(format);
48
48
  }
49
49
  // True when the clipboard currently holds HTML content. Returns false when access is denied.
50
- export function hasClipboardHtml(host) {
51
- return host.clipboard.formats.hasFormat(ClipboardFormatHtml);
50
+ export function hasClipboardHtml(hostClipboardFormats) {
51
+ return hostClipboardFormats.hasFormat(ClipboardFormatHtml);
52
52
  }
53
53
  // True when the clipboard currently holds an image. Returns false when access is denied.
54
- export function hasClipboardImage(host) {
55
- return host.clipboard.image.hasImage();
54
+ export function hasClipboardImage(hostClipboardImage) {
55
+ return hostClipboardImage.hasImage();
56
56
  }
57
57
  // True when the clipboard currently holds RTF content. Returns false when access is denied.
58
- export function hasClipboardRTF(host) {
59
- return host.clipboard.formats.hasFormat(ClipboardFormatRtf);
58
+ export function hasClipboardRTF(hostClipboardFormats) {
59
+ return hostClipboardFormats.hasFormat(ClipboardFormatRtf);
60
60
  }
61
61
  // True when the clipboard currently holds non-empty text. Returns false when access is denied.
62
- export function hasClipboardText(host) {
63
- return host.clipboard.text.hasText();
62
+ export function hasClipboardText(hostClipboardText) {
63
+ return hostClipboardText.hasText();
64
64
  }
65
65
  export function initializeClipboardWatch(out) {
66
66
  out.onChange = createSignal();
67
67
  }
68
68
  // Reads multiple formats in one round-trip; missing formats are omitted from the result.
69
- export function readClipboard(host, formats) {
70
- return host.clipboard.formats.readItems(formats);
69
+ export function readClipboard(hostClipboardFormats, formats) {
70
+ return hostClipboardFormats.readItems(formats);
71
71
  }
72
72
  // Reads a bookmark (title + URL) from the clipboard, or null when none is present or access is denied.
73
- export function readClipboardBookmark(host) {
74
- return host.clipboard.bookmark.readBookmark();
73
+ export function readClipboardBookmark(hostClipboardBookmark) {
74
+ return hostClipboardBookmark.readBookmark();
75
75
  }
76
76
  // Reads an arbitrary MIME/format flavor as a string; returns '' when absent or access is denied.
77
- export function readClipboardFormat(host, format) {
78
- return host.clipboard.formats.readFormat(format);
77
+ export function readClipboardFormat(hostClipboardFormats, format) {
78
+ return hostClipboardFormats.readFormat(format);
79
79
  }
80
80
  // Reads HTML from the clipboard, or '' when none is present or access is denied.
81
- export function readClipboardHtml(host) {
82
- return host.clipboard.formats.readHtml();
81
+ export function readClipboardHtml(hostClipboardFormats) {
82
+ return hostClipboardFormats.readHtml();
83
83
  }
84
84
  // Reads an image from the clipboard as a data URL, or '' when none is present or access is denied.
85
- export function readClipboardImage(host) {
86
- return host.clipboard.image.readImage();
85
+ export function readClipboardImage(hostClipboardImage) {
86
+ return hostClipboardImage.readImage();
87
87
  }
88
88
  // Reads RTF markup from the clipboard, or '' when none is present or access is denied.
89
- export function readClipboardRTF(host) {
90
- return host.clipboard.formats.readRTF();
89
+ export function readClipboardRTF(hostClipboardFormats) {
90
+ return hostClipboardFormats.readRTF();
91
91
  }
92
92
  // Reads plain text from the clipboard, or '' when empty or access is denied.
93
- export function readClipboardText(host) {
94
- return host.clipboard.text.readText();
93
+ export function readClipboardText(hostClipboardText) {
94
+ return hostClipboardText.readText();
95
95
  }
96
96
  // Writes multiple formats atomically so a paste target picks its best representation.
97
- export function writeClipboard(host, items) {
98
- return host.clipboard.formats.writeItems(items);
97
+ export function writeClipboard(hostClipboardFormats, items) {
98
+ return hostClipboardFormats.writeItems(items);
99
99
  }
100
100
  // Writes a bookmark (title + URL) to the clipboard. Returns false when the host denies access.
101
- export function writeClipboardBookmark(host, title, url) {
102
- return host.clipboard.bookmark.writeBookmark(title, url);
101
+ export function writeClipboardBookmark(hostClipboardBookmark, title, url) {
102
+ return hostClipboardBookmark.writeBookmark(title, url);
103
103
  }
104
104
  // Writes an arbitrary MIME/format flavor. Returns false when the host denies access.
105
- export function writeClipboardFormat(host, format, data) {
106
- return host.clipboard.formats.writeFormat(format, data);
105
+ export function writeClipboardFormat(hostClipboardFormats, format, data) {
106
+ return hostClipboardFormats.writeFormat(format, data);
107
107
  }
108
108
  // Writes HTML to the clipboard. Returns false when the host denies access.
109
- export function writeClipboardHtml(host, html) {
110
- return host.clipboard.formats.writeHtml(html);
109
+ export function writeClipboardHtml(hostClipboardFormats, html) {
110
+ return hostClipboardFormats.writeHtml(html);
111
111
  }
112
112
  // Writes an image (given as a data URL) to the clipboard. Returns false when the host denies access.
113
- export function writeClipboardImage(host, dataUrl) {
114
- return host.clipboard.image.writeImage(dataUrl);
113
+ export function writeClipboardImage(hostClipboardImage, dataUrl) {
114
+ return hostClipboardImage.writeImage(dataUrl);
115
115
  }
116
116
  // Writes RTF markup to the clipboard. Returns false when the host denies access.
117
- export function writeClipboardRTF(host, rtf) {
118
- return host.clipboard.formats.writeRTF(rtf);
117
+ export function writeClipboardRTF(hostClipboardFormats, rtf) {
118
+ return hostClipboardFormats.writeRTF(rtf);
119
119
  }
120
120
  // Writes plain text to the clipboard. Returns false when the host denies access.
121
- export function writeClipboardText(host, text) {
122
- return host.clipboard.text.writeText(text);
121
+ export function writeClipboardText(hostClipboardText, text) {
122
+ return hostClipboardText.writeText(text);
123
123
  }
124
124
  // Active watches are deliberate registry roots until detach/dispose; enumeration is unnecessary now
125
- // that provider selection is explicit and subscriptions never rebind through an ambient backend swap.
125
+ // that provider selection is explicit and subscriptions never rebind through a later provider choice.
126
126
  const _watchSubscriptions = new Map();
127
127
  //# sourceMappingURL=clipboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../src/clipboard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/clipboard",
3
- "version": "0.5.1-next.1069.554a2ac",
3
+ "version": "0.5.1-next.1201.9b49dee",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,9 +38,9 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/entity": "0.5.1-next.1069.554a2ac",
42
- "@flighthq/signals": "0.5.1-next.1069.554a2ac",
43
- "@flighthq/types": "0.5.1-next.1069.554a2ac"
41
+ "@flighthq/entity": "0.5.1-next.1201.9b49dee",
42
+ "@flighthq/signals": "0.5.1-next.1201.9b49dee",
43
+ "@flighthq/types": "0.5.1-next.1201.9b49dee"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^5.3.0"
@@ -1,16 +1,11 @@
1
1
  import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
2
2
  import type {
3
3
  ClipboardBookmark,
4
- ClipboardBookmarkBackend,
5
- ClipboardChangeBackend,
6
- ClipboardFormatsBackend,
7
- ClipboardImageBackend,
8
- ClipboardTextBackend,
9
- HasClipboardBookmark,
10
- HasClipboardChange,
11
- HasClipboardFormats,
12
- HasClipboardImage,
13
- HasClipboardText,
4
+ HostClipboardBookmarkProvider,
5
+ HostClipboardChangeProvider,
6
+ HostClipboardFormatsProvider,
7
+ HostClipboardImageProvider,
8
+ HostClipboardTextProvider,
14
9
  } from '@flighthq/types/contract';
15
10
  import {
16
11
  ClipboardFormatBookmark,
@@ -66,36 +61,41 @@ describe('clipboard', () => {
66
61
  expect(EntityRuntimeKey in backend).toBe(true);
67
62
 
68
63
  expect(
69
- await writeClipboard(host, [
64
+ await writeClipboard(host.clipboard.formats, [
70
65
  { format: ClipboardFormatText, data: 'multi-text' },
71
66
  { format: ClipboardFormatHtml, data: '<b>multi</b>' },
72
67
  ]),
73
68
  ).toBe(true);
74
- expect(await writeClipboardText(host, 'plain')).toBe(true);
75
- expect(await writeClipboardHtml(host, '<b>html</b>')).toBe(true);
76
- expect(await writeClipboardImage(host, 'data:image/png;base64,AAAA')).toBe(true);
77
- expect(await writeClipboardRTF(host, '{\\rtf1 rich}')).toBe(true);
78
- expect(await writeClipboardBookmark(host, 'Flight', 'https://example.com')).toBe(true);
79
- expect(await writeClipboardFormat(host, 'application/x-flight', 'custom')).toBe(true);
80
-
81
- expect(await readClipboardText(host)).toBe('plain');
82
- expect(await readClipboardHtml(host)).toBe('<b>html</b>');
83
- expect(await readClipboardImage(host)).toBe('data:image/png;base64,AAAA');
84
- expect(await readClipboardRTF(host)).toBe('{\\rtf1 rich}');
85
- expect(await readClipboardBookmark(host)).toEqual({ title: 'Flight', url: 'https://example.com' });
86
- expect(await readClipboardFormat(host, 'application/x-flight')).toBe('custom');
87
- expect(await readClipboard(host, [ClipboardFormatText, 'application/x-flight', 'missing'])).toEqual({
69
+ expect(await writeClipboardText(host.clipboard.text, 'plain')).toBe(true);
70
+ expect(await writeClipboardHtml(host.clipboard.formats, '<b>html</b>')).toBe(true);
71
+ expect(await writeClipboardImage(host.clipboard.image, 'data:image/png;base64,AAAA')).toBe(true);
72
+ expect(await writeClipboardRTF(host.clipboard.formats, '{\\rtf1 rich}')).toBe(true);
73
+ expect(await writeClipboardBookmark(host.clipboard.bookmark, 'Flight', 'https://example.com')).toBe(true);
74
+ expect(await writeClipboardFormat(host.clipboard.formats, 'application/x-flight', 'custom')).toBe(true);
75
+
76
+ expect(await readClipboardText(host.clipboard.text)).toBe('plain');
77
+ expect(await readClipboardHtml(host.clipboard.formats)).toBe('<b>html</b>');
78
+ expect(await readClipboardImage(host.clipboard.image)).toBe('data:image/png;base64,AAAA');
79
+ expect(await readClipboardRTF(host.clipboard.formats)).toBe('{\\rtf1 rich}');
80
+ expect(await readClipboardBookmark(host.clipboard.bookmark)).toEqual({
81
+ title: 'Flight',
82
+ url: 'https://example.com',
83
+ });
84
+ expect(await readClipboardFormat(host.clipboard.formats, 'application/x-flight')).toBe('custom');
85
+ expect(
86
+ await readClipboard(host.clipboard.formats, [ClipboardFormatText, 'application/x-flight', 'missing']),
87
+ ).toEqual({
88
88
  [ClipboardFormatText]: 'plain',
89
89
  'application/x-flight': 'custom',
90
90
  });
91
91
 
92
- expect(await hasClipboardText(host)).toBe(true);
93
- expect(await hasClipboardHtml(host)).toBe(true);
94
- expect(await hasClipboardImage(host)).toBe(true);
95
- expect(await hasClipboardRTF(host)).toBe(true);
96
- expect(await hasClipboardBookmark(host)).toBe(true);
97
- expect(await hasClipboardFormat(host, 'application/x-flight')).toBe(true);
98
- expect(await getClipboardFormats(host)).toEqual(
92
+ expect(await hasClipboardText(host.clipboard.text)).toBe(true);
93
+ expect(await hasClipboardHtml(host.clipboard.formats)).toBe(true);
94
+ expect(await hasClipboardImage(host.clipboard.image)).toBe(true);
95
+ expect(await hasClipboardRTF(host.clipboard.formats)).toBe(true);
96
+ expect(await hasClipboardBookmark(host.clipboard.bookmark)).toBe(true);
97
+ expect(await hasClipboardFormat(host.clipboard.formats, 'application/x-flight')).toBe(true);
98
+ expect(await getClipboardFormats(host.clipboard.formats)).toEqual(
99
99
  expect.arrayContaining([
100
100
  ClipboardFormatText,
101
101
  ClipboardFormatHtml,
@@ -106,20 +106,20 @@ describe('clipboard', () => {
106
106
  ]),
107
107
  );
108
108
 
109
- expect(await clearClipboard(host)).toBe(true);
110
- expect(await readClipboardText(host)).toBe('');
111
- expect(await getClipboardFormats(host)).toEqual([]);
109
+ expect(await clearClipboard(host.clipboard.text)).toBe(true);
110
+ expect(await readClipboardText(host.clipboard.text)).toBe('');
111
+ expect(await getClipboardFormats(host.clipboard.formats)).toEqual([]);
112
112
  });
113
113
 
114
114
  it('never consults another host when two clipboard providers coexist', async () => {
115
115
  const first = hostFor(fakeBackend());
116
116
  const second = hostFor(fakeBackend());
117
117
 
118
- await writeClipboardText(first, 'first');
119
- await writeClipboardText(second, 'second');
118
+ await writeClipboardText(first.clipboard.text, 'first');
119
+ await writeClipboardText(second.clipboard.text, 'second');
120
120
 
121
- expect(await readClipboardText(first)).toBe('first');
122
- expect(await readClipboardText(second)).toBe('second');
121
+ expect(await readClipboardText(first.clipboard.text)).toBe('first');
122
+ expect(await readClipboardText(second.clipboard.text)).toBe('second');
123
123
  });
124
124
  });
125
125
 
@@ -133,12 +133,12 @@ describe('ClipboardWatch', () => {
133
133
  changes++;
134
134
  };
135
135
 
136
- attachClipboardWatch(hostFor(firstBackend), watch);
136
+ attachClipboardWatch(hostFor(firstBackend).clipboard.change, watch);
137
137
  expect(firstBackend.listeners.size).toBe(1);
138
138
  firstBackend.listeners.forEach((listener) => listener());
139
139
  expect(changes).toBe(1);
140
140
 
141
- attachClipboardWatch(hostFor(secondBackend), watch);
141
+ attachClipboardWatch(hostFor(secondBackend).clipboard.change, watch);
142
142
  expect(firstBackend.listeners.size).toBe(0);
143
143
  expect(secondBackend.listeners.size).toBe(1);
144
144
  firstBackend.listeners.forEach((listener) => listener());
@@ -155,8 +155,8 @@ describe('ClipboardWatch', () => {
155
155
  const host = hostFor(backend);
156
156
  const watch = createClipboardWatch();
157
157
 
158
- attachClipboardWatch(host, watch);
159
- attachClipboardWatch(host, watch);
158
+ attachClipboardWatch(host.clipboard.change, watch);
159
+ attachClipboardWatch(host.clipboard.change, watch);
160
160
  expect(backend.listeners.size).toBe(1);
161
161
 
162
162
  disposeClipboardWatch(watch);
@@ -256,11 +256,11 @@ describe('writeClipboardHtml', () => {
256
256
 
257
257
  interface FakeClipboardBackend
258
258
  extends
259
- ClipboardBookmarkBackend,
260
- Required<Pick<ClipboardChangeBackend, 'subscribe' | 'unsubscribe'>>,
261
- ClipboardFormatsBackend,
262
- ClipboardImageBackend,
263
- ClipboardTextBackend {
259
+ HostClipboardBookmarkProvider,
260
+ Required<Pick<HostClipboardChangeProvider, 'subscribe' | 'unsubscribe'>>,
261
+ HostClipboardFormatsProvider,
262
+ HostClipboardImageProvider,
263
+ HostClipboardTextProvider {
264
264
  bookmark: ClipboardBookmark | null;
265
265
  formats: Record<string, string>;
266
266
  html: string;
@@ -270,11 +270,13 @@ interface FakeClipboardBackend
270
270
  text: string;
271
271
  }
272
272
 
273
- type FakeClipboardHost = HasClipboardBookmark &
274
- HasClipboardChange &
275
- HasClipboardFormats &
276
- HasClipboardImage &
277
- HasClipboardText;
273
+ type FakeClipboardHost = { readonly clipboard: { readonly bookmark: HostClipboardBookmarkProvider } } & {
274
+ readonly clipboard: {
275
+ readonly change: Required<Pick<HostClipboardChangeProvider, 'subscribe' | 'unsubscribe'>>;
276
+ };
277
+ } & { readonly clipboard: { readonly formats: HostClipboardFormatsProvider } } & {
278
+ readonly clipboard: { readonly image: HostClipboardImageProvider };
279
+ } & { readonly clipboard: { readonly text: HostClipboardTextProvider } };
278
280
 
279
281
  function hostFor(clipboard: FakeClipboardBackend): FakeClipboardHost {
280
282
  return {