@memberjunction/storage 2.106.0 → 2.107.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 (33) hide show
  1. package/dist/drivers/AWSFileStorage.d.ts +27 -1
  2. package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
  3. package/dist/drivers/AWSFileStorage.js +35 -2
  4. package/dist/drivers/AWSFileStorage.js.map +1 -1
  5. package/dist/drivers/AzureFileStorage.d.ts +21 -1
  6. package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
  7. package/dist/drivers/AzureFileStorage.js +24 -0
  8. package/dist/drivers/AzureFileStorage.js.map +1 -1
  9. package/dist/drivers/BoxFileStorage.d.ts +73 -1
  10. package/dist/drivers/BoxFileStorage.d.ts.map +1 -1
  11. package/dist/drivers/BoxFileStorage.js +218 -0
  12. package/dist/drivers/BoxFileStorage.js.map +1 -1
  13. package/dist/drivers/DropboxFileStorage.d.ts +76 -1
  14. package/dist/drivers/DropboxFileStorage.d.ts.map +1 -1
  15. package/dist/drivers/DropboxFileStorage.js +182 -0
  16. package/dist/drivers/DropboxFileStorage.js.map +1 -1
  17. package/dist/drivers/GoogleDriveFileStorage.d.ts +56 -1
  18. package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -1
  19. package/dist/drivers/GoogleDriveFileStorage.js +180 -6
  20. package/dist/drivers/GoogleDriveFileStorage.js.map +1 -1
  21. package/dist/drivers/GoogleFileStorage.d.ts +21 -1
  22. package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
  23. package/dist/drivers/GoogleFileStorage.js +24 -0
  24. package/dist/drivers/GoogleFileStorage.js.map +1 -1
  25. package/dist/drivers/SharePointFileStorage.d.ts +117 -1
  26. package/dist/drivers/SharePointFileStorage.d.ts.map +1 -1
  27. package/dist/drivers/SharePointFileStorage.js +287 -0
  28. package/dist/drivers/SharePointFileStorage.js.map +1 -1
  29. package/dist/generic/FileStorageBase.d.ts +225 -0
  30. package/dist/generic/FileStorageBase.d.ts.map +1 -1
  31. package/dist/generic/FileStorageBase.js.map +1 -1
  32. package/package.json +2 -2
  33. package/readme.md +109 -0
@@ -87,6 +87,10 @@ let DropboxFileStorage = class DropboxFileStorage extends FileStorageBase_1.File
87
87
  * Dropbox API client instance
88
88
  */
89
89
  _client;
90
+ /**
91
+ * Access token for Dropbox authentication
92
+ */
93
+ _accessToken;
90
94
  /**
91
95
  * Root path within Dropbox to use as the storage root
92
96
  */
@@ -110,6 +114,7 @@ let DropboxFileStorage = class DropboxFileStorage extends FileStorageBase_1.File
110
114
  const appSecret = config?.clientSecret || env.get('STORAGE_DROPBOX_APP_SECRET').asString();
111
115
  if (accessToken) {
112
116
  // Use access token directly
117
+ this._accessToken = accessToken;
113
118
  this._client = new dropbox_1.Dropbox({ accessToken });
114
119
  }
115
120
  else if (refreshToken && appKey && appSecret) {
@@ -130,6 +135,13 @@ let DropboxFileStorage = class DropboxFileStorage extends FileStorageBase_1.File
130
135
  this._rootPath = '/' + this._rootPath;
131
136
  }
132
137
  }
138
+ /**
139
+ * Checks if Dropbox provider is properly configured.
140
+ * Returns true if access token is present.
141
+ */
142
+ get IsConfigured() {
143
+ return !!(this._accessToken);
144
+ }
133
145
  /**
134
146
  * Normalizes a path to be compatible with Dropbox API
135
147
  *
@@ -881,6 +893,176 @@ let DropboxFileStorage = class DropboxFileStorage extends FileStorageBase_1.File
881
893
  return false;
882
894
  }
883
895
  }
896
+ /**
897
+ * Search files in Dropbox using Dropbox Search API v2.
898
+ *
899
+ * Dropbox provides full-text search capabilities across file names and content.
900
+ * The search API supports natural language queries and can search both filenames
901
+ * and file content based on the searchContent option.
902
+ *
903
+ * @param query - The search query string (supports natural language and quoted phrases)
904
+ * @param options - Search options for filtering and limiting results
905
+ * @returns A Promise resolving to search results
906
+ *
907
+ * @remarks
908
+ * - Content search (searchContent: true) searches both filename and file content
909
+ * - Filename search (searchContent: false, default) searches only filenames
910
+ * - File type filtering converts extensions to Dropbox file categories
911
+ * - Date filters use server_modified timestamp
912
+ * - Path prefix restricts search to a specific folder and its subfolders
913
+ *
914
+ * @example
915
+ * ```typescript
916
+ * // Simple filename search
917
+ * const results = await storage.SearchFiles('quarterly report');
918
+ *
919
+ * // Search with file type filter
920
+ * const pdfResults = await storage.SearchFiles('budget', {
921
+ * fileTypes: ['pdf'],
922
+ * modifiedAfter: new Date('2024-01-01')
923
+ * });
924
+ *
925
+ * // Content search within a specific folder
926
+ * const contentResults = await storage.SearchFiles('machine learning', {
927
+ * searchContent: true,
928
+ * pathPrefix: 'documents/research',
929
+ * maxResults: 50
930
+ * });
931
+ * ```
932
+ */
933
+ async SearchFiles(query, options) {
934
+ try {
935
+ const maxResults = options?.maxResults || 100;
936
+ // Build Dropbox search options
937
+ const searchOptions = {
938
+ query: query,
939
+ options: {
940
+ max_results: Math.min(maxResults, 1000), // Dropbox max is 1000
941
+ path: options?.pathPrefix ? this._normalizePath(options.pathPrefix) : undefined,
942
+ file_status: 'active', // Exclude deleted files
943
+ filename_only: !options?.searchContent // Search filename only or filename + content
944
+ }
945
+ };
946
+ // Add file extension filter if fileTypes provided
947
+ if (options?.fileTypes && options.fileTypes.length > 0) {
948
+ const extensions = this._extractFileExtensions(options.fileTypes);
949
+ if (extensions.length > 0) {
950
+ searchOptions.options.file_extensions = extensions;
951
+ }
952
+ }
953
+ // Execute search using Dropbox Search API v2
954
+ const response = await this._client.filesSearchV2(searchOptions);
955
+ const results = [];
956
+ // Process search results
957
+ for (const match of response.result.matches || []) {
958
+ // The metadata field contains the actual file/folder metadata
959
+ const metadata = match.metadata.metadata;
960
+ // Skip if not a file (could be folder or other type)
961
+ if (!metadata || metadata['.tag'] !== 'file') {
962
+ continue;
963
+ }
964
+ // Apply date filters client-side (Dropbox search doesn't support date filters directly)
965
+ if (options?.modifiedAfter || options?.modifiedBefore) {
966
+ const modifiedDate = new Date(metadata.server_modified);
967
+ if (options.modifiedAfter && modifiedDate < options.modifiedAfter) {
968
+ continue;
969
+ }
970
+ if (options.modifiedBefore && modifiedDate > options.modifiedBefore) {
971
+ continue;
972
+ }
973
+ }
974
+ // Extract path information
975
+ const fullPath = this._extractRelativePath(metadata.path_display || metadata.path_lower);
976
+ const pathParts = fullPath.split('/');
977
+ const fileName = pathParts.pop() || metadata.name;
978
+ results.push({
979
+ path: fullPath,
980
+ name: fileName,
981
+ size: metadata.size || 0,
982
+ contentType: mime.lookup(fileName) || 'application/octet-stream',
983
+ lastModified: new Date(metadata.server_modified),
984
+ matchInFilename: this._checkFilenameMatch(fileName, query),
985
+ customMetadata: {
986
+ id: metadata.id,
987
+ rev: metadata.rev
988
+ },
989
+ providerData: {
990
+ dropboxId: metadata.id,
991
+ pathLower: metadata.path_lower
992
+ }
993
+ });
994
+ }
995
+ // Check if there are more results available
996
+ const hasMore = response.result.has_more || false;
997
+ return {
998
+ results,
999
+ totalMatches: undefined, // Dropbox doesn't provide total count
1000
+ hasMore,
1001
+ nextPageToken: hasMore ? 'continue' : undefined // Dropbox uses continue endpoint for pagination
1002
+ };
1003
+ }
1004
+ catch (error) {
1005
+ console.error('Error searching files in Dropbox', { query, options, error });
1006
+ throw new Error(`Dropbox search failed: ${error.message || 'Unknown error'}`);
1007
+ }
1008
+ }
1009
+ /**
1010
+ * Extracts file extensions from fileTypes array.
1011
+ * Converts MIME types to extensions and removes duplicates.
1012
+ *
1013
+ * @private
1014
+ * @param fileTypes - Array of file types (extensions or MIME types)
1015
+ * @returns Array of file extensions without leading dots
1016
+ */
1017
+ _extractFileExtensions(fileTypes) {
1018
+ const extensions = new Set();
1019
+ for (const fileType of fileTypes) {
1020
+ if (fileType.includes('/')) {
1021
+ // It's a MIME type, convert to extension
1022
+ const ext = mime.extension(fileType);
1023
+ if (ext) {
1024
+ extensions.add(ext);
1025
+ }
1026
+ }
1027
+ else {
1028
+ // It's already an extension, remove leading dot if present
1029
+ extensions.add(fileType.startsWith('.') ? fileType.substring(1) : fileType);
1030
+ }
1031
+ }
1032
+ return Array.from(extensions);
1033
+ }
1034
+ /**
1035
+ * Extracts the relative path from a Dropbox absolute path.
1036
+ * Removes the root path prefix if configured.
1037
+ *
1038
+ * @private
1039
+ * @param dropboxPath - The absolute Dropbox path
1040
+ * @returns The relative path without root prefix
1041
+ */
1042
+ _extractRelativePath(dropboxPath) {
1043
+ let relativePath = dropboxPath;
1044
+ // Remove root path if present
1045
+ if (this._rootPath && relativePath.startsWith(this._rootPath)) {
1046
+ relativePath = relativePath.substring(this._rootPath.length);
1047
+ }
1048
+ // Remove leading slash
1049
+ if (relativePath.startsWith('/')) {
1050
+ relativePath = relativePath.substring(1);
1051
+ }
1052
+ return relativePath;
1053
+ }
1054
+ /**
1055
+ * Checks if a filename contains the search query.
1056
+ * Performs case-insensitive matching.
1057
+ *
1058
+ * @private
1059
+ * @param filename - The filename to check
1060
+ * @param query - The search query
1061
+ * @returns True if the filename contains the query
1062
+ */
1063
+ _checkFilenameMatch(filename, query) {
1064
+ return filename.toLowerCase().includes(query.toLowerCase());
1065
+ }
884
1066
  };
885
1067
  exports.DropboxFileStorage = DropboxFileStorage;
886
1068
  exports.DropboxFileStorage = DropboxFileStorage = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"DropboxFileStorage.js","sourceRoot":"","sources":["../../src/drivers/DropboxFileStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropboxFileStorage.js","sourceRoot":"","sources":["../../src/drivers/DropboxFileStorage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { CreatePreAuthUploadUrlPayload, FileStorageBase, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
2
+ import { CreatePreAuthUploadUrlPayload, FileStorageBase, FileSearchOptions, FileSearchResultSet, StorageListResult, StorageObjectMetadata } from '../generic/FileStorageBase';
3
3
  /**
4
4
  * Google Drive implementation of the FileStorageBase interface.
5
5
  *
@@ -40,6 +40,10 @@ export declare class GoogleDriveFileStorage extends FileStorageBase {
40
40
  private _drive;
41
41
  /** Optional root folder ID to restrict operations to a specific folder */
42
42
  private _rootFolderId?;
43
+ /** OAuth2 credentials for configuration checking */
44
+ private _clientID?;
45
+ private _clientSecret?;
46
+ private _refreshToken?;
43
47
  /**
44
48
  * Creates a new instance of GoogleDriveFileStorage.
45
49
  *
@@ -48,6 +52,11 @@ export declare class GoogleDriveFileStorage extends FileStorageBase {
48
52
  * Throws an error if neither authentication method is properly configured.
49
53
  */
50
54
  constructor();
55
+ /**
56
+ * Checks if Google Drive provider is properly configured.
57
+ * Returns true if all required OAuth credentials are present.
58
+ */
59
+ get IsConfigured(): boolean;
51
60
  /**
52
61
  * Finds a file or folder by path.
53
62
  *
@@ -395,5 +404,51 @@ export declare class GoogleDriveFileStorage extends FileStorageBase {
395
404
  * ```
396
405
  */
397
406
  DirectoryExists(directoryPath: string): Promise<boolean>;
407
+ /**
408
+ * Searches for files in Google Drive using the Drive API search capabilities.
409
+ *
410
+ * Google Drive search syntax supports:
411
+ * - Simple terms: "report" matches files containing "report"
412
+ * - Exact phrases: "quarterly report" matches that exact phrase
413
+ * - Boolean OR: "budget OR forecast"
414
+ * - Exclusion: "report -draft" excludes files with "draft"
415
+ * - Wildcards: Not supported in Drive API
416
+ *
417
+ * Content search is always enabled for supported file types (Docs, Sheets, PDFs, etc.)
418
+ * when searchContent option is true.
419
+ *
420
+ * @param query - Search query using Google Drive search syntax
421
+ * @param options - Search options
422
+ * @returns Promise resolving to search results
423
+ *
424
+ * @example
425
+ * ```typescript
426
+ * // Simple name search
427
+ * const results = await storage.SearchFiles('quarterly report');
428
+ *
429
+ * // Search with file type filter
430
+ * const pdfResults = await storage.SearchFiles('budget', {
431
+ * fileTypes: ['pdf'],
432
+ * modifiedAfter: new Date('2024-01-01')
433
+ * });
434
+ *
435
+ * // Content search
436
+ * const contentResults = await storage.SearchFiles('machine learning', {
437
+ * searchContent: true,
438
+ * pathPrefix: 'documents/research/'
439
+ * });
440
+ * ```
441
+ */
442
+ SearchFiles(query: string, options?: FileSearchOptions): Promise<FileSearchResultSet>;
443
+ /**
444
+ * Escapes special characters in search queries for Google Drive.
445
+ * @private
446
+ */
447
+ private _escapeQuery;
448
+ /**
449
+ * Gets the full path of a file from its ID by traversing up the parent chain.
450
+ * @private
451
+ */
452
+ private _getFilePathFromId;
398
453
  }
399
454
  //# sourceMappingURL=GoogleDriveFileStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleDriveFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/GoogleDriveFileStorage.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBACa,sBAAuB,SAAQ,eAAe;IACzD,gEAAgE;IAChE,SAAS,CAAC,QAAQ,CAAC,YAAY,kBAAkB;IAEjD,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAiB;IAE/B,0EAA0E;IAC1E,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;;;;;OAMG;;IA8CH;;;;;;;;;;;OAWG;YACW,cAAc;IAgD5B;;;;;;;;;;OAUG;YACW,wBAAwB;IA6CtC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;;;;;;OASG;IACU,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAM/F;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiC1E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCvF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B/D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0CrF;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCrE;;;;;;;;;;;;;;;;;;;OAmBG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCxF;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqBlF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;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;IAqDnB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,UAAU,CAAC,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiClG;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS/D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAatE"}
1
+ {"version":3,"file":"GoogleDriveFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/GoogleDriveFileStorage.ts"],"names":[],"mappings":"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"}
@@ -79,6 +79,10 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
79
79
  _drive;
80
80
  /** Optional root folder ID to restrict operations to a specific folder */
81
81
  _rootFolderId;
82
+ /** OAuth2 credentials for configuration checking */
83
+ _clientID;
84
+ _clientSecret;
85
+ _refreshToken;
82
86
  /**
83
87
  * Creates a new instance of GoogleDriveFileStorage.
84
88
  *
@@ -93,9 +97,9 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
93
97
  // Get credentials from config or environment
94
98
  const keyFile = config?.keyFile || env.get('STORAGE_GDRIVE_KEY_FILE').asString();
95
99
  const credentials = config?.credentialsJSON || env.get('STORAGE_GDRIVE_CREDENTIALS_JSON').asJsonObject();
96
- const clientID = config?.clientID || env.get('STORAGE_GDRIVE_CLIENT_ID').asString();
97
- const clientSecret = config?.clientSecret || env.get('STORAGE_GDRIVE_CLIENT_SECRET').asString();
98
- const refreshToken = config?.refreshToken || env.get('STORAGE_GDRIVE_REFRESH_TOKEN').asString();
100
+ this._clientID = config?.clientID || env.get('STORAGE_GDRIVE_CLIENT_ID').asString();
101
+ this._clientSecret = config?.clientSecret || env.get('STORAGE_GDRIVE_CLIENT_SECRET').asString();
102
+ this._refreshToken = config?.refreshToken || env.get('STORAGE_GDRIVE_REFRESH_TOKEN').asString();
99
103
  const redirectURI = config?.redirectURI || env.get('STORAGE_GDRIVE_REDIRECT_URI').asString();
100
104
  // Initialize the Google Drive client - support THREE auth methods
101
105
  if (keyFile) {
@@ -112,10 +116,10 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
112
116
  const auth = new googleapis_1.google.auth.JWT(creds.client_email, undefined, creds.private_key, ['https://www.googleapis.com/auth/drive']);
113
117
  this._drive = googleapis_1.google.drive({ version: 'v3', auth });
114
118
  }
115
- else if (clientID && clientSecret && refreshToken) {
119
+ else if (this._clientID && this._clientSecret && this._refreshToken) {
116
120
  // Method 3: Using OAuth2 with refresh token
117
- const auth = new googleapis_1.google.auth.OAuth2(clientID, clientSecret, redirectURI);
118
- auth.setCredentials({ refresh_token: refreshToken });
121
+ const auth = new googleapis_1.google.auth.OAuth2(this._clientID, this._clientSecret, redirectURI);
122
+ auth.setCredentials({ refresh_token: this._refreshToken });
119
123
  this._drive = googleapis_1.google.drive({ version: 'v3', auth });
120
124
  }
121
125
  else {
@@ -124,6 +128,13 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
124
128
  // Optionally set a root folder ID to restrict operations
125
129
  this._rootFolderId = config?.rootFolderID || env.get('STORAGE_GDRIVE_ROOT_FOLDER_ID').asString();
126
130
  }
131
+ /**
132
+ * Checks if Google Drive provider is properly configured.
133
+ * Returns true if all required OAuth credentials are present.
134
+ */
135
+ get IsConfigured() {
136
+ return !!(this._clientID && this._clientSecret && this._refreshToken);
137
+ }
127
138
  /**
128
139
  * Finds a file or folder by path.
129
140
  *
@@ -875,6 +886,169 @@ let GoogleDriveFileStorage = class GoogleDriveFileStorage extends FileStorageBas
875
886
  return false;
876
887
  }
877
888
  }
889
+ /**
890
+ * Searches for files in Google Drive using the Drive API search capabilities.
891
+ *
892
+ * Google Drive search syntax supports:
893
+ * - Simple terms: "report" matches files containing "report"
894
+ * - Exact phrases: "quarterly report" matches that exact phrase
895
+ * - Boolean OR: "budget OR forecast"
896
+ * - Exclusion: "report -draft" excludes files with "draft"
897
+ * - Wildcards: Not supported in Drive API
898
+ *
899
+ * Content search is always enabled for supported file types (Docs, Sheets, PDFs, etc.)
900
+ * when searchContent option is true.
901
+ *
902
+ * @param query - Search query using Google Drive search syntax
903
+ * @param options - Search options
904
+ * @returns Promise resolving to search results
905
+ *
906
+ * @example
907
+ * ```typescript
908
+ * // Simple name search
909
+ * const results = await storage.SearchFiles('quarterly report');
910
+ *
911
+ * // Search with file type filter
912
+ * const pdfResults = await storage.SearchFiles('budget', {
913
+ * fileTypes: ['pdf'],
914
+ * modifiedAfter: new Date('2024-01-01')
915
+ * });
916
+ *
917
+ * // Content search
918
+ * const contentResults = await storage.SearchFiles('machine learning', {
919
+ * searchContent: true,
920
+ * pathPrefix: 'documents/research/'
921
+ * });
922
+ * ```
923
+ */
924
+ async SearchFiles(query, options) {
925
+ const maxResults = options?.maxResults || 100;
926
+ // Build the Google Drive query string
927
+ const queryParts = [];
928
+ // Add the user's search query (searches name and/or content)
929
+ if (options?.searchContent) {
930
+ queryParts.push(`fullText contains '${this._escapeQuery(query)}'`);
931
+ }
932
+ else {
933
+ queryParts.push(`name contains '${this._escapeQuery(query)}'`);
934
+ }
935
+ // Add file type filter
936
+ if (options?.fileTypes && options.fileTypes.length > 0) {
937
+ const mimeTypes = options.fileTypes.map(ft => {
938
+ // Convert extensions to MIME types if needed
939
+ return ft.includes('/') ? ft : mime.lookup(ft) || ft;
940
+ });
941
+ const mimeQuery = mimeTypes.map(mt => `mimeType='${mt}'`).join(' or ');
942
+ queryParts.push(`(${mimeQuery})`);
943
+ }
944
+ // Add date filters
945
+ if (options?.modifiedAfter) {
946
+ queryParts.push(`modifiedTime > '${options.modifiedAfter.toISOString()}'`);
947
+ }
948
+ if (options?.modifiedBefore) {
949
+ queryParts.push(`modifiedTime < '${options.modifiedBefore.toISOString()}'`);
950
+ }
951
+ // Add path prefix filter (parent folder)
952
+ let parentFolderId = this._rootFolderId;
953
+ if (options?.pathPrefix) {
954
+ try {
955
+ const folder = await this._getItemByPath(options.pathPrefix);
956
+ parentFolderId = folder.id || undefined;
957
+ }
958
+ catch (error) {
959
+ // If path doesn't exist, return empty results
960
+ return {
961
+ results: [],
962
+ totalMatches: 0,
963
+ hasMore: false
964
+ };
965
+ }
966
+ }
967
+ if (parentFolderId) {
968
+ queryParts.push(`'${parentFolderId}' in parents`);
969
+ }
970
+ // Exclude trashed files
971
+ queryParts.push('trashed=false');
972
+ // Add provider-specific options
973
+ if (options?.providerSpecific) {
974
+ for (const [key, value] of Object.entries(options.providerSpecific)) {
975
+ if (typeof value === 'boolean') {
976
+ queryParts.push(`${key}=${value}`);
977
+ }
978
+ else if (typeof value === 'string') {
979
+ queryParts.push(`${key}='${value}'`);
980
+ }
981
+ }
982
+ }
983
+ const finalQuery = queryParts.join(' and ');
984
+ try {
985
+ const response = await this._drive.files.list({
986
+ q: finalQuery,
987
+ pageSize: maxResults,
988
+ fields: 'nextPageToken, files(id, name, mimeType, size, modifiedTime, parents, properties)',
989
+ orderBy: 'modifiedTime desc'
990
+ });
991
+ const files = response.data.files || [];
992
+ const results = [];
993
+ for (const file of files) {
994
+ const path = await this._getFilePathFromId(file.id);
995
+ const pathParts = path.split('/');
996
+ const fileName = pathParts.pop() || file.name;
997
+ const parentPath = pathParts.join('/');
998
+ results.push({
999
+ path,
1000
+ name: fileName,
1001
+ size: parseInt(file.size || '0'),
1002
+ contentType: file.mimeType,
1003
+ lastModified: new Date(file.modifiedTime),
1004
+ matchInFilename: file.name.toLowerCase().includes(query.toLowerCase()),
1005
+ customMetadata: file.properties,
1006
+ providerData: { driveFileId: file.id }
1007
+ });
1008
+ }
1009
+ return {
1010
+ results,
1011
+ totalMatches: undefined, // Drive API doesn't provide total count
1012
+ hasMore: !!response.data.nextPageToken,
1013
+ nextPageToken: response.data.nextPageToken || undefined
1014
+ };
1015
+ }
1016
+ catch (error) {
1017
+ console.error('Error searching files in Google Drive', { query, options, error });
1018
+ throw new Error(`Google Drive search failed: ${error.message || 'Unknown error'}`);
1019
+ }
1020
+ }
1021
+ /**
1022
+ * Escapes special characters in search queries for Google Drive.
1023
+ * @private
1024
+ */
1025
+ _escapeQuery(query) {
1026
+ return query.replace(/'/g, "\\'").replace(/\\/g, '\\\\');
1027
+ }
1028
+ /**
1029
+ * Gets the full path of a file from its ID by traversing up the parent chain.
1030
+ * @private
1031
+ */
1032
+ async _getFilePathFromId(fileId) {
1033
+ const pathParts = [];
1034
+ let currentId = fileId;
1035
+ while (currentId && currentId !== 'root' && currentId !== this._rootFolderId) {
1036
+ const file = await this._drive.files.get({
1037
+ fileId: currentId,
1038
+ fields: 'id, name, parents'
1039
+ });
1040
+ if (file.data.name) {
1041
+ pathParts.unshift(file.data.name);
1042
+ }
1043
+ // Move to parent
1044
+ currentId = file.data.parents?.[0];
1045
+ // Stop if we've reached root or the configured root folder
1046
+ if (currentId === 'root' || currentId === this._rootFolderId) {
1047
+ break;
1048
+ }
1049
+ }
1050
+ return pathParts.join('/');
1051
+ }
878
1052
  };
879
1053
  exports.GoogleDriveFileStorage = GoogleDriveFileStorage;
880
1054
  exports.GoogleDriveFileStorage = GoogleDriveFileStorage = __decorate([