@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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
/**
|
|
3
2
|
* Represents the payload returned by the CreatePreAuthUploadUrl method.
|
|
4
3
|
* This type contains the necessary information for uploading a file to a storage provider.
|
|
@@ -216,26 +215,41 @@ export declare class UnsupportedOperationError extends Error {
|
|
|
216
215
|
* Configuration options for initializing a storage provider.
|
|
217
216
|
* This interface defines the standard configuration that can be passed to initialize().
|
|
218
217
|
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
218
|
+
* ## Usage Patterns
|
|
219
|
+
*
|
|
220
|
+
* ### Simple Deployment (Environment Variables)
|
|
221
|
+
* - Omit accountId when using environment variables
|
|
222
|
+
* - Constructor loads credentials automatically
|
|
223
|
+
* - Call initialize() with no config or empty object
|
|
224
|
+
*
|
|
225
|
+
* ### Multi-Tenant Enterprise (Database)
|
|
226
|
+
* - Provide accountId to link driver to FileStorageAccount
|
|
227
|
+
* - Include decrypted credentials from database
|
|
228
|
+
* - Or use initializeDriverWithAccountCredentials() utility
|
|
222
229
|
*/
|
|
223
230
|
export interface StorageProviderConfig {
|
|
224
231
|
/**
|
|
225
232
|
* The ID of the FileStorageAccount entity this driver instance is operating for.
|
|
226
233
|
* This links the driver to a specific organizational storage account.
|
|
227
234
|
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
235
|
+
* **Optional**: Provide for multi-tenant mode to track account association.
|
|
236
|
+
* Omit for simple deployment using environment variables.
|
|
230
237
|
*/
|
|
231
|
-
accountId
|
|
238
|
+
accountId?: string;
|
|
232
239
|
/**
|
|
233
240
|
* The name of the account (for logging/display purposes).
|
|
241
|
+
*
|
|
242
|
+
* **Optional**: Useful for logging and debugging in multi-tenant scenarios.
|
|
234
243
|
*/
|
|
235
244
|
accountName?: string;
|
|
236
245
|
/**
|
|
237
246
|
* Provider-specific configuration values (e.g., API keys, bucket names, etc.).
|
|
238
|
-
*
|
|
247
|
+
*
|
|
248
|
+
* **Simple Deployment**: Not needed - constructor loads from environment variables.
|
|
249
|
+
* **Multi-Tenant**: Provide decrypted credentials from Credential entity.
|
|
250
|
+
*
|
|
251
|
+
* If provided, these values override the constructor defaults.
|
|
252
|
+
* If omitted, uses credentials already loaded by constructor.
|
|
239
253
|
*/
|
|
240
254
|
[key: string]: unknown;
|
|
241
255
|
}
|
|
@@ -654,52 +668,72 @@ export declare abstract class FileStorageBase {
|
|
|
654
668
|
*/
|
|
655
669
|
abstract DirectoryExists(directoryPath: string): Promise<boolean>;
|
|
656
670
|
/**
|
|
657
|
-
*
|
|
671
|
+
* Initialize storage provider with optional configuration.
|
|
658
672
|
*
|
|
659
|
-
*
|
|
660
|
-
* account association and can be overridden by subclasses to perform provider-specific
|
|
661
|
-
* initialization such as setting up access tokens, establishing connections, or
|
|
662
|
-
* verifying permissions.
|
|
673
|
+
* ## Standard Usage Pattern
|
|
663
674
|
*
|
|
664
|
-
*
|
|
665
|
-
* Subclass implementations should call super.initialize(config) first to ensure these
|
|
666
|
-
* values are properly set before performing provider-specific initialization.
|
|
675
|
+
* **ALWAYS call this method** after creating a provider instance.
|
|
667
676
|
*
|
|
668
|
-
*
|
|
669
|
-
*
|
|
670
|
-
*
|
|
671
|
-
* (e.g., API keys, bucket names) are typically decrypted from the associated
|
|
672
|
-
* Credential entity.
|
|
677
|
+
* ### Simple Deployment (Environment Variables)
|
|
678
|
+
* Constructor loads credentials from environment variables, then call
|
|
679
|
+
* initialize() with no config to complete setup:
|
|
673
680
|
*
|
|
674
|
-
* @example
|
|
675
681
|
* ```typescript
|
|
676
|
-
* //
|
|
677
|
-
*
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
*
|
|
681
|
-
*
|
|
682
|
-
*
|
|
683
|
-
*
|
|
684
|
-
*
|
|
685
|
-
*
|
|
686
|
-
* }
|
|
682
|
+
* // Set environment variables:
|
|
683
|
+
* // STORAGE_AWS_ACCESS_KEY_ID=...
|
|
684
|
+
* // STORAGE_AWS_SECRET_ACCESS_KEY=...
|
|
685
|
+
* // STORAGE_AWS_BUCKET_NAME=...
|
|
686
|
+
* // STORAGE_AWS_REGION=...
|
|
687
|
+
*
|
|
688
|
+
* const storage = new AWSFileStorage(); // Constructor loads env vars
|
|
689
|
+
* await storage.initialize(); // No config - uses env vars
|
|
690
|
+
* await storage.ListObjects('/'); // Ready to use
|
|
691
|
+
* ```
|
|
687
692
|
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
693
|
+
* ### Multi-Tenant Enterprise (Database)
|
|
694
|
+
* Constructor loads defaults, then call initialize() with configuration
|
|
695
|
+
* to override with database credentials and track account:
|
|
696
|
+
*
|
|
697
|
+
* ```typescript
|
|
698
|
+
* // Preferred: Use infrastructure utility
|
|
699
|
+
* const storage = await initializeDriverWithAccountCredentials({
|
|
700
|
+
* accountEntity,
|
|
701
|
+
* providerEntity,
|
|
702
|
+
* contextUser
|
|
703
|
+
* });
|
|
704
|
+
*
|
|
705
|
+
* // Alternative: Manual initialization
|
|
706
|
+
* const storage = new AWSFileStorage();
|
|
690
707
|
* await storage.initialize({
|
|
691
|
-
* accountId:
|
|
692
|
-
* accountName:
|
|
693
|
-
*
|
|
694
|
-
* secretAccessKey:
|
|
695
|
-
*
|
|
708
|
+
* accountId: account.id,
|
|
709
|
+
* accountName: account.name,
|
|
710
|
+
* accessKeyID: creds.accessKeyID,
|
|
711
|
+
* secretAccessKey: creds.secretAccessKey,
|
|
712
|
+
* region: creds.region,
|
|
713
|
+
* defaultBucket: creds.bucket
|
|
696
714
|
* });
|
|
697
|
-
* // Now the provider is ready to use
|
|
698
715
|
* ```
|
|
699
716
|
*
|
|
700
|
-
*
|
|
717
|
+
* ## How It Works
|
|
718
|
+
*
|
|
719
|
+
* - **No config**: Uses credentials already loaded by constructor from environment variables
|
|
720
|
+
* - **With config**: Overrides constructor credentials with provided values
|
|
721
|
+
* - **accountId**: Optional - provide for multi-tenant tracking
|
|
722
|
+
*
|
|
723
|
+
* ## Implementation Notes for Subclasses
|
|
724
|
+
*
|
|
725
|
+
* Subclass implementations should:
|
|
726
|
+
* 1. Call super.initialize(config) first to set accountId and accountName
|
|
727
|
+
* 2. Check if config is provided before attempting to override credentials
|
|
728
|
+
* 3. Only override values that are present in config
|
|
729
|
+
* 4. Reinitialize client/connection if credentials changed
|
|
730
|
+
*
|
|
731
|
+
* @param config - Optional configuration object
|
|
732
|
+
* - Omit for simple deployment (uses env vars from constructor)
|
|
733
|
+
* - Provide for multi-tenant (overrides with database credentials)
|
|
734
|
+
* @returns A Promise that resolves when initialization is complete
|
|
701
735
|
*/
|
|
702
|
-
initialize(config
|
|
736
|
+
initialize(config?: StorageProviderConfig): Promise<void>;
|
|
703
737
|
/**
|
|
704
738
|
* Checks whether this storage provider is properly configured and ready to use.
|
|
705
739
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStorageBase.d.ts","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileStorageBase.d.ts","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileStorageBase = exports.UnsupportedOperationError = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Error thrown when a storage provider does not support a particular operation.
|
|
6
3
|
* This custom error provides clear information about which operation was attempted
|
|
7
4
|
* and which provider doesn't support it.
|
|
8
5
|
*/
|
|
9
|
-
class UnsupportedOperationError extends Error {
|
|
6
|
+
export class UnsupportedOperationError extends Error {
|
|
10
7
|
/**
|
|
11
8
|
* Creates a new UnsupportedOperationError instance.
|
|
12
9
|
*
|
|
@@ -18,7 +15,6 @@ class UnsupportedOperationError extends Error {
|
|
|
18
15
|
this.name = 'UnsupportedOperationError';
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
exports.UnsupportedOperationError = UnsupportedOperationError;
|
|
22
18
|
/**
|
|
23
19
|
* Represents an abstract base class for file storage operations.
|
|
24
20
|
*
|
|
@@ -41,16 +37,7 @@ exports.UnsupportedOperationError = UnsupportedOperationError;
|
|
|
41
37
|
* - When a storage provider doesn't support a particular operation, implementations should throw UnsupportedOperationError
|
|
42
38
|
* - Each instance operates on behalf of a specific FileStorageAccount (identified by accountId)
|
|
43
39
|
*/
|
|
44
|
-
class FileStorageBase {
|
|
45
|
-
/**
|
|
46
|
-
* The ID of the FileStorageAccount this driver instance is operating for.
|
|
47
|
-
* Set during initialization via the config parameter.
|
|
48
|
-
*/
|
|
49
|
-
_accountId;
|
|
50
|
-
/**
|
|
51
|
-
* The name of the FileStorageAccount (for logging/display purposes).
|
|
52
|
-
*/
|
|
53
|
-
_accountName;
|
|
40
|
+
export class FileStorageBase {
|
|
54
41
|
/**
|
|
55
42
|
* Gets the account ID this driver instance is operating for.
|
|
56
43
|
* Returns undefined if the driver was not initialized with an account.
|
|
@@ -76,56 +63,77 @@ class FileStorageBase {
|
|
|
76
63
|
throw new UnsupportedOperationError(methodName, this.providerName);
|
|
77
64
|
}
|
|
78
65
|
/**
|
|
79
|
-
*
|
|
66
|
+
* Initialize storage provider with optional configuration.
|
|
80
67
|
*
|
|
81
|
-
*
|
|
82
|
-
* account association and can be overridden by subclasses to perform provider-specific
|
|
83
|
-
* initialization such as setting up access tokens, establishing connections, or
|
|
84
|
-
* verifying permissions.
|
|
68
|
+
* ## Standard Usage Pattern
|
|
85
69
|
*
|
|
86
|
-
*
|
|
87
|
-
* Subclass implementations should call super.initialize(config) first to ensure these
|
|
88
|
-
* values are properly set before performing provider-specific initialization.
|
|
70
|
+
* **ALWAYS call this method** after creating a provider instance.
|
|
89
71
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* (e.g., API keys, bucket names) are typically decrypted from the associated
|
|
94
|
-
* Credential entity.
|
|
72
|
+
* ### Simple Deployment (Environment Variables)
|
|
73
|
+
* Constructor loads credentials from environment variables, then call
|
|
74
|
+
* initialize() with no config to complete setup:
|
|
95
75
|
*
|
|
96
|
-
* @example
|
|
97
76
|
* ```typescript
|
|
98
|
-
* //
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
77
|
+
* // Set environment variables:
|
|
78
|
+
* // STORAGE_AWS_ACCESS_KEY_ID=...
|
|
79
|
+
* // STORAGE_AWS_SECRET_ACCESS_KEY=...
|
|
80
|
+
* // STORAGE_AWS_BUCKET_NAME=...
|
|
81
|
+
* // STORAGE_AWS_REGION=...
|
|
102
82
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
83
|
+
* const storage = new AWSFileStorage(); // Constructor loads env vars
|
|
84
|
+
* await storage.initialize(); // No config - uses env vars
|
|
85
|
+
* await storage.ListObjects('/'); // Ready to use
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* ### Multi-Tenant Enterprise (Database)
|
|
89
|
+
* Constructor loads defaults, then call initialize() with configuration
|
|
90
|
+
* to override with database credentials and track account:
|
|
109
91
|
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
92
|
+
* ```typescript
|
|
93
|
+
* // Preferred: Use infrastructure utility
|
|
94
|
+
* const storage = await initializeDriverWithAccountCredentials({
|
|
95
|
+
* accountEntity,
|
|
96
|
+
* providerEntity,
|
|
97
|
+
* contextUser
|
|
98
|
+
* });
|
|
99
|
+
*
|
|
100
|
+
* // Alternative: Manual initialization
|
|
101
|
+
* const storage = new AWSFileStorage();
|
|
112
102
|
* await storage.initialize({
|
|
113
|
-
* accountId:
|
|
114
|
-
* accountName:
|
|
115
|
-
*
|
|
116
|
-
* secretAccessKey:
|
|
117
|
-
*
|
|
103
|
+
* accountId: account.id,
|
|
104
|
+
* accountName: account.name,
|
|
105
|
+
* accessKeyID: creds.accessKeyID,
|
|
106
|
+
* secretAccessKey: creds.secretAccessKey,
|
|
107
|
+
* region: creds.region,
|
|
108
|
+
* defaultBucket: creds.bucket
|
|
118
109
|
* });
|
|
119
|
-
* // Now the provider is ready to use
|
|
120
110
|
* ```
|
|
121
111
|
*
|
|
122
|
-
*
|
|
112
|
+
* ## How It Works
|
|
113
|
+
*
|
|
114
|
+
* - **No config**: Uses credentials already loaded by constructor from environment variables
|
|
115
|
+
* - **With config**: Overrides constructor credentials with provided values
|
|
116
|
+
* - **accountId**: Optional - provide for multi-tenant tracking
|
|
117
|
+
*
|
|
118
|
+
* ## Implementation Notes for Subclasses
|
|
119
|
+
*
|
|
120
|
+
* Subclass implementations should:
|
|
121
|
+
* 1. Call super.initialize(config) first to set accountId and accountName
|
|
122
|
+
* 2. Check if config is provided before attempting to override credentials
|
|
123
|
+
* 3. Only override values that are present in config
|
|
124
|
+
* 4. Reinitialize client/connection if credentials changed
|
|
125
|
+
*
|
|
126
|
+
* @param config - Optional configuration object
|
|
127
|
+
* - Omit for simple deployment (uses env vars from constructor)
|
|
128
|
+
* - Provide for multi-tenant (overrides with database credentials)
|
|
129
|
+
* @returns A Promise that resolves when initialization is complete
|
|
123
130
|
*/
|
|
124
131
|
async initialize(config) {
|
|
125
|
-
// Extract and store account information from the config
|
|
126
|
-
|
|
127
|
-
|
|
132
|
+
// Extract and store account information from the config if provided
|
|
133
|
+
if (config) {
|
|
134
|
+
this._accountId = config.accountId;
|
|
135
|
+
this._accountName = config.accountName;
|
|
136
|
+
}
|
|
128
137
|
}
|
|
129
138
|
}
|
|
130
|
-
exports.FileStorageBase = FileStorageBase;
|
|
131
139
|
//# sourceMappingURL=FileStorageBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileStorageBase.js","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FileStorageBase.js","sourceRoot":"","sources":["../../src/generic/FileStorageBase.ts"],"names":[],"mappings":"AAkOA;;;;GAIG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD;;;;;OAKG;IACH,YAAY,UAAkB,EAAE,YAAoB;QAClD,KAAK,CAAC,cAAc,UAAU,6BAA6B,YAAY,WAAW,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AA+CD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAgB,eAAe;IAkBnC;;;OAGG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACO,8BAA8B,CAAC,UAAkB;QACzD,MAAM,IAAI,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACrE,CAAC;IAsXD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiEG;IACI,KAAK,CAAC,UAAU,CAAC,MAA8B;QACpD,oEAAoE;QACpE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QACzC,CAAC;IACH,CAAC;CA8GF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from './drivers/AWSFileStorage';
|
|
2
|
-
export * from './drivers/AzureFileStorage';
|
|
3
|
-
export * from './drivers/GoogleFileStorage';
|
|
4
|
-
export * from './drivers/GoogleDriveFileStorage';
|
|
5
|
-
export * from './drivers/SharePointFileStorage';
|
|
6
|
-
export * from './drivers/DropboxFileStorage';
|
|
7
|
-
export * from './drivers/BoxFileStorage';
|
|
8
|
-
export * from './generic/FileStorageBase';
|
|
9
|
-
export * from './util';
|
|
10
|
-
export * from './config';
|
|
1
|
+
export * from './drivers/AWSFileStorage.js';
|
|
2
|
+
export * from './drivers/AzureFileStorage.js';
|
|
3
|
+
export * from './drivers/GoogleFileStorage.js';
|
|
4
|
+
export * from './drivers/GoogleDriveFileStorage.js';
|
|
5
|
+
export * from './drivers/SharePointFileStorage.js';
|
|
6
|
+
export * from './drivers/DropboxFileStorage.js';
|
|
7
|
+
export * from './drivers/BoxFileStorage.js';
|
|
8
|
+
export * from './generic/FileStorageBase.js';
|
|
9
|
+
export * from './util.js';
|
|
10
|
+
export * from './config.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./drivers/AWSFileStorage"), exports);
|
|
18
|
-
__exportStar(require("./drivers/AzureFileStorage"), exports);
|
|
19
|
-
__exportStar(require("./drivers/GoogleFileStorage"), exports);
|
|
20
|
-
__exportStar(require("./drivers/GoogleDriveFileStorage"), exports);
|
|
21
|
-
__exportStar(require("./drivers/SharePointFileStorage"), exports);
|
|
22
|
-
__exportStar(require("./drivers/DropboxFileStorage"), exports);
|
|
23
|
-
__exportStar(require("./drivers/BoxFileStorage"), exports);
|
|
24
|
-
__exportStar(require("./generic/FileStorageBase"), exports);
|
|
25
|
-
__exportStar(require("./util"), exports);
|
|
26
|
-
__exportStar(require("./config"), exports);
|
|
1
|
+
export * from './drivers/AWSFileStorage.js';
|
|
2
|
+
export * from './drivers/AzureFileStorage.js';
|
|
3
|
+
export * from './drivers/GoogleFileStorage.js';
|
|
4
|
+
export * from './drivers/GoogleDriveFileStorage.js';
|
|
5
|
+
export * from './drivers/SharePointFileStorage.js';
|
|
6
|
+
export * from './drivers/DropboxFileStorage.js';
|
|
7
|
+
export * from './drivers/BoxFileStorage.js';
|
|
8
|
+
export * from './generic/FileStorageBase.js';
|
|
9
|
+
export * from './util.js';
|
|
10
|
+
export * from './config.js';
|
|
27
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FileStorageProviderEntity, FileStorageAccountEntity } from '@memberjunction/core-entities';
|
|
2
2
|
import { UserInfo } from '@memberjunction/core';
|
|
3
|
-
import { FileStorageBase, FileSearchResult } from './generic/FileStorageBase';
|
|
3
|
+
import { FileStorageBase, FileSearchResult } from './generic/FileStorageBase.js';
|
|
4
4
|
/**
|
|
5
5
|
* Callback function called when a new refresh token is issued.
|
|
6
6
|
* This is important for providers like Box that issue new refresh tokens with each refresh.
|
|
@@ -329,7 +329,7 @@ export declare const deleteObject: (providerEntity: FileStorageProviderEntity, p
|
|
|
329
329
|
* const docsResult = await listObjects(fileStorageProvider, 'documents/', '/', userContext);
|
|
330
330
|
* ```
|
|
331
331
|
*/
|
|
332
|
-
export declare const listObjects: (providerEntity: FileStorageProviderEntity, prefix: string, delimiter?: string, userContext?: UserContextOptions) => Promise<import(
|
|
332
|
+
export declare const listObjects: (providerEntity: FileStorageProviderEntity, prefix: string, delimiter?: string, userContext?: UserContextOptions) => Promise<import("./generic/FileStorageBase.js").StorageListResult>;
|
|
333
333
|
/**
|
|
334
334
|
* Result of a cross-provider copy operation
|
|
335
335
|
*/
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEpG,OAAO,EAAa,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAqB,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AAExH;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvG;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,cAAc,EAAE,yBAAyB,CAAC;IAC1C,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mCAAmC,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,eAAe,CAAC,CAwBrH;AAOD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,8DAA8D;IAC9D,aAAa,EAAE,wBAAwB,CAAC;IACxC,uEAAuE;IACvE,cAAc,EAAE,yBAAyB,CAAC;IAC1C,iEAAiE;IACjE,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,sCAAsC,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,eAAe,CAAC,CA0F3H;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,8DAA8D;IAC9D,aAAa,CAAC,EAAE,wBAAwB,CAAC;CAC1C;AAmDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,eAAO,MAAM,eAAe;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|