@memberjunction/storage 2.106.0 → 2.108.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/drivers/AWSFileStorage.d.ts +27 -1
- package/dist/drivers/AWSFileStorage.d.ts.map +1 -1
- package/dist/drivers/AWSFileStorage.js +35 -2
- package/dist/drivers/AWSFileStorage.js.map +1 -1
- package/dist/drivers/AzureFileStorage.d.ts +21 -1
- package/dist/drivers/AzureFileStorage.d.ts.map +1 -1
- package/dist/drivers/AzureFileStorage.js +24 -0
- package/dist/drivers/AzureFileStorage.js.map +1 -1
- package/dist/drivers/BoxFileStorage.d.ts +73 -1
- package/dist/drivers/BoxFileStorage.d.ts.map +1 -1
- package/dist/drivers/BoxFileStorage.js +218 -0
- package/dist/drivers/BoxFileStorage.js.map +1 -1
- package/dist/drivers/DropboxFileStorage.d.ts +76 -1
- package/dist/drivers/DropboxFileStorage.d.ts.map +1 -1
- package/dist/drivers/DropboxFileStorage.js +182 -0
- package/dist/drivers/DropboxFileStorage.js.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.d.ts +56 -1
- package/dist/drivers/GoogleDriveFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleDriveFileStorage.js +180 -6
- package/dist/drivers/GoogleDriveFileStorage.js.map +1 -1
- package/dist/drivers/GoogleFileStorage.d.ts +21 -1
- package/dist/drivers/GoogleFileStorage.d.ts.map +1 -1
- package/dist/drivers/GoogleFileStorage.js +24 -0
- package/dist/drivers/GoogleFileStorage.js.map +1 -1
- package/dist/drivers/SharePointFileStorage.d.ts +117 -1
- package/dist/drivers/SharePointFileStorage.d.ts.map +1 -1
- package/dist/drivers/SharePointFileStorage.js +287 -0
- package/dist/drivers/SharePointFileStorage.js.map +1 -1
- package/dist/generic/FileStorageBase.d.ts +225 -0
- package/dist/generic/FileStorageBase.d.ts.map +1 -1
- package/dist/generic/FileStorageBase.js.map +1 -1
- package/package.json +2 -2
- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;AAClC,mDAAuD;AACvD,6CAA+B;AAC/B,iDAAmC;AACnC,gEAKoC;AACpC,sCAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,iCAAe;IACrD;;OAEG;IACgB,YAAY,GAAG,SAAS,CAAC;IAE5C;;OAEG;IACK,OAAO,CAAU;IAEzB;;OAEG;IACK,SAAS,CAAS;IAE1B;;;;;;;OAOG;IACH;QACE,KAAK,EAAE,CAAC;QAER,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAAC,SAAS,CAAC,CAAC;QAE5C,wDAAwD;QACxD,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9F,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,MAAM,SAAS,GAAG,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE3F,IAAI,WAAW,EAAE,CAAC;YAChB,4BAA4B;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,YAAY,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YAC/C,yCAAyC;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC;gBACzB,YAAY;gBACZ,QAAQ,EAAE,MAAM;gBAChB,YAAY,EAAE,SAAS;aACxB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2HAA2H,CAAC,CAAC;QAC/I,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEjG,8CAA8C;QAC9C,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,cAAc,CAAC,IAAY;QACjC,wCAAwC;QACxC,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,QAAQ,GAAG,IAAI,CAAC,CAAC;gBACf,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACxD,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC5B,CAAC;QAED,qDAAqD;QACrD,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,YAAY,CAAC,IAAY;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACnD,IAAI,EAAE,cAAc;gBACpB,kBAAkB,EAAE,KAAK;aAC1B,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,kBAAkB,CAAC,IAAS,EAAE,aAAqB,EAAE;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEvB,sCAAsC;QACtC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,6BAA6B;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/C,SAAS,CAAC,GAAG,EAAE,CAAC;YAChB,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3B,8BAA8B;YAC9B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;YAED,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;QAED,sBAAsB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjD,OAAO;YACL,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;YACxC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACxB,yBAAyB,CAAC,CAAC;gBAC3B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC;YACnD,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACrF,WAAW;YACX,cAAc,EAAE;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,GAAG,EAAE,IAAI,CAAC,GAAG;aACd;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,sBAAsB,CAAC,UAAkB;QACpD,4EAA4E;QAC5E,2CAA2C;QAC3C,IAAI,CAAC,8BAA8B,CAAC,wBAAwB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACI,KAAK,CAAC,wBAAwB,CAAC,UAAkB;QACtD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAEvD,mCAAmC;YACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;gBACxD,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,UAAU,CAAC,aAAqB,EAAE,aAAqB;QAClE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAElD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,KAAK,CAAC,YAAY,CAAC,UAAkB;QAC1C,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAEvD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC/B,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iEAAiE;YACjE,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,aAAa,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACI,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,SAAS,GAAG,GAAG;QACtD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;gBAClD,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,KAAK;gBAChB,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,KAAK;gBACtB,mCAAmC,EAAE,KAAK;aAC3C,CAAC,CAAC;YAEH,MAAM,OAAO,GAA4B,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,kBAAkB;YAClB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAErD,oCAAoC;gBACpC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC/B,MAAM,UAAU,GAAG,MAAM;wBACvB,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC/E,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBAEf,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,KAAK,CAAC,eAAe,CAAC,aAAqB;QAChD,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3E,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAEvC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBACrC,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gDAAgD;YAChD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,KAAK,CAAC,eAAe,CAAC,aAAqB,EAAE,SAAS,GAAG,IAAI;QAClE,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3E,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAEvC,2DAA2D;YAC3D,mFAAmF;YACnF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,oCAAoC;gBACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;oBACjD,IAAI,EAAE,cAAc;oBACpB,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC/B,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iEAAiE;YACjE,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,aAAa,EAAE,CAAC;gBAC3E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACI,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QAC/C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAErD,gCAAgC;YAChC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,6BAA6B;YAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,SAAS,CAAC,UAAkB;QACvC,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;gBAChD,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;YAEH,iCAAiC;YACjC,0EAA0E;YAC1E,OAAO,MAAM,CAAC,IAAI,CAAE,QAAQ,CAAC,MAAc,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACI,KAAK,CAAC,SAAS,CACpB,UAAkB,EAClB,IAAY,EACZ,WAAoB,EACpB,QAAiC;QAEjC,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAEvD,gDAAgD;YAChD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC7B,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;oBAC7B,UAAU,EAAE,KAAK;oBACjB,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa;gBAEjD,uBAAuB;gBACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC;oBAC9D,KAAK,EAAE,KAAK;oBACZ,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;iBACpC,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;gBACjD,IAAI,MAAM,GAAG,UAAU,CAAC;gBAExB,8BAA8B;gBAC9B,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC7E,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;oBAEzD,IAAI,WAAW,EAAE,CAAC;wBAChB,yCAAyC;wBACzC,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC;4BAC1C,MAAM,EAAE;gCACN,UAAU,EAAE,SAAS;gCACrB,MAAM,EAAE,MAAM;6BACf;4BACD,MAAM,EAAE;gCACN,IAAI,EAAE,cAAc;gCACpB,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;gCAC7B,UAAU,EAAE,KAAK;gCACjB,IAAI,EAAE,IAAI;6BACX;4BACD,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,0BAA0B;wBAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC;4BAC5C,MAAM,EAAE;gCACN,UAAU,EAAE,SAAS;gCACrB,MAAM,EAAE,MAAM;6BACf;4BACD,KAAK,EAAE,KAAK;4BACZ,QAAQ,EAAE,KAAK;yBAChB,CAAC,CAAC;oBACL,CAAC;oBAED,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,UAAU,CAAC,gBAAwB,EAAE,qBAA6B;QAC7E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YAE1D,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC7B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,YAAY,CAAC,UAAkB;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,KAAK,CAAC,eAAe,CAAC,aAAqB;QAChD,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChD,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,CAAC,CAAC,aAAa,CAAC;YAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAA;AA31BY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,sBAAa,EAAC,iCAAe,EAAE,iBAAiB,CAAC;;GACrC,kBAAkB,CA21B9B"}
|
|
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;
|
|
1
|
+
{"version":3,"file":"GoogleDriveFileStorage.d.ts","sourceRoot":"","sources":["../../src/drivers/GoogleDriveFileStorage.ts"],"names":[],"mappings":";AAIA,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,iBAAiB,EAEjB,mBAAmB,EACnB,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,oDAAoD;IACpD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;;;;;OAMG;;IA8CH;;;OAGG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;;;;;;;;;;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;IAcrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACU,WAAW,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IA4G/B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;YACW,kBAAkB;CAyBjC"}
|
|
@@ -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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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 (
|
|
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(
|
|
118
|
-
auth.setCredentials({ refresh_token:
|
|
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([
|