google-drive-mcp-lib 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +357 -0
  2. package/dist/cli.d.ts +6 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +16 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/client.d.ts +28 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +44 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/index.d.ts +14 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +16 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/mcp/handlers.d.ts +14 -0
  15. package/dist/mcp/handlers.d.ts.map +1 -0
  16. package/dist/mcp/handlers.js +146 -0
  17. package/dist/mcp/handlers.js.map +1 -0
  18. package/dist/mcp/server.d.ts +13 -0
  19. package/dist/mcp/server.d.ts.map +1 -0
  20. package/dist/mcp/server.js +87 -0
  21. package/dist/mcp/server.js.map +1 -0
  22. package/dist/mcp/tools.d.ts +231 -0
  23. package/dist/mcp/tools.d.ts.map +1 -0
  24. package/dist/mcp/tools.js +100 -0
  25. package/dist/mcp/tools.js.map +1 -0
  26. package/dist/operations/create-folder.d.ts +14 -0
  27. package/dist/operations/create-folder.d.ts.map +1 -0
  28. package/dist/operations/create-folder.js +31 -0
  29. package/dist/operations/create-folder.js.map +1 -0
  30. package/dist/operations/delete-file.d.ts +14 -0
  31. package/dist/operations/delete-file.d.ts.map +1 -0
  32. package/dist/operations/delete-file.js +13 -0
  33. package/dist/operations/delete-file.js.map +1 -0
  34. package/dist/operations/download-file.d.ts +14 -0
  35. package/dist/operations/download-file.d.ts.map +1 -0
  36. package/dist/operations/download-file.js +36 -0
  37. package/dist/operations/download-file.js.map +1 -0
  38. package/dist/operations/get-file.d.ts +14 -0
  39. package/dist/operations/get-file.d.ts.map +1 -0
  40. package/dist/operations/get-file.js +50 -0
  41. package/dist/operations/get-file.js.map +1 -0
  42. package/dist/operations/index.d.ts +11 -0
  43. package/dist/operations/index.d.ts.map +1 -0
  44. package/dist/operations/index.js +11 -0
  45. package/dist/operations/index.js.map +1 -0
  46. package/dist/operations/list-files.d.ts +14 -0
  47. package/dist/operations/list-files.d.ts.map +1 -0
  48. package/dist/operations/list-files.js +48 -0
  49. package/dist/operations/list-files.js.map +1 -0
  50. package/dist/operations/search-files.d.ts +14 -0
  51. package/dist/operations/search-files.d.ts.map +1 -0
  52. package/dist/operations/search-files.js +47 -0
  53. package/dist/operations/search-files.js.map +1 -0
  54. package/dist/operations/upload-file.d.ts +14 -0
  55. package/dist/operations/upload-file.d.ts.map +1 -0
  56. package/dist/operations/upload-file.js +36 -0
  57. package/dist/operations/upload-file.js.map +1 -0
  58. package/dist/tokens.d.ts +31 -0
  59. package/dist/tokens.d.ts.map +1 -0
  60. package/dist/tokens.js +77 -0
  61. package/dist/tokens.js.map +1 -0
  62. package/dist/types.d.ts +178 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +5 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +64 -0
@@ -0,0 +1,13 @@
1
+ /**
2
+ * MCP Server implementation
3
+ */
4
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
+ /**
6
+ * Create and configure the MCP server
7
+ */
8
+ export declare function createMcpServer(): Server;
9
+ /**
10
+ * Run the MCP server with stdio transport
11
+ */
12
+ export declare function runMcpServer(): Promise<void>;
13
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAWnE;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAiDxC;AA4BD;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAOlD"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * MCP Server implementation
3
+ */
4
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
6
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
7
+ import { toolDefinitions } from './tools.js';
8
+ import { handleToolCall } from './handlers.js';
9
+ /**
10
+ * Create and configure the MCP server
11
+ */
12
+ export function createMcpServer() {
13
+ const server = new Server({
14
+ name: 'google-drive-mcp-lib',
15
+ version: '1.0.0',
16
+ }, {
17
+ capabilities: {
18
+ tools: {},
19
+ },
20
+ });
21
+ // Register list tools handler
22
+ server.setRequestHandler(ListToolsRequestSchema, async (_request) => {
23
+ return {
24
+ tools: toolDefinitions.map((tool) => {
25
+ // Get the shape from the ZodObject
26
+ const shape = tool.schema.shape;
27
+ return {
28
+ name: tool.name,
29
+ description: tool.description,
30
+ inputSchema: {
31
+ type: 'object',
32
+ properties: Object.fromEntries(Object.entries(shape).map(([key, value]) => [
33
+ key,
34
+ {
35
+ type: getZodType(value),
36
+ description: value._def.description,
37
+ ...(value._def.defaultValue !== undefined && { default: value._def.defaultValue() }),
38
+ },
39
+ ])),
40
+ required: Object.entries(shape)
41
+ .filter(([, value]) => !value.isOptional())
42
+ .map(([key]) => key),
43
+ },
44
+ };
45
+ }),
46
+ };
47
+ });
48
+ // Register call tool handler
49
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
50
+ return handleToolCall(request);
51
+ });
52
+ return server;
53
+ }
54
+ /**
55
+ * Get JSON Schema type from Zod type
56
+ */
57
+ function getZodType(zodType) {
58
+ const typeName = zodType._def.typeName;
59
+ switch (typeName) {
60
+ case 'ZodString':
61
+ return 'string';
62
+ case 'ZodNumber':
63
+ return 'number';
64
+ case 'ZodBoolean':
65
+ return 'boolean';
66
+ case 'ZodArray':
67
+ return 'array';
68
+ case 'ZodObject':
69
+ return 'object';
70
+ case 'ZodOptional':
71
+ return getZodType(zodType._def.innerType);
72
+ case 'ZodDefault':
73
+ return getZodType(zodType._def.innerType);
74
+ default:
75
+ return 'string';
76
+ }
77
+ }
78
+ /**
79
+ * Run the MCP server with stdio transport
80
+ */
81
+ export async function runMcpServer() {
82
+ const server = createMcpServer();
83
+ const transport = new StdioServerTransport();
84
+ await server.connect(transport);
85
+ console.error('Google Drive MCP server running on stdio');
86
+ }
87
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * MCP Tool definitions with Zod schemas
3
+ */
4
+ import { z } from 'zod';
5
+ /**
6
+ * Schema for googleDriveListFiles tool
7
+ */
8
+ export declare const listFilesSchema: z.ZodObject<{
9
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
+ pageToken: z.ZodOptional<z.ZodString>;
11
+ orderBy: z.ZodOptional<z.ZodString>;
12
+ query: z.ZodOptional<z.ZodString>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ pageSize: number;
15
+ pageToken?: string | undefined;
16
+ orderBy?: string | undefined;
17
+ query?: string | undefined;
18
+ }, {
19
+ pageSize?: number | undefined;
20
+ pageToken?: string | undefined;
21
+ orderBy?: string | undefined;
22
+ query?: string | undefined;
23
+ }>;
24
+ /**
25
+ * Schema for googleDriveUploadFile tool
26
+ */
27
+ export declare const uploadFileSchema: z.ZodObject<{
28
+ name: z.ZodString;
29
+ mimeType: z.ZodOptional<z.ZodString>;
30
+ parents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
+ content: z.ZodString;
32
+ description: z.ZodOptional<z.ZodString>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ name: string;
35
+ content: string;
36
+ mimeType?: string | undefined;
37
+ parents?: string[] | undefined;
38
+ description?: string | undefined;
39
+ }, {
40
+ name: string;
41
+ content: string;
42
+ mimeType?: string | undefined;
43
+ parents?: string[] | undefined;
44
+ description?: string | undefined;
45
+ }>;
46
+ /**
47
+ * Schema for googleDriveGetFile tool
48
+ */
49
+ export declare const getFileSchema: z.ZodObject<{
50
+ fileId: z.ZodString;
51
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ fileId: string;
54
+ fields?: string[] | undefined;
55
+ }, {
56
+ fileId: string;
57
+ fields?: string[] | undefined;
58
+ }>;
59
+ /**
60
+ * Schema for googleDriveDownloadFile tool
61
+ */
62
+ export declare const downloadFileSchema: z.ZodObject<{
63
+ fileId: z.ZodString;
64
+ }, "strip", z.ZodTypeAny, {
65
+ fileId: string;
66
+ }, {
67
+ fileId: string;
68
+ }>;
69
+ /**
70
+ * Schema for googleDriveCreateFolder tool
71
+ */
72
+ export declare const createFolderSchema: z.ZodObject<{
73
+ name: z.ZodString;
74
+ parents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
75
+ description: z.ZodOptional<z.ZodString>;
76
+ }, "strip", z.ZodTypeAny, {
77
+ name: string;
78
+ parents?: string[] | undefined;
79
+ description?: string | undefined;
80
+ }, {
81
+ name: string;
82
+ parents?: string[] | undefined;
83
+ description?: string | undefined;
84
+ }>;
85
+ /**
86
+ * Schema for googleDriveSearchFiles tool
87
+ */
88
+ export declare const searchFilesSchema: z.ZodObject<{
89
+ query: z.ZodString;
90
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
91
+ pageToken: z.ZodOptional<z.ZodString>;
92
+ orderBy: z.ZodOptional<z.ZodString>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ pageSize: number;
95
+ query: string;
96
+ pageToken?: string | undefined;
97
+ orderBy?: string | undefined;
98
+ }, {
99
+ query: string;
100
+ pageSize?: number | undefined;
101
+ pageToken?: string | undefined;
102
+ orderBy?: string | undefined;
103
+ }>;
104
+ /**
105
+ * Schema for googleDriveDeleteFile tool
106
+ */
107
+ export declare const deleteFileSchema: z.ZodObject<{
108
+ fileId: z.ZodString;
109
+ }, "strip", z.ZodTypeAny, {
110
+ fileId: string;
111
+ }, {
112
+ fileId: string;
113
+ }>;
114
+ /**
115
+ * Tool definitions for MCP server
116
+ */
117
+ export declare const toolDefinitions: readonly [{
118
+ readonly name: "googleDriveListFiles";
119
+ readonly description: "List files in Google Drive with optional filtering and pagination";
120
+ readonly schema: z.ZodObject<{
121
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
122
+ pageToken: z.ZodOptional<z.ZodString>;
123
+ orderBy: z.ZodOptional<z.ZodString>;
124
+ query: z.ZodOptional<z.ZodString>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ pageSize: number;
127
+ pageToken?: string | undefined;
128
+ orderBy?: string | undefined;
129
+ query?: string | undefined;
130
+ }, {
131
+ pageSize?: number | undefined;
132
+ pageToken?: string | undefined;
133
+ orderBy?: string | undefined;
134
+ query?: string | undefined;
135
+ }>;
136
+ }, {
137
+ readonly name: "googleDriveUploadFile";
138
+ readonly description: "Upload a file to Google Drive";
139
+ readonly schema: z.ZodObject<{
140
+ name: z.ZodString;
141
+ mimeType: z.ZodOptional<z.ZodString>;
142
+ parents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
143
+ content: z.ZodString;
144
+ description: z.ZodOptional<z.ZodString>;
145
+ }, "strip", z.ZodTypeAny, {
146
+ name: string;
147
+ content: string;
148
+ mimeType?: string | undefined;
149
+ parents?: string[] | undefined;
150
+ description?: string | undefined;
151
+ }, {
152
+ name: string;
153
+ content: string;
154
+ mimeType?: string | undefined;
155
+ parents?: string[] | undefined;
156
+ description?: string | undefined;
157
+ }>;
158
+ }, {
159
+ readonly name: "googleDriveGetFile";
160
+ readonly description: "Get metadata for a specific file in Google Drive";
161
+ readonly schema: z.ZodObject<{
162
+ fileId: z.ZodString;
163
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
164
+ }, "strip", z.ZodTypeAny, {
165
+ fileId: string;
166
+ fields?: string[] | undefined;
167
+ }, {
168
+ fileId: string;
169
+ fields?: string[] | undefined;
170
+ }>;
171
+ }, {
172
+ readonly name: "googleDriveDownloadFile";
173
+ readonly description: "Download a file from Google Drive";
174
+ readonly schema: z.ZodObject<{
175
+ fileId: z.ZodString;
176
+ }, "strip", z.ZodTypeAny, {
177
+ fileId: string;
178
+ }, {
179
+ fileId: string;
180
+ }>;
181
+ }, {
182
+ readonly name: "googleDriveCreateFolder";
183
+ readonly description: "Create a new folder in Google Drive";
184
+ readonly schema: z.ZodObject<{
185
+ name: z.ZodString;
186
+ parents: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
187
+ description: z.ZodOptional<z.ZodString>;
188
+ }, "strip", z.ZodTypeAny, {
189
+ name: string;
190
+ parents?: string[] | undefined;
191
+ description?: string | undefined;
192
+ }, {
193
+ name: string;
194
+ parents?: string[] | undefined;
195
+ description?: string | undefined;
196
+ }>;
197
+ }, {
198
+ readonly name: "googleDriveSearchFiles";
199
+ readonly description: "Search for files in Google Drive using a query string";
200
+ readonly schema: z.ZodObject<{
201
+ query: z.ZodString;
202
+ pageSize: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
203
+ pageToken: z.ZodOptional<z.ZodString>;
204
+ orderBy: z.ZodOptional<z.ZodString>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ pageSize: number;
207
+ query: string;
208
+ pageToken?: string | undefined;
209
+ orderBy?: string | undefined;
210
+ }, {
211
+ query: string;
212
+ pageSize?: number | undefined;
213
+ pageToken?: string | undefined;
214
+ orderBy?: string | undefined;
215
+ }>;
216
+ }, {
217
+ readonly name: "googleDriveDeleteFile";
218
+ readonly description: "Delete a file from Google Drive";
219
+ readonly schema: z.ZodObject<{
220
+ fileId: z.ZodString;
221
+ }, "strip", z.ZodTypeAny, {
222
+ fileId: string;
223
+ }, {
224
+ fileId: string;
225
+ }>;
226
+ }];
227
+ /**
228
+ * Tool names type
229
+ */
230
+ export type ToolName = typeof toolDefinitions[number]['name'];
231
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoClB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * MCP Tool definitions with Zod schemas
3
+ */
4
+ import { z } from 'zod';
5
+ /**
6
+ * Schema for googleDriveListFiles tool
7
+ */
8
+ export const listFilesSchema = z.object({
9
+ pageSize: z.number().min(1).max(100).optional().default(10).describe('Number of files to return per page'),
10
+ pageToken: z.string().optional().describe('Token for pagination'),
11
+ orderBy: z.string().optional().describe('Field to sort by (e.g., "name", "createdTime desc")'),
12
+ query: z.string().optional().describe('Google Drive query string for filtering files'),
13
+ });
14
+ /**
15
+ * Schema for googleDriveUploadFile tool
16
+ */
17
+ export const uploadFileSchema = z.object({
18
+ name: z.string().min(1).describe('Name of the file to upload'),
19
+ mimeType: z.string().optional().describe('MIME type of the file'),
20
+ parents: z.array(z.string()).optional().describe('Array of parent folder IDs'),
21
+ content: z.string().describe('Base64 encoded file content'),
22
+ description: z.string().optional().describe('Description of the file'),
23
+ });
24
+ /**
25
+ * Schema for googleDriveGetFile tool
26
+ */
27
+ export const getFileSchema = z.object({
28
+ fileId: z.string().min(1).describe('ID of the file to retrieve'),
29
+ fields: z.array(z.string()).optional().describe('Fields to include in the response'),
30
+ });
31
+ /**
32
+ * Schema for googleDriveDownloadFile tool
33
+ */
34
+ export const downloadFileSchema = z.object({
35
+ fileId: z.string().min(1).describe('ID of the file to download'),
36
+ });
37
+ /**
38
+ * Schema for googleDriveCreateFolder tool
39
+ */
40
+ export const createFolderSchema = z.object({
41
+ name: z.string().min(1).describe('Name of the folder to create'),
42
+ parents: z.array(z.string()).optional().describe('Array of parent folder IDs'),
43
+ description: z.string().optional().describe('Description of the folder'),
44
+ });
45
+ /**
46
+ * Schema for googleDriveSearchFiles tool
47
+ */
48
+ export const searchFilesSchema = z.object({
49
+ query: z.string().min(1).describe('Google Drive query string (e.g., "name contains \'test\'")'),
50
+ pageSize: z.number().min(1).max(100).optional().default(10).describe('Number of files to return per page'),
51
+ pageToken: z.string().optional().describe('Token for pagination'),
52
+ orderBy: z.string().optional().describe('Field to sort by'),
53
+ });
54
+ /**
55
+ * Schema for googleDriveDeleteFile tool
56
+ */
57
+ export const deleteFileSchema = z.object({
58
+ fileId: z.string().min(1).describe('ID of the file to delete'),
59
+ });
60
+ /**
61
+ * Tool definitions for MCP server
62
+ */
63
+ export const toolDefinitions = [
64
+ {
65
+ name: 'googleDriveListFiles',
66
+ description: 'List files in Google Drive with optional filtering and pagination',
67
+ schema: listFilesSchema,
68
+ },
69
+ {
70
+ name: 'googleDriveUploadFile',
71
+ description: 'Upload a file to Google Drive',
72
+ schema: uploadFileSchema,
73
+ },
74
+ {
75
+ name: 'googleDriveGetFile',
76
+ description: 'Get metadata for a specific file in Google Drive',
77
+ schema: getFileSchema,
78
+ },
79
+ {
80
+ name: 'googleDriveDownloadFile',
81
+ description: 'Download a file from Google Drive',
82
+ schema: downloadFileSchema,
83
+ },
84
+ {
85
+ name: 'googleDriveCreateFolder',
86
+ description: 'Create a new folder in Google Drive',
87
+ schema: createFolderSchema,
88
+ },
89
+ {
90
+ name: 'googleDriveSearchFiles',
91
+ description: 'Search for files in Google Drive using a query string',
92
+ schema: searchFilesSchema,
93
+ },
94
+ {
95
+ name: 'googleDriveDeleteFile',
96
+ description: 'Delete a file from Google Drive',
97
+ schema: deleteFileSchema,
98
+ },
99
+ ];
100
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Create folder operation
3
+ */
4
+ import type { CreateFolderOperationOptions, CreateFolderResult, Tokens } from '../types.js';
5
+ /**
6
+ * Create a folder in Google Drive
7
+ *
8
+ * @param options - Options including folder name and parent folder
9
+ * @param tokensOrOptions - Tokens or combined options object
10
+ * @returns Created folder metadata
11
+ */
12
+ export declare function createFolder(options: CreateFolderOperationOptions): Promise<CreateFolderResult>;
13
+ export declare function createFolder(options: Omit<CreateFolderOperationOptions, 'tokens'>, tokens?: Tokens): Promise<CreateFolderResult>;
14
+ //# sourceMappingURL=create-folder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-folder.d.ts","sourceRoot":"","sources":["../../src/operations/create-folder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5F;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/B,wBAAsB,YAAY,CAChC,OAAO,EAAE,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,EACrD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Create folder operation
3
+ */
4
+ import { createDriveClient } from '../client.js';
5
+ export async function createFolder(options, tokens) {
6
+ // Handle both calling conventions
7
+ const resolvedTokens = tokens ?? options.tokens;
8
+ const drive = createDriveClient({ tokens: resolvedTokens });
9
+ const { name, parents, description } = options;
10
+ const response = await drive.files.create({
11
+ requestBody: {
12
+ name,
13
+ mimeType: 'application/vnd.google-apps.folder',
14
+ parents,
15
+ description,
16
+ },
17
+ fields: 'id,name,mimeType,parents,webViewLink',
18
+ });
19
+ const data = response.data;
20
+ if (!data.id || !data.name || !data.mimeType) {
21
+ throw new Error('Create folder failed: incomplete response from Google Drive API');
22
+ }
23
+ return {
24
+ id: data.id,
25
+ name: data.name,
26
+ mimeType: data.mimeType,
27
+ parents: Array.isArray(data.parents) ? data.parents : undefined,
28
+ webViewLink: typeof data.webViewLink === 'string' ? data.webViewLink : undefined,
29
+ };
30
+ }
31
+ //# sourceMappingURL=create-folder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-folder.js","sourceRoot":"","sources":["../../src/operations/create-folder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiBjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAqC,EACrC,MAAe;IAEf,kCAAkC;IAClC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAE5D,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACxC,WAAW,EAAE;YACX,IAAI;YACJ,QAAQ,EAAE,oCAAoC;YAC9C,OAAO;YACP,WAAW;SACZ;QACD,MAAM,EAAE,sCAAsC;KAC/C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAmB,CAAC,CAAC,CAAC,SAAS;QAC3E,WAAW,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;KACjF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Delete file operation
3
+ */
4
+ import type { DeleteFileOperationOptions, Tokens } from '../types.js';
5
+ /**
6
+ * Delete a file from Google Drive
7
+ *
8
+ * @param options - Options including file ID
9
+ * @param tokensOrOptions - Tokens or combined options object
10
+ * @returns true if deletion was successful
11
+ */
12
+ export declare function deleteFile(options: DeleteFileOperationOptions): Promise<boolean>;
13
+ export declare function deleteFile(options: Omit<DeleteFileOperationOptions, 'tokens'>, tokens?: Tokens): Promise<boolean>;
14
+ //# sourceMappingURL=delete-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-file.d.ts","sourceRoot":"","sources":["../../src/operations/delete-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpB,wBAAsB,UAAU,CAC9B,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EACnD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Delete file operation
3
+ */
4
+ import { createDriveClient } from '../client.js';
5
+ export async function deleteFile(options, tokens) {
6
+ // Handle both calling conventions
7
+ const resolvedTokens = tokens ?? options.tokens;
8
+ const drive = createDriveClient({ tokens: resolvedTokens });
9
+ const { fileId } = options;
10
+ await drive.files.delete({ fileId });
11
+ return true;
12
+ }
13
+ //# sourceMappingURL=delete-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-file.js","sourceRoot":"","sources":["../../src/operations/delete-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiBjD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAmC,EACnC,MAAe;IAEf,kCAAkC;IAClC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAE5D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAErC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Download file operation
3
+ */
4
+ import type { DownloadFileOperationOptions, DownloadFileResult, Tokens } from '../types.js';
5
+ /**
6
+ * Download a file from Google Drive
7
+ *
8
+ * @param options - Options including file ID
9
+ * @param tokensOrOptions - Tokens or combined options object
10
+ * @returns File content and metadata
11
+ */
12
+ export declare function downloadFile(options: DownloadFileOperationOptions): Promise<DownloadFileResult>;
13
+ export declare function downloadFile(options: Omit<DownloadFileOperationOptions, 'tokens'>, tokens?: Tokens): Promise<DownloadFileResult>;
14
+ //# sourceMappingURL=download-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-file.d.ts","sourceRoot":"","sources":["../../src/operations/download-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5F;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/B,wBAAsB,YAAY,CAChC,OAAO,EAAE,IAAI,CAAC,4BAA4B,EAAE,QAAQ,CAAC,EACrD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Download file operation
3
+ */
4
+ import { createDriveClient } from '../client.js';
5
+ export async function downloadFile(options, tokens) {
6
+ // Handle both calling conventions
7
+ const resolvedTokens = tokens ?? options.tokens;
8
+ const drive = createDriveClient({ tokens: resolvedTokens });
9
+ const { fileId } = options;
10
+ // Get file metadata first
11
+ const metadataResponse = await drive.files.get({
12
+ fileId,
13
+ fields: 'id,name,mimeType,size',
14
+ });
15
+ const metadata = metadataResponse.data;
16
+ if (!metadata.id || !metadata.name || !metadata.mimeType) {
17
+ throw new Error('Download failed: incomplete metadata from Google Drive API');
18
+ }
19
+ // Download file content
20
+ const contentResponse = await drive.files.get({
21
+ fileId,
22
+ alt: 'media',
23
+ }, {
24
+ responseType: 'arraybuffer',
25
+ });
26
+ const content = Buffer.from(contentResponse.data);
27
+ const size = metadata.size != null ? parseInt(String(metadata.size), 10) : content.length;
28
+ return {
29
+ id: metadata.id,
30
+ name: metadata.name,
31
+ mimeType: metadata.mimeType,
32
+ content,
33
+ size,
34
+ };
35
+ }
36
+ //# sourceMappingURL=download-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download-file.js","sourceRoot":"","sources":["../../src/operations/download-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAiBjD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAqC,EACrC,MAAe;IAEf,kCAAkC;IAClC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAE5D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7C,MAAM;QACN,MAAM,EAAE,uBAAuB;KAChC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,wBAAwB;IACxB,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAC3C;QACE,MAAM;QACN,GAAG,EAAE,OAAO;KACb,EACD;QACE,YAAY,EAAE,aAAa;KAC5B,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAmB,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAE1F,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO;QACP,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Get file operation
3
+ */
4
+ import type { GetFileOperationOptions, FileMetadata, Tokens } from '../types.js';
5
+ /**
6
+ * Get file metadata from Google Drive
7
+ *
8
+ * @param options - Options including file ID and fields to retrieve
9
+ * @param tokensOrOptions - Tokens or combined options object
10
+ * @returns File metadata
11
+ */
12
+ export declare function getFile(options: GetFileOperationOptions): Promise<FileMetadata>;
13
+ export declare function getFile(options: Omit<GetFileOperationOptions, 'tokens'>, tokens?: Tokens): Promise<FileMetadata>;
14
+ //# sourceMappingURL=get-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file.d.ts","sourceRoot":"","sources":["../../src/operations/get-file.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAmBjF;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAAC;AACzB,wBAAsB,OAAO,CAC3B,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC,EAChD,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CAAC"}