@memberjunction/storage 3.3.0 → 4.0.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/__tests__/FileStorageBase.test.js +76 -14
- package/dist/__tests__/FileStorageBase.test.js.map +1 -1
- package/dist/__tests__/util.test.js +29 -49
- package/dist/__tests__/util.test.js.map +1 -1
- package/dist/config.js +56 -63
- package/dist/config.js.map +1 -1
- package/dist/drivers/AWSFileStorage.d.ts +28 -6
- package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
- package/dist/drivers/AWSFileStorage.js +92 -73
- package/dist/drivers/AWSFileStorage.js.map +1 -1
- package/dist/drivers/AzureFileStorage.d.ts +26 -3
- package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
- package/dist/drivers/AzureFileStorage.js +101 -65
- package/dist/drivers/AzureFileStorage.js.map +1 -1
- package/dist/drivers/BoxFileStorage.d.ts +21 -17
- package/dist/drivers/BoxFileStorage.d.ts.map +1 -1
- package/dist/drivers/BoxFileStorage.js +76 -107
- package/dist/drivers/BoxFileStorage.js.map +1 -1
- package/dist/drivers/DropboxFileStorage.d.ts +23 -6
- package/dist/drivers/DropboxFileStorage.d.ts.map +1 -1
- package/dist/drivers/DropboxFileStorage.js +62 -61
- package/dist/drivers/DropboxFileStorage.js.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.d.ts +23 -6
- package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.js +78 -61
- package/dist/drivers/GoogleDriveFileStorage.js.map +1 -1
- package/dist/drivers/GoogleFileStorage.d.ts +25 -2
- package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleFileStorage.js +93 -46
- package/dist/drivers/GoogleFileStorage.js.map +1 -1
- package/dist/drivers/SharePointFileStorage.d.ts +32 -8
- package/dist/drivers/SharePointFileStorage.d.ts.map +1 -1
- package/dist/drivers/SharePointFileStorage.js +92 -137
- package/dist/drivers/SharePointFileStorage.js.map +1 -1
- package/dist/generic/FileStorageBase.d.ts +77 -43
- package/dist/generic/FileStorageBase.d.ts.map +1 -1
- package/dist/generic/FileStorageBase.js +60 -52
- package/dist/generic/FileStorageBase.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +10 -26
- package/dist/index.js.map +1 -1
- package/dist/util.d.ts +2 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +30 -47
- package/dist/util.js.map +1 -1
- package/package.json +24 -23
- package/readme.md +103 -30
package/dist/util.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.searchAcrossAccounts = exports.searchAcrossProviders = exports.copyObjectBetweenProviders = exports.listObjects = exports.deleteObject = exports.copyObject = exports.moveObject = exports.createDownloadUrl = exports.createUploadUrl = exports.initializeDriverWithAccountCredentials = exports.initializeDriverWithUserCredentials = void 0;
|
|
7
|
-
const global_1 = require("@memberjunction/global");
|
|
8
|
-
const core_1 = require("@memberjunction/core");
|
|
9
|
-
const credentials_1 = require("@memberjunction/credentials");
|
|
10
|
-
const mime_types_1 = __importDefault(require("mime-types"));
|
|
11
|
-
const FileStorageBase_1 = require("./generic/FileStorageBase");
|
|
1
|
+
import { MJGlobal } from '@memberjunction/global';
|
|
2
|
+
import { LogStatus } from '@memberjunction/core';
|
|
3
|
+
import { CredentialEngine } from '@memberjunction/credentials';
|
|
4
|
+
import mime from 'mime-types';
|
|
5
|
+
import { FileStorageBase } from './generic/FileStorageBase.js';
|
|
12
6
|
/**
|
|
13
7
|
* @deprecated This function is being replaced by the enterprise file storage model.
|
|
14
8
|
* Use FileStorageAccount with Credential Engine instead.
|
|
@@ -21,10 +15,10 @@ const FileStorageBase_1 = require("./generic/FileStorageBase");
|
|
|
21
15
|
* @returns A promise resolving to an initialized FileStorageBase driver
|
|
22
16
|
* @throws Error if the provider requires OAuth (not yet supported in enterprise model)
|
|
23
17
|
*/
|
|
24
|
-
async function initializeDriverWithUserCredentials(options) {
|
|
18
|
+
export async function initializeDriverWithUserCredentials(options) {
|
|
25
19
|
const { providerEntity } = options;
|
|
26
20
|
// Create the driver instance
|
|
27
|
-
const driver =
|
|
21
|
+
const driver = MJGlobal.Instance.ClassFactory.CreateInstance(FileStorageBase, providerEntity.ServerDriverKey);
|
|
28
22
|
// Check if this provider requires OAuth authentication
|
|
29
23
|
if (providerEntity.RequiresOAuth) {
|
|
30
24
|
// TODO: Implement Credential Engine integration for OAuth providers
|
|
@@ -42,7 +36,6 @@ async function initializeDriverWithUserCredentials(options) {
|
|
|
42
36
|
}
|
|
43
37
|
return driver;
|
|
44
38
|
}
|
|
45
|
-
exports.initializeDriverWithUserCredentials = initializeDriverWithUserCredentials;
|
|
46
39
|
/**
|
|
47
40
|
* Initializes a storage driver using account-based credentials from the Credential Engine.
|
|
48
41
|
* This is the enterprise model where credentials are stored in the Credential entity
|
|
@@ -67,10 +60,10 @@ exports.initializeDriverWithUserCredentials = initializeDriverWithUserCredential
|
|
|
67
60
|
* const objects = await driver.ListObjects('/');
|
|
68
61
|
* ```
|
|
69
62
|
*/
|
|
70
|
-
async function initializeDriverWithAccountCredentials(options) {
|
|
63
|
+
export async function initializeDriverWithAccountCredentials(options) {
|
|
71
64
|
const { accountEntity, providerEntity, contextUser } = options;
|
|
72
65
|
// Create the driver instance using the provider's driver key
|
|
73
|
-
const driver =
|
|
66
|
+
const driver = MJGlobal.Instance.ClassFactory.CreateInstance(FileStorageBase, providerEntity.ServerDriverKey);
|
|
74
67
|
if (!driver) {
|
|
75
68
|
throw new Error(`Failed to create storage driver for provider "${providerEntity.Name}" ` + `with driver key "${providerEntity.ServerDriverKey}"`);
|
|
76
69
|
}
|
|
@@ -82,24 +75,24 @@ async function initializeDriverWithAccountCredentials(options) {
|
|
|
82
75
|
// Check if the account has a credential configured
|
|
83
76
|
if (accountEntity.CredentialID) {
|
|
84
77
|
// Initialize the Credential Engine if not already done
|
|
85
|
-
await
|
|
78
|
+
await CredentialEngine.Instance.Config(false, contextUser);
|
|
86
79
|
// Get the credential by ID and decrypt it
|
|
87
|
-
const credentialEntity =
|
|
80
|
+
const credentialEntity = CredentialEngine.Instance.getCredentialById(accountEntity.CredentialID);
|
|
88
81
|
if (!credentialEntity) {
|
|
89
82
|
throw new Error(`Credential with ID ${accountEntity.CredentialID} not found for account "${accountEntity.Name}"`);
|
|
90
83
|
}
|
|
91
84
|
// Resolve the credential to get decrypted values
|
|
92
|
-
const resolved = await
|
|
85
|
+
const resolved = await CredentialEngine.Instance.getCredential(credentialEntity.Name, {
|
|
93
86
|
credentialId: accountEntity.CredentialID,
|
|
94
87
|
contextUser,
|
|
95
88
|
subsystem: 'FileStorage',
|
|
96
89
|
});
|
|
97
|
-
|
|
90
|
+
LogStatus(`[initializeDriverWithAccountCredentials] Decrypted credential "${credentialEntity.Name}" for account "${accountEntity.Name}"`);
|
|
98
91
|
// Create a token refresh callback to persist new tokens back to the database
|
|
99
92
|
// This is critical for providers like Box.com that issue new refresh tokens on each refresh
|
|
100
93
|
const onTokenRefresh = async (newRefreshToken, newAccessToken) => {
|
|
101
94
|
try {
|
|
102
|
-
|
|
95
|
+
LogStatus(`[initializeDriverWithAccountCredentials] Token refresh callback invoked for account "${accountEntity.Name}"`);
|
|
103
96
|
// Get the current credential values and update with new tokens
|
|
104
97
|
const updatedValues = { ...resolved.values };
|
|
105
98
|
updatedValues.refreshToken = newRefreshToken;
|
|
@@ -107,8 +100,8 @@ async function initializeDriverWithAccountCredentials(options) {
|
|
|
107
100
|
updatedValues.accessToken = newAccessToken;
|
|
108
101
|
}
|
|
109
102
|
// Update the credential in the database using the Credential Engine
|
|
110
|
-
await
|
|
111
|
-
|
|
103
|
+
await CredentialEngine.Instance.updateCredential(accountEntity.CredentialID, updatedValues, contextUser);
|
|
104
|
+
LogStatus(`[initializeDriverWithAccountCredentials] Successfully persisted new tokens for account "${accountEntity.Name}"`);
|
|
112
105
|
}
|
|
113
106
|
catch (error) {
|
|
114
107
|
// Log the error but don't throw - the driver still has the tokens in memory
|
|
@@ -136,17 +129,16 @@ async function initializeDriverWithAccountCredentials(options) {
|
|
|
136
129
|
...baseConfig,
|
|
137
130
|
...config,
|
|
138
131
|
});
|
|
139
|
-
|
|
132
|
+
LogStatus(`[initializeDriverWithAccountCredentials] Initialized "${accountEntity.Name}" with provider configuration (no credential)`);
|
|
140
133
|
}
|
|
141
134
|
else {
|
|
142
135
|
// Initialize with just account info (driver may use env vars or other config)
|
|
143
136
|
await driver.initialize(baseConfig);
|
|
144
|
-
|
|
137
|
+
LogStatus(`[initializeDriverWithAccountCredentials] Warning: No credential or configuration for account "${accountEntity.Name}"`);
|
|
145
138
|
}
|
|
146
139
|
}
|
|
147
140
|
return driver;
|
|
148
141
|
}
|
|
149
|
-
exports.initializeDriverWithAccountCredentials = initializeDriverWithAccountCredentials;
|
|
150
142
|
/**
|
|
151
143
|
* Internal helper to initialize a storage driver with appropriate credentials.
|
|
152
144
|
*
|
|
@@ -177,7 +169,7 @@ async function initializeDriver(providerEntity, userContext) {
|
|
|
177
169
|
});
|
|
178
170
|
}
|
|
179
171
|
// No user context - use admin/legacy initialization
|
|
180
|
-
const driver =
|
|
172
|
+
const driver = MJGlobal.Instance.ClassFactory.CreateInstance(FileStorageBase, providerEntity.ServerDriverKey);
|
|
181
173
|
// Check if this provider requires OAuth but no user context was provided
|
|
182
174
|
if (providerEntity.RequiresOAuth) {
|
|
183
175
|
throw new Error(`Provider "${providerEntity.Name}" requires OAuth authentication. ` + `Please provide userContext parameter with userID and contextUser.`);
|
|
@@ -239,9 +231,9 @@ async function initializeDriver(providerEntity, userContext) {
|
|
|
239
231
|
* console.log(result.UploadUrl);
|
|
240
232
|
* ```
|
|
241
233
|
*/
|
|
242
|
-
const createUploadUrl = async (providerEntity, input, userContext) => {
|
|
234
|
+
export const createUploadUrl = async (providerEntity, input, userContext) => {
|
|
243
235
|
const { Name, ProviderID } = input;
|
|
244
|
-
const ContentType = input.ContentType ??
|
|
236
|
+
const ContentType = input.ContentType ?? mime.lookup(input.Name) ?? 'application/octet-stream';
|
|
245
237
|
const Status = 'Uploading';
|
|
246
238
|
await providerEntity.Load(ProviderID);
|
|
247
239
|
// Initialize driver with user credentials if available, otherwise use admin config
|
|
@@ -250,7 +242,6 @@ const createUploadUrl = async (providerEntity, input, userContext) => {
|
|
|
250
242
|
const updatedInput = { ...input, ...maybeProviderKey, ContentType, Status };
|
|
251
243
|
return { updatedInput, UploadUrl };
|
|
252
244
|
};
|
|
253
|
-
exports.createUploadUrl = createUploadUrl;
|
|
254
245
|
/**
|
|
255
246
|
* Creates a pre-authenticated download URL for a file from the specified file storage provider.
|
|
256
247
|
*
|
|
@@ -280,11 +271,10 @@ exports.createUploadUrl = createUploadUrl;
|
|
|
280
271
|
* console.log(downloadUrl);
|
|
281
272
|
* ```
|
|
282
273
|
*/
|
|
283
|
-
const createDownloadUrl = async (providerEntity, providerKeyOrName, userContext) => {
|
|
274
|
+
export const createDownloadUrl = async (providerEntity, providerKeyOrName, userContext) => {
|
|
284
275
|
const driver = await initializeDriver(providerEntity, userContext);
|
|
285
276
|
return driver.CreatePreAuthDownloadUrl(providerKeyOrName);
|
|
286
277
|
};
|
|
287
|
-
exports.createDownloadUrl = createDownloadUrl;
|
|
288
278
|
/**
|
|
289
279
|
* Moves an object from one location to another within the specified file storage provider.
|
|
290
280
|
*
|
|
@@ -319,11 +309,10 @@ exports.createDownloadUrl = createDownloadUrl;
|
|
|
319
309
|
* }
|
|
320
310
|
* ```
|
|
321
311
|
*/
|
|
322
|
-
const moveObject = async (providerEntity, oldProviderKeyOrName, newProviderKeyOrName, userContext) => {
|
|
312
|
+
export const moveObject = async (providerEntity, oldProviderKeyOrName, newProviderKeyOrName, userContext) => {
|
|
323
313
|
const driver = await initializeDriver(providerEntity, userContext);
|
|
324
314
|
return driver.MoveObject(oldProviderKeyOrName, newProviderKeyOrName);
|
|
325
315
|
};
|
|
326
|
-
exports.moveObject = moveObject;
|
|
327
316
|
/**
|
|
328
317
|
* Copies an object from one location to another within the specified file storage provider.
|
|
329
318
|
*
|
|
@@ -354,11 +343,10 @@ exports.moveObject = moveObject;
|
|
|
354
343
|
* }
|
|
355
344
|
* ```
|
|
356
345
|
*/
|
|
357
|
-
const copyObject = async (providerEntity, sourceProviderKeyOrName, destinationProviderKeyOrName, userContext) => {
|
|
346
|
+
export const copyObject = async (providerEntity, sourceProviderKeyOrName, destinationProviderKeyOrName, userContext) => {
|
|
358
347
|
const driver = await initializeDriver(providerEntity, userContext);
|
|
359
348
|
return driver.CopyObject(sourceProviderKeyOrName, destinationProviderKeyOrName);
|
|
360
349
|
};
|
|
361
|
-
exports.copyObject = copyObject;
|
|
362
350
|
/**
|
|
363
351
|
* Deletes a file from the specified file storage provider.
|
|
364
352
|
*
|
|
@@ -390,7 +378,7 @@ exports.copyObject = copyObject;
|
|
|
390
378
|
* }
|
|
391
379
|
* ```
|
|
392
380
|
*/
|
|
393
|
-
const deleteObject = async (providerEntity, providerKeyOrName, userContext) => {
|
|
381
|
+
export const deleteObject = async (providerEntity, providerKeyOrName, userContext) => {
|
|
394
382
|
console.log('[deleteObject] Called with:', {
|
|
395
383
|
providerName: providerEntity.Name,
|
|
396
384
|
providerID: providerEntity.ID,
|
|
@@ -407,7 +395,6 @@ const deleteObject = async (providerEntity, providerKeyOrName, userContext) => {
|
|
|
407
395
|
console.log('[deleteObject] Result:', result);
|
|
408
396
|
return result;
|
|
409
397
|
};
|
|
410
|
-
exports.deleteObject = deleteObject;
|
|
411
398
|
/**
|
|
412
399
|
* Lists objects (files) and prefixes (directories) in a storage provider at the specified path.
|
|
413
400
|
*
|
|
@@ -443,7 +430,7 @@ exports.deleteObject = deleteObject;
|
|
|
443
430
|
* const docsResult = await listObjects(fileStorageProvider, 'documents/', '/', userContext);
|
|
444
431
|
* ```
|
|
445
432
|
*/
|
|
446
|
-
const listObjects = async (providerEntity, prefix, delimiter = '/', userContext) => {
|
|
433
|
+
export const listObjects = async (providerEntity, prefix, delimiter = '/', userContext) => {
|
|
447
434
|
console.log('[listObjects] Starting with:', {
|
|
448
435
|
providerName: providerEntity.Name,
|
|
449
436
|
serverDriverKey: providerEntity.ServerDriverKey,
|
|
@@ -463,7 +450,6 @@ const listObjects = async (providerEntity, prefix, delimiter = '/', userContext)
|
|
|
463
450
|
});
|
|
464
451
|
return result;
|
|
465
452
|
};
|
|
466
|
-
exports.listObjects = listObjects;
|
|
467
453
|
/**
|
|
468
454
|
* Copies a file from one storage provider to another.
|
|
469
455
|
*
|
|
@@ -500,7 +486,7 @@ exports.listObjects = listObjects;
|
|
|
500
486
|
* }
|
|
501
487
|
* ```
|
|
502
488
|
*/
|
|
503
|
-
const copyObjectBetweenProviders = async (sourceProviderEntity, destinationProviderEntity, sourcePath, destinationPath, options) => {
|
|
489
|
+
export const copyObjectBetweenProviders = async (sourceProviderEntity, destinationProviderEntity, sourcePath, destinationPath, options) => {
|
|
504
490
|
console.log('[copyObjectBetweenProviders] Starting transfer:', {
|
|
505
491
|
sourceProvider: sourceProviderEntity.Name,
|
|
506
492
|
destinationProvider: destinationProviderEntity.Name,
|
|
@@ -546,7 +532,7 @@ const copyObjectBetweenProviders = async (sourceProviderEntity, destinationProvi
|
|
|
546
532
|
}
|
|
547
533
|
catch {
|
|
548
534
|
// Use mime-types to guess content type from filename
|
|
549
|
-
const mimeType =
|
|
535
|
+
const mimeType = mime.lookup(sourcePath);
|
|
550
536
|
if (mimeType) {
|
|
551
537
|
contentType = mimeType;
|
|
552
538
|
}
|
|
@@ -573,7 +559,6 @@ const copyObjectBetweenProviders = async (sourceProviderEntity, destinationProvi
|
|
|
573
559
|
return result;
|
|
574
560
|
}
|
|
575
561
|
};
|
|
576
|
-
exports.copyObjectBetweenProviders = copyObjectBetweenProviders;
|
|
577
562
|
/**
|
|
578
563
|
* Searches for files across multiple storage providers in parallel.
|
|
579
564
|
*
|
|
@@ -614,7 +599,7 @@ exports.copyObjectBetweenProviders = copyObjectBetweenProviders;
|
|
|
614
599
|
* }
|
|
615
600
|
* ```
|
|
616
601
|
*/
|
|
617
|
-
const searchAcrossProviders = async (providerEntities, query, options) => {
|
|
602
|
+
export const searchAcrossProviders = async (providerEntities, query, options) => {
|
|
618
603
|
console.log('[searchAcrossProviders] Starting search:', {
|
|
619
604
|
providerCount: providerEntities.length,
|
|
620
605
|
providers: providerEntities.map((p) => p.Name),
|
|
@@ -702,7 +687,6 @@ const searchAcrossProviders = async (providerEntities, query, options) => {
|
|
|
702
687
|
});
|
|
703
688
|
return aggregatedResult;
|
|
704
689
|
};
|
|
705
|
-
exports.searchAcrossProviders = searchAcrossProviders;
|
|
706
690
|
/**
|
|
707
691
|
* Searches for files across multiple storage accounts in parallel.
|
|
708
692
|
*
|
|
@@ -736,7 +720,7 @@ exports.searchAcrossProviders = searchAcrossProviders;
|
|
|
736
720
|
* }
|
|
737
721
|
* ```
|
|
738
722
|
*/
|
|
739
|
-
const searchAcrossAccounts = async (accounts, query, options) => {
|
|
723
|
+
export const searchAcrossAccounts = async (accounts, query, options) => {
|
|
740
724
|
console.log('[searchAcrossAccounts] Starting search:', {
|
|
741
725
|
accountCount: accounts.length,
|
|
742
726
|
accounts: accounts.map((a) => ({ account: a.accountEntity.Name, provider: a.providerEntity.Name })),
|
|
@@ -830,5 +814,4 @@ const searchAcrossAccounts = async (accounts, query, options) => {
|
|
|
830
814
|
});
|
|
831
815
|
return aggregatedResult;
|
|
832
816
|
};
|
|
833
|
-
exports.searchAcrossAccounts = searchAcrossAccounts;
|
|
834
817
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AACA,mDAAkD;AAClD,+CAA2D;AAC3D,6DAA+D;AAC/D,4DAA8B;AAC9B,+DAAwH;AAwCxH;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,mCAAmC,CAAC,OAAiC;IACzF,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEnC,6BAA6B;IAC7B,MAAM,MAAM,GAAG,iBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAkB,iCAAe,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAE/H,uDAAuD;IACvD,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;QACjC,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,IAAI,KAAK,CACb,aAAa,cAAc,CAAC,IAAI,mCAAmC,GAAG,wEAAwE,CAC/I,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,kEAAkE;QAClE,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,qDAAqD,cAAc,CAAC,IAAI,2BAA2B,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAxBD,kFAwBC;AA+BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,sCAAsC,CAAC,OAAoC;IAC/F,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE/D,6DAA6D;IAC7D,MAAM,MAAM,GAAG,iBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAkB,iCAAe,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAE/H,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,cAAc,CAAC,IAAI,IAAI,GAAG,oBAAoB,cAAc,CAAC,eAAe,GAAG,CAAC,CAAC;IACpJ,CAAC;IAED,gFAAgF;IAChF,MAAM,UAAU,GAA0B;QACxC,SAAS,EAAE,aAAa,CAAC,EAAE;QAC3B,WAAW,EAAE,aAAa,CAAC,IAAI;KAChC,CAAC;IAEF,mDAAmD;IACnD,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC;QAC/B,uDAAuD;QACvD,MAAM,8BAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE3D,0CAA0C;QAC1C,MAAM,gBAAgB,GAAG,8BAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEjG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sBAAsB,aAAa,CAAC,YAAY,2BAA2B,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QACpH,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,8BAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACpF,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,WAAW;YACX,SAAS,EAAE,aAAa;SACzB,CAAC,CAAC;QAEH,IAAA,gBAAS,EAAC,kEAAkE,gBAAgB,CAAC,IAAI,kBAAkB,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QAE1I,6EAA6E;QAC7E,4FAA4F;QAC5F,MAAM,cAAc,GAAyB,KAAK,EAAE,eAAuB,EAAE,cAAuB,EAAE,EAAE;YACtG,IAAI,CAAC;gBACH,IAAA,gBAAS,EAAC,wFAAwF,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;gBAEzH,+DAA+D;gBAC/D,MAAM,aAAa,GAA2B,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrE,aAAa,CAAC,YAAY,GAAG,eAAe,CAAC;gBAC7C,IAAI,cAAc,EAAE,CAAC;oBACnB,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;gBAC7C,CAAC;gBAED,oEAAoE;gBACpE,MAAM,8BAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;gBAEzG,IAAA,gBAAS,EAAC,2FAA2F,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;YAC9H,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4EAA4E;gBAC5E,0EAA0E;gBAC1E,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,OAAO,CAAC,KAAK,CAAC,sFAAsF,aAAa,CAAC,IAAI,MAAM,YAAY,EAAE,CAAC,CAAC;gBAC5I,OAAO,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;YACnH,CAAC;QACH,CAAC,CAAC;QAEF,+CAA+C;QAC/C,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;QAE3C,iGAAiG;QACjG,MAAM,MAAM,CAAC,UAAU,CAAC;YACtB,GAAG,UAAU;YACb,GAAG,QAAQ,CAAC,MAAM;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,iDAAiD;YACjD,MAAM,MAAM,CAAC,UAAU,CAAC;gBACtB,GAAG,UAAU;gBACb,GAAG,MAAM;aACV,CAAC,CAAC;YACH,IAAA,gBAAS,EAAC,yDAAyD,aAAa,CAAC,IAAI,+CAA+C,CAAC,CAAC;QACxI,CAAC;aAAM,CAAC;YACN,8EAA8E;YAC9E,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACpC,IAAA,gBAAS,EAAC,iGAAiG,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;QACpI,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA1FD,wFA0FC;AAWD;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,gBAAgB,CAAC,cAAyC,EAAE,WAAwC;IACjH,+EAA+E;IAC/E,IAAI,WAAW,EAAE,aAAa,EAAE,CAAC;QAC/B,OAAO,sCAAsC,CAAC;YAC5C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,cAAc;YACd,WAAW,EAAE,WAAW,CAAC,WAAW;SACrC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,mCAAmC,CAAC;YACzC,cAAc;YACd,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,WAAW,EAAE,WAAW,CAAC,WAAW;SACrC,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,MAAM,MAAM,GAAG,iBAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAkB,iCAAe,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAE/H,yEAAyE;IACzE,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,aAAa,cAAc,CAAC,IAAI,mCAAmC,GAAG,mEAAmE,CAAC,CAAC;IAC7J,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAkB,CAAC;IACxE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACI,MAAM,eAAe,GAAG,KAAK,EAClC,cAAyC,EACzC,KAAa,EACb,WAAgC,EAI/B,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAEnC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,oBAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC;IAC/F,MAAM,MAAM,GAAG,WAAW,CAAC;IAE3B,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEtC,mFAAmF;IACnF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEnE,MAAM,EAAE,SAAS,EAAE,GAAG,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,YAAY,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAE5E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;AACrC,CAAC,CAAC;AAtBW,QAAA,eAAe,mBAsB1B;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,cAAyC,EACzC,iBAAyB,EACzB,WAAgC,EACf,EAAE;IACnB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAPW,QAAA,iBAAiB,qBAO5B;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACI,MAAM,UAAU,GAAG,KAAK,EAC7B,cAAyC,EACzC,oBAA4B,EAC5B,oBAA4B,EAC5B,WAAgC,EACd,EAAE;IACpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AACvE,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACI,MAAM,UAAU,GAAG,KAAK,EAC7B,cAAyC,EACzC,uBAA+B,EAC/B,4BAAoC,EACpC,WAAgC,EACd,EAAE;IACpB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,4BAA4B,CAAC,CAAC;AAClF,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACI,MAAM,YAAY,GAAG,KAAK,EAC/B,cAAyC,EACzC,iBAAyB,EACzB,WAAgC,EACd,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE;QACzC,YAAY,EAAE,cAAc,CAAC,IAAI;QACjC,UAAU,EAAE,cAAc,CAAC,EAAE;QAC7B,eAAe,EAAE,cAAc,CAAC,eAAe;QAC/C,iBAAiB;KAClB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE;QAChD,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;QACnC,eAAe,EAAE,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU;KAC3D,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAxBW,QAAA,YAAY,gBAwBvB;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACI,MAAM,WAAW,GAAG,KAAK,EAC9B,cAAyC,EACzC,MAAc,EACd,YAAoB,GAAG,EACvB,WAAgC,EACgC,EAAE;IAClE,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE;QAC1C,YAAY,EAAE,cAAc,CAAC,IAAI;QACjC,eAAe,EAAE,cAAc,CAAC,eAAe;QAC/C,MAAM;QACN,SAAS;QACT,cAAc,EAAE,CAAC,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAEnE,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE;QAC/C,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;QACnC,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE;QACnC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;QACnC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;KACtC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA5BW,QAAA,WAAW,eA4BtB;AAyBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,MAAM,0BAA0B,GAAG,KAAK,EAC7C,oBAA+C,EAC/C,yBAAoD,EACpD,UAAkB,EAClB,eAAuB,EACvB,OAAqC,EACA,EAAE;IACvC,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE;QAC7D,cAAc,EAAE,oBAAoB,CAAC,IAAI;QACzC,mBAAmB,EAAE,yBAAyB,CAAC,IAAI;QACnD,UAAU;QACV,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,MAAM,GAA+B;QACzC,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,oBAAoB,CAAC,IAAI;QACzC,mBAAmB,EAAE,yBAAyB,CAAC,IAAI;QACnD,UAAU;QACV,eAAe;KAChB,CAAC;IAEF,IAAI,CAAC;QACH,8DAA8D;QAC9D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAE9F,mEAAmE;QACnE,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC;QAEtG,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAE9F,uFAAuF;QACvF,2EAA2E;QAC3E,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE;YAC9D,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,GAAG,wCAAwC,oBAAoB,EAAE,CAAC;YAChF,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5F,gCAAgC;QAChC,IAAI,WAAW,GAAG,0BAA0B,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAC1F,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzB,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;YACrD,MAAM,QAAQ,GAAG,oBAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yEAAyE,EAAE,WAAW,CAAC,CAAC;QAEpG,iCAAiC;QACjC,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEzF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC1C,MAAM,CAAC,OAAO,GAAG,uBAAuB,QAAQ,CAAC,MAAM,eAAe,oBAAoB,CAAC,IAAI,OAAO,yBAAyB,CAAC,IAAI,EAAE,CAAC;YACvI,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,GAAG,yCAAyC,eAAe,EAAE,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9E,MAAM,CAAC,OAAO,GAAG,oBAAoB,YAAY,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAxFW,QAAA,0BAA0B,8BAwFrC;AAoDF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,gBAA6C,EAC7C,KAAa,EACb,OAAsC,EACF,EAAE;IACtC,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE;QACtD,aAAa,EAAE,gBAAgB,CAAC,MAAM;QACtC,SAAS,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,KAAK;QACL,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE;KACnG,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,OAAO,EAAE,qBAAqB,IAAI,EAAE,CAAC;IACxD,MAAM,aAAa,GAAsB;QACvC,UAAU;QACV,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,KAAK;KAC/C,CAAC;IAEF,2CAA2C;IAC3C,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAiC,EAAE;QAClG,MAAM,cAAc,GAAyB;YAC3C,UAAU,EAAE,cAAc,CAAC,EAAE;YAC7B,YAAY,EAAE,cAAc,CAAC,IAAI;YACjC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;gBACnC,cAAc,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,2BAA2B,cAAc,CAAC,IAAI,2BAA2B,CAAC,CAAC;gBACvF,OAAO,cAAc,CAAC;YACxB,CAAC;YAED,kDAAkD;YAClD,MAAM,WAAW,GAAG,OAAO,EAAE,oBAAoB,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAE1E,uDAAuD;YACvD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAEnE,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,2BAA2B,cAAc,CAAC,IAAI,uBAAuB,CAAC,CAAC;YACnF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAEpE,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAC9B,cAAc,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAC9C,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;YACxD,cAAc,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAC9C,cAAc,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;YAE1D,OAAO,CAAC,GAAG,CAAC,2BAA2B,cAAc,CAAC,IAAI,WAAW,YAAY,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAC9G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,2BAA2B,cAAc,CAAC,IAAI,WAAW,EAAE,YAAY,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAEhE,oBAAoB;IACpB,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,mBAAmB,EAAE,CAAC;gBACtB,oBAAoB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAA8B;QAClD,eAAe;QACf,oBAAoB;QACpB,mBAAmB;QACnB,eAAe;KAChB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE;QACtD,oBAAoB;QACpB,mBAAmB;QACnB,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAxGW,QAAA,qBAAqB,yBAwGhC;AAkEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACI,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAA8B,EAC9B,KAAa,EACb,OAAoC,EACD,EAAE;IACrC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE;QACrD,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,KAAK;QACL,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;QAClD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;IACtD,MAAM,aAAa,GAAsB;QACvC,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;KAC9C,CAAC;IAEF,0CAA0C;IAC1C,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,EAAgC,EAAE;QAC5G,MAAM,aAAa,GAAwB;YACzC,SAAS,EAAE,aAAa,CAAC,EAAE;YAC3B,WAAW,EAAE,aAAa,CAAC,IAAI;YAC/B,UAAU,EAAE,cAAc,CAAC,EAAE;YAC7B,YAAY,EAAE,cAAc,CAAC,IAAI;YACjC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK;SACf,CAAC;QAEF,IAAI,CAAC;YACH,oCAAoC;YACpC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;gBACnC,aAAa,CAAC,YAAY,GAAG,uCAAuC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,0BAA0B,aAAa,CAAC,IAAI,oCAAoC,CAAC,CAAC;gBAC9F,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,mDAAmD;YACnD,MAAM,MAAM,GAAG,MAAM,sCAAsC,CAAC;gBAC1D,aAAa;gBACb,cAAc;gBACd,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;YAEH,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,0BAA0B,aAAa,CAAC,IAAI,uBAAuB,CAAC,CAAC;YACjF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAEpE,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,aAAa,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAC7C,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;YACvD,aAAa,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAC7C,aAAa,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;YAEzD,OAAO,CAAC,GAAG,CAAC,0BAA0B,aAAa,CAAC,IAAI,WAAW,YAAY,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,0BAA0B,aAAa,CAAC,IAAI,WAAW,EAAE,YAAY,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAEhE,oBAAoB;IACpB,MAAM,cAAc,GAA0B,EAAE,CAAC;IACjD,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE5B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,kBAAkB,EAAE,CAAC;gBACrB,oBAAoB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wEAAwE;YACxE,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAA6B;QACjD,cAAc;QACd,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;KACf,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE;QACrD,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AA7GW,QAAA,oBAAoB,wBA6G/B"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/storage",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "4.0.0",
|
|
4
5
|
"description": "This library provides a set of objects that handle the interface between the server-side API and various cloud storage providers.",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
@@ -9,7 +10,7 @@
|
|
|
9
10
|
],
|
|
10
11
|
"scripts": {
|
|
11
12
|
"start": "ts-node-dev src/index.ts",
|
|
12
|
-
"build": "tsc",
|
|
13
|
+
"build": "tsc && tsc-alias -f",
|
|
13
14
|
"watch": "tsc -w",
|
|
14
15
|
"test": "jest",
|
|
15
16
|
"test:watch": "jest --watch",
|
|
@@ -18,34 +19,34 @@
|
|
|
18
19
|
"author": "MemberJunction.com",
|
|
19
20
|
"license": "ISC",
|
|
20
21
|
"devDependencies": {
|
|
21
|
-
"@types/jest": "^
|
|
22
|
-
"jest": "^
|
|
23
|
-
"ts-jest": "^29.
|
|
22
|
+
"@types/jest": "^30.0.0",
|
|
23
|
+
"jest": "^30.2.0",
|
|
24
|
+
"ts-jest": "^29.4.6",
|
|
24
25
|
"ts-node-dev": "^2.0.0",
|
|
25
|
-
"typescript": "^5.
|
|
26
|
+
"typescript": "^5.9.3"
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|
|
28
|
-
"@aws-sdk/client-s3": "^3.
|
|
29
|
-
"@aws-sdk/s3-request-presigner": "^3.
|
|
30
|
-
"@azure/identity": "^4.0
|
|
31
|
-
"@azure/storage-blob": "^12.
|
|
32
|
-
"@google-cloud/storage": "^7.
|
|
33
|
-
"@memberjunction/core": "
|
|
34
|
-
"@memberjunction/core-entities": "
|
|
35
|
-
"@memberjunction/credentials": "
|
|
36
|
-
"@memberjunction/global": "
|
|
37
|
-
"@microsoft/mgt-element": "^
|
|
38
|
-
"@microsoft/mgt-msal2-provider": "^
|
|
39
|
-
"@microsoft/mgt-sharepoint-provider": "^
|
|
29
|
+
"@aws-sdk/client-s3": "^3.984.0",
|
|
30
|
+
"@aws-sdk/s3-request-presigner": "^3.984.0",
|
|
31
|
+
"@azure/identity": "^4.13.0",
|
|
32
|
+
"@azure/storage-blob": "^12.30.0",
|
|
33
|
+
"@google-cloud/storage": "^7.19.0",
|
|
34
|
+
"@memberjunction/core": "4.0.0",
|
|
35
|
+
"@memberjunction/core-entities": "4.0.0",
|
|
36
|
+
"@memberjunction/credentials": "4.0.0",
|
|
37
|
+
"@memberjunction/global": "4.0.0",
|
|
38
|
+
"@microsoft/mgt-element": "^4.6.0",
|
|
39
|
+
"@microsoft/mgt-msal2-provider": "^4.6.0",
|
|
40
|
+
"@microsoft/mgt-sharepoint-provider": "^4.6.0",
|
|
40
41
|
"@microsoft/microsoft-graph-client": "^3.0.7",
|
|
41
|
-
"@microsoft/microsoft-graph-types": "^2.
|
|
42
|
-
"box-node-sdk": "^10.
|
|
42
|
+
"@microsoft/microsoft-graph-types": "^2.43.1",
|
|
43
|
+
"box-node-sdk": "^10.3.0",
|
|
43
44
|
"cosmiconfig": "^9.0.0",
|
|
44
45
|
"dropbox": "^10.34.0",
|
|
45
46
|
"env-var": "^7.4.1",
|
|
46
|
-
"googleapis": "^
|
|
47
|
-
"mime-types": "^
|
|
48
|
-
"zod": "
|
|
47
|
+
"googleapis": "^171.4.0",
|
|
48
|
+
"mime-types": "^3.0.2",
|
|
49
|
+
"zod": "~3.24.4"
|
|
49
50
|
},
|
|
50
51
|
"repository": {
|
|
51
52
|
"type": "git",
|
package/readme.md
CHANGED
|
@@ -53,19 +53,71 @@ This package depends on:
|
|
|
53
53
|
|
|
54
54
|
## Usage
|
|
55
55
|
|
|
56
|
-
###
|
|
56
|
+
### Standard Usage Pattern
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
**CRITICAL**: Always follow these steps when using storage providers:
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
1. Create provider instance
|
|
61
|
+
2. **Call `initialize()`** (with or without config)
|
|
62
|
+
3. Use provider
|
|
63
|
+
|
|
64
|
+
The `initialize()` method is smart enough to handle both simple deployments (environment variables) and multi-tenant deployments (database credentials).
|
|
65
|
+
|
|
66
|
+
### Basic Setup - Simple Deployment (Environment Variables)
|
|
67
|
+
|
|
68
|
+
For single-tenant applications, development, testing, or simple production deployments:
|
|
61
69
|
|
|
62
|
-
#### Azure Blob Storage Example
|
|
63
70
|
```bash
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
# Example: Azure Blob Storage
|
|
72
|
+
export STORAGE_AZURE_CONTAINER=your-container-name
|
|
73
|
+
export STORAGE_AZURE_ACCOUNT_NAME=your-account-name
|
|
74
|
+
export STORAGE_AZURE_ACCOUNT_KEY=your-account-key
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { AzureFileStorage } from '@memberjunction/storage';
|
|
79
|
+
|
|
80
|
+
// Constructor loads environment variables
|
|
81
|
+
const storage = new AzureFileStorage();
|
|
82
|
+
|
|
83
|
+
// ALWAYS call initialize() - no config needed for env var deployments
|
|
84
|
+
await storage.initialize();
|
|
85
|
+
|
|
86
|
+
// Provider is now ready to use
|
|
87
|
+
await storage.ListObjects('/');
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Multi-Tenant Enterprise (Database Credentials)
|
|
91
|
+
|
|
92
|
+
For enterprise applications managing multiple storage accounts:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import { FileStorageEngine } from '@memberjunction/core-entities';
|
|
96
|
+
import { initializeDriverWithAccountCredentials } from '@memberjunction/storage/util';
|
|
97
|
+
|
|
98
|
+
// Load account from database
|
|
99
|
+
const engine = FileStorageEngine.Instance;
|
|
100
|
+
await engine.Config(false, contextUser);
|
|
101
|
+
|
|
102
|
+
const accountWithProvider = engine.GetAccountWithProvider(accountId);
|
|
103
|
+
|
|
104
|
+
// Infrastructure utility handles credential decryption and initialization
|
|
105
|
+
const storage = await initializeDriverWithAccountCredentials({
|
|
106
|
+
accountEntity: accountWithProvider.account,
|
|
107
|
+
providerEntity: accountWithProvider.provider,
|
|
108
|
+
contextUser
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
// Provider is ready - credentials were automatically decrypted and initialized
|
|
112
|
+
await storage.ListObjects('/');
|
|
67
113
|
```
|
|
68
114
|
|
|
115
|
+
**Key Advantage**: The `initializeDriverWithAccountCredentials()` utility:
|
|
116
|
+
- Automatically retrieves the credential by ID
|
|
117
|
+
- Decrypts it using CredentialEngine
|
|
118
|
+
- Calls `initialize()` with the decrypted values
|
|
119
|
+
- Returns a fully configured provider instance
|
|
120
|
+
|
|
69
121
|
### Using Utility Functions (Recommended)
|
|
70
122
|
|
|
71
123
|
The library provides high-level utility functions that work with MemberJunction's entity system:
|
|
@@ -119,27 +171,41 @@ async function fileOperationsExample() {
|
|
|
119
171
|
|
|
120
172
|
### Direct Provider Usage
|
|
121
173
|
|
|
122
|
-
You can
|
|
174
|
+
You can work directly with a storage provider by instantiating it:
|
|
123
175
|
|
|
124
176
|
```typescript
|
|
125
177
|
import { FileStorageBase } from '@memberjunction/storage';
|
|
126
178
|
import { MJGlobal } from '@memberjunction/global';
|
|
127
179
|
|
|
128
180
|
async function directProviderExample() {
|
|
129
|
-
//
|
|
130
|
-
const storage =
|
|
131
|
-
|
|
181
|
+
// Method 1: Direct instantiation (simple deployment with env vars)
|
|
182
|
+
const storage = new AzureFileStorage(); // Constructor loads env vars
|
|
183
|
+
await storage.initialize(); // ALWAYS call initialize()
|
|
184
|
+
|
|
185
|
+
// Method 2: Using class factory (dynamic provider selection)
|
|
186
|
+
const storage2 = MJGlobal.Instance.ClassFactory.CreateInstance<FileStorageBase>(
|
|
187
|
+
FileStorageBase,
|
|
132
188
|
'Azure Blob Storage'
|
|
133
189
|
);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
190
|
+
await storage2.initialize(); // ALWAYS call initialize()
|
|
191
|
+
|
|
192
|
+
// Method 3: Multi-tenant with manual initialization
|
|
193
|
+
const storage3 = new AzureFileStorage();
|
|
194
|
+
await storage3.initialize({
|
|
195
|
+
accountId: '12345',
|
|
196
|
+
accountName: 'Azure Account',
|
|
197
|
+
accountName: 'myaccount',
|
|
198
|
+
accountKey: '...',
|
|
199
|
+
defaultContainer: 'my-container'
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
// Now you can use any of the storage methods:
|
|
203
|
+
|
|
138
204
|
// List all files in a directory
|
|
139
205
|
const result = await storage.ListObjects('documents/');
|
|
140
206
|
console.log('Files:', result.objects);
|
|
141
207
|
console.log('Directories:', result.prefixes);
|
|
142
|
-
|
|
208
|
+
|
|
143
209
|
// Display detailed metadata for each file
|
|
144
210
|
for (const file of result.objects) {
|
|
145
211
|
console.log(`\nFile: ${file.name}`);
|
|
@@ -150,54 +216,61 @@ async function directProviderExample() {
|
|
|
150
216
|
console.log(` Modified: ${file.lastModified}`);
|
|
151
217
|
console.log(` Is Directory: ${file.isDirectory}`);
|
|
152
218
|
}
|
|
153
|
-
|
|
219
|
+
|
|
154
220
|
// Create a directory
|
|
155
221
|
const dirCreated = await storage.CreateDirectory('documents/reports/');
|
|
156
222
|
console.log(`Directory created: ${dirCreated}`);
|
|
157
|
-
|
|
223
|
+
|
|
158
224
|
// Upload a file directly with metadata
|
|
159
225
|
const content = Buffer.from('Hello, World!');
|
|
160
226
|
const uploaded = await storage.PutObject(
|
|
161
|
-
'documents/reports/hello.txt',
|
|
162
|
-
content,
|
|
227
|
+
'documents/reports/hello.txt',
|
|
228
|
+
content,
|
|
163
229
|
'text/plain',
|
|
164
|
-
{
|
|
230
|
+
{
|
|
165
231
|
author: 'John Doe',
|
|
166
232
|
department: 'Engineering',
|
|
167
|
-
version: '1.0'
|
|
233
|
+
version: '1.0'
|
|
168
234
|
}
|
|
169
235
|
);
|
|
170
236
|
console.log(`File uploaded: ${uploaded}`);
|
|
171
|
-
|
|
237
|
+
|
|
172
238
|
// Get file metadata without downloading content
|
|
173
239
|
const metadata = await storage.GetObjectMetadata('documents/reports/hello.txt');
|
|
174
240
|
console.log('File metadata:', metadata);
|
|
175
|
-
|
|
241
|
+
|
|
176
242
|
// Download file content
|
|
177
243
|
const fileContent = await storage.GetObject('documents/reports/hello.txt');
|
|
178
244
|
console.log('File content:', fileContent.toString('utf8'));
|
|
179
|
-
|
|
245
|
+
|
|
180
246
|
// Copy a file
|
|
181
247
|
const copied = await storage.CopyObject(
|
|
182
|
-
'documents/reports/hello.txt',
|
|
248
|
+
'documents/reports/hello.txt',
|
|
183
249
|
'documents/archive/hello-backup.txt'
|
|
184
250
|
);
|
|
185
251
|
console.log(`File copied: ${copied}`);
|
|
186
|
-
|
|
252
|
+
|
|
187
253
|
// Check if a file exists
|
|
188
254
|
const exists = await storage.ObjectExists('documents/reports/hello.txt');
|
|
189
255
|
console.log(`File exists: ${exists}`);
|
|
190
|
-
|
|
256
|
+
|
|
191
257
|
// Check if a directory exists
|
|
192
258
|
const dirExists = await storage.DirectoryExists('documents/reports/');
|
|
193
259
|
console.log(`Directory exists: ${dirExists}`);
|
|
194
|
-
|
|
260
|
+
|
|
195
261
|
// Delete a directory and all its contents
|
|
196
262
|
const dirDeleted = await storage.DeleteDirectory('documents/reports/', true);
|
|
197
263
|
console.log(`Directory deleted: ${dirDeleted}`);
|
|
198
264
|
}
|
|
199
265
|
```
|
|
200
266
|
|
|
267
|
+
### Key Principle
|
|
268
|
+
|
|
269
|
+
**Always call `initialize()`** after creating a provider instance. It's smart enough to:
|
|
270
|
+
- Use environment variables when called with no config
|
|
271
|
+
- Override with database credentials when called with config
|
|
272
|
+
- Handle both simple and multi-tenant deployments seamlessly
|
|
273
|
+
|
|
201
274
|
### Searching Files
|
|
202
275
|
|
|
203
276
|
Providers with native search capabilities support the `SearchFiles` method for finding files by name, content, and metadata:
|
|
@@ -345,6 +418,7 @@ type FileSearchResultSet = {
|
|
|
345
418
|
|
|
346
419
|
All storage providers implement these methods:
|
|
347
420
|
|
|
421
|
+
- **`initialize(config?: StorageProviderConfig): Promise<void>`** - **REQUIRED**: Always call after creating instance. Omit config for env vars, provide config for multi-tenant.
|
|
348
422
|
- `CreatePreAuthUploadUrl(objectName: string): Promise<CreatePreAuthUploadUrlPayload>`
|
|
349
423
|
- `CreatePreAuthDownloadUrl(objectName: string): Promise<string>`
|
|
350
424
|
- `MoveObject(oldObjectName: string, newObjectName: string): Promise<boolean>`
|
|
@@ -359,7 +433,6 @@ All storage providers implement these methods:
|
|
|
359
433
|
- `ObjectExists(objectName: string): Promise<boolean>`
|
|
360
434
|
- `DirectoryExists(directoryPath: string): Promise<boolean>`
|
|
361
435
|
- `SearchFiles(query: string, options?: FileSearchOptions): Promise<FileSearchResultSet>` (throws `UnsupportedOperationError` for providers without native search)
|
|
362
|
-
- `initialize(): Promise<void>` (optional, for async initialization)
|
|
363
436
|
|
|
364
437
|
### Utility Functions
|
|
365
438
|
|