@cooperation/vc-storage 1.0.6 → 1.0.8
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.
@@ -296,6 +296,7 @@ export class GoogleDriveStorage {
|
|
296
296
|
// Fetch file comments (if applicable)
|
297
297
|
const comments = await this.getFileComments(file.id);
|
298
298
|
return {
|
299
|
+
id: file.id,
|
299
300
|
name: file.name,
|
300
301
|
content,
|
301
302
|
comments: comments.map((comment) => comment.content),
|
@@ -10,5 +10,13 @@ import { GoogleDriveStorage } from '../models/GoogleDriveStorage.js';
|
|
10
10
|
* @throws Will throw an error if the save operation fails.
|
11
11
|
*/
|
12
12
|
export declare function saveToGoogleDrive(storage: GoogleDriveStorage, data: any, type: 'VC' | 'DID' | 'SESSION' | 'RECOMMENDATION' | 'KEYPAIR', uuid?: string): Promise<object>;
|
13
|
+
/**
|
14
|
+
* Upload an image to Google Drive in the Credentials/MEDIAs folder.
|
15
|
+
* @param {GoogleDriveStorage} storage - The GoogleDriveStorage instance.
|
16
|
+
* @param {File} imageFile - The image file to upload.
|
17
|
+
* @returns {Promise<object>} - The uploaded image file object.
|
18
|
+
* @throws Will throw an error if the upload operation fails.
|
19
|
+
*/
|
20
|
+
export declare function uploadImageToGoogleDrive(storage: GoogleDriveStorage, imageFile: File): Promise<object>;
|
13
21
|
export declare function generateViewLink(fileId: string): string;
|
14
22
|
export declare function extractGoogleDriveFileId(url: string): string | null;
|
package/dist/utils/google.js
CHANGED
@@ -59,6 +59,63 @@ export async function saveToGoogleDrive(storage, data, type, uuid) {
|
|
59
59
|
throw error;
|
60
60
|
}
|
61
61
|
}
|
62
|
+
/**
|
63
|
+
* Upload an image to Google Drive in the Credentials/MEDIAs folder.
|
64
|
+
* @param {GoogleDriveStorage} storage - The GoogleDriveStorage instance.
|
65
|
+
* @param {File} imageFile - The image file to upload.
|
66
|
+
* @returns {Promise<object>} - The uploaded image file object.
|
67
|
+
* @throws Will throw an error if the upload operation fails.
|
68
|
+
*/
|
69
|
+
export async function uploadImageToGoogleDrive(storage, imageFile) {
|
70
|
+
try {
|
71
|
+
// Get all root folders
|
72
|
+
const rootFolders = await storage.findFolders();
|
73
|
+
console.log('Root folders:', rootFolders);
|
74
|
+
// Find or create the "Credentials" folder
|
75
|
+
let credentialsFolder = rootFolders.find((f) => f.name === 'Credentials');
|
76
|
+
let credentialsFolderId;
|
77
|
+
if (!credentialsFolder) {
|
78
|
+
credentialsFolderId = await storage.createFolder('Credentials');
|
79
|
+
console.log('Created Credentials folder with ID:', credentialsFolderId);
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
credentialsFolderId = credentialsFolder.id;
|
83
|
+
console.log('Found Credentials folder with ID:', credentialsFolderId);
|
84
|
+
}
|
85
|
+
// Get subfolders within the "Credentials" folder
|
86
|
+
const subfolders = await storage.findFolders(credentialsFolderId);
|
87
|
+
console.log(`Subfolders in Credentials (ID: ${credentialsFolderId}):`, subfolders);
|
88
|
+
// Find or create the "MEDIAs" folder
|
89
|
+
let mediasFolder = subfolders.find((f) => f.name === 'MEDIAs');
|
90
|
+
let mediasFolderId;
|
91
|
+
if (!mediasFolder) {
|
92
|
+
mediasFolderId = await storage.createFolder('MEDIAs', credentialsFolderId);
|
93
|
+
console.log('Created MEDIAs folder with ID:', mediasFolderId);
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
mediasFolderId = mediasFolder.id;
|
97
|
+
console.log('Found MEDIAs folder with ID:', mediasFolderId);
|
98
|
+
}
|
99
|
+
// Prepare the image file data
|
100
|
+
const imageData = {
|
101
|
+
fileName: imageFile.name,
|
102
|
+
mimeType: imageFile.type,
|
103
|
+
body: imageFile,
|
104
|
+
};
|
105
|
+
// Save the image in the "MEDIAs" folder
|
106
|
+
const uploadedImage = await storage.save(imageData, mediasFolderId);
|
107
|
+
console.log(`Image uploaded: ${uploadedImage?.id} to MEDIAs folder in Credentials`);
|
108
|
+
if (uploadedImage && uploadedImage.id) {
|
109
|
+
console.log('Sharing image file with second user...');
|
110
|
+
await storage.addCommenterRoleToFile(uploadedImage.id);
|
111
|
+
}
|
112
|
+
return uploadedImage;
|
113
|
+
}
|
114
|
+
catch (error) {
|
115
|
+
console.error('Error uploading image to Google Drive:', error);
|
116
|
+
throw error;
|
117
|
+
}
|
118
|
+
}
|
62
119
|
export function generateViewLink(fileId) {
|
63
120
|
if (!fileId) {
|
64
121
|
throw new Error('File ID is required to generate a view link.');
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@cooperation/vc-storage",
|
3
3
|
"type": "module",
|
4
|
-
"version": "1.0.
|
4
|
+
"version": "1.0.8",
|
5
5
|
"description": "Sign and store your verifiable credentials.",
|
6
6
|
"main": "dist/index.js",
|
7
7
|
"types": "dist/types/index.d.ts",
|
@@ -16,7 +16,7 @@
|
|
16
16
|
"author": "cooperation",
|
17
17
|
"license": "ISC",
|
18
18
|
"dependencies": {
|
19
|
-
"@cooperation/vc-storage": "1.0.
|
19
|
+
"@cooperation/vc-storage": "^1.0.6",
|
20
20
|
"@digitalbazaar/did-method-key": "^5.2.0",
|
21
21
|
"@digitalbazaar/ed25519-signature-2020": "^5.3.0",
|
22
22
|
"@digitalbazaar/ed25519-verification-key-2020": "^4.1.0",
|