@memberjunction/storage 2.30.0 → 2.32.0
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/dist/drivers/AWSFileStorage.d.ts +26 -1
- package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
- package/dist/drivers/AWSFileStorage.js +287 -13
- package/dist/drivers/AWSFileStorage.js.map +1 -1
- package/dist/drivers/AzureFileStorage.d.ts +22 -1
- package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
- package/dist/drivers/AzureFileStorage.js +264 -20
- package/dist/drivers/AzureFileStorage.js.map +1 -1
- package/dist/drivers/BoxFileStorage.d.ts +73 -0
- package/dist/drivers/BoxFileStorage.d.ts.map +1 -0
- package/dist/drivers/BoxFileStorage.js +517 -0
- package/dist/drivers/BoxFileStorage.js.map +1 -0
- package/dist/drivers/DropboxFileStorage.d.ts +73 -0
- package/dist/drivers/DropboxFileStorage.d.ts.map +1 -0
- package/dist/drivers/DropboxFileStorage.js +463 -0
- package/dist/drivers/DropboxFileStorage.js.map +1 -0
- package/dist/drivers/GoogleDriveFileStorage.d.ts +73 -0
- package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -0
- package/dist/drivers/GoogleDriveFileStorage.js +542 -0
- package/dist/drivers/GoogleDriveFileStorage.js.map +1 -0
- package/dist/drivers/GoogleFileStorage.d.ts +20 -1
- package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleFileStorage.js +215 -2
- package/dist/drivers/GoogleFileStorage.js.map +1 -1
- package/dist/drivers/SharePointFileStorage.d.ts +81 -0
- package/dist/drivers/SharePointFileStorage.d.ts.map +1 -0
- package/dist/drivers/SharePointFileStorage.js +490 -0
- package/dist/drivers/SharePointFileStorage.js.map +1 -0
- package/dist/generic/FileStorageBase.d.ts +119 -0
- package/dist/generic/FileStorageBase.d.ts.map +1 -1
- package/dist/generic/FileStorageBase.js +18 -1
- package/dist/generic/FileStorageBase.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +12 -4
|
@@ -36,20 +36,41 @@ exports.GoogleFileStorage = void 0;
|
|
|
36
36
|
const storage_1 = require("@google-cloud/storage");
|
|
37
37
|
const global_1 = require("@memberjunction/global");
|
|
38
38
|
const env = __importStar(require("env-var"));
|
|
39
|
+
const mime = __importStar(require("mime-types"));
|
|
39
40
|
const FileStorageBase_1 = require("../generic/FileStorageBase");
|
|
40
41
|
let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileStorageBase {
|
|
41
42
|
constructor() {
|
|
42
43
|
super();
|
|
44
|
+
this.providerName = 'Google Cloud Storage';
|
|
43
45
|
const credentials = env.get('STORAGE_GOOGLE_KEY_JSON').required().asJsonObject();
|
|
44
46
|
this._client = new storage_1.Storage({ credentials });
|
|
45
47
|
this._bucket = env.get('STORAGE_GOOGLE_BUCKET_NAME').required().asString();
|
|
46
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Normalizes directory paths to ensure they end with a slash
|
|
51
|
+
*/
|
|
52
|
+
_normalizeDirectoryPath(path) {
|
|
53
|
+
return path.endsWith('/') ? path : path + '/';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Converts metadata to a string map for consistent handling
|
|
57
|
+
*/
|
|
58
|
+
_convertMetadataToStringMap(metadata) {
|
|
59
|
+
if (!metadata)
|
|
60
|
+
return {};
|
|
61
|
+
const result = {};
|
|
62
|
+
for (const key in metadata) {
|
|
63
|
+
result[key] = String(metadata[key]);
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
47
67
|
async CreatePreAuthUploadUrl(objectName) {
|
|
48
68
|
const file = this._client.bucket(this._bucket).file(objectName);
|
|
49
69
|
const options = {
|
|
50
70
|
version: 'v4',
|
|
51
71
|
action: 'write',
|
|
52
72
|
expires: Date.now() + 10 * 60 * 1000, // 10 mins
|
|
73
|
+
contentType: mime.lookup(objectName) || 'application/octet-stream'
|
|
53
74
|
};
|
|
54
75
|
const [UploadUrl] = await file.getSignedUrl(options);
|
|
55
76
|
return { UploadUrl };
|
|
@@ -77,8 +98,8 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
77
98
|
}
|
|
78
99
|
async DeleteObject(objectName) {
|
|
79
100
|
try {
|
|
80
|
-
|
|
81
|
-
return
|
|
101
|
+
await this._client.bucket(this._bucket).file(objectName).delete({ ignoreNotFound: true });
|
|
102
|
+
return true; // ignoreNotFound ensures this returns true even if the file doesn't exist
|
|
82
103
|
}
|
|
83
104
|
catch (e) {
|
|
84
105
|
console.error('Error deleting object from Google storage', { file: objectName, bucket: this._bucket });
|
|
@@ -86,6 +107,198 @@ let GoogleFileStorage = class GoogleFileStorage extends FileStorageBase_1.FileSt
|
|
|
86
107
|
return false;
|
|
87
108
|
}
|
|
88
109
|
}
|
|
110
|
+
async ListObjects(prefix, delimiter = '/') {
|
|
111
|
+
try {
|
|
112
|
+
const options = {
|
|
113
|
+
prefix: prefix,
|
|
114
|
+
delimiter: delimiter
|
|
115
|
+
};
|
|
116
|
+
const [files, , apiResponse] = await this._client.bucket(this._bucket).getFiles(options);
|
|
117
|
+
const objects = [];
|
|
118
|
+
let prefixes = [];
|
|
119
|
+
// Process files (objects)
|
|
120
|
+
for (const file of files) {
|
|
121
|
+
const [metadata] = await file.getMetadata();
|
|
122
|
+
// Skip directory placeholders when listing their contents
|
|
123
|
+
if (file.name === prefix)
|
|
124
|
+
continue;
|
|
125
|
+
const pathParts = file.name.split('/');
|
|
126
|
+
const name = pathParts[pathParts.length - 1];
|
|
127
|
+
const path = pathParts.slice(0, -1).join('/');
|
|
128
|
+
objects.push({
|
|
129
|
+
name,
|
|
130
|
+
path,
|
|
131
|
+
fullPath: file.name,
|
|
132
|
+
size: parseInt(String(metadata.size)) || 0,
|
|
133
|
+
contentType: metadata.contentType || mime.lookup(file.name) || 'application/octet-stream',
|
|
134
|
+
lastModified: new Date(metadata.updated),
|
|
135
|
+
isDirectory: file.name.endsWith('/'),
|
|
136
|
+
etag: String(metadata.etag),
|
|
137
|
+
cacheControl: String(metadata.cacheControl || ''),
|
|
138
|
+
customMetadata: this._convertMetadataToStringMap(metadata.metadata)
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
// Extract directory prefixes
|
|
142
|
+
if (apiResponse && apiResponse.prefixes) {
|
|
143
|
+
prefixes = apiResponse.prefixes;
|
|
144
|
+
}
|
|
145
|
+
return { objects, prefixes };
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
console.error('Error listing objects in Google storage', { prefix, bucket: this._bucket });
|
|
149
|
+
console.error(e);
|
|
150
|
+
return { objects: [], prefixes: [] };
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
async CreateDirectory(directoryPath) {
|
|
154
|
+
try {
|
|
155
|
+
directoryPath = this._normalizeDirectoryPath(directoryPath);
|
|
156
|
+
// GCS doesn't have real directories, so we create a zero-byte file with the directory name
|
|
157
|
+
const file = this._client.bucket(this._bucket).file(directoryPath);
|
|
158
|
+
await file.save('', {
|
|
159
|
+
metadata: {
|
|
160
|
+
contentType: 'application/x-directory'
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
console.error('Error creating directory in Google storage', { directoryPath, bucket: this._bucket });
|
|
167
|
+
console.error(e);
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
async DeleteDirectory(directoryPath, recursive = false) {
|
|
172
|
+
try {
|
|
173
|
+
directoryPath = this._normalizeDirectoryPath(directoryPath);
|
|
174
|
+
if (!recursive) {
|
|
175
|
+
// Just delete the directory placeholder
|
|
176
|
+
return this.DeleteObject(directoryPath);
|
|
177
|
+
}
|
|
178
|
+
// For recursive delete, list all files under this prefix and delete them
|
|
179
|
+
const options = {
|
|
180
|
+
prefix: directoryPath
|
|
181
|
+
};
|
|
182
|
+
const [files] = await this._client.bucket(this._bucket).getFiles(options);
|
|
183
|
+
// Delete all files concurrently
|
|
184
|
+
const deletePromises = files.map(file => file.delete());
|
|
185
|
+
await Promise.all(deletePromises);
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
console.error('Error deleting directory from Google storage', { directoryPath, recursive, bucket: this._bucket });
|
|
190
|
+
console.error(e);
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async GetObjectMetadata(objectName) {
|
|
195
|
+
try {
|
|
196
|
+
const file = this._client.bucket(this._bucket).file(objectName);
|
|
197
|
+
const [metadata] = await file.getMetadata();
|
|
198
|
+
const pathParts = objectName.split('/');
|
|
199
|
+
const name = pathParts[pathParts.length - 1];
|
|
200
|
+
const path = pathParts.slice(0, -1).join('/');
|
|
201
|
+
return {
|
|
202
|
+
name,
|
|
203
|
+
path,
|
|
204
|
+
fullPath: objectName,
|
|
205
|
+
size: parseInt(String(metadata.size)) || 0,
|
|
206
|
+
contentType: metadata.contentType || mime.lookup(objectName) || 'application/octet-stream',
|
|
207
|
+
lastModified: new Date(metadata.updated),
|
|
208
|
+
isDirectory: objectName.endsWith('/'),
|
|
209
|
+
etag: String(metadata.etag || ''),
|
|
210
|
+
cacheControl: String(metadata.cacheControl || ''),
|
|
211
|
+
customMetadata: this._convertMetadataToStringMap(metadata.metadata)
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (e) {
|
|
215
|
+
console.error('Error getting object metadata from Google storage', { objectName, bucket: this._bucket });
|
|
216
|
+
console.error(e);
|
|
217
|
+
throw new Error(`Object not found: ${objectName}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async GetObject(objectName) {
|
|
221
|
+
try {
|
|
222
|
+
const file = this._client.bucket(this._bucket).file(objectName);
|
|
223
|
+
const [bufferContent] = await file.download();
|
|
224
|
+
return bufferContent;
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
console.error('Error getting object from Google storage', { objectName, bucket: this._bucket });
|
|
228
|
+
console.error(e);
|
|
229
|
+
throw new Error(`Failed to get object: ${objectName}`);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
async PutObject(objectName, data, contentType, metadata) {
|
|
233
|
+
try {
|
|
234
|
+
const file = this._client.bucket(this._bucket).file(objectName);
|
|
235
|
+
// Determine content type based on file extension if not provided
|
|
236
|
+
const effectiveContentType = contentType || mime.lookup(objectName) || 'application/octet-stream';
|
|
237
|
+
await file.save(data, {
|
|
238
|
+
metadata: {
|
|
239
|
+
contentType: effectiveContentType,
|
|
240
|
+
metadata
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
catch (e) {
|
|
246
|
+
console.error('Error putting object to Google storage', { objectName, bucket: this._bucket });
|
|
247
|
+
console.error(e);
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
async CopyObject(sourceObjectName, destinationObjectName) {
|
|
252
|
+
try {
|
|
253
|
+
const sourceFile = this._client.bucket(this._bucket).file(sourceObjectName);
|
|
254
|
+
const destinationFile = this._client.bucket(this._bucket).file(destinationObjectName);
|
|
255
|
+
await sourceFile.copy(destinationFile);
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
catch (e) {
|
|
259
|
+
console.error('Error copying object in Google storage', {
|
|
260
|
+
sourceObjectName,
|
|
261
|
+
destinationObjectName,
|
|
262
|
+
bucket: this._bucket
|
|
263
|
+
});
|
|
264
|
+
console.error(e);
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
async ObjectExists(objectName) {
|
|
269
|
+
try {
|
|
270
|
+
const file = this._client.bucket(this._bucket).file(objectName);
|
|
271
|
+
const [exists] = await file.exists();
|
|
272
|
+
return exists;
|
|
273
|
+
}
|
|
274
|
+
catch (e) {
|
|
275
|
+
console.error('Error checking if object exists in Google storage', { objectName, bucket: this._bucket });
|
|
276
|
+
console.error(e);
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
async DirectoryExists(directoryPath) {
|
|
281
|
+
try {
|
|
282
|
+
directoryPath = this._normalizeDirectoryPath(directoryPath);
|
|
283
|
+
// Method 1: Check if directory placeholder exists
|
|
284
|
+
const placeholderExists = await this.ObjectExists(directoryPath);
|
|
285
|
+
if (placeholderExists) {
|
|
286
|
+
return true;
|
|
287
|
+
}
|
|
288
|
+
// Method 2: Check if any objects with this prefix exist
|
|
289
|
+
const options = {
|
|
290
|
+
prefix: directoryPath,
|
|
291
|
+
maxResults: 1
|
|
292
|
+
};
|
|
293
|
+
const [files] = await this._client.bucket(this._bucket).getFiles(options);
|
|
294
|
+
return files.length > 0;
|
|
295
|
+
}
|
|
296
|
+
catch (e) {
|
|
297
|
+
console.error('Error checking if directory exists in Google storage', { directoryPath, bucket: this._bucket });
|
|
298
|
+
console.error(e);
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
89
302
|
};
|
|
90
303
|
exports.GoogleFileStorage = GoogleFileStorage;
|
|
91
304
|
exports.GoogleFileStorage = GoogleFileStorage = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleFileStorage.js","sourceRoot":"","sources":["../../src/drivers/GoogleFileStorage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"GoogleFileStorage.js","sourceRoot":"","sources":["../../src/drivers/GoogleFileStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { CreatePreAuthUploadUrlPayload, FileStorageBase, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
|
|
3
|
+
export declare class SharePointFileStorage extends FileStorageBase {
|
|
4
|
+
protected readonly providerName = "SharePoint";
|
|
5
|
+
private _client;
|
|
6
|
+
private _driveId;
|
|
7
|
+
private _siteId;
|
|
8
|
+
private _rootFolderId?;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Get the parent item ID for a given path
|
|
12
|
+
*
|
|
13
|
+
* @param path The path to get the parent folder for
|
|
14
|
+
* @returns The parent folder ID
|
|
15
|
+
*/
|
|
16
|
+
private _getParentFolderIdByPath;
|
|
17
|
+
/**
|
|
18
|
+
* Get an item by path
|
|
19
|
+
*
|
|
20
|
+
* @param path The path of the item
|
|
21
|
+
* @returns The item
|
|
22
|
+
*/
|
|
23
|
+
private _getItemByPath;
|
|
24
|
+
/**
|
|
25
|
+
* Convert a SharePoint item to a StorageObjectMetadata object
|
|
26
|
+
*/
|
|
27
|
+
private _itemToMetadata;
|
|
28
|
+
/**
|
|
29
|
+
* Create a pre-authenticated upload URL is not directly supported in SharePoint/OneDrive
|
|
30
|
+
*/
|
|
31
|
+
CreatePreAuthUploadUrl(objectName: string): Promise<CreatePreAuthUploadUrlPayload>;
|
|
32
|
+
/**
|
|
33
|
+
* Create a pre-authenticated download URL for an object
|
|
34
|
+
*/
|
|
35
|
+
CreatePreAuthDownloadUrl(objectName: string): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Move an object from one location to another
|
|
38
|
+
*/
|
|
39
|
+
MoveObject(oldObjectName: string, newObjectName: string): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Delete an object
|
|
42
|
+
*/
|
|
43
|
+
DeleteObject(objectName: string): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* List objects in a given directory
|
|
46
|
+
*/
|
|
47
|
+
ListObjects(prefix: string, delimiter?: string): Promise<StorageListResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Create a directory
|
|
50
|
+
*/
|
|
51
|
+
CreateDirectory(directoryPath: string): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Delete a directory and optionally its contents
|
|
54
|
+
*/
|
|
55
|
+
DeleteDirectory(directoryPath: string, recursive?: boolean): Promise<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* Get object metadata
|
|
58
|
+
*/
|
|
59
|
+
GetObjectMetadata(objectName: string): Promise<StorageObjectMetadata>;
|
|
60
|
+
/**
|
|
61
|
+
* Get an object's contents
|
|
62
|
+
*/
|
|
63
|
+
GetObject(objectName: string): Promise<Buffer>;
|
|
64
|
+
/**
|
|
65
|
+
* Upload an object directly
|
|
66
|
+
*/
|
|
67
|
+
PutObject(objectName: string, data: Buffer, contentType?: string, metadata?: Record<string, string>): Promise<boolean>;
|
|
68
|
+
/**
|
|
69
|
+
* Copy an object
|
|
70
|
+
*/
|
|
71
|
+
CopyObject(sourceObjectName: string, destinationObjectName: string): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Check if an object exists
|
|
74
|
+
*/
|
|
75
|
+
ObjectExists(objectName: string): Promise<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Check if a directory exists
|
|
78
|
+
*/
|
|
79
|
+
DirectoryExists(directoryPath: string): Promise<boolean>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=SharePointFileStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharePointFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/SharePointFileStorage.ts"],"names":[],"mappings":";AAKA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EAEtB,MAAM,4BAA4B,CAAC;AA0DpC,qBACa,qBAAsB,SAAQ,eAAe;IACxD,SAAS,CAAC,QAAQ,CAAC,YAAY,gBAAgB;IAC/C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAS;;IAqB/B;;;;;OAKG;YACW,wBAAwB;IAwBtC;;;;;OAKG;YACW,cAAc;IAsB5B;;OAEG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACU,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAM/F;;OAEG;IACU,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB1E;;OAEG;IACU,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BvF;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB/D;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAgCxF;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BrE;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BxF;;OAEG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAUlF;;OAEG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB3D;;OAEG;IACU,SAAS,CACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;IAmDnB;;OAEG;IACU,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BlG;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/D;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAkBtE"}
|