@memberjunction/storage 2.32.0 → 2.32.2

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.
@@ -1,24 +1,38 @@
1
1
  /// <reference types="node" />
2
2
  import { CreatePreAuthUploadUrlPayload, FileStorageBase, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
3
3
  export declare class BoxFileStorage extends FileStorageBase {
4
- protected readonly providerName = "Box.com";
5
- private _client;
4
+ protected readonly providerName = "Box";
5
+ private _accessToken;
6
+ private _refreshToken;
7
+ private _clientId;
8
+ private _clientSecret;
9
+ private _tokenExpiresAt;
10
+ private _baseApiUrl;
11
+ private _uploadApiUrl;
6
12
  private _rootFolderId;
7
13
  constructor();
8
14
  /**
9
- * Find a file or folder by path
15
+ * Ensures we have a valid access token
10
16
  */
11
- private _getItemByPath;
17
+ private _ensureValidToken;
12
18
  /**
13
- * Ensures a folder exists at the given path, creating it if necessary
19
+ * Make an authenticated API request to Box
14
20
  */
15
- private _getOrCreateFolder;
21
+ private _apiRequest;
16
22
  /**
17
- * Converts a Box item to StorageObjectMetadata
23
+ * Parse a Box API path into folder ID and name components
24
+ */
25
+ private _parsePath;
26
+ /**
27
+ * Get item ID by path
28
+ */
29
+ private _getIdFromPath;
30
+ /**
31
+ * Convert Box item to StorageObjectMetadata
18
32
  */
19
33
  private _convertToMetadata;
20
34
  /**
21
- * Box doesn't support pre-auth upload URLs directly
35
+ * Create a pre-authenticated upload URL
22
36
  */
23
37
  CreatePreAuthUploadUrl(objectName: string): Promise<CreatePreAuthUploadUrlPayload>;
24
38
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BoxFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/BoxFileStorage.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,qBACa,cAAe,SAAQ,eAAe;IACjD,SAAS,CAAC,QAAQ,CAAC,YAAY,aAAa;IAC5C,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,aAAa,CAAS;;IAyD9B;;OAEG;YACW,cAAc;IAmD5B;;OAEG;YACW,kBAAkB;IAoChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;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;IA2BvF;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB/D;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuCrF;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBrE;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAoCxF;;OAEG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiBlF;;OAEG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkC3D;;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;IAuCnB;;OAEG;IACU,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BlG;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAatE"}
1
+ {"version":3,"file":"BoxFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/BoxFileStorage.ts"],"names":[],"mappings":";AAGA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,qBACa,cAAe,SAAQ,eAAe;IACjD,SAAS,CAAC,QAAQ,CAAC,YAAY,SAAS;IAExC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,aAAa,CAA4C;IACjE,OAAO,CAAC,aAAa,CAAS;;IAuB9B;;OAEG;YACW,iBAAiB;IA+C/B;;OAEG;YACW,WAAW;IA6CzB;;OAEG;IACH,OAAO,CAAC,UAAU;IA0BlB;;OAEG;YACW,cAAc;IAgC5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACU,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAoC/F;;OAEG;IACU,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB1E;;OAEG;IACU,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCvF;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B/D;;OAEG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuCrF;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CrE;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA4CxF;;OAEG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuBlF;;OAEG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB3D;;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;IAyGnB;;OAEG;IACU,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqClG;;OAEG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D;;OAEG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAetE"}
@@ -31,12 +31,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
31
31
  var __metadata = (this && this.__metadata) || function (k, v) {
32
32
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
33
  };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
34
  Object.defineProperty(exports, "__esModule", { value: true });
38
35
  exports.BoxFileStorage = void 0;
39
- const box_node_sdk_1 = __importDefault(require("box-node-sdk"));
40
36
  const global_1 = require("@memberjunction/global");
41
37
  const env = __importStar(require("env-var"));
42
38
  const mime = __importStar(require("mime-types"));
@@ -44,178 +40,233 @@ const FileStorageBase_1 = require("../generic/FileStorageBase");
44
40
  let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageBase {
45
41
  constructor() {
46
42
  super();
47
- this.providerName = 'Box.com';
48
- const clientId = env.get('STORAGE_BOX_CLIENT_ID').required().asString();
49
- const clientSecret = env.get('STORAGE_BOX_CLIENT_SECRET').required().asString();
50
- const enterpriseId = env.get('STORAGE_BOX_ENTERPRISE_ID').asString();
51
- const userId = env.get('STORAGE_BOX_USER_ID').asString();
52
- // Configuration for Box SDK
53
- const config = {
54
- boxAppSettings: {
55
- clientID: clientId,
56
- clientSecret: clientSecret
57
- }
58
- };
59
- // Private key auth or app token auth
60
- if (env.get('STORAGE_BOX_PRIVATE_KEY').asString()) {
61
- // Using JWT auth
62
- const privateKey = env.get('STORAGE_BOX_PRIVATE_KEY').required().asString();
63
- const passphrase = env.get('STORAGE_BOX_PASSPHRASE').asString();
64
- config.boxAppSettings.appAuth = {
65
- publicKeyID: env.get('STORAGE_BOX_PUBLIC_KEY_ID').required().asString(),
66
- privateKey: privateKey,
67
- passphrase: passphrase
68
- };
69
- const sdk = box_node_sdk_1.default.getPreconfiguredInstance(config);
70
- // Get client using JWT auth
71
- if (enterpriseId) {
72
- // Enterprise auth
73
- this._client = sdk.getAppAuthClient('enterprise', enterpriseId);
74
- }
75
- else if (userId) {
76
- // User auth
77
- this._client = sdk.getAppAuthClient('user', userId);
78
- }
79
- else {
80
- throw new Error('Either STORAGE_BOX_ENTERPRISE_ID or STORAGE_BOX_USER_ID must be provided when using JWT authentication');
81
- }
82
- }
83
- else {
84
- // Using developer token
85
- const developerToken = env.get('STORAGE_BOX_DEVELOPER_TOKEN').required().asString();
86
- const sdk = new box_node_sdk_1.default({
87
- clientID: clientId,
88
- clientSecret: clientSecret
89
- });
90
- this._client = sdk.getBasicClient(developerToken);
91
- }
92
- // Set root folder ID, defaults to '0' which is the root of Box
43
+ this.providerName = 'Box';
44
+ this._tokenExpiresAt = 0;
45
+ this._baseApiUrl = 'https://api.box.com/2.0';
46
+ this._uploadApiUrl = 'https://upload.box.com/api/2.0';
47
+ // Box auth can be via access token or refresh token
48
+ this._accessToken = env.get('STORAGE_BOX_ACCESS_TOKEN').asString();
49
+ this._refreshToken = env.get('STORAGE_BOX_REFRESH_TOKEN').asString();
50
+ this._clientId = env.get('STORAGE_BOX_CLIENT_ID').asString();
51
+ this._clientSecret = env.get('STORAGE_BOX_CLIENT_SECRET').asString();
52
+ if (!this._refreshToken && !this._accessToken) {
53
+ throw new Error('Box storage requires either STORAGE_BOX_ACCESS_TOKEN or STORAGE_BOX_REFRESH_TOKEN with CLIENT_ID and CLIENT_SECRET');
54
+ }
55
+ if (this._refreshToken && (!this._clientId || !this._clientSecret)) {
56
+ throw new Error('Box storage with refresh token requires STORAGE_BOX_CLIENT_ID and STORAGE_BOX_CLIENT_SECRET');
57
+ }
58
+ // Root folder ID, optional (defaults to '0' which is root)
93
59
  this._rootFolderId = env.get('STORAGE_BOX_ROOT_FOLDER_ID').default('0').asString();
94
60
  }
95
61
  /**
96
- * Find a file or folder by path
62
+ * Ensures we have a valid access token
97
63
  */
98
- async _getItemByPath(path) {
99
- if (!path || path === '/' || path === '') {
100
- // Return the root folder
64
+ async _ensureValidToken() {
65
+ // If we have a valid token, use it
66
+ if (this._accessToken && Date.now() < this._tokenExpiresAt) {
67
+ return this._accessToken;
68
+ }
69
+ // If we have refresh token, try to get a new access token
70
+ if (this._refreshToken && this._clientId && this._clientSecret) {
101
71
  try {
102
- return await this._client.folders.get(this._rootFolderId);
72
+ const response = await fetch('https://api.box.com/oauth2/token', {
73
+ method: 'POST',
74
+ headers: {
75
+ 'Content-Type': 'application/x-www-form-urlencoded'
76
+ },
77
+ body: new URLSearchParams({
78
+ grant_type: 'refresh_token',
79
+ refresh_token: this._refreshToken,
80
+ client_id: this._clientId,
81
+ client_secret: this._clientSecret
82
+ })
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(`Failed to refresh token: ${response.status} ${response.statusText}`);
86
+ }
87
+ const data = await response.json();
88
+ this._accessToken = data.access_token;
89
+ this._refreshToken = data.refresh_token || this._refreshToken;
90
+ this._tokenExpiresAt = Date.now() + (data.expires_in * 1000) - 60000; // Subtract 1 minute for safety
91
+ return this._accessToken;
103
92
  }
104
93
  catch (error) {
105
- throw new Error(`Root folder not found: ${this._rootFolderId}`);
94
+ console.error('Error refreshing Box access token', error);
95
+ throw new Error('Failed to authenticate with Box: ' + error.message);
106
96
  }
107
97
  }
108
- // Split path into parts
109
- const pathParts = path.split('/').filter(p => p);
110
- let currentId = this._rootFolderId;
111
- let currentItem = null;
112
- let isFolder = true;
113
- // Traverse the path
114
- for (let i = 0; i < pathParts.length; i++) {
115
- const part = pathParts[i];
116
- const isLastPart = i === pathParts.length - 1;
117
- // Get folder items
118
- const items = await this._client.folders.getItems(currentId, {
119
- fields: 'name,type,id,size,modified_at,parent'
120
- });
121
- // Find the matching item
122
- const matchingItem = items.entries.find(item => item.name === part);
123
- if (!matchingItem) {
124
- throw new Error(`Path not found: ${path} (at part: ${part})`);
125
- }
126
- currentItem = matchingItem;
127
- currentId = matchingItem.id;
128
- isFolder = matchingItem.type === 'folder';
129
- // If not the last part, it must be a folder
130
- if (!isLastPart && !isFolder) {
131
- throw new Error(`Path not found: ${path} (at part: ${part}, expected folder but got file)`);
132
- }
133
- }
134
- // Return either the file or folder object
135
- if (isFolder) {
136
- return await this._client.folders.get(currentId);
137
- }
138
- else {
139
- return await this._client.files.get(currentId);
98
+ // If we have an access token but it's expired and we can't refresh it
99
+ if (this._accessToken) {
100
+ console.warn('Using expired Box access token as no refresh token is available');
101
+ return this._accessToken;
140
102
  }
103
+ throw new Error('No valid Box access token available');
141
104
  }
142
105
  /**
143
- * Ensures a folder exists at the given path, creating it if necessary
106
+ * Make an authenticated API request to Box
144
107
  */
145
- async _getOrCreateFolder(path) {
108
+ async _apiRequest(endpoint, method = 'GET', body, headers = {}, baseUrl = this._baseApiUrl) {
109
+ const token = await this._ensureValidToken();
110
+ const requestHeaders = {
111
+ 'Authorization': `Bearer ${token}`,
112
+ ...headers
113
+ };
114
+ if (body && typeof body !== 'string' && !(body instanceof FormData) && !(body instanceof URLSearchParams)) {
115
+ requestHeaders['Content-Type'] = 'application/json';
116
+ body = JSON.stringify(body);
117
+ }
118
+ const url = `${baseUrl}${endpoint}`;
119
+ const response = await fetch(url, {
120
+ method,
121
+ headers: requestHeaders,
122
+ body
123
+ });
124
+ if (response.status === 204 || response.status === 202) {
125
+ return null; // No content response
126
+ }
127
+ // For downloading files, return the response directly
128
+ if (endpoint.startsWith('/files/') && endpoint.includes('/content') && response.ok) {
129
+ return response;
130
+ }
131
+ const data = await response.json();
132
+ if (!response.ok) {
133
+ console.error('Box API error', { status: response.status, data });
134
+ throw new Error(`Box API error: ${response.status} - ${data.message || JSON.stringify(data)}`);
135
+ }
136
+ return data;
137
+ }
138
+ /**
139
+ * Parse a Box API path into folder ID and name components
140
+ */
141
+ _parsePath(path) {
142
+ // Default to root folder
146
143
  if (!path || path === '/' || path === '') {
144
+ return { id: this._rootFolderId, name: '', parent: '' };
145
+ }
146
+ // Remove leading and trailing slashes
147
+ let normalizedPath = path;
148
+ if (normalizedPath.startsWith('/')) {
149
+ normalizedPath = normalizedPath.substring(1);
150
+ }
151
+ if (normalizedPath.endsWith('/')) {
152
+ normalizedPath = normalizedPath.substring(0, normalizedPath.length - 1);
153
+ }
154
+ // Parse the name from the path
155
+ const parts = normalizedPath.split('/');
156
+ const name = parts[parts.length - 1];
157
+ // Parse the parent path
158
+ const parentParts = parts.slice(0, parts.length - 1);
159
+ const parent = parentParts.join('/');
160
+ return { id: '', name, parent };
161
+ }
162
+ /**
163
+ * Get item ID by path
164
+ */
165
+ async _getIdFromPath(path) {
166
+ const parsedPath = this._parsePath(path);
167
+ // If we already have the ID, return it
168
+ if (parsedPath.id) {
169
+ return parsedPath.id;
170
+ }
171
+ // If it's the root, return the root folder ID
172
+ if (!parsedPath.name) {
147
173
  return this._rootFolderId;
148
174
  }
149
- // Split path into parts
150
- const pathParts = path.split('/').filter(p => p);
151
- let currentId = this._rootFolderId;
152
- // Traverse/create the path
153
- for (const part of pathParts) {
154
- // Check if folder exists
155
- try {
156
- const items = await this._client.folders.getItems(currentId, {
157
- fields: 'name,type,id'
158
- });
159
- const matchingFolder = items.entries.find(item => item.name === part && item.type === 'folder');
160
- if (matchingFolder) {
161
- currentId = matchingFolder.id;
162
- }
163
- else {
164
- // Create the folder
165
- const newFolder = await this._client.folders.create(currentId, part);
166
- currentId = newFolder.id;
167
- }
168
- }
169
- catch (error) {
170
- throw new Error(`Error creating folder path: ${path} (at part: ${part}): ${error.message}`);
171
- }
175
+ // Get the parent folder ID
176
+ let parentId = this._rootFolderId;
177
+ if (parsedPath.parent) {
178
+ parentId = await this._getIdFromPath(parsedPath.parent);
172
179
  }
173
- return currentId;
180
+ // Search for the item in the parent folder
181
+ const result = await this._apiRequest(`/folders/${parentId}/items`, 'GET', null, {
182
+ 'fields': 'id,name,type'
183
+ });
184
+ const item = result.entries.find(entry => entry.name === parsedPath.name);
185
+ if (!item) {
186
+ throw new Error(`Item not found: ${path}`);
187
+ }
188
+ return item.id;
174
189
  }
175
190
  /**
176
- * Converts a Box item to StorageObjectMetadata
191
+ * Convert Box item to StorageObjectMetadata
177
192
  */
178
193
  _convertToMetadata(item, parentPath = '') {
179
194
  const isDirectory = item.type === 'folder';
180
- const fullPath = parentPath ? `${parentPath}/${item.name}` : item.name;
181
- const modifiedDate = new Date(item.modified_at || Date.now());
195
+ const name = item.name;
196
+ // Construct full path
197
+ const path = parentPath || '';
198
+ const fullPath = path ? `${path}/${name}` : name;
182
199
  return {
183
- name: item.name,
184
- path: parentPath,
200
+ name,
201
+ path,
185
202
  fullPath,
186
- size: parseInt(item.size || '0'),
187
- contentType: item.type === 'file' ?
188
- (mime.lookup(item.name) || 'application/octet-stream') :
189
- 'application/x-directory',
190
- lastModified: modifiedDate,
203
+ size: isDirectory ? 0 : (item.size || 0),
204
+ contentType: isDirectory ?
205
+ 'application/x-directory' :
206
+ (item.content_type || mime.lookup(name) || 'application/octet-stream'),
207
+ lastModified: new Date(item.modified_at || item.created_at || Date.now()),
191
208
  isDirectory,
192
209
  etag: item.etag,
193
210
  customMetadata: {
194
- id: item.id
211
+ id: item.id,
212
+ sequence_id: item.sequence_id
195
213
  }
196
214
  };
197
215
  }
198
216
  /**
199
- * Box doesn't support pre-auth upload URLs directly
217
+ * Create a pre-authenticated upload URL
200
218
  */
201
219
  async CreatePreAuthUploadUrl(objectName) {
202
- // Box doesn't support pre-signed URLs for uploads in the same way as S3
203
- // Instead, use PutObject method for uploads
204
- this.throwUnsupportedOperationError('CreatePreAuthUploadUrl');
220
+ try {
221
+ // Get the parent folder ID and file name
222
+ const parsedPath = this._parsePath(objectName);
223
+ let parentId = this._rootFolderId;
224
+ if (parsedPath.parent) {
225
+ try {
226
+ parentId = await this._getIdFromPath(parsedPath.parent);
227
+ }
228
+ catch (error) {
229
+ // If parent folder doesn't exist, create it recursively
230
+ if (parsedPath.parent) {
231
+ await this.CreateDirectory(parsedPath.parent);
232
+ parentId = await this._getIdFromPath(parsedPath.parent);
233
+ }
234
+ }
235
+ }
236
+ // Create a file upload session
237
+ const data = await this._apiRequest('/files/upload_sessions', 'POST', {
238
+ folder_id: parentId,
239
+ file_name: parsedPath.name,
240
+ file_size: 0 // We'll use this later for chunked uploads
241
+ }, {}, this._uploadApiUrl);
242
+ // Return the upload URL with the session ID as the provider key
243
+ return {
244
+ UploadUrl: data.session_endpoints.upload_part,
245
+ ProviderKey: `session:${data.id}:${objectName}`
246
+ };
247
+ }
248
+ catch (error) {
249
+ console.error('Error creating pre-auth upload URL', { objectName, error });
250
+ throw new Error(`Failed to create upload URL for: ${objectName}`);
251
+ }
205
252
  }
206
253
  /**
207
254
  * Create a pre-authenticated download URL
208
255
  */
209
256
  async CreatePreAuthDownloadUrl(objectName) {
210
257
  try {
211
- // Get the file
212
- const file = await this._getItemByPath(objectName);
213
- if (file.type !== 'file') {
214
- throw new Error(`Not a file: ${objectName}`);
258
+ // Check if this is a session upload that hasn't been completed
259
+ if (objectName.startsWith('session:')) {
260
+ throw new Error('Cannot create download URL for incomplete upload session');
215
261
  }
216
- // Create a temporary download URL
217
- const downloadUrl = await this._client.files.getDownloadURL(file.id);
218
- return downloadUrl;
262
+ // Get the file ID
263
+ const fileId = await this._getIdFromPath(objectName);
264
+ // Create a download URL that's good for 60 minutes
265
+ const data = await this._apiRequest(`/files/${fileId}?fields=download_url`, 'GET');
266
+ if (!data.download_url) {
267
+ throw new Error(`No download URL available for: ${objectName}`);
268
+ }
269
+ return data.download_url;
219
270
  }
220
271
  catch (error) {
221
272
  console.error('Error creating pre-auth download URL', { objectName, error });
@@ -227,21 +278,28 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
227
278
  */
228
279
  async MoveObject(oldObjectName, newObjectName) {
229
280
  try {
230
- // Get the source file/folder
231
- const sourceItem = await this._getItemByPath(oldObjectName);
232
- // Parse destination path
233
- const destPathParts = newObjectName.split('/');
234
- const destName = destPathParts.pop() || '';
235
- const destParentPath = destPathParts.join('/');
236
- // Get or create destination parent folder
237
- const destParentId = await this._getOrCreateFolder(destParentPath);
238
- // Move the item
239
- if (sourceItem.type === 'file') {
240
- await this._client.files.move(sourceItem.id, destParentId, { name: destName });
241
- }
242
- else {
243
- await this._client.folders.move(sourceItem.id, destParentId, { name: destName });
281
+ // Get source info
282
+ const sourceId = await this._getIdFromPath(oldObjectName);
283
+ const sourceInfo = await this._apiRequest(`/items/${sourceId}`);
284
+ // Get destination info
285
+ const destPath = this._parsePath(newObjectName);
286
+ let destParentId = this._rootFolderId;
287
+ if (destPath.parent) {
288
+ try {
289
+ destParentId = await this._getIdFromPath(destPath.parent);
290
+ }
291
+ catch (error) {
292
+ // Create parent folder if it doesn't exist
293
+ await this.CreateDirectory(destPath.parent);
294
+ destParentId = await this._getIdFromPath(destPath.parent);
295
+ }
244
296
  }
297
+ // Move the item
298
+ const endpoint = sourceInfo.type === 'folder' ? '/folders/' : '/files/';
299
+ await this._apiRequest(`${endpoint}${sourceId}`, 'PUT', {
300
+ parent: { id: destParentId },
301
+ name: destPath.name
302
+ });
245
303
  return true;
246
304
  }
247
305
  catch (error) {
@@ -254,21 +312,22 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
254
312
  */
255
313
  async DeleteObject(objectName) {
256
314
  try {
257
- // Get the file/folder
258
- const item = await this._getItemByPath(objectName);
259
- // Delete the item
260
- if (item.type === 'file') {
261
- await this._client.files.delete(item.id);
262
- }
263
- else {
264
- // For folders, this will fail if not empty and recursive=false
265
- await this._client.folders.delete(item.id);
315
+ // Handle session objects specially
316
+ if (objectName.startsWith('session:')) {
317
+ const [, sessionId] = objectName.split(':');
318
+ await this._apiRequest(`/files/upload_sessions/${sessionId}`, 'DELETE');
319
+ return true;
266
320
  }
321
+ const itemId = await this._getIdFromPath(objectName);
322
+ const itemInfo = await this._apiRequest(`/items/${itemId}`);
323
+ // Delete the item
324
+ const endpoint = itemInfo.type === 'folder' ? '/folders/' : '/files/';
325
+ await this._apiRequest(`${endpoint}${itemId}`, 'DELETE');
267
326
  return true;
268
327
  }
269
328
  catch (error) {
270
- // If item not found, consider it success for idempotency
271
- if (error.statusCode === 404) {
329
+ // If the error is a 404, consider it already deleted
330
+ if (error.message && error.message.includes('404')) {
272
331
  return true;
273
332
  }
274
333
  console.error('Error deleting object', { objectName, error });
@@ -280,26 +339,28 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
280
339
  */
281
340
  async ListObjects(prefix, delimiter = '/') {
282
341
  try {
283
- // Get the folder
284
- const folder = await this._getItemByPath(prefix);
285
- if (folder.type !== 'folder') {
286
- throw new Error(`Not a folder: ${prefix}`);
342
+ let folderId;
343
+ try {
344
+ folderId = await this._getIdFromPath(prefix);
287
345
  }
288
- // List items in the folder
289
- const items = await this._client.folders.getItems(folder.id, {
290
- fields: 'name,type,id,size,modified_at,parent'
346
+ catch (error) {
347
+ // If folder doesn't exist, return empty result
348
+ return { objects: [], prefixes: [] };
349
+ }
350
+ // Get folder contents
351
+ const result = await this._apiRequest(`/folders/${folderId}/items`, 'GET', null, {
352
+ 'fields': 'id,name,type,size,content_type,modified_at,created_at,etag,sequence_id'
291
353
  });
292
354
  const objects = [];
293
355
  const prefixes = [];
294
- // Process items
295
- for (const item of items.entries) {
296
- // Add to objects list
297
- objects.push(this._convertToMetadata(item, prefix));
356
+ // Process entries
357
+ for (const entry of result.entries) {
358
+ objects.push(this._convertToMetadata(entry, prefix));
298
359
  // If it's a folder, add to prefixes
299
- if (item.type === 'folder') {
360
+ if (entry.type === 'folder') {
300
361
  const folderPath = prefix
301
- ? (prefix.endsWith('/') ? `${prefix}${item.name}` : `${prefix}/${item.name}`)
302
- : item.name;
362
+ ? (prefix.endsWith('/') ? `${prefix}${entry.name}` : `${prefix}/${entry.name}`)
363
+ : entry.name;
303
364
  prefixes.push(`${folderPath}/`);
304
365
  }
305
366
  }
@@ -319,14 +380,32 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
319
380
  const normalizedPath = directoryPath.endsWith('/')
320
381
  ? directoryPath.substring(0, directoryPath.length - 1)
321
382
  : directoryPath;
322
- // Parse the path
323
- const pathParts = normalizedPath.split('/');
324
- const folderName = pathParts.pop() || '';
325
- const parentPath = pathParts.join('/');
326
- // Get the parent folder
327
- const parentId = await this._getOrCreateFolder(parentPath);
383
+ // Check if directory already exists
384
+ try {
385
+ await this._getIdFromPath(normalizedPath);
386
+ return true; // Directory already exists
387
+ }
388
+ catch (error) {
389
+ // Directory doesn't exist, create it
390
+ }
391
+ // Get parent folder info
392
+ const parsedPath = this._parsePath(normalizedPath);
393
+ let parentId = this._rootFolderId;
394
+ if (parsedPath.parent) {
395
+ try {
396
+ parentId = await this._getIdFromPath(parsedPath.parent);
397
+ }
398
+ catch (error) {
399
+ // Create parent directory recursively
400
+ await this.CreateDirectory(parsedPath.parent);
401
+ parentId = await this._getIdFromPath(parsedPath.parent);
402
+ }
403
+ }
328
404
  // Create the folder
329
- await this._client.folders.create(parentId, folderName);
405
+ await this._apiRequest('/folders', 'POST', {
406
+ name: parsedPath.name,
407
+ parent: { id: parentId }
408
+ });
330
409
  return true;
331
410
  }
332
411
  catch (error) {
@@ -343,26 +422,35 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
343
422
  const normalizedPath = directoryPath.endsWith('/')
344
423
  ? directoryPath.substring(0, directoryPath.length - 1)
345
424
  : directoryPath;
346
- // Get the folder
347
- const folder = await this._getItemByPath(normalizedPath);
348
- if (folder.type !== 'folder') {
349
- throw new Error(`Not a folder: ${normalizedPath}`);
425
+ // Get folder ID
426
+ let folderId;
427
+ try {
428
+ folderId = await this._getIdFromPath(normalizedPath);
429
+ }
430
+ catch (error) {
431
+ // If folder doesn't exist, consider it success
432
+ return true;
433
+ }
434
+ // Check if folder is empty if not recursive
435
+ if (!recursive) {
436
+ const contents = await this._apiRequest(`/folders/${folderId}/items`, 'GET', null, {
437
+ 'limit': '1'
438
+ });
439
+ if (contents.entries.length > 0) {
440
+ throw new Error('Directory is not empty');
441
+ }
350
442
  }
351
443
  // Delete the folder
352
- await this._client.folders.delete(folder.id, {
353
- recursive: recursive
444
+ await this._apiRequest(`/folders/${folderId}`, 'DELETE', null, {
445
+ 'recursive': recursive ? 'true' : 'false'
354
446
  });
355
447
  return true;
356
448
  }
357
449
  catch (error) {
358
- // If folder not found, consider it success
359
- if (error.statusCode === 404) {
450
+ // If the error is a 404, consider it already deleted
451
+ if (error.message && error.message.includes('404')) {
360
452
  return true;
361
453
  }
362
- // If trying to delete non-empty folder without recursive flag
363
- if (error.statusCode === 400 && !recursive) {
364
- throw new Error('Directory is not empty');
365
- }
366
454
  console.error('Error deleting directory', { directoryPath, recursive, error });
367
455
  return false;
368
456
  }
@@ -372,13 +460,17 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
372
460
  */
373
461
  async GetObjectMetadata(objectName) {
374
462
  try {
375
- // Get the file/folder
376
- const item = await this._getItemByPath(objectName);
463
+ const itemId = await this._getIdFromPath(objectName);
464
+ // Determine if it's a file or folder
465
+ const itemInfo = await this._apiRequest(`/items/${itemId}`);
466
+ const fullEndpoint = itemInfo.type === 'folder' ? `/folders/${itemId}` : `/files/${itemId}`;
467
+ // Get full metadata
468
+ const metadata = await this._apiRequest(fullEndpoint, 'GET', null, {
469
+ 'fields': 'id,name,type,size,content_type,modified_at,created_at,etag,sequence_id'
470
+ });
377
471
  // Parse path to get parent path
378
- const pathParts = objectName.split('/');
379
- pathParts.pop(); // Remove filename/foldername
380
- const parentPath = pathParts.join('/');
381
- return this._convertToMetadata(item, parentPath);
472
+ const parsedPath = this._parsePath(objectName);
473
+ return this._convertToMetadata(metadata, parsedPath.parent);
382
474
  }
383
475
  catch (error) {
384
476
  console.error('Error getting object metadata', { objectName, error });
@@ -390,26 +482,12 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
390
482
  */
391
483
  async GetObject(objectName) {
392
484
  try {
393
- // Get the file
394
- const file = await this._getItemByPath(objectName);
395
- if (file.type !== 'file') {
396
- throw new Error(`Not a file: ${objectName}`);
397
- }
398
- // Get download stream
399
- const stream = await this._client.files.getReadStream(file.id);
400
- // Convert stream to buffer
401
- return new Promise((resolve, reject) => {
402
- const chunks = [];
403
- stream.on('data', (chunk) => {
404
- chunks.push(chunk);
405
- });
406
- stream.on('end', () => {
407
- resolve(Buffer.concat(chunks));
408
- });
409
- stream.on('error', (err) => {
410
- reject(err);
411
- });
412
- });
485
+ const fileId = await this._getIdFromPath(objectName);
486
+ // Download the file
487
+ const response = await this._apiRequest(`/files/${fileId}/content`, 'GET');
488
+ // Convert response to buffer
489
+ const arrayBuffer = await response.arrayBuffer();
490
+ return Buffer.from(arrayBuffer);
413
491
  }
414
492
  catch (error) {
415
493
  console.error('Error getting object', { objectName, error });
@@ -421,32 +499,77 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
421
499
  */
422
500
  async PutObject(objectName, data, contentType, metadata) {
423
501
  try {
424
- // Parse path
425
- const pathParts = objectName.split('/');
426
- const fileName = pathParts.pop() || '';
427
- const parentPath = pathParts.join('/');
428
- // Get or create parent folder
429
- const parentId = await this._getOrCreateFolder(parentPath);
502
+ // Get the parent folder ID and file name
503
+ const parsedPath = this._parsePath(objectName);
504
+ let parentId = this._rootFolderId;
505
+ if (parsedPath.parent) {
506
+ try {
507
+ parentId = await this._getIdFromPath(parsedPath.parent);
508
+ }
509
+ catch (error) {
510
+ // If parent folder doesn't exist, create it recursively
511
+ await this.CreateDirectory(parsedPath.parent);
512
+ parentId = await this._getIdFromPath(parsedPath.parent);
513
+ }
514
+ }
430
515
  // Check if file already exists
431
- let existingFileId = null;
516
+ let fileId = null;
432
517
  try {
433
- const existingFile = await this._getItemByPath(objectName);
434
- if (existingFile.type === 'file') {
435
- existingFileId = existingFile.id;
436
- }
518
+ fileId = await this._getIdFromPath(objectName);
437
519
  }
438
520
  catch (error) {
439
521
  // File doesn't exist, will create new
440
522
  }
441
- // Determine content type if not provided
442
- const effectiveContentType = contentType || mime.lookup(objectName) || 'application/octet-stream';
443
- if (existingFileId) {
444
- // Update existing file
445
- await this._client.files.uploadNewFileVersion(existingFileId, data);
523
+ // Use multipart upload for small files (<50MB)
524
+ if (data.length < 50 * 1024 * 1024) {
525
+ const formData = new FormData();
526
+ // Add file metadata
527
+ const fileMetadata = {
528
+ name: parsedPath.name,
529
+ parent: { id: parentId }
530
+ };
531
+ formData.append('attributes', JSON.stringify(fileMetadata));
532
+ // Create a file blob with the correct content type
533
+ const fileBlob = new Blob([data], { type: contentType || 'application/octet-stream' });
534
+ formData.append('file', fileBlob, parsedPath.name);
535
+ // Upload the file
536
+ const endpoint = fileId ? `/files/${fileId}/content` : '/files/content';
537
+ await this._apiRequest(endpoint, 'POST', formData, {}, this._uploadApiUrl);
446
538
  }
447
539
  else {
448
- // Create new file
449
- await this._client.files.uploadFile(parentId, fileName, data);
540
+ // Use chunked upload for larger files
541
+ // Create upload session
542
+ const session = await this._apiRequest('/files/upload_sessions', 'POST', {
543
+ folder_id: parentId,
544
+ file_name: parsedPath.name,
545
+ file_size: data.length
546
+ }, {}, this._uploadApiUrl);
547
+ const sessionId = session.id;
548
+ const CHUNK_SIZE = 8 * 1024 * 1024; // 8MB chunks
549
+ let offset = 0;
550
+ const totalSize = data.length;
551
+ const parts = [];
552
+ // Upload chunks
553
+ while (offset < totalSize) {
554
+ const chunkEnd = Math.min(offset + CHUNK_SIZE, totalSize);
555
+ const chunkSize = chunkEnd - offset;
556
+ const chunk = data.slice(offset, chunkEnd);
557
+ const headers = {
558
+ 'Content-Type': 'application/octet-stream',
559
+ 'Digest': `sha=1234`, // Replace with actual SHA-1 digest
560
+ 'Content-Range': `bytes ${offset}-${chunkEnd - 1}/${totalSize}`
561
+ };
562
+ const uploadResponse = await this._apiRequest(`/files/upload_sessions/${sessionId}`, 'PUT', chunk, headers, this._uploadApiUrl);
563
+ parts.push({
564
+ part_id: uploadResponse.part.part_id,
565
+ offset,
566
+ size: chunkSize,
567
+ sha1: uploadResponse.part.sha1
568
+ });
569
+ offset = chunkEnd;
570
+ }
571
+ // Commit the upload session
572
+ await this._apiRequest(`/files/upload_sessions/${sessionId}/commit`, 'POST', { parts }, { 'Content-Type': 'application/json' }, this._uploadApiUrl);
450
573
  }
451
574
  return true;
452
575
  }
@@ -460,19 +583,30 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
460
583
  */
461
584
  async CopyObject(sourceObjectName, destinationObjectName) {
462
585
  try {
463
- // Get source file
464
- const sourceFile = await this._getItemByPath(sourceObjectName);
465
- if (sourceFile.type !== 'file') {
466
- throw new Error(`Not a file: ${sourceObjectName}`);
586
+ // Get source info
587
+ const sourceId = await this._getIdFromPath(sourceObjectName);
588
+ const sourceInfo = await this._apiRequest(`/items/${sourceId}`);
589
+ if (sourceInfo.type !== 'file') {
590
+ throw new Error('Only files can be copied with CopyObject');
591
+ }
592
+ // Get destination info
593
+ const destPath = this._parsePath(destinationObjectName);
594
+ let destParentId = this._rootFolderId;
595
+ if (destPath.parent) {
596
+ try {
597
+ destParentId = await this._getIdFromPath(destPath.parent);
598
+ }
599
+ catch (error) {
600
+ // Create parent folder if it doesn't exist
601
+ await this.CreateDirectory(destPath.parent);
602
+ destParentId = await this._getIdFromPath(destPath.parent);
603
+ }
467
604
  }
468
- // Parse destination path
469
- const destPathParts = destinationObjectName.split('/');
470
- const destFileName = destPathParts.pop() || '';
471
- const destParentPath = destPathParts.join('/');
472
- // Get or create destination parent folder
473
- const destParentId = await this._getOrCreateFolder(destParentPath);
474
605
  // Copy the file
475
- await this._client.files.copy(sourceFile.id, destParentId, { name: destFileName });
606
+ await this._apiRequest(`/files/${sourceId}/copy`, 'POST', {
607
+ parent: { id: destParentId },
608
+ name: destPath.name
609
+ });
476
610
  return true;
477
611
  }
478
612
  catch (error) {
@@ -485,7 +619,7 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
485
619
  */
486
620
  async ObjectExists(objectName) {
487
621
  try {
488
- await this._getItemByPath(objectName);
622
+ await this._getIdFromPath(objectName);
489
623
  return true;
490
624
  }
491
625
  catch (error) {
@@ -501,8 +635,9 @@ let BoxFileStorage = class BoxFileStorage extends FileStorageBase_1.FileStorageB
501
635
  const normalizedPath = directoryPath.endsWith('/')
502
636
  ? directoryPath.substring(0, directoryPath.length - 1)
503
637
  : directoryPath;
504
- const item = await this._getItemByPath(normalizedPath);
505
- return item.type === 'folder';
638
+ const itemId = await this._getIdFromPath(normalizedPath);
639
+ const itemInfo = await this._apiRequest(`/items/${itemId}`);
640
+ return itemInfo.type === 'folder';
506
641
  }
507
642
  catch (error) {
508
643
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"BoxFileStorage.js","sourceRoot":"","sources":["../../src/drivers/BoxFileStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoxFileStorage.js","sourceRoot":"","sources":["../../src/drivers/BoxFileStorage.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,8 +3,8 @@ export * from './drivers/AzureFileStorage';
3
3
  export * from './drivers/GoogleFileStorage';
4
4
  export * from './drivers/GoogleDriveFileStorage';
5
5
  export * from './drivers/SharePointFileStorage';
6
- export * from './drivers/BoxFileStorage';
7
6
  export * from './drivers/DropboxFileStorage';
7
+ export * from './drivers/BoxFileStorage';
8
8
  export * from './generic/FileStorageBase';
9
9
  export * from './util';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","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,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","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"}
package/dist/index.js CHANGED
@@ -19,8 +19,8 @@ __exportStar(require("./drivers/AzureFileStorage"), exports);
19
19
  __exportStar(require("./drivers/GoogleFileStorage"), exports);
20
20
  __exportStar(require("./drivers/GoogleDriveFileStorage"), exports);
21
21
  __exportStar(require("./drivers/SharePointFileStorage"), exports);
22
- __exportStar(require("./drivers/BoxFileStorage"), exports);
23
22
  __exportStar(require("./drivers/DropboxFileStorage"), exports);
23
+ __exportStar(require("./drivers/BoxFileStorage"), exports);
24
24
  __exportStar(require("./generic/FileStorageBase"), exports);
25
25
  __exportStar(require("./util"), exports);
26
26
  //# 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":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,6DAA2C;AAC3C,8DAA4C;AAC5C,mEAAiD;AACjD,kEAAgD;AAChD,2DAAyC;AACzC,+DAA6C;AAC7C,4DAA0C;AAC1C,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,6DAA2C;AAC3C,8DAA4C;AAC5C,mEAAiD;AACjD,kEAAgD;AAChD,+DAA6C;AAC7C,2DAAyC;AACzC,4DAA0C;AAC1C,yCAAuB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/storage",
3
- "version": "2.32.0",
3
+ "version": "2.32.2",
4
4
  "description": "This library provides a set of objects that handle the interface between the server-side API and various cloud storage providers.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,11 +31,10 @@
31
31
  "@microsoft/mgt-msal2-provider": "^3.1.3",
32
32
  "@microsoft/mgt-sharepoint-provider": "^3.1.3",
33
33
  "googleapis": "^134.0.0",
34
- "box-node-sdk": "^3.5.0",
35
34
  "dropbox": "^10.34.0",
36
- "@memberjunction/core": "2.32.0",
37
- "@memberjunction/core-entities": "2.32.0",
38
- "@memberjunction/global": "2.32.0",
35
+ "@memberjunction/core": "2.32.2",
36
+ "@memberjunction/core-entities": "2.32.2",
37
+ "@memberjunction/global": "2.32.2",
39
38
  "env-var": "^7.4.1",
40
39
  "mime-types": "^2.1.35"
41
40
  }