@memberjunction/storage 3.1.1 → 3.2.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.
Files changed (47) hide show
  1. package/dist/__tests__/FileStorageBase.test.d.ts +6 -0
  2. package/dist/__tests__/FileStorageBase.test.d.ts.map +1 -0
  3. package/dist/__tests__/FileStorageBase.test.js +213 -0
  4. package/dist/__tests__/FileStorageBase.test.js.map +1 -0
  5. package/dist/__tests__/util.test.d.ts +7 -0
  6. package/dist/__tests__/util.test.d.ts.map +1 -0
  7. package/dist/__tests__/util.test.js +326 -0
  8. package/dist/__tests__/util.test.js.map +1 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +28 -14
  11. package/dist/config.js.map +1 -1
  12. package/dist/drivers/AWSFileStorage.d.ts +20 -0
  13. package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
  14. package/dist/drivers/AWSFileStorage.js +43 -18
  15. package/dist/drivers/AWSFileStorage.js.map +1 -1
  16. package/dist/drivers/AzureFileStorage.d.ts +1 -1
  17. package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
  18. package/dist/drivers/AzureFileStorage.js +17 -17
  19. package/dist/drivers/AzureFileStorage.js.map +1 -1
  20. package/dist/drivers/BoxFileStorage.d.ts +47 -1
  21. package/dist/drivers/BoxFileStorage.d.ts.map +1 -1
  22. package/dist/drivers/BoxFileStorage.js +219 -95
  23. package/dist/drivers/BoxFileStorage.js.map +1 -1
  24. package/dist/drivers/DropboxFileStorage.d.ts +59 -0
  25. package/dist/drivers/DropboxFileStorage.d.ts.map +1 -1
  26. package/dist/drivers/DropboxFileStorage.js +314 -62
  27. package/dist/drivers/DropboxFileStorage.js.map +1 -1
  28. package/dist/drivers/GoogleDriveFileStorage.d.ts +29 -0
  29. package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -1
  30. package/dist/drivers/GoogleDriveFileStorage.js +220 -72
  31. package/dist/drivers/GoogleDriveFileStorage.js.map +1 -1
  32. package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
  33. package/dist/drivers/GoogleFileStorage.js +12 -12
  34. package/dist/drivers/GoogleFileStorage.js.map +1 -1
  35. package/dist/drivers/SharePointFileStorage.d.ts +64 -5
  36. package/dist/drivers/SharePointFileStorage.d.ts.map +1 -1
  37. package/dist/drivers/SharePointFileStorage.js +265 -94
  38. package/dist/drivers/SharePointFileStorage.js.map +1 -1
  39. package/dist/generic/FileStorageBase.d.ts +79 -13
  40. package/dist/generic/FileStorageBase.d.ts.map +1 -1
  41. package/dist/generic/FileStorageBase.js +57 -12
  42. package/dist/generic/FileStorageBase.js.map +1 -1
  43. package/dist/util.d.ts +429 -11
  44. package/dist/util.d.ts.map +1 -1
  45. package/dist/util.js +677 -16
  46. package/dist/util.js.map +1 -1
  47. package/package.json +11 -5
@@ -1,5 +1,36 @@
1
1
  /// <reference types="node" />
2
2
  import { CreatePreAuthUploadUrlPayload, FileSearchOptions, FileSearchResultSet, FileStorageBase, GetObjectParams, GetObjectMetadataParams, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
3
+ /**
4
+ * Callback function called when a new refresh token is issued.
5
+ * Box issues a new refresh token with every token refresh, invalidating the old one.
6
+ */
7
+ type TokenRefreshCallback = (newRefreshToken: string, newAccessToken?: string) => Promise<void>;
8
+ import { StorageProviderConfig } from '../generic/FileStorageBase';
9
+ /**
10
+ * Configuration interface for Box storage provider.
11
+ * Supports OAuth2 authentication with refresh token.
12
+ * Extends StorageProviderConfig to include accountId and accountName.
13
+ */
14
+ interface BoxConfig extends StorageProviderConfig {
15
+ /** OAuth2 Client ID */
16
+ clientID?: string;
17
+ /** OAuth2 Client Secret */
18
+ clientSecret?: string;
19
+ /** OAuth2 Refresh Token */
20
+ refreshToken?: string;
21
+ /** OAuth2 Access Token (short-lived) */
22
+ accessToken?: string;
23
+ /** Box Enterprise ID for JWT auth */
24
+ enterpriseID?: string;
25
+ /** Optional root folder ID to restrict operations */
26
+ rootFolderID?: string;
27
+ /**
28
+ * Callback called when a new refresh token is issued.
29
+ * CRITICAL: Box issues new refresh tokens with each refresh, invalidating the old one.
30
+ * This callback must be used to persist the new token.
31
+ */
32
+ onTokenRefresh?: TokenRefreshCallback;
33
+ }
3
34
  /**
4
35
  * FileStorageBase implementation for Box.com cloud storage
5
36
  *
@@ -92,6 +123,11 @@ export declare class BoxFileStorage extends FileStorageBase {
92
123
  * Box SDK client for making API calls
93
124
  */
94
125
  private _client;
126
+ /**
127
+ * Callback to persist new refresh tokens when they are issued.
128
+ * Box issues new refresh tokens with each token refresh.
129
+ */
130
+ private _onTokenRefresh?;
95
131
  /**
96
132
  * Creates a new BoxFileStorage instance
97
133
  *
@@ -112,6 +148,10 @@ export declare class BoxFileStorage extends FileStorageBase {
112
148
  * This method must be called after creating a BoxFileStorage instance.
113
149
  * It initializes the Box SDK and creates the client for API calls.
114
150
  *
151
+ * Can optionally accept a config object with OAuth credentials, which is used
152
+ * for per-user OAuth authentication where credentials come from the database.
153
+ *
154
+ * @param config - Optional configuration object containing OAuth2 credentials
115
155
  * @returns A Promise that resolves when initialization is complete
116
156
  *
117
157
  * @example
@@ -121,7 +161,7 @@ export declare class BoxFileStorage extends FileStorageBase {
121
161
  * // Now the storage provider is ready to use
122
162
  * ```
123
163
  */
124
- initialize(): Promise<void>;
164
+ initialize(config?: BoxConfig): Promise<void>;
125
165
  /**
126
166
  * Obtains an access token using client credentials flow
127
167
  *
@@ -365,6 +405,11 @@ export declare class BoxFileStorage extends FileStorageBase {
365
405
  * ```
366
406
  */
367
407
  ListObjects(prefix: string, delimiter?: string): Promise<StorageListResult>;
408
+ /**
409
+ * Ensures we have a valid access token, refreshing if necessary.
410
+ * Also reinitializes the Box client with the new token.
411
+ */
412
+ private _ensureValidToken;
368
413
  /**
369
414
  * Creates a new directory (folder) in Box storage
370
415
  *
@@ -742,4 +787,5 @@ export declare class BoxFileStorage extends FileStorageBase {
742
787
  */
743
788
  private _isObjectId;
744
789
  }
790
+ export {};
745
791
  //# sourceMappingURL=BoxFileStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoxFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/BoxFileStorage.ts"],"names":[],"mappings":";AAGA,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EAEjB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAWpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBACa,cAAe,SAAQ,eAAe;IACjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,SAAS;IAExC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,SAAS,CAAS;IAE1B;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAa;IAEpC;;OAEG;IACH,OAAO,CAAC,WAAW,CAAqC;IAExD;;OAEG;IACH,OAAO,CAAC,aAAa,CAA4C;IAEjE;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,OAAO,CAAC,OAAO,CAAY;IAE3B;;;;;;;OAOG;;IAsBH;;;OAGG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;;;;;;;;;;;;;OAcG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxC;;;;;;;;;OASG;YACW,eAAe;IA8B7B;;;;;OAKG;YACW,mBAAmB;IA8BjC;;;;;;;;;;;;;;OAcG;IACU,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB3C;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU;IA0BlB;;;;;;;;;;OAUG;YACW,cAAc;IAK5B;;;;;OAKG;YACW,oBAAoB;IAyElC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACU,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IA6B/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgDvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyCrF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACU,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAmC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAoDxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuD/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA2ChE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;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;IAyEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACU,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyClG;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCrE;;;;;;;;;;;OAWG;YACW,mBAAmB;IAgEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACU,WAAW,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IA8I/B;;;;;;;;;OASG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAIpB"}
1
+ {"version":3,"file":"BoxFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/BoxFileStorage.ts"],"names":[],"mappings":"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"}