expo-clipboard 7.1.1 → 7.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/android/build.gradle +2 -2
  3. package/build/web/ClipboardModule.d.ts.map +1 -1
  4. package/build/web/ClipboardModule.js +15 -11
  5. package/build/web/ClipboardModule.js.map +1 -1
  6. package/expo-module.config.json +1 -1
  7. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.aar +0 -0
  8. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.aar.md5 +1 -0
  9. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.aar.sha1 +1 -0
  10. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.aar.sha256 +1 -0
  11. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.aar.sha512 +1 -0
  12. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.module → 7.1.3/expo.modules.clipboard-7.1.3.module} +17 -17
  13. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.module.md5 +1 -0
  14. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.module.sha1 +1 -0
  15. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.module.sha256 +1 -0
  16. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.module.sha512 +1 -0
  17. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.pom → 7.1.3/expo.modules.clipboard-7.1.3.pom} +1 -1
  18. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.pom.md5 +1 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.pom.sha1 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.pom.sha256 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.3/expo.modules.clipboard-7.1.3.pom.sha512 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml +4 -4
  23. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.md5 +1 -1
  24. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.sha1 +1 -1
  25. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.sha256 +1 -1
  26. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.sha512 +1 -1
  27. package/package.json +3 -3
  28. package/src/web/ClipboardModule.ts +23 -11
  29. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.aar +0 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.aar.md5 +0 -1
  31. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.aar.sha1 +0 -1
  32. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.aar.sha256 +0 -1
  33. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.aar.sha512 +0 -1
  34. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.md5 +0 -1
  35. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.sha1 +0 -1
  36. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.sha256 +0 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.sha512 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.md5 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.sha1 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.sha256 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.sha512 +0 -1
  42. /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar → 7.1.3/expo.modules.clipboard-7.1.3-sources.jar} +0 -0
  43. /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.md5 → 7.1.3/expo.modules.clipboard-7.1.3-sources.jar.md5} +0 -0
  44. /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.sha1 → 7.1.3/expo.modules.clipboard-7.1.3-sources.jar.sha1} +0 -0
  45. /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.sha256 → 7.1.3/expo.modules.clipboard-7.1.3-sources.jar.sha256} +0 -0
  46. /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.sha512 → 7.1.3/expo.modules.clipboard-7.1.3-sources.jar.sha512} +0 -0
package/CHANGELOG.md CHANGED
@@ -10,6 +10,14 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 7.1.3 — 2025-04-25
14
+
15
+ _This version does not introduce any user-facing changes._
16
+
17
+ ## 7.1.2 — 2025-04-14
18
+
19
+ _This version does not introduce any user-facing changes._
20
+
13
21
  ## 7.1.1 — 2025-04-09
14
22
 
15
23
  _This version does not introduce any user-facing changes._
@@ -4,13 +4,13 @@ plugins {
4
4
  }
5
5
 
6
6
  group = 'host.exp.exponent'
7
- version = '7.1.1'
7
+ version = '7.1.3'
8
8
 
9
9
  android {
10
10
  namespace "expo.modules.clipboard"
11
11
  defaultConfig {
12
12
  versionCode 3
13
- versionName '7.1.1'
13
+ versionName '7.1.3'
14
14
  }
15
15
  }
16
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardModule.d.ts","sourceRoot":"","sources":["../../src/web/ClipboardModule.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;;4BAGI,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBA6ChD,MAAM,GAAG,OAAO;yBAcL,MAAM,WAAW,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;sBAkCvD,OAAO,CAAC,OAAO,CAAC;4BAGV,eAAe,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;+BA0B7C,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;qBAkBhC,OAAO,CAAC,OAAO,CAAC;4BAGf,IAAI;+BACD,IAAI;;AAjJjC,wBAkJE"}
1
+ {"version":3,"file":"ClipboardModule.d.ts","sourceRoot":"","sources":["../../src/web/ClipboardModule.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;;4BAGI,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBAgDhD,MAAM,GAAG,OAAO;yBAcL,MAAM,WAAW,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;sBAqCvD,OAAO,CAAC,OAAO,CAAC;4BAGV,eAAe,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;+BA6B7C,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;qBAkBhC,OAAO,CAAC,OAAO,CAAC;4BAGf,IAAI;+BACD,IAAI;;AA1JjC,wBA2JE"}
@@ -31,9 +31,10 @@ export default {
31
31
  }
32
32
  }
33
33
  }
34
- catch (e) {
34
+ catch (error) {
35
35
  // it might fail, because user denied permission
36
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
36
+ if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
37
+ (await isClipboardPermissionDeniedAsync())) {
37
38
  throw new NoPermissionException();
38
39
  }
39
40
  try {
@@ -74,12 +75,13 @@ export default {
74
75
  await navigator.clipboard.write([clipboardItemInput]);
75
76
  return true;
76
77
  }
77
- catch (e) {
78
+ catch (error) {
78
79
  // it might fail, because user denied permission
79
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
80
+ if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
81
+ (await isClipboardPermissionDeniedAsync())) {
80
82
  throw new NoPermissionException();
81
83
  }
82
- throw new CopyFailureException(e.message);
84
+ throw new CopyFailureException(error.message);
83
85
  }
84
86
  }
85
87
  default: {
@@ -117,12 +119,13 @@ export default {
117
119
  ]);
118
120
  return { data, size };
119
121
  }
120
- catch (e) {
122
+ catch (error) {
121
123
  // it might fail, because user denied permission
122
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
124
+ if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
125
+ (await isClipboardPermissionDeniedAsync())) {
123
126
  throw new NoPermissionException();
124
127
  }
125
- throw new PasteFailureException(e.message);
128
+ throw new PasteFailureException(error.message);
126
129
  }
127
130
  },
128
131
  async setImageAsync(base64image) {
@@ -162,12 +165,13 @@ async function clipboardHasTypesAsync(types) {
162
165
  const clipboardItems = await navigator.clipboard.read();
163
166
  return clipboardItems.flatMap((item) => item.types).some((type) => types.includes(type));
164
167
  }
165
- catch (e) {
168
+ catch (error) {
166
169
  // it might fail, because user denied permission
167
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
170
+ if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
171
+ (await isClipboardPermissionDeniedAsync())) {
168
172
  throw new NoPermissionException();
169
173
  }
170
- throw e;
174
+ throw error;
171
175
  }
172
176
  }
173
177
  function createHtmlClipboardItem(htmlString) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClipboardModule.js","sourceRoot":"","sources":["../../src/web/ClipboardModule.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ClipboardUnavailableException,\n CopyFailureException,\n NoPermissionException,\n PasteFailureException,\n} from './Exceptions';\nimport {\n base64toBlob,\n blobToBase64Async,\n findHtmlInClipboardAsync,\n findImageInClipboardAsync,\n getImageSizeFromBlobAsync,\n htmlToPlainText,\n isClipboardPermissionDeniedAsync,\n} from './Utils';\nimport {\n ClipboardImage,\n GetImageOptions,\n GetStringOptions,\n SetStringOptions,\n StringFormat,\n} from '../Clipboard.types';\n\nexport default {\n async getStringAsync(options: GetStringOptions): Promise<string> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n switch (options.preferredFormat) {\n case StringFormat.HTML: {\n // Try reading HTML first\n const clipboardItems = await navigator.clipboard.read();\n const blob = await findHtmlInClipboardAsync(clipboardItems);\n if (!blob) {\n // Fall back to plain text\n return await navigator.clipboard.readText();\n }\n return await new Response(blob).text();\n }\n default: {\n let text = await navigator.clipboard.readText();\n if (!text || text === '') {\n // If there's no direct plain text, try reading HTML\n const clipboardItems = await navigator.clipboard.read();\n const blob = await findHtmlInClipboardAsync(clipboardItems);\n const blobText = await blob?.text();\n text = htmlToPlainText(blobText ?? '');\n }\n return text;\n }\n }\n } catch (e) {\n // it might fail, because user denied permission\n if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {\n throw new NoPermissionException();\n }\n\n try {\n // Internet Explorer\n // @ts-ignore\n return window.clipboardData.getData('Text');\n } catch {\n return Promise.reject(new Error('Unable to retrieve item from clipboard'));\n }\n }\n },\n // TODO: (barthap) The `setString` was deprecated in SDK 45. Remove this function in a few SDK cycles.\n setString(text: string): boolean {\n const textField = document.createElement('textarea');\n textField.textContent = text;\n document.body.appendChild(textField);\n textField.select();\n try {\n document.execCommand('copy');\n return true;\n } catch {\n return false;\n } finally {\n document.body.removeChild(textField);\n }\n },\n async setStringAsync(text: string, options: SetStringOptions): Promise<boolean> {\n switch (options.inputFormat) {\n case StringFormat.HTML: {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n const clipboardItemInput = createHtmlClipboardItem(text);\n await navigator.clipboard.write([clipboardItemInput]);\n return true;\n } catch (e) {\n // it might fail, because user denied permission\n if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {\n throw new NoPermissionException();\n }\n throw new CopyFailureException(e.message);\n }\n }\n default: {\n try {\n if (!navigator.clipboard) {\n throw new Error();\n }\n await navigator.clipboard.writeText(text);\n return true;\n } catch {\n // we can fall back to legacy behavior in any kind of failure\n // including navigator.clipboard unavailability\n return this.setString(text);\n }\n }\n }\n },\n async hasStringAsync(): Promise<boolean> {\n return await clipboardHasTypesAsync(['text/plain', 'text/html']);\n },\n async getImageAsync(_options: GetImageOptions): Promise<ClipboardImage | null> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n const clipboardItems = await navigator.clipboard.read();\n const blob = await findImageInClipboardAsync(clipboardItems);\n if (!blob) {\n return null;\n }\n\n const [data, size] = await Promise.all([\n blobToBase64Async(blob),\n getImageSizeFromBlobAsync(blob),\n ]);\n\n return { data, size };\n } catch (e) {\n // it might fail, because user denied permission\n if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {\n throw new NoPermissionException();\n }\n throw new PasteFailureException(e.message);\n }\n },\n async setImageAsync(base64image: string): Promise<void> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n // we set it always to `image/png` because it's the only format supported by the clipboard\n // but it seems to work even when provided jpeg data\n const blob = base64toBlob(base64image, 'image/png');\n await navigator.clipboard.write([\n new ClipboardItem({\n [blob.type]: blob,\n }),\n ]);\n } catch (err: any) {\n throw new CopyFailureException(err.message);\n }\n },\n async hasImageAsync(): Promise<boolean> {\n return await clipboardHasTypesAsync(['image/png', 'image/jpeg']);\n },\n addClipboardListener(): void {},\n removeClipboardListener(): void {},\n};\n\n/**\n * Resolves to true if clipboard has one of provided {@link types}.\n * @throws `ClipboardUnavailableException` if AsyncClipboard API is not available\n * @throws `NoPermissionException` if user denied permission\n */\nasync function clipboardHasTypesAsync(types: string[]): Promise<boolean> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n const clipboardItems = await navigator.clipboard.read();\n return clipboardItems.flatMap((item) => item.types).some((type) => types.includes(type));\n } catch (e) {\n // it might fail, because user denied permission\n if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {\n throw new NoPermissionException();\n }\n throw e;\n }\n}\n\nfunction createHtmlClipboardItem(htmlString: string): ClipboardItem {\n return new ClipboardItem({\n // @ts-ignore `Blob` from `lib.dom.d.ts` and the one from `@types/react-native` differ\n 'text/html': new Blob([htmlString], { type: 'text/html' }),\n // @ts-ignore `Blob` from `lib.dom.d.ts` and the one from `@types/react-native` differ\n 'text/plain': new Blob([htmlToPlainText(htmlString)], { type: 'text/plain' }),\n });\n}\n"]}
1
+ {"version":3,"file":"ClipboardModule.js","sourceRoot":"","sources":["../../src/web/ClipboardModule.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ClipboardUnavailableException,\n CopyFailureException,\n NoPermissionException,\n PasteFailureException,\n} from './Exceptions';\nimport {\n base64toBlob,\n blobToBase64Async,\n findHtmlInClipboardAsync,\n findImageInClipboardAsync,\n getImageSizeFromBlobAsync,\n htmlToPlainText,\n isClipboardPermissionDeniedAsync,\n} from './Utils';\nimport {\n ClipboardImage,\n GetImageOptions,\n GetStringOptions,\n SetStringOptions,\n StringFormat,\n} from '../Clipboard.types';\n\nexport default {\n async getStringAsync(options: GetStringOptions): Promise<string> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n switch (options.preferredFormat) {\n case StringFormat.HTML: {\n // Try reading HTML first\n const clipboardItems = await navigator.clipboard.read();\n const blob = await findHtmlInClipboardAsync(clipboardItems);\n if (!blob) {\n // Fall back to plain text\n return await navigator.clipboard.readText();\n }\n return await new Response(blob).text();\n }\n default: {\n let text = await navigator.clipboard.readText();\n if (!text || text === '') {\n // If there's no direct plain text, try reading HTML\n const clipboardItems = await navigator.clipboard.read();\n const blob = await findHtmlInClipboardAsync(clipboardItems);\n const blobText = await blob?.text();\n text = htmlToPlainText(blobText ?? '');\n }\n return text;\n }\n }\n } catch (error: any) {\n // it might fail, because user denied permission\n if (\n (typeof error === 'object' && error?.name === 'NotAllowedError') ||\n (await isClipboardPermissionDeniedAsync())\n ) {\n throw new NoPermissionException();\n }\n\n try {\n // Internet Explorer\n // @ts-ignore\n return window.clipboardData.getData('Text');\n } catch {\n return Promise.reject(new Error('Unable to retrieve item from clipboard'));\n }\n }\n },\n // TODO: (barthap) The `setString` was deprecated in SDK 45. Remove this function in a few SDK cycles.\n setString(text: string): boolean {\n const textField = document.createElement('textarea');\n textField.textContent = text;\n document.body.appendChild(textField);\n textField.select();\n try {\n document.execCommand('copy');\n return true;\n } catch {\n return false;\n } finally {\n document.body.removeChild(textField);\n }\n },\n async setStringAsync(text: string, options: SetStringOptions): Promise<boolean> {\n switch (options.inputFormat) {\n case StringFormat.HTML: {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n const clipboardItemInput = createHtmlClipboardItem(text);\n await navigator.clipboard.write([clipboardItemInput]);\n return true;\n } catch (error: any) {\n // it might fail, because user denied permission\n if (\n (typeof error === 'object' && error?.name === 'NotAllowedError') ||\n (await isClipboardPermissionDeniedAsync())\n ) {\n throw new NoPermissionException();\n }\n throw new CopyFailureException(error.message);\n }\n }\n default: {\n try {\n if (!navigator.clipboard) {\n throw new Error();\n }\n await navigator.clipboard.writeText(text);\n return true;\n } catch {\n // we can fall back to legacy behavior in any kind of failure\n // including navigator.clipboard unavailability\n return this.setString(text);\n }\n }\n }\n },\n async hasStringAsync(): Promise<boolean> {\n return await clipboardHasTypesAsync(['text/plain', 'text/html']);\n },\n async getImageAsync(_options: GetImageOptions): Promise<ClipboardImage | null> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n const clipboardItems = await navigator.clipboard.read();\n const blob = await findImageInClipboardAsync(clipboardItems);\n if (!blob) {\n return null;\n }\n\n const [data, size] = await Promise.all([\n blobToBase64Async(blob),\n getImageSizeFromBlobAsync(blob),\n ]);\n\n return { data, size };\n } catch (error: any) {\n // it might fail, because user denied permission\n if (\n (typeof error === 'object' && error?.name === 'NotAllowedError') ||\n (await isClipboardPermissionDeniedAsync())\n ) {\n throw new NoPermissionException();\n }\n throw new PasteFailureException(error.message);\n }\n },\n async setImageAsync(base64image: string): Promise<void> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n // we set it always to `image/png` because it's the only format supported by the clipboard\n // but it seems to work even when provided jpeg data\n const blob = base64toBlob(base64image, 'image/png');\n await navigator.clipboard.write([\n new ClipboardItem({\n [blob.type]: blob,\n }),\n ]);\n } catch (err: any) {\n throw new CopyFailureException(err.message);\n }\n },\n async hasImageAsync(): Promise<boolean> {\n return await clipboardHasTypesAsync(['image/png', 'image/jpeg']);\n },\n addClipboardListener(): void {},\n removeClipboardListener(): void {},\n};\n\n/**\n * Resolves to true if clipboard has one of provided {@link types}.\n * @throws `ClipboardUnavailableException` if AsyncClipboard API is not available\n * @throws `NoPermissionException` if user denied permission\n */\nasync function clipboardHasTypesAsync(types: string[]): Promise<boolean> {\n if (!navigator.clipboard) {\n throw new ClipboardUnavailableException();\n }\n\n try {\n const clipboardItems = await navigator.clipboard.read();\n return clipboardItems.flatMap((item) => item.types).some((type) => types.includes(type));\n } catch (error: any) {\n // it might fail, because user denied permission\n if (\n (typeof error === 'object' && error?.name === 'NotAllowedError') ||\n (await isClipboardPermissionDeniedAsync())\n ) {\n throw new NoPermissionException();\n }\n throw error;\n }\n}\n\nfunction createHtmlClipboardItem(htmlString: string): ClipboardItem {\n return new ClipboardItem({\n // @ts-ignore `Blob` from `lib.dom.d.ts` and the one from `@types/react-native` differ\n 'text/html': new Blob([htmlString], { type: 'text/html' }),\n // @ts-ignore `Blob` from `lib.dom.d.ts` and the one from `@types/react-native` differ\n 'text/plain': new Blob([htmlToPlainText(htmlString)], { type: 'text/plain' }),\n });\n}\n"]}
@@ -8,7 +8,7 @@
8
8
  "publication": {
9
9
  "groupId": "host.exp.exponent",
10
10
  "artifactId": "expo.modules.clipboard",
11
- "version": "7.1.1",
11
+ "version": "7.1.3",
12
12
  "repository": "local-maven-repo"
13
13
  }
14
14
  }
@@ -0,0 +1 @@
1
+ 96bce28ee247fce42d1c1fdd96b882242b419b6bd08a620feb55a2f4813c3b44
@@ -0,0 +1 @@
1
+ b77218a000416cf5a937d0641a44ae46f9ec2c10dc2c0694ba0b6d3f69f7b7429edd5f1a42747b3d103ef2d7f1e7fbb1e29f3a9d98a5560e8e34e91245cc1834
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.clipboard",
6
- "version": "7.1.1",
6
+ "version": "7.1.3",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.clipboard-7.1.1.aar",
28
- "url": "expo.modules.clipboard-7.1.1.aar",
29
- "size": 70659,
30
- "sha512": "0507e0086b4684312c57205366207cedee6eec60a75796570980f44dbf39ade41a6564134931414a3f5648e0e4cb39366b1bb7f7b7f8a9c20a6d333df96b38b6",
31
- "sha256": "b25e7512985ba10e6bf97e8eafc63adb801c0e9032442d777b711296ca482f81",
32
- "sha1": "f0f53941b51c85f4d298aa87dd412554d8814fec",
33
- "md5": "aec286bfe90dfcbe74283cc18937fbdd"
27
+ "name": "expo.modules.clipboard-7.1.3.aar",
28
+ "url": "expo.modules.clipboard-7.1.3.aar",
29
+ "size": 70729,
30
+ "sha512": "b77218a000416cf5a937d0641a44ae46f9ec2c10dc2c0694ba0b6d3f69f7b7429edd5f1a42747b3d103ef2d7f1e7fbb1e29f3a9d98a5560e8e34e91245cc1834",
31
+ "sha256": "96bce28ee247fce42d1c1fdd96b882242b419b6bd08a620feb55a2f4813c3b44",
32
+ "sha1": "eabc6dc02972f7c9e767032762c0f97581c929f6",
33
+ "md5": "6cbb7615e1970ff96fc27270fccd5d02"
34
34
  }
35
35
  ]
36
36
  },
@@ -74,13 +74,13 @@
74
74
  ],
75
75
  "files": [
76
76
  {
77
- "name": "expo.modules.clipboard-7.1.1.aar",
78
- "url": "expo.modules.clipboard-7.1.1.aar",
79
- "size": 70659,
80
- "sha512": "0507e0086b4684312c57205366207cedee6eec60a75796570980f44dbf39ade41a6564134931414a3f5648e0e4cb39366b1bb7f7b7f8a9c20a6d333df96b38b6",
81
- "sha256": "b25e7512985ba10e6bf97e8eafc63adb801c0e9032442d777b711296ca482f81",
82
- "sha1": "f0f53941b51c85f4d298aa87dd412554d8814fec",
83
- "md5": "aec286bfe90dfcbe74283cc18937fbdd"
77
+ "name": "expo.modules.clipboard-7.1.3.aar",
78
+ "url": "expo.modules.clipboard-7.1.3.aar",
79
+ "size": 70729,
80
+ "sha512": "b77218a000416cf5a937d0641a44ae46f9ec2c10dc2c0694ba0b6d3f69f7b7429edd5f1a42747b3d103ef2d7f1e7fbb1e29f3a9d98a5560e8e34e91245cc1834",
81
+ "sha256": "96bce28ee247fce42d1c1fdd96b882242b419b6bd08a620feb55a2f4813c3b44",
82
+ "sha1": "eabc6dc02972f7c9e767032762c0f97581c929f6",
83
+ "md5": "6cbb7615e1970ff96fc27270fccd5d02"
84
84
  }
85
85
  ]
86
86
  },
@@ -94,8 +94,8 @@
94
94
  },
95
95
  "files": [
96
96
  {
97
- "name": "expo.modules.clipboard-7.1.1-sources.jar",
98
- "url": "expo.modules.clipboard-7.1.1-sources.jar",
97
+ "name": "expo.modules.clipboard-7.1.3-sources.jar",
98
+ "url": "expo.modules.clipboard-7.1.3-sources.jar",
99
99
  "size": 11231,
100
100
  "sha512": "89d1d6c16a21ce183f279ad87991277af6ba406c9075b579946451751c9f15046dbc66af1e2dac85895d39dc71a656257e864417c4d1b26c239855eecfd12b2f",
101
101
  "sha256": "2627622397b27e68d829fefc7c856068b23e3735af3c5a9c83c6876ffeb4bf97",
@@ -0,0 +1 @@
1
+ be8a81a4f23ce39a8d21a4e4d788866d1db9eb4bff518dda31a33b820dfdb678
@@ -0,0 +1 @@
1
+ 0ada4d0fc126a67c177eb3a8572790455b5d015fbfe70d8173c6fe2c4d259e70cc45e1e9c57a9620d32b5ce671fd161d3902d25ced48c8f3d4404e6c0b13e8c5
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.clipboard</artifactId>
12
- <version>7.1.1</version>
12
+ <version>7.1.3</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.clipboard</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 78174e3a301fde9ffb9d01ce2b6dd26724d17328a7818dc4faa8724e1bd2d5c0
@@ -0,0 +1 @@
1
+ 2dbc5c21153cd2ba3438d209b1b18c7be4a750a209659aea35293e414f7a34deb5f393d4c69945a81f271cc1de74234b022b95f60faae2e7d9c2119b023663c0
@@ -3,11 +3,11 @@
3
3
  <groupId>host.exp.exponent</groupId>
4
4
  <artifactId>expo.modules.clipboard</artifactId>
5
5
  <versioning>
6
- <latest>7.1.1</latest>
7
- <release>7.1.1</release>
6
+ <latest>7.1.3</latest>
7
+ <release>7.1.3</release>
8
8
  <versions>
9
- <version>7.1.1</version>
9
+ <version>7.1.3</version>
10
10
  </versions>
11
- <lastUpdated>20250409202819</lastUpdated>
11
+ <lastUpdated>20250425210751</lastUpdated>
12
12
  </versioning>
13
13
  </metadata>
@@ -1 +1 @@
1
- 9dce11b0458db25f39debe170dba2b0c
1
+ 9e31ed75bae0fe56e93cfb4816e09779
@@ -1 +1 @@
1
- b53d29f612cbf1bf762c413f53f7249d72e2a9b3
1
+ 4789ede8bc8b9c76b4f98f6539deef028e11015a
@@ -1 +1 @@
1
- de50ef28d0ddf26336ccd5f300358b3d4f8c1a8ee459f169b5ca104fd6cff90e
1
+ 0794153745beb0fcbf31dfd25cd7a56b9448086792eaff84c961daae17ca6a09
@@ -1 +1 @@
1
- f0cd7f105a196f024a64c88ed42d62e6f5a682c4033b4a1489932a8a3a0c0f67d23f7962fafe1f23ad76bf4632a78212a527050a6201756aee520ffff1da0320
1
+ 1e9f8bf120fc9d168d1b473819b72a298e4fda280569819fc4b19383521620407b6b7c76ea877ab4c0a44ac3203b607c0260f2509e696b98a17d05b8454a1d5a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-clipboard",
3
- "version": "7.1.1",
3
+ "version": "7.1.3",
4
4
  "description": "Provides an interface for getting and setting Clipboard content on Android, iOS and Web.",
5
5
  "main": "build/Clipboard.js",
6
6
  "types": "build/Clipboard.d.ts",
@@ -31,7 +31,7 @@
31
31
  "homepage": "https://docs.expo.dev/versions/latest/sdk/clipboard",
32
32
  "dependencies": {},
33
33
  "devDependencies": {
34
- "expo-module-scripts": "^4.1.1"
34
+ "expo-module-scripts": "^4.1.5"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "expo": "*",
@@ -41,5 +41,5 @@
41
41
  "jest": {
42
42
  "preset": "expo-module-scripts/universal"
43
43
  },
44
- "gitHead": "1914bb35d23af23078da37e70988261844436505"
44
+ "gitHead": "3cd208465df78e385ca9380531bbbfe33ca68e81"
45
45
  }
@@ -51,9 +51,12 @@ export default {
51
51
  return text;
52
52
  }
53
53
  }
54
- } catch (e) {
54
+ } catch (error: any) {
55
55
  // it might fail, because user denied permission
56
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
56
+ if (
57
+ (typeof error === 'object' && error?.name === 'NotAllowedError') ||
58
+ (await isClipboardPermissionDeniedAsync())
59
+ ) {
57
60
  throw new NoPermissionException();
58
61
  }
59
62
 
@@ -92,12 +95,15 @@ export default {
92
95
  const clipboardItemInput = createHtmlClipboardItem(text);
93
96
  await navigator.clipboard.write([clipboardItemInput]);
94
97
  return true;
95
- } catch (e) {
98
+ } catch (error: any) {
96
99
  // it might fail, because user denied permission
97
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
100
+ if (
101
+ (typeof error === 'object' && error?.name === 'NotAllowedError') ||
102
+ (await isClipboardPermissionDeniedAsync())
103
+ ) {
98
104
  throw new NoPermissionException();
99
105
  }
100
- throw new CopyFailureException(e.message);
106
+ throw new CopyFailureException(error.message);
101
107
  }
102
108
  }
103
109
  default: {
@@ -136,12 +142,15 @@ export default {
136
142
  ]);
137
143
 
138
144
  return { data, size };
139
- } catch (e) {
145
+ } catch (error: any) {
140
146
  // it might fail, because user denied permission
141
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
147
+ if (
148
+ (typeof error === 'object' && error?.name === 'NotAllowedError') ||
149
+ (await isClipboardPermissionDeniedAsync())
150
+ ) {
142
151
  throw new NoPermissionException();
143
152
  }
144
- throw new PasteFailureException(e.message);
153
+ throw new PasteFailureException(error.message);
145
154
  }
146
155
  },
147
156
  async setImageAsync(base64image: string): Promise<void> {
@@ -182,12 +191,15 @@ async function clipboardHasTypesAsync(types: string[]): Promise<boolean> {
182
191
  try {
183
192
  const clipboardItems = await navigator.clipboard.read();
184
193
  return clipboardItems.flatMap((item) => item.types).some((type) => types.includes(type));
185
- } catch (e) {
194
+ } catch (error: any) {
186
195
  // it might fail, because user denied permission
187
- if (e.name === 'NotAllowedError' || (await isClipboardPermissionDeniedAsync())) {
196
+ if (
197
+ (typeof error === 'object' && error?.name === 'NotAllowedError') ||
198
+ (await isClipboardPermissionDeniedAsync())
199
+ ) {
188
200
  throw new NoPermissionException();
189
201
  }
190
- throw e;
202
+ throw error;
191
203
  }
192
204
  }
193
205
 
@@ -1 +0,0 @@
1
- b25e7512985ba10e6bf97e8eafc63adb801c0e9032442d777b711296ca482f81
@@ -1 +0,0 @@
1
- 0507e0086b4684312c57205366207cedee6eec60a75796570980f44dbf39ade41a6564134931414a3f5648e0e4cb39366b1bb7f7b7f8a9c20a6d333df96b38b6
@@ -1 +0,0 @@
1
- 110d76e8353b03daf8ec164ce2edcd57913bbcbd7ab56c213fc79586ef362da2
@@ -1 +0,0 @@
1
- 5821974646b8d11a4199ffe12d7187b249d51203d93186e92dc8973d0d9caa052253443b2e75b96592d6ec924f402222ac90c216ae23c5e1f21b50c5ba0323f8
@@ -1 +0,0 @@
1
- f7d5622ac5e7cad836bbdf1db0c85592d9fc87a38b39d8a4bcdf1db19616ae41
@@ -1 +0,0 @@
1
- 6f8f62f44ec0b3311032b4c680f300739e8fb4a05cbc35026fd46d2e29f19d21e437aa1b8d05a391c96868f580e9adbab19519e08d1a6df7351ae344cb4ff729