expo-clipboard 7.1.1 → 7.1.2
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/CHANGELOG.md +4 -0
- package/android/build.gradle +2 -2
- package/build/web/ClipboardModule.d.ts.map +1 -1
- package/build/web/ClipboardModule.js +15 -11
- package/build/web/ClipboardModule.js.map +1 -1
- package/expo-module.config.json +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.module → 7.1.2/expo.modules.clipboard-7.1.2.module} +7 -7
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.pom → 7.1.2/expo.modules.clipboard-7.1.2.pom} +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.2/expo.modules.clipboard-7.1.2.pom.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml +4 -4
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/maven-metadata.xml.sha512 +1 -1
- package/package.json +3 -3
- package/src/web/ClipboardModule.ts +23 -11
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/7.1.1/expo.modules.clipboard-7.1.1.pom.sha512 +0 -1
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar → 7.1.2/expo.modules.clipboard-7.1.2-sources.jar} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.md5 → 7.1.2/expo.modules.clipboard-7.1.2-sources.jar.md5} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.sha1 → 7.1.2/expo.modules.clipboard-7.1.2-sources.jar.sha1} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.sha256 → 7.1.2/expo.modules.clipboard-7.1.2-sources.jar.sha256} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1-sources.jar.sha512 → 7.1.2/expo.modules.clipboard-7.1.2-sources.jar.sha512} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.aar → 7.1.2/expo.modules.clipboard-7.1.2.aar} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.aar.md5 → 7.1.2/expo.modules.clipboard-7.1.2.aar.md5} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.aar.sha1 → 7.1.2/expo.modules.clipboard-7.1.2.aar.sha1} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.aar.sha256 → 7.1.2/expo.modules.clipboard-7.1.2.aar.sha256} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.clipboard/{7.1.1/expo.modules.clipboard-7.1.1.aar.sha512 → 7.1.2/expo.modules.clipboard-7.1.2.aar.sha512} +0 -0
package/CHANGELOG.md
CHANGED
package/android/build.gradle
CHANGED
|
@@ -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;
|
|
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 (
|
|
34
|
+
catch (error) {
|
|
35
35
|
// it might fail, because user denied permission
|
|
36
|
-
if (
|
|
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 (
|
|
78
|
+
catch (error) {
|
|
78
79
|
// it might fail, because user denied permission
|
|
79
|
-
if (
|
|
80
|
+
if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
|
|
81
|
+
(await isClipboardPermissionDeniedAsync())) {
|
|
80
82
|
throw new NoPermissionException();
|
|
81
83
|
}
|
|
82
|
-
throw new CopyFailureException(
|
|
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 (
|
|
122
|
+
catch (error) {
|
|
121
123
|
// it might fail, because user denied permission
|
|
122
|
-
if (
|
|
124
|
+
if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
|
|
125
|
+
(await isClipboardPermissionDeniedAsync())) {
|
|
123
126
|
throw new NoPermissionException();
|
|
124
127
|
}
|
|
125
|
-
throw new PasteFailureException(
|
|
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 (
|
|
168
|
+
catch (error) {
|
|
166
169
|
// it might fail, because user denied permission
|
|
167
|
-
if (
|
|
170
|
+
if ((typeof error === 'object' && error?.name === 'NotAllowedError') ||
|
|
171
|
+
(await isClipboardPermissionDeniedAsync())) {
|
|
168
172
|
throw new NoPermissionException();
|
|
169
173
|
}
|
|
170
|
-
throw
|
|
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"]}
|
package/expo-module.config.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "host.exp.exponent",
|
|
5
5
|
"module": "expo.modules.clipboard",
|
|
6
|
-
"version": "7.1.
|
|
6
|
+
"version": "7.1.2",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
|
-
"name": "expo.modules.clipboard-7.1.
|
|
28
|
-
"url": "expo.modules.clipboard-7.1.
|
|
27
|
+
"name": "expo.modules.clipboard-7.1.2.aar",
|
|
28
|
+
"url": "expo.modules.clipboard-7.1.2.aar",
|
|
29
29
|
"size": 70659,
|
|
30
30
|
"sha512": "0507e0086b4684312c57205366207cedee6eec60a75796570980f44dbf39ade41a6564134931414a3f5648e0e4cb39366b1bb7f7b7f8a9c20a6d333df96b38b6",
|
|
31
31
|
"sha256": "b25e7512985ba10e6bf97e8eafc63adb801c0e9032442d777b711296ca482f81",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
],
|
|
75
75
|
"files": [
|
|
76
76
|
{
|
|
77
|
-
"name": "expo.modules.clipboard-7.1.
|
|
78
|
-
"url": "expo.modules.clipboard-7.1.
|
|
77
|
+
"name": "expo.modules.clipboard-7.1.2.aar",
|
|
78
|
+
"url": "expo.modules.clipboard-7.1.2.aar",
|
|
79
79
|
"size": 70659,
|
|
80
80
|
"sha512": "0507e0086b4684312c57205366207cedee6eec60a75796570980f44dbf39ade41a6564134931414a3f5648e0e4cb39366b1bb7f7b7f8a9c20a6d333df96b38b6",
|
|
81
81
|
"sha256": "b25e7512985ba10e6bf97e8eafc63adb801c0e9032442d777b711296ca482f81",
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
},
|
|
95
95
|
"files": [
|
|
96
96
|
{
|
|
97
|
-
"name": "expo.modules.clipboard-7.1.
|
|
98
|
-
"url": "expo.modules.clipboard-7.1.
|
|
97
|
+
"name": "expo.modules.clipboard-7.1.2-sources.jar",
|
|
98
|
+
"url": "expo.modules.clipboard-7.1.2-sources.jar",
|
|
99
99
|
"size": 11231,
|
|
100
100
|
"sha512": "89d1d6c16a21ce183f279ad87991277af6ba406c9075b579946451751c9f15046dbc66af1e2dac85895d39dc71a656257e864417c4d1b26c239855eecfd12b2f",
|
|
101
101
|
"sha256": "2627622397b27e68d829fefc7c856068b23e3735af3c5a9c83c6876ffeb4bf97",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7dd90f6273c07391a649605294e5645f
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
658c3fa5547dbc001fd56e35cb00df6a0c5cce71
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
8ad51042477c756c4120c939aaac18ab261d9229d810053962e22aee9b10d5f3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3616464266af33516843186bda8951e3815c4927678a688cb3f3e38d34e5de0842ed1984a935bbb59de4e1cffb604a6802cf7ef63fff026f4429b464a9881527
|
|
@@ -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.
|
|
12
|
+
<version>7.1.2</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
|
+
979cc0dc33da825ed369128ca3cf8ca4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
bac34564aeca5e507fa64284db7670fdc29632b2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
409f60f5d21d3ae3a647386e1187202917a84fb521da124df0d6f67b33d9e911
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2fe147592315c33ea52cd082b0b1089229e4133826d016806d84545be39f946cc90a584779f1ec8453842f9c723a48ce625789e3bf9834f44987c792f057eb1b
|
|
@@ -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.
|
|
7
|
-
<release>7.1.
|
|
6
|
+
<latest>7.1.2</latest>
|
|
7
|
+
<release>7.1.2</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>7.1.
|
|
9
|
+
<version>7.1.2</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20250414185045</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
d55f7f81125eb53eeb63d25b9e538968
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ff8c6be0acc63f280a6e1d94ea17020fc9dc8243
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f1f71b68b31fa562aa87dad0572e0f9614663dbd2f2d7d2aea7a3a0cbf6f2e2f
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2c1212a52dc3c697fa4d2fd65d2a026a8d36bc7ff8adb8abad0880397ddc974d92f5fcfb8ffe0e988de79ae200c7fa9a10e945fce83f7b49e081086044cd46c4
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-clipboard",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.2",
|
|
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.
|
|
34
|
+
"expo-module-scripts": "^4.1.2"
|
|
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": "
|
|
44
|
+
"gitHead": "cb9fdd93f76f28e2ace4f66080b2386d87239553"
|
|
45
45
|
}
|
|
@@ -51,9 +51,12 @@ export default {
|
|
|
51
51
|
return text;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
} catch (
|
|
54
|
+
} catch (error: any) {
|
|
55
55
|
// it might fail, because user denied permission
|
|
56
|
-
if (
|
|
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 (
|
|
98
|
+
} catch (error: any) {
|
|
96
99
|
// it might fail, because user denied permission
|
|
97
|
-
if (
|
|
100
|
+
if (
|
|
101
|
+
(typeof error === 'object' && error?.name === 'NotAllowedError') ||
|
|
102
|
+
(await isClipboardPermissionDeniedAsync())
|
|
103
|
+
) {
|
|
98
104
|
throw new NoPermissionException();
|
|
99
105
|
}
|
|
100
|
-
throw new CopyFailureException(
|
|
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 (
|
|
145
|
+
} catch (error: any) {
|
|
140
146
|
// it might fail, because user denied permission
|
|
141
|
-
if (
|
|
147
|
+
if (
|
|
148
|
+
(typeof error === 'object' && error?.name === 'NotAllowedError') ||
|
|
149
|
+
(await isClipboardPermissionDeniedAsync())
|
|
150
|
+
) {
|
|
142
151
|
throw new NoPermissionException();
|
|
143
152
|
}
|
|
144
|
-
throw new PasteFailureException(
|
|
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 (
|
|
194
|
+
} catch (error: any) {
|
|
186
195
|
// it might fail, because user denied permission
|
|
187
|
-
if (
|
|
196
|
+
if (
|
|
197
|
+
(typeof error === 'object' && error?.name === 'NotAllowedError') ||
|
|
198
|
+
(await isClipboardPermissionDeniedAsync())
|
|
199
|
+
) {
|
|
188
200
|
throw new NoPermissionException();
|
|
189
201
|
}
|
|
190
|
-
throw
|
|
202
|
+
throw error;
|
|
191
203
|
}
|
|
192
204
|
}
|
|
193
205
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
21844c1e1d62e75dcf05070b8ba648d1
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e6dc47e708dd7cbf016fae614e4974d08afece91
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
110d76e8353b03daf8ec164ce2edcd57913bbcbd7ab56c213fc79586ef362da2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5821974646b8d11a4199ffe12d7187b249d51203d93186e92dc8973d0d9caa052253443b2e75b96592d6ec924f402222ac90c216ae23c5e1f21b50c5ba0323f8
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
bce18077cd2d67c235893b602484e4d2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
84ccc7f174de171bc3fa2f57c1ddd2c64c8e56ca
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
f7d5622ac5e7cad836bbdf1db0c85592d9fc87a38b39d8a4bcdf1db19616ae41
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
6f8f62f44ec0b3311032b4c680f300739e8fb4a05cbc35026fd46d2e29f19d21e437aa1b8d05a391c96868f580e9adbab19519e08d1a6df7351ae344cb4ff729
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|