@mcp-z/mcp-drive 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 (202) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +163 -0
  3. package/bin/server.js +5 -0
  4. package/dist/cjs/constants.d.cts +7 -0
  5. package/dist/cjs/constants.d.ts +7 -0
  6. package/dist/cjs/constants.js +18 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/index.d.cts +8 -0
  9. package/dist/cjs/index.d.ts +8 -0
  10. package/dist/cjs/index.js +314 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/lib/create-store.d.cts +2 -0
  13. package/dist/cjs/lib/create-store.d.ts +2 -0
  14. package/dist/cjs/lib/create-store.js +166 -0
  15. package/dist/cjs/lib/create-store.js.map +1 -0
  16. package/dist/cjs/lib/query-builder.d.cts +45 -0
  17. package/dist/cjs/lib/query-builder.d.ts +45 -0
  18. package/dist/cjs/lib/query-builder.js +219 -0
  19. package/dist/cjs/lib/query-builder.js.map +1 -0
  20. package/dist/cjs/mcp/index.d.cts +3 -0
  21. package/dist/cjs/mcp/index.d.ts +3 -0
  22. package/dist/cjs/mcp/index.js +66 -0
  23. package/dist/cjs/mcp/index.js.map +1 -0
  24. package/dist/cjs/mcp/prompts/index.d.cts +2 -0
  25. package/dist/cjs/mcp/prompts/index.d.ts +2 -0
  26. package/dist/cjs/mcp/prompts/index.js +26 -0
  27. package/dist/cjs/mcp/prompts/index.js.map +1 -0
  28. package/dist/cjs/mcp/prompts/organize-files.d.cts +16 -0
  29. package/dist/cjs/mcp/prompts/organize-files.d.ts +16 -0
  30. package/dist/cjs/mcp/prompts/organize-files.js +169 -0
  31. package/dist/cjs/mcp/prompts/organize-files.js.map +1 -0
  32. package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
  33. package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
  34. package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
  35. package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
  36. package/dist/cjs/mcp/resources/file.d.cts +9 -0
  37. package/dist/cjs/mcp/resources/file.d.ts +9 -0
  38. package/dist/cjs/mcp/resources/file.js +247 -0
  39. package/dist/cjs/mcp/resources/file.js.map +1 -0
  40. package/dist/cjs/mcp/resources/index.d.cts +1 -0
  41. package/dist/cjs/mcp/resources/index.d.ts +1 -0
  42. package/dist/cjs/mcp/resources/index.js +17 -0
  43. package/dist/cjs/mcp/resources/index.js.map +1 -0
  44. package/dist/cjs/mcp/tools/file-move-to-trash.d.cts +59 -0
  45. package/dist/cjs/mcp/tools/file-move-to-trash.d.ts +59 -0
  46. package/dist/cjs/mcp/tools/file-move-to-trash.js +334 -0
  47. package/dist/cjs/mcp/tools/file-move-to-trash.js.map +1 -0
  48. package/dist/cjs/mcp/tools/file-move.d.cts +73 -0
  49. package/dist/cjs/mcp/tools/file-move.d.ts +73 -0
  50. package/dist/cjs/mcp/tools/file-move.js +613 -0
  51. package/dist/cjs/mcp/tools/file-move.js.map +1 -0
  52. package/dist/cjs/mcp/tools/files-search.d.cts +135 -0
  53. package/dist/cjs/mcp/tools/files-search.d.ts +135 -0
  54. package/dist/cjs/mcp/tools/files-search.js +558 -0
  55. package/dist/cjs/mcp/tools/files-search.js.map +1 -0
  56. package/dist/cjs/mcp/tools/folder-contents.d.cts +139 -0
  57. package/dist/cjs/mcp/tools/folder-contents.d.ts +139 -0
  58. package/dist/cjs/mcp/tools/folder-contents.js +513 -0
  59. package/dist/cjs/mcp/tools/folder-contents.js.map +1 -0
  60. package/dist/cjs/mcp/tools/folder-create.d.cts +59 -0
  61. package/dist/cjs/mcp/tools/folder-create.d.ts +59 -0
  62. package/dist/cjs/mcp/tools/folder-create.js +368 -0
  63. package/dist/cjs/mcp/tools/folder-create.js.map +1 -0
  64. package/dist/cjs/mcp/tools/folder-path.d.cts +49 -0
  65. package/dist/cjs/mcp/tools/folder-path.d.ts +49 -0
  66. package/dist/cjs/mcp/tools/folder-path.js +367 -0
  67. package/dist/cjs/mcp/tools/folder-path.js.map +1 -0
  68. package/dist/cjs/mcp/tools/folder-search.d.cts +139 -0
  69. package/dist/cjs/mcp/tools/folder-search.d.ts +139 -0
  70. package/dist/cjs/mcp/tools/folder-search.js +760 -0
  71. package/dist/cjs/mcp/tools/folder-search.js.map +1 -0
  72. package/dist/cjs/mcp/tools/index.d.cts +7 -0
  73. package/dist/cjs/mcp/tools/index.d.ts +7 -0
  74. package/dist/cjs/mcp/tools/index.js +46 -0
  75. package/dist/cjs/mcp/tools/index.js.map +1 -0
  76. package/dist/cjs/package.json +1 -0
  77. package/dist/cjs/schemas/drive-query-schema.d.cts +40 -0
  78. package/dist/cjs/schemas/drive-query-schema.d.ts +40 -0
  79. package/dist/cjs/schemas/drive-query-schema.js +90 -0
  80. package/dist/cjs/schemas/drive-query-schema.js.map +1 -0
  81. package/dist/cjs/schemas/drive-validation.d.cts +48 -0
  82. package/dist/cjs/schemas/drive-validation.d.ts +48 -0
  83. package/dist/cjs/schemas/drive-validation.js +96 -0
  84. package/dist/cjs/schemas/drive-validation.js.map +1 -0
  85. package/dist/cjs/schemas/index.d.cts +2 -0
  86. package/dist/cjs/schemas/index.d.ts +2 -0
  87. package/dist/cjs/schemas/index.js +20 -0
  88. package/dist/cjs/schemas/index.js.map +1 -0
  89. package/dist/cjs/setup/config.d.cts +44 -0
  90. package/dist/cjs/setup/config.d.ts +44 -0
  91. package/dist/cjs/setup/config.js +201 -0
  92. package/dist/cjs/setup/config.js.map +1 -0
  93. package/dist/cjs/setup/http.d.cts +8 -0
  94. package/dist/cjs/setup/http.d.ts +8 -0
  95. package/dist/cjs/setup/http.js +260 -0
  96. package/dist/cjs/setup/http.js.map +1 -0
  97. package/dist/cjs/setup/index.d.cts +5 -0
  98. package/dist/cjs/setup/index.d.ts +5 -0
  99. package/dist/cjs/setup/index.js +46 -0
  100. package/dist/cjs/setup/index.js.map +1 -0
  101. package/dist/cjs/setup/oauth-google.d.cts +64 -0
  102. package/dist/cjs/setup/oauth-google.d.ts +64 -0
  103. package/dist/cjs/setup/oauth-google.js +347 -0
  104. package/dist/cjs/setup/oauth-google.js.map +1 -0
  105. package/dist/cjs/setup/runtime.d.cts +10 -0
  106. package/dist/cjs/setup/runtime.d.ts +10 -0
  107. package/dist/cjs/setup/runtime.js +353 -0
  108. package/dist/cjs/setup/runtime.js.map +1 -0
  109. package/dist/cjs/setup/stdio.d.cts +7 -0
  110. package/dist/cjs/setup/stdio.d.ts +7 -0
  111. package/dist/cjs/setup/stdio.js +239 -0
  112. package/dist/cjs/setup/stdio.js.map +1 -0
  113. package/dist/cjs/types.d.cts +45 -0
  114. package/dist/cjs/types.d.ts +45 -0
  115. package/dist/cjs/types.js +5 -0
  116. package/dist/cjs/types.js.map +1 -0
  117. package/dist/esm/constants.d.ts +7 -0
  118. package/dist/esm/constants.js +7 -0
  119. package/dist/esm/constants.js.map +1 -0
  120. package/dist/esm/index.d.ts +8 -0
  121. package/dist/esm/index.js +34 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/esm/lib/create-store.d.ts +2 -0
  124. package/dist/esm/lib/create-store.js +6 -0
  125. package/dist/esm/lib/create-store.js.map +1 -0
  126. package/dist/esm/lib/query-builder.d.ts +45 -0
  127. package/dist/esm/lib/query-builder.js +184 -0
  128. package/dist/esm/lib/query-builder.js.map +1 -0
  129. package/dist/esm/mcp/index.d.ts +3 -0
  130. package/dist/esm/mcp/index.js +6 -0
  131. package/dist/esm/mcp/index.js.map +1 -0
  132. package/dist/esm/mcp/prompts/index.d.ts +2 -0
  133. package/dist/esm/mcp/prompts/index.js +2 -0
  134. package/dist/esm/mcp/prompts/index.js.map +1 -0
  135. package/dist/esm/mcp/prompts/organize-files.d.ts +16 -0
  136. package/dist/esm/mcp/prompts/organize-files.js +21 -0
  137. package/dist/esm/mcp/prompts/organize-files.js.map +1 -0
  138. package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
  139. package/dist/esm/mcp/prompts/query-syntax.js +82 -0
  140. package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
  141. package/dist/esm/mcp/resources/file.d.ts +9 -0
  142. package/dist/esm/mcp/resources/file.js +77 -0
  143. package/dist/esm/mcp/resources/file.js.map +1 -0
  144. package/dist/esm/mcp/resources/index.d.ts +1 -0
  145. package/dist/esm/mcp/resources/index.js +1 -0
  146. package/dist/esm/mcp/resources/index.js.map +1 -0
  147. package/dist/esm/mcp/tools/file-move-to-trash.d.ts +59 -0
  148. package/dist/esm/mcp/tools/file-move-to-trash.js +118 -0
  149. package/dist/esm/mcp/tools/file-move-to-trash.js.map +1 -0
  150. package/dist/esm/mcp/tools/file-move.d.ts +73 -0
  151. package/dist/esm/mcp/tools/file-move.js +274 -0
  152. package/dist/esm/mcp/tools/file-move.js.map +1 -0
  153. package/dist/esm/mcp/tools/files-search.d.ts +135 -0
  154. package/dist/esm/mcp/tools/files-search.js +254 -0
  155. package/dist/esm/mcp/tools/files-search.js.map +1 -0
  156. package/dist/esm/mcp/tools/folder-contents.d.ts +139 -0
  157. package/dist/esm/mcp/tools/folder-contents.js +214 -0
  158. package/dist/esm/mcp/tools/folder-contents.js.map +1 -0
  159. package/dist/esm/mcp/tools/folder-create.d.ts +59 -0
  160. package/dist/esm/mcp/tools/folder-create.js +140 -0
  161. package/dist/esm/mcp/tools/folder-create.js.map +1 -0
  162. package/dist/esm/mcp/tools/folder-path.d.ts +49 -0
  163. package/dist/esm/mcp/tools/folder-path.js +147 -0
  164. package/dist/esm/mcp/tools/folder-path.js.map +1 -0
  165. package/dist/esm/mcp/tools/folder-search.d.ts +139 -0
  166. package/dist/esm/mcp/tools/folder-search.js +343 -0
  167. package/dist/esm/mcp/tools/folder-search.js.map +1 -0
  168. package/dist/esm/mcp/tools/index.d.ts +7 -0
  169. package/dist/esm/mcp/tools/index.js +7 -0
  170. package/dist/esm/mcp/tools/index.js.map +1 -0
  171. package/dist/esm/package.json +1 -0
  172. package/dist/esm/schemas/drive-query-schema.d.ts +40 -0
  173. package/dist/esm/schemas/drive-query-schema.js +84 -0
  174. package/dist/esm/schemas/drive-query-schema.js.map +1 -0
  175. package/dist/esm/schemas/drive-validation.d.ts +48 -0
  176. package/dist/esm/schemas/drive-validation.js +73 -0
  177. package/dist/esm/schemas/drive-validation.js.map +1 -0
  178. package/dist/esm/schemas/index.d.ts +2 -0
  179. package/dist/esm/schemas/index.js +2 -0
  180. package/dist/esm/schemas/index.js.map +1 -0
  181. package/dist/esm/setup/config.d.ts +44 -0
  182. package/dist/esm/setup/config.js +151 -0
  183. package/dist/esm/setup/config.js.map +1 -0
  184. package/dist/esm/setup/http.d.ts +8 -0
  185. package/dist/esm/setup/http.js +54 -0
  186. package/dist/esm/setup/http.js.map +1 -0
  187. package/dist/esm/setup/index.d.ts +5 -0
  188. package/dist/esm/setup/index.js +5 -0
  189. package/dist/esm/setup/index.js.map +1 -0
  190. package/dist/esm/setup/oauth-google.d.ts +64 -0
  191. package/dist/esm/setup/oauth-google.js +168 -0
  192. package/dist/esm/setup/oauth-google.js.map +1 -0
  193. package/dist/esm/setup/runtime.d.ts +10 -0
  194. package/dist/esm/setup/runtime.js +84 -0
  195. package/dist/esm/setup/runtime.js.map +1 -0
  196. package/dist/esm/setup/stdio.d.ts +7 -0
  197. package/dist/esm/setup/stdio.js +38 -0
  198. package/dist/esm/setup/stdio.js.map +1 -0
  199. package/dist/esm/types.d.ts +45 -0
  200. package/dist/esm/types.js +1 -0
  201. package/dist/esm/types.js.map +1 -0
  202. package/package.json +108 -0
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createPrompt;
9
+ }
10
+ });
11
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
12
+ try {
13
+ var info = gen[key](arg);
14
+ var value = info.value;
15
+ } catch (error) {
16
+ reject(error);
17
+ return;
18
+ }
19
+ if (info.done) {
20
+ resolve(value);
21
+ } else {
22
+ Promise.resolve(value).then(_next, _throw);
23
+ }
24
+ }
25
+ function _async_to_generator(fn) {
26
+ return function() {
27
+ var self = this, args = arguments;
28
+ return new Promise(function(resolve, reject) {
29
+ var gen = fn.apply(self, args);
30
+ function _next(value) {
31
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
32
+ }
33
+ function _throw(err) {
34
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
35
+ }
36
+ _next(undefined);
37
+ });
38
+ };
39
+ }
40
+ function _ts_generator(thisArg, body) {
41
+ var f, y, t, _ = {
42
+ label: 0,
43
+ sent: function() {
44
+ if (t[0] & 1) throw t[1];
45
+ return t[1];
46
+ },
47
+ trys: [],
48
+ ops: []
49
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
50
+ return d(g, "next", {
51
+ value: verb(0)
52
+ }), d(g, "throw", {
53
+ value: verb(1)
54
+ }), d(g, "return", {
55
+ value: verb(2)
56
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
57
+ value: function() {
58
+ return this;
59
+ }
60
+ }), g;
61
+ function verb(n) {
62
+ return function(v) {
63
+ return step([
64
+ n,
65
+ v
66
+ ]);
67
+ };
68
+ }
69
+ function step(op) {
70
+ if (f) throw new TypeError("Generator is already executing.");
71
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
72
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
73
+ if (y = 0, t) op = [
74
+ op[0] & 2,
75
+ t.value
76
+ ];
77
+ switch(op[0]){
78
+ case 0:
79
+ case 1:
80
+ t = op;
81
+ break;
82
+ case 4:
83
+ _.label++;
84
+ return {
85
+ value: op[1],
86
+ done: false
87
+ };
88
+ case 5:
89
+ _.label++;
90
+ y = op[1];
91
+ op = [
92
+ 0
93
+ ];
94
+ continue;
95
+ case 7:
96
+ op = _.ops.pop();
97
+ _.trys.pop();
98
+ continue;
99
+ default:
100
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
101
+ _ = 0;
102
+ continue;
103
+ }
104
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
105
+ _.label = op[1];
106
+ break;
107
+ }
108
+ if (op[0] === 6 && _.label < t[1]) {
109
+ _.label = t[1];
110
+ t = op;
111
+ break;
112
+ }
113
+ if (t && _.label < t[2]) {
114
+ _.label = t[2];
115
+ _.ops.push(op);
116
+ break;
117
+ }
118
+ if (t[2]) _.ops.pop();
119
+ _.trys.pop();
120
+ continue;
121
+ }
122
+ op = body.call(thisArg, _);
123
+ } catch (e) {
124
+ op = [
125
+ 6,
126
+ e
127
+ ];
128
+ y = 0;
129
+ } finally{
130
+ f = t = 0;
131
+ }
132
+ if (op[0] & 5) throw op[1];
133
+ return {
134
+ value: op[0] ? op[1] : void 0,
135
+ done: true
136
+ };
137
+ }
138
+ }
139
+ function createPrompt() {
140
+ var config = {
141
+ description: 'Help organize and manage files in Google Drive',
142
+ argsSchema: {}
143
+ };
144
+ return {
145
+ name: 'organize-files',
146
+ config: config,
147
+ handler: function() {
148
+ return _async_to_generator(function() {
149
+ return _ts_generator(this, function(_state) {
150
+ return [
151
+ 2,
152
+ {
153
+ messages: [
154
+ {
155
+ role: 'user',
156
+ content: {
157
+ type: 'text',
158
+ text: 'You are an expert file organizer assistant. Help me organize my Google Drive files.'
159
+ }
160
+ }
161
+ ]
162
+ }
163
+ ];
164
+ });
165
+ })();
166
+ }
167
+ };
168
+ }
169
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-drive/src/mcp/prompts/organize-files.ts"],"sourcesContent":["import type { PromptModule } from '@mcp-z/server';\n\nexport default function createPrompt() {\n const config = {\n description: 'Help organize and manage files in Google Drive',\n argsSchema: {} as const,\n };\n\n return {\n name: 'organize-files',\n config,\n handler: async () => ({\n messages: [\n {\n role: 'user',\n content: {\n type: 'text',\n text: 'You are an expert file organizer assistant. Help me organize my Google Drive files.',\n },\n },\n ],\n }),\n } satisfies PromptModule;\n}\n"],"names":["createPrompt","config","description","argsSchema","name","handler","messages","role","content","type","text"],"mappings":";;;;+BAEA;;;eAAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAT,SAASA;IACtB,IAAMC,SAAS;QACbC,aAAa;QACbC,YAAY,CAAC;IACf;IAEA,OAAO;QACLC,MAAM;QACNH,QAAAA;QACAI,SAAS;;;;;wBAAa;4BACpBC,QAAQ;gCACN;oCACEC,MAAM;oCACNC,SAAS;wCACPC,MAAM;wCACNC,MAAM;oCACR;gCACF;;wBAEJ;;;;;IACF;AACF"}
@@ -0,0 +1,19 @@
1
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
+ import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
3
+ export default function createPrompt(): {
4
+ name: string;
5
+ config: {
6
+ description: string;
7
+ };
8
+ handler: (_args: {
9
+ [x: string]: unknown;
10
+ }, _extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => Promise<{
11
+ messages: {
12
+ role: "user";
13
+ content: {
14
+ type: "text";
15
+ text: string;
16
+ };
17
+ }[];
18
+ }>;
19
+ };
@@ -0,0 +1,19 @@
1
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
+ import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
3
+ export default function createPrompt(): {
4
+ name: string;
5
+ config: {
6
+ description: string;
7
+ };
8
+ handler: (_args: {
9
+ [x: string]: unknown;
10
+ }, _extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => Promise<{
11
+ messages: {
12
+ role: "user";
13
+ content: {
14
+ type: "text";
15
+ text: string;
16
+ };
17
+ }[];
18
+ }>;
19
+ };
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createPrompt;
9
+ }
10
+ });
11
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
12
+ try {
13
+ var info = gen[key](arg);
14
+ var value = info.value;
15
+ } catch (error) {
16
+ reject(error);
17
+ return;
18
+ }
19
+ if (info.done) {
20
+ resolve(value);
21
+ } else {
22
+ Promise.resolve(value).then(_next, _throw);
23
+ }
24
+ }
25
+ function _async_to_generator(fn) {
26
+ return function() {
27
+ var self = this, args = arguments;
28
+ return new Promise(function(resolve, reject) {
29
+ var gen = fn.apply(self, args);
30
+ function _next(value) {
31
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
32
+ }
33
+ function _throw(err) {
34
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
35
+ }
36
+ _next(undefined);
37
+ });
38
+ };
39
+ }
40
+ function _ts_generator(thisArg, body) {
41
+ var f, y, t, _ = {
42
+ label: 0,
43
+ sent: function() {
44
+ if (t[0] & 1) throw t[1];
45
+ return t[1];
46
+ },
47
+ trys: [],
48
+ ops: []
49
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
50
+ return d(g, "next", {
51
+ value: verb(0)
52
+ }), d(g, "throw", {
53
+ value: verb(1)
54
+ }), d(g, "return", {
55
+ value: verb(2)
56
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
57
+ value: function() {
58
+ return this;
59
+ }
60
+ }), g;
61
+ function verb(n) {
62
+ return function(v) {
63
+ return step([
64
+ n,
65
+ v
66
+ ]);
67
+ };
68
+ }
69
+ function step(op) {
70
+ if (f) throw new TypeError("Generator is already executing.");
71
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
72
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
73
+ if (y = 0, t) op = [
74
+ op[0] & 2,
75
+ t.value
76
+ ];
77
+ switch(op[0]){
78
+ case 0:
79
+ case 1:
80
+ t = op;
81
+ break;
82
+ case 4:
83
+ _.label++;
84
+ return {
85
+ value: op[1],
86
+ done: false
87
+ };
88
+ case 5:
89
+ _.label++;
90
+ y = op[1];
91
+ op = [
92
+ 0
93
+ ];
94
+ continue;
95
+ case 7:
96
+ op = _.ops.pop();
97
+ _.trys.pop();
98
+ continue;
99
+ default:
100
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
101
+ _ = 0;
102
+ continue;
103
+ }
104
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
105
+ _.label = op[1];
106
+ break;
107
+ }
108
+ if (op[0] === 6 && _.label < t[1]) {
109
+ _.label = t[1];
110
+ t = op;
111
+ break;
112
+ }
113
+ if (t && _.label < t[2]) {
114
+ _.label = t[2];
115
+ _.ops.push(op);
116
+ break;
117
+ }
118
+ if (t[2]) _.ops.pop();
119
+ _.trys.pop();
120
+ continue;
121
+ }
122
+ op = body.call(thisArg, _);
123
+ } catch (e) {
124
+ op = [
125
+ 6,
126
+ e
127
+ ];
128
+ y = 0;
129
+ } finally{
130
+ f = t = 0;
131
+ }
132
+ if (op[0] & 5) throw op[1];
133
+ return {
134
+ value: op[0] ? op[1] : void 0,
135
+ done: true
136
+ };
137
+ }
138
+ }
139
+ function createPrompt() {
140
+ var config = {
141
+ description: 'Reference guide for Google Drive query syntax'
142
+ };
143
+ var handler = function(_args, _extra) {
144
+ return _async_to_generator(function() {
145
+ return _ts_generator(this, function(_state) {
146
+ return [
147
+ 2,
148
+ {
149
+ messages: [
150
+ {
151
+ role: 'user',
152
+ content: {
153
+ type: 'text',
154
+ text: '# Google Drive Query Syntax Reference\n\n## Logical Operators\n- `$and`: Array of conditions that ALL must match\n- `$or`: Array of conditions where ANY must match\n- `$not`: Condition that must NOT match\n\n## File/Folder Fields\n- `name`: Search by name (partial match, case-insensitive)\n- `mimeType`: Filter by MIME type\n- `fullText`: Search file content and metadata\n- `parentId`: Search within folder (use "root" for My Drive)\n- `owner`: Filter by owner email\n\n## Boolean Flags\n- `starred`: true/false\n- `sharedWithMe`: true/false\n- `trashed`: true/false (tools auto-filter trashed by default)\n\n## Date Range\n```json\n{ "modifiedTime": { "$gte": "2024-01-01", "$lt": "2024-12-31" } }\n```\n\n## Common MIME Types\n- `application/vnd.google-apps.folder`: Folders\n- `application/vnd.google-apps.document`: Google Docs\n- `application/vnd.google-apps.spreadsheet`: Google Sheets\n- `application/vnd.google-apps.presentation`: Google Slides\n- `application/pdf`: PDF files\n- `image/jpeg`, `image/png`: Images\n\n## Field Operators (for multi-value fields)\n- `$any`: OR - matches if ANY value matches\n- `$all`: AND - matches if ALL values match\n- `$none`: NOT - matches if NONE match\n\n## Escape Hatch\n- `rawDriveQuery`: Raw Google Drive query syntax\n\n## Example Queries\n```json\n// PDFs modified this year\n{ "mimeType": "application/pdf", "modifiedTime": { "$gte": "2024-01-01" } }\n\n// Starred spreadsheets\n{ "mimeType": "application/vnd.google-apps.spreadsheet", "starred": true }\n\n// Files in specific folder\n{ "parentId": "1abc123xyz" }\n\n// Search by name\n{ "name": "budget" }\n\n// Complex: shared PDFs or Docs\n{ "$or": [\n { "mimeType": "application/pdf", "sharedWithMe": true },\n { "mimeType": "application/vnd.google-apps.document", "sharedWithMe": true }\n]}\n```'
155
+ }
156
+ }
157
+ ]
158
+ }
159
+ ];
160
+ });
161
+ })();
162
+ };
163
+ return {
164
+ name: 'query-syntax',
165
+ config: config,
166
+ handler: handler
167
+ };
168
+ }
169
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-drive/src/mcp/prompts/query-syntax.ts"],"sourcesContent":["import type { PromptModule } from '@mcp-z/server';\nimport type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';\nimport type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';\n\nexport default function createPrompt() {\n const config = {\n description: 'Reference guide for Google Drive query syntax',\n };\n\n const handler = async (_args: { [x: string]: unknown }, _extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => {\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `# Google Drive Query Syntax Reference\n\n## Logical Operators\n- \\`$and\\`: Array of conditions that ALL must match\n- \\`$or\\`: Array of conditions where ANY must match\n- \\`$not\\`: Condition that must NOT match\n\n## File/Folder Fields\n- \\`name\\`: Search by name (partial match, case-insensitive)\n- \\`mimeType\\`: Filter by MIME type\n- \\`fullText\\`: Search file content and metadata\n- \\`parentId\\`: Search within folder (use \"root\" for My Drive)\n- \\`owner\\`: Filter by owner email\n\n## Boolean Flags\n- \\`starred\\`: true/false\n- \\`sharedWithMe\\`: true/false\n- \\`trashed\\`: true/false (tools auto-filter trashed by default)\n\n## Date Range\n\\`\\`\\`json\n{ \"modifiedTime\": { \"$gte\": \"2024-01-01\", \"$lt\": \"2024-12-31\" } }\n\\`\\`\\`\n\n## Common MIME Types\n- \\`application/vnd.google-apps.folder\\`: Folders\n- \\`application/vnd.google-apps.document\\`: Google Docs\n- \\`application/vnd.google-apps.spreadsheet\\`: Google Sheets\n- \\`application/vnd.google-apps.presentation\\`: Google Slides\n- \\`application/pdf\\`: PDF files\n- \\`image/jpeg\\`, \\`image/png\\`: Images\n\n## Field Operators (for multi-value fields)\n- \\`$any\\`: OR - matches if ANY value matches\n- \\`$all\\`: AND - matches if ALL values match\n- \\`$none\\`: NOT - matches if NONE match\n\n## Escape Hatch\n- \\`rawDriveQuery\\`: Raw Google Drive query syntax\n\n## Example Queries\n\\`\\`\\`json\n// PDFs modified this year\n{ \"mimeType\": \"application/pdf\", \"modifiedTime\": { \"$gte\": \"2024-01-01\" } }\n\n// Starred spreadsheets\n{ \"mimeType\": \"application/vnd.google-apps.spreadsheet\", \"starred\": true }\n\n// Files in specific folder\n{ \"parentId\": \"1abc123xyz\" }\n\n// Search by name\n{ \"name\": \"budget\" }\n\n// Complex: shared PDFs or Docs\n{ \"$or\": [\n { \"mimeType\": \"application/pdf\", \"sharedWithMe\": true },\n { \"mimeType\": \"application/vnd.google-apps.document\", \"sharedWithMe\": true }\n]}\n\\`\\`\\``,\n },\n },\n ],\n };\n };\n\n return {\n name: 'query-syntax',\n config,\n handler,\n } satisfies PromptModule;\n}\n"],"names":["createPrompt","config","description","handler","_args","_extra","messages","role","content","type","text","name"],"mappings":";;;;+BAIA;;;eAAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAT,SAASA;IACtB,IAAMC,SAAS;QACbC,aAAa;IACf;IAEA,IAAMC,UAAU,SAAOC,OAAiCC;;;gBACtD;;oBAAO;wBACLC,QAAQ;4BACN;gCACEC,MAAM;gCACNC,SAAS;oCACPC,MAAM;oCACNC,MAAM;gCA4DR;4BACF;;oBAEJ;;;QACF;;IAEA,OAAO;QACLC,MAAM;QACNV,QAAAA;QACAE,SAAAA;IACF;AACF"}
@@ -0,0 +1,9 @@
1
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
+ import type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
4
+ export default function createResource(): {
5
+ name: string;
6
+ template: ResourceTemplate;
7
+ config: import("@modelcontextprotocol/sdk/server/mcp.js").ResourceMetadata;
8
+ handler: (uri: URL, variables: Record<string, string | string[]>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => Promise<ReadResourceResult>;
9
+ };
@@ -0,0 +1,9 @@
1
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
+ import type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
4
+ export default function createResource(): {
5
+ name: string;
6
+ template: ResourceTemplate;
7
+ config: import("@modelcontextprotocol/sdk/server/mcp.js").ResourceMetadata;
8
+ handler: (uri: URL, variables: Record<string, string | string[]>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => Promise<ReadResourceResult>;
9
+ };
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createResource;
9
+ }
10
+ });
11
+ var _mcp = require("@modelcontextprotocol/sdk/server/mcp.js");
12
+ var _googleapis = require("googleapis");
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14
+ try {
15
+ var info = gen[key](arg);
16
+ var value = info.value;
17
+ } catch (error) {
18
+ reject(error);
19
+ return;
20
+ }
21
+ if (info.done) {
22
+ resolve(value);
23
+ } else {
24
+ Promise.resolve(value).then(_next, _throw);
25
+ }
26
+ }
27
+ function _async_to_generator(fn) {
28
+ return function() {
29
+ var self = this, args = arguments;
30
+ return new Promise(function(resolve, reject) {
31
+ var gen = fn.apply(self, args);
32
+ function _next(value) {
33
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
34
+ }
35
+ function _throw(err) {
36
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
37
+ }
38
+ _next(undefined);
39
+ });
40
+ };
41
+ }
42
+ function _ts_generator(thisArg, body) {
43
+ var f, y, t, _ = {
44
+ label: 0,
45
+ sent: function() {
46
+ if (t[0] & 1) throw t[1];
47
+ return t[1];
48
+ },
49
+ trys: [],
50
+ ops: []
51
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
52
+ return d(g, "next", {
53
+ value: verb(0)
54
+ }), d(g, "throw", {
55
+ value: verb(1)
56
+ }), d(g, "return", {
57
+ value: verb(2)
58
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
59
+ value: function() {
60
+ return this;
61
+ }
62
+ }), g;
63
+ function verb(n) {
64
+ return function(v) {
65
+ return step([
66
+ n,
67
+ v
68
+ ]);
69
+ };
70
+ }
71
+ function step(op) {
72
+ if (f) throw new TypeError("Generator is already executing.");
73
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
74
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
75
+ if (y = 0, t) op = [
76
+ op[0] & 2,
77
+ t.value
78
+ ];
79
+ switch(op[0]){
80
+ case 0:
81
+ case 1:
82
+ t = op;
83
+ break;
84
+ case 4:
85
+ _.label++;
86
+ return {
87
+ value: op[1],
88
+ done: false
89
+ };
90
+ case 5:
91
+ _.label++;
92
+ y = op[1];
93
+ op = [
94
+ 0
95
+ ];
96
+ continue;
97
+ case 7:
98
+ op = _.ops.pop();
99
+ _.trys.pop();
100
+ continue;
101
+ default:
102
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
103
+ _ = 0;
104
+ continue;
105
+ }
106
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
107
+ _.label = op[1];
108
+ break;
109
+ }
110
+ if (op[0] === 6 && _.label < t[1]) {
111
+ _.label = t[1];
112
+ t = op;
113
+ break;
114
+ }
115
+ if (t && _.label < t[2]) {
116
+ _.label = t[2];
117
+ _.ops.push(op);
118
+ break;
119
+ }
120
+ if (t[2]) _.ops.pop();
121
+ _.trys.pop();
122
+ continue;
123
+ }
124
+ op = body.call(thisArg, _);
125
+ } catch (e) {
126
+ op = [
127
+ 6,
128
+ e
129
+ ];
130
+ y = 0;
131
+ } finally{
132
+ f = t = 0;
133
+ }
134
+ if (op[0] & 5) throw op[1];
135
+ return {
136
+ value: op[0] ? op[1] : void 0,
137
+ done: true
138
+ };
139
+ }
140
+ }
141
+ function createResource() {
142
+ var template = new _mcp.ResourceTemplate('drive://files/{fileId}', {
143
+ list: undefined
144
+ });
145
+ var config = {
146
+ description: 'Drive file resource',
147
+ mimeType: 'application/json'
148
+ };
149
+ var handler = function(uri, variables, extra) {
150
+ return _async_to_generator(function() {
151
+ var fileId, _logger_debug, logger, authContext, drive, resp, data, error, _logger_debug1, logger1;
152
+ return _ts_generator(this, function(_state) {
153
+ switch(_state.label){
154
+ case 0:
155
+ // Extract fileId and handle both string and string[] cases
156
+ fileId = Array.isArray(variables.fileId) ? variables.fileId[0] : variables.fileId;
157
+ _state.label = 1;
158
+ case 1:
159
+ _state.trys.push([
160
+ 1,
161
+ 3,
162
+ ,
163
+ 4
164
+ ]);
165
+ // Validate fileId exists and is a string
166
+ if (!fileId || typeof fileId !== 'string') {
167
+ return [
168
+ 2,
169
+ {
170
+ contents: [
171
+ {
172
+ uri: uri.href,
173
+ mimeType: 'application/json',
174
+ text: JSON.stringify({
175
+ error: 'Missing or invalid fileId in resource URI'
176
+ })
177
+ }
178
+ ]
179
+ }
180
+ ];
181
+ }
182
+ // Safe type guard to access middleware-enriched extra
183
+ logger = extra.logger, authContext = extra.authContext;
184
+ drive = _googleapis.google.drive({
185
+ version: 'v3',
186
+ auth: authContext.auth
187
+ });
188
+ return [
189
+ 4,
190
+ drive.files.get({
191
+ fileId: fileId,
192
+ fields: 'id,name,mimeType,size,modifiedTime,owners,webViewLink'
193
+ })
194
+ ];
195
+ case 2:
196
+ resp = _state.sent();
197
+ data = resp.data;
198
+ (_logger_debug = logger.debug) === null || _logger_debug === void 0 ? void 0 : _logger_debug.call(logger, {
199
+ fileId: fileId,
200
+ fileName: data === null || data === void 0 ? void 0 : data.name
201
+ }, 'drive-file resource fetch success');
202
+ return [
203
+ 2,
204
+ {
205
+ contents: [
206
+ {
207
+ uri: uri.href,
208
+ mimeType: 'application/json',
209
+ text: JSON.stringify(data || {})
210
+ }
211
+ ]
212
+ }
213
+ ];
214
+ case 3:
215
+ error = _state.sent();
216
+ logger1 = extra.logger;
217
+ (_logger_debug1 = logger1.debug) === null || _logger_debug1 === void 0 ? void 0 : _logger_debug1.call(logger1, error, 'drive resource fetch failed');
218
+ return [
219
+ 2,
220
+ {
221
+ contents: [
222
+ {
223
+ uri: uri.href,
224
+ mimeType: 'application/json',
225
+ text: JSON.stringify({
226
+ error: error.message
227
+ })
228
+ }
229
+ ]
230
+ }
231
+ ];
232
+ case 4:
233
+ return [
234
+ 2
235
+ ];
236
+ }
237
+ });
238
+ })();
239
+ };
240
+ return {
241
+ name: 'file',
242
+ template: template,
243
+ config: config,
244
+ handler: handler
245
+ };
246
+ }
247
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-drive/src/mcp/resources/file.ts"],"sourcesContent":["import type { EnrichedExtra } from '@mcp-z/oauth-google';\nimport type { ResourceConfig, ResourceModule } from '@mcp-z/server';\nimport { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';\nimport type { ReadResourceResult, ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';\nimport { google } from 'googleapis';\n\nexport default function createResource() {\n const template = new ResourceTemplate('drive://files/{fileId}', {\n list: undefined,\n });\n const config: ResourceConfig = {\n description: 'Drive file resource',\n mimeType: 'application/json',\n };\n\n const handler = async (uri: URL, variables: Record<string, string | string[]>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>): Promise<ReadResourceResult> => {\n // Extract fileId and handle both string and string[] cases\n const fileId = Array.isArray(variables.fileId) ? variables.fileId[0] : variables.fileId;\n\n try {\n // Validate fileId exists and is a string\n if (!fileId || typeof fileId !== 'string') {\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify({\n error: 'Missing or invalid fileId in resource URI',\n }),\n },\n ],\n };\n }\n\n // Safe type guard to access middleware-enriched extra\n const { logger, authContext } = extra as unknown as EnrichedExtra;\n const drive = google.drive({ version: 'v3', auth: authContext.auth });\n const resp = await drive.files.get({\n fileId,\n fields: 'id,name,mimeType,size,modifiedTime,owners,webViewLink',\n });\n const data = resp.data;\n logger.debug?.({ fileId, fileName: data?.name }, 'drive-file resource fetch success');\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(data || {}),\n },\n ],\n };\n } catch (error) {\n const { logger } = extra as unknown as EnrichedExtra;\n logger.debug?.(error as Record<string, unknown>, 'drive resource fetch failed');\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify({ error: (error as Error).message }),\n },\n ],\n };\n }\n };\n\n return {\n name: 'file',\n template,\n config,\n handler,\n } satisfies ResourceModule;\n}\n"],"names":["createResource","template","ResourceTemplate","list","undefined","config","description","mimeType","handler","uri","variables","extra","fileId","logger","authContext","drive","resp","data","error","Array","isArray","contents","href","text","JSON","stringify","google","version","auth","files","get","fields","debug","fileName","name","message"],"mappings":";;;;+BAOA;;;eAAwBA;;;mBALS;0BAGV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAER,SAASA;IACtB,IAAMC,WAAW,IAAIC,qBAAgB,CAAC,0BAA0B;QAC9DC,MAAMC;IACR;IACA,IAAMC,SAAyB;QAC7BC,aAAa;QACbC,UAAU;IACZ;IAEA,IAAMC,UAAU,SAAOC,KAAUC,WAA8CC;;gBAEvEC,QA0BJC,eAPQA,QAAQC,aACVC,OACAC,MAIAC,MAWCC,OAEPL,gBADQA;;;;wBAtCV,2DAA2D;wBACrDD,SAASO,MAAMC,OAAO,CAACV,UAAUE,MAAM,IAAIF,UAAUE,MAAM,CAAC,EAAE,GAAGF,UAAUE,MAAM;;;;;;;;;wBAGrF,yCAAyC;wBACzC,IAAI,CAACA,UAAU,OAAOA,WAAW,UAAU;4BACzC;;gCAAO;oCACLS,QAAQ;wCACN;4CACEZ,KAAKA,IAAIa,IAAI;4CACbf,UAAU;4CACVgB,MAAMC,KAAKC,SAAS,CAAC;gDACnBP,OAAO;4CACT;wCACF;;gCAEJ;;wBACF;wBAEA,sDAAsD;wBAC9CL,SAAwBF,MAAxBE,QAAQC,cAAgBH,MAAhBG;wBACVC,QAAQW,kBAAM,CAACX,KAAK,CAAC;4BAAEY,SAAS;4BAAMC,MAAMd,YAAYc,IAAI;wBAAC;wBACtD;;4BAAMb,MAAMc,KAAK,CAACC,GAAG,CAAC;gCACjClB,QAAAA;gCACAmB,QAAQ;4BACV;;;wBAHMf,OAAO;wBAIPC,OAAOD,KAAKC,IAAI;yBACtBJ,gBAAAA,OAAOmB,KAAK,cAAZnB,oCAAAA,mBAAAA,QAAe;4BAAED,QAAAA;4BAAQqB,QAAQ,EAAEhB,iBAAAA,2BAAAA,KAAMiB,IAAI;wBAAC,GAAG;wBACjD;;4BAAO;gCACLb,QAAQ;oCACN;wCACEZ,KAAKA,IAAIa,IAAI;wCACbf,UAAU;wCACVgB,MAAMC,KAAKC,SAAS,CAACR,QAAQ,CAAC;oCAChC;;4BAEJ;;;wBACOC;wBACCL,UAAWF,MAAXE;yBACRA,iBAAAA,QAAOmB,KAAK,cAAZnB,qCAAAA,oBAAAA,SAAeK,OAAkC;wBACjD;;4BAAO;gCACLG,QAAQ;oCACN;wCACEZ,KAAKA,IAAIa,IAAI;wCACbf,UAAU;wCACVgB,MAAMC,KAAKC,SAAS,CAAC;4CAAEP,OAAO,AAACA,MAAgBiB,OAAO;wCAAC;oCACzD;;4BAEJ;;;;;;;;QAEJ;;IAEA,OAAO;QACLD,MAAM;QACNjC,UAAAA;QACAI,QAAAA;QACAG,SAAAA;IACF;AACF"}
@@ -0,0 +1 @@
1
+ export { default as file } from './file.js';
@@ -0,0 +1 @@
1
+ export { default as file } from './file.js';