@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.
- package/LICENSE +21 -0
- package/README.md +163 -0
- package/bin/server.js +5 -0
- package/dist/cjs/constants.d.cts +7 -0
- package/dist/cjs/constants.d.ts +7 -0
- package/dist/cjs/constants.js +18 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.d.cts +8 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.js +314 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/create-store.d.cts +2 -0
- package/dist/cjs/lib/create-store.d.ts +2 -0
- package/dist/cjs/lib/create-store.js +166 -0
- package/dist/cjs/lib/create-store.js.map +1 -0
- package/dist/cjs/lib/query-builder.d.cts +45 -0
- package/dist/cjs/lib/query-builder.d.ts +45 -0
- package/dist/cjs/lib/query-builder.js +219 -0
- package/dist/cjs/lib/query-builder.js.map +1 -0
- package/dist/cjs/mcp/index.d.cts +3 -0
- package/dist/cjs/mcp/index.d.ts +3 -0
- package/dist/cjs/mcp/index.js +66 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/index.d.cts +2 -0
- package/dist/cjs/mcp/prompts/index.d.ts +2 -0
- package/dist/cjs/mcp/prompts/index.js +26 -0
- package/dist/cjs/mcp/prompts/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/organize-files.d.cts +16 -0
- package/dist/cjs/mcp/prompts/organize-files.d.ts +16 -0
- package/dist/cjs/mcp/prompts/organize-files.js +169 -0
- package/dist/cjs/mcp/prompts/organize-files.js.map +1 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
- package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/cjs/mcp/resources/file.d.cts +9 -0
- package/dist/cjs/mcp/resources/file.d.ts +9 -0
- package/dist/cjs/mcp/resources/file.js +247 -0
- package/dist/cjs/mcp/resources/file.js.map +1 -0
- package/dist/cjs/mcp/resources/index.d.cts +1 -0
- package/dist/cjs/mcp/resources/index.d.ts +1 -0
- package/dist/cjs/mcp/resources/index.js +17 -0
- package/dist/cjs/mcp/resources/index.js.map +1 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.d.cts +59 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.d.ts +59 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.js +334 -0
- package/dist/cjs/mcp/tools/file-move-to-trash.js.map +1 -0
- package/dist/cjs/mcp/tools/file-move.d.cts +73 -0
- package/dist/cjs/mcp/tools/file-move.d.ts +73 -0
- package/dist/cjs/mcp/tools/file-move.js +613 -0
- package/dist/cjs/mcp/tools/file-move.js.map +1 -0
- package/dist/cjs/mcp/tools/files-search.d.cts +135 -0
- package/dist/cjs/mcp/tools/files-search.d.ts +135 -0
- package/dist/cjs/mcp/tools/files-search.js +558 -0
- package/dist/cjs/mcp/tools/files-search.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-contents.d.cts +139 -0
- package/dist/cjs/mcp/tools/folder-contents.d.ts +139 -0
- package/dist/cjs/mcp/tools/folder-contents.js +513 -0
- package/dist/cjs/mcp/tools/folder-contents.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-create.d.cts +59 -0
- package/dist/cjs/mcp/tools/folder-create.d.ts +59 -0
- package/dist/cjs/mcp/tools/folder-create.js +368 -0
- package/dist/cjs/mcp/tools/folder-create.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-path.d.cts +49 -0
- package/dist/cjs/mcp/tools/folder-path.d.ts +49 -0
- package/dist/cjs/mcp/tools/folder-path.js +367 -0
- package/dist/cjs/mcp/tools/folder-path.js.map +1 -0
- package/dist/cjs/mcp/tools/folder-search.d.cts +139 -0
- package/dist/cjs/mcp/tools/folder-search.d.ts +139 -0
- package/dist/cjs/mcp/tools/folder-search.js +760 -0
- package/dist/cjs/mcp/tools/folder-search.js.map +1 -0
- package/dist/cjs/mcp/tools/index.d.cts +7 -0
- package/dist/cjs/mcp/tools/index.d.ts +7 -0
- package/dist/cjs/mcp/tools/index.js +46 -0
- package/dist/cjs/mcp/tools/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/schemas/drive-query-schema.d.cts +40 -0
- package/dist/cjs/schemas/drive-query-schema.d.ts +40 -0
- package/dist/cjs/schemas/drive-query-schema.js +90 -0
- package/dist/cjs/schemas/drive-query-schema.js.map +1 -0
- package/dist/cjs/schemas/drive-validation.d.cts +48 -0
- package/dist/cjs/schemas/drive-validation.d.ts +48 -0
- package/dist/cjs/schemas/drive-validation.js +96 -0
- package/dist/cjs/schemas/drive-validation.js.map +1 -0
- package/dist/cjs/schemas/index.d.cts +2 -0
- package/dist/cjs/schemas/index.d.ts +2 -0
- package/dist/cjs/schemas/index.js +20 -0
- package/dist/cjs/schemas/index.js.map +1 -0
- package/dist/cjs/setup/config.d.cts +44 -0
- package/dist/cjs/setup/config.d.ts +44 -0
- package/dist/cjs/setup/config.js +201 -0
- package/dist/cjs/setup/config.js.map +1 -0
- package/dist/cjs/setup/http.d.cts +8 -0
- package/dist/cjs/setup/http.d.ts +8 -0
- package/dist/cjs/setup/http.js +260 -0
- package/dist/cjs/setup/http.js.map +1 -0
- package/dist/cjs/setup/index.d.cts +5 -0
- package/dist/cjs/setup/index.d.ts +5 -0
- package/dist/cjs/setup/index.js +46 -0
- package/dist/cjs/setup/index.js.map +1 -0
- package/dist/cjs/setup/oauth-google.d.cts +64 -0
- package/dist/cjs/setup/oauth-google.d.ts +64 -0
- package/dist/cjs/setup/oauth-google.js +347 -0
- package/dist/cjs/setup/oauth-google.js.map +1 -0
- package/dist/cjs/setup/runtime.d.cts +10 -0
- package/dist/cjs/setup/runtime.d.ts +10 -0
- package/dist/cjs/setup/runtime.js +353 -0
- package/dist/cjs/setup/runtime.js.map +1 -0
- package/dist/cjs/setup/stdio.d.cts +7 -0
- package/dist/cjs/setup/stdio.d.ts +7 -0
- package/dist/cjs/setup/stdio.js +239 -0
- package/dist/cjs/setup/stdio.js.map +1 -0
- package/dist/cjs/types.d.cts +45 -0
- package/dist/cjs/types.d.ts +45 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/constants.d.ts +7 -0
- package/dist/esm/constants.js +7 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/create-store.d.ts +2 -0
- package/dist/esm/lib/create-store.js +6 -0
- package/dist/esm/lib/create-store.js.map +1 -0
- package/dist/esm/lib/query-builder.d.ts +45 -0
- package/dist/esm/lib/query-builder.js +184 -0
- package/dist/esm/lib/query-builder.js.map +1 -0
- package/dist/esm/mcp/index.d.ts +3 -0
- package/dist/esm/mcp/index.js +6 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts/index.d.ts +2 -0
- package/dist/esm/mcp/prompts/index.js +2 -0
- package/dist/esm/mcp/prompts/index.js.map +1 -0
- package/dist/esm/mcp/prompts/organize-files.d.ts +16 -0
- package/dist/esm/mcp/prompts/organize-files.js +21 -0
- package/dist/esm/mcp/prompts/organize-files.js.map +1 -0
- package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/esm/mcp/prompts/query-syntax.js +82 -0
- package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/esm/mcp/resources/file.d.ts +9 -0
- package/dist/esm/mcp/resources/file.js +77 -0
- package/dist/esm/mcp/resources/file.js.map +1 -0
- package/dist/esm/mcp/resources/index.d.ts +1 -0
- package/dist/esm/mcp/resources/index.js +1 -0
- package/dist/esm/mcp/resources/index.js.map +1 -0
- package/dist/esm/mcp/tools/file-move-to-trash.d.ts +59 -0
- package/dist/esm/mcp/tools/file-move-to-trash.js +118 -0
- package/dist/esm/mcp/tools/file-move-to-trash.js.map +1 -0
- package/dist/esm/mcp/tools/file-move.d.ts +73 -0
- package/dist/esm/mcp/tools/file-move.js +274 -0
- package/dist/esm/mcp/tools/file-move.js.map +1 -0
- package/dist/esm/mcp/tools/files-search.d.ts +135 -0
- package/dist/esm/mcp/tools/files-search.js +254 -0
- package/dist/esm/mcp/tools/files-search.js.map +1 -0
- package/dist/esm/mcp/tools/folder-contents.d.ts +139 -0
- package/dist/esm/mcp/tools/folder-contents.js +214 -0
- package/dist/esm/mcp/tools/folder-contents.js.map +1 -0
- package/dist/esm/mcp/tools/folder-create.d.ts +59 -0
- package/dist/esm/mcp/tools/folder-create.js +140 -0
- package/dist/esm/mcp/tools/folder-create.js.map +1 -0
- package/dist/esm/mcp/tools/folder-path.d.ts +49 -0
- package/dist/esm/mcp/tools/folder-path.js +147 -0
- package/dist/esm/mcp/tools/folder-path.js.map +1 -0
- package/dist/esm/mcp/tools/folder-search.d.ts +139 -0
- package/dist/esm/mcp/tools/folder-search.js +343 -0
- package/dist/esm/mcp/tools/folder-search.js.map +1 -0
- package/dist/esm/mcp/tools/index.d.ts +7 -0
- package/dist/esm/mcp/tools/index.js +7 -0
- package/dist/esm/mcp/tools/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/schemas/drive-query-schema.d.ts +40 -0
- package/dist/esm/schemas/drive-query-schema.js +84 -0
- package/dist/esm/schemas/drive-query-schema.js.map +1 -0
- package/dist/esm/schemas/drive-validation.d.ts +48 -0
- package/dist/esm/schemas/drive-validation.js +73 -0
- package/dist/esm/schemas/drive-validation.js.map +1 -0
- package/dist/esm/schemas/index.d.ts +2 -0
- package/dist/esm/schemas/index.js +2 -0
- package/dist/esm/schemas/index.js.map +1 -0
- package/dist/esm/setup/config.d.ts +44 -0
- package/dist/esm/setup/config.js +151 -0
- package/dist/esm/setup/config.js.map +1 -0
- package/dist/esm/setup/http.d.ts +8 -0
- package/dist/esm/setup/http.js +54 -0
- package/dist/esm/setup/http.js.map +1 -0
- package/dist/esm/setup/index.d.ts +5 -0
- package/dist/esm/setup/index.js +5 -0
- package/dist/esm/setup/index.js.map +1 -0
- package/dist/esm/setup/oauth-google.d.ts +64 -0
- package/dist/esm/setup/oauth-google.js +168 -0
- package/dist/esm/setup/oauth-google.js.map +1 -0
- package/dist/esm/setup/runtime.d.ts +10 -0
- package/dist/esm/setup/runtime.js +84 -0
- package/dist/esm/setup/runtime.js.map +1 -0
- package/dist/esm/setup/stdio.d.ts +7 -0
- package/dist/esm/setup/stdio.js +38 -0
- package/dist/esm/setup/stdio.js.map +1 -0
- package/dist/esm/types.d.ts +45 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type AuthEmailProvider } from '@mcp-z/oauth';
|
|
2
|
+
import type { CachedToken } from '@mcp-z/oauth-google';
|
|
3
|
+
import { DcrOAuthProvider, LoopbackOAuthProvider, ServiceAccountProvider } from '@mcp-z/oauth-google';
|
|
4
|
+
import type { Logger, PromptModule, ToolModule } from '@mcp-z/server';
|
|
5
|
+
import type { Router } from 'express';
|
|
6
|
+
import type { Keyv } from 'keyv';
|
|
7
|
+
import type { ServerConfig } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Drive OAuth runtime dependencies
|
|
10
|
+
*/
|
|
11
|
+
export interface OAuthRuntimeDeps {
|
|
12
|
+
logger: Logger;
|
|
13
|
+
tokenStore: Keyv<CachedToken>;
|
|
14
|
+
dcrStore?: Keyv<unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Auth middleware wrapper with withToolAuth/withResourceAuth/withPromptAuth methods
|
|
18
|
+
* Uses structural constraints to avoid contravariance issues with handler types.
|
|
19
|
+
*/
|
|
20
|
+
export interface AuthMiddleware {
|
|
21
|
+
withToolAuth<T extends {
|
|
22
|
+
name: string;
|
|
23
|
+
config: unknown;
|
|
24
|
+
handler: unknown;
|
|
25
|
+
}>(module: T): T;
|
|
26
|
+
withResourceAuth<T extends {
|
|
27
|
+
name: string;
|
|
28
|
+
template?: unknown;
|
|
29
|
+
config?: unknown;
|
|
30
|
+
handler: unknown;
|
|
31
|
+
}>(module: T): T;
|
|
32
|
+
withPromptAuth<T extends {
|
|
33
|
+
name: string;
|
|
34
|
+
config: unknown;
|
|
35
|
+
handler: unknown;
|
|
36
|
+
}>(module: T): T;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Result of OAuth adapter creation
|
|
40
|
+
*/
|
|
41
|
+
export interface OAuthAdapters {
|
|
42
|
+
primary: LoopbackOAuthProvider | ServiceAccountProvider | DcrOAuthProvider;
|
|
43
|
+
middleware: AuthMiddleware;
|
|
44
|
+
authAdapter: AuthEmailProvider;
|
|
45
|
+
accountTools: ToolModule[];
|
|
46
|
+
accountPrompts: PromptModule[];
|
|
47
|
+
dcrRouter?: Router;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create Drive OAuth adapters based on transport configuration
|
|
51
|
+
*
|
|
52
|
+
* Returns primary adapter (loopback or service account), pre-configured middleware,
|
|
53
|
+
* auth email provider, and pre-selected account tools based on auth mode.
|
|
54
|
+
*
|
|
55
|
+
* Primary adapter selection is based on auth mode:
|
|
56
|
+
* - 'loopback-oauth': LoopbackOAuthProvider (interactive OAuth with token storage)
|
|
57
|
+
* - 'service-account': ServiceAccountProvider (JWT-based authentication)
|
|
58
|
+
*
|
|
59
|
+
* @param config - Server configuration (transport + auth settings)
|
|
60
|
+
* @param deps - Runtime dependencies (logger, tokenStore, etc.)
|
|
61
|
+
* @returns OAuth adapters with pre-configured middleware and account tools
|
|
62
|
+
* @throws Error if service account mode but no key file provided
|
|
63
|
+
*/
|
|
64
|
+
export declare function createOAuthAdapters(config: ServerConfig, deps: OAuthRuntimeDeps, baseUrl?: string): Promise<OAuthAdapters>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type AuthEmailProvider } from '@mcp-z/oauth';
|
|
2
|
+
import type { CachedToken } from '@mcp-z/oauth-google';
|
|
3
|
+
import { DcrOAuthProvider, LoopbackOAuthProvider, ServiceAccountProvider } from '@mcp-z/oauth-google';
|
|
4
|
+
import type { Logger, PromptModule, ToolModule } from '@mcp-z/server';
|
|
5
|
+
import type { Router } from 'express';
|
|
6
|
+
import type { Keyv } from 'keyv';
|
|
7
|
+
import type { ServerConfig } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Drive OAuth runtime dependencies
|
|
10
|
+
*/
|
|
11
|
+
export interface OAuthRuntimeDeps {
|
|
12
|
+
logger: Logger;
|
|
13
|
+
tokenStore: Keyv<CachedToken>;
|
|
14
|
+
dcrStore?: Keyv<unknown>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Auth middleware wrapper with withToolAuth/withResourceAuth/withPromptAuth methods
|
|
18
|
+
* Uses structural constraints to avoid contravariance issues with handler types.
|
|
19
|
+
*/
|
|
20
|
+
export interface AuthMiddleware {
|
|
21
|
+
withToolAuth<T extends {
|
|
22
|
+
name: string;
|
|
23
|
+
config: unknown;
|
|
24
|
+
handler: unknown;
|
|
25
|
+
}>(module: T): T;
|
|
26
|
+
withResourceAuth<T extends {
|
|
27
|
+
name: string;
|
|
28
|
+
template?: unknown;
|
|
29
|
+
config?: unknown;
|
|
30
|
+
handler: unknown;
|
|
31
|
+
}>(module: T): T;
|
|
32
|
+
withPromptAuth<T extends {
|
|
33
|
+
name: string;
|
|
34
|
+
config: unknown;
|
|
35
|
+
handler: unknown;
|
|
36
|
+
}>(module: T): T;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Result of OAuth adapter creation
|
|
40
|
+
*/
|
|
41
|
+
export interface OAuthAdapters {
|
|
42
|
+
primary: LoopbackOAuthProvider | ServiceAccountProvider | DcrOAuthProvider;
|
|
43
|
+
middleware: AuthMiddleware;
|
|
44
|
+
authAdapter: AuthEmailProvider;
|
|
45
|
+
accountTools: ToolModule[];
|
|
46
|
+
accountPrompts: PromptModule[];
|
|
47
|
+
dcrRouter?: Router;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create Drive OAuth adapters based on transport configuration
|
|
51
|
+
*
|
|
52
|
+
* Returns primary adapter (loopback or service account), pre-configured middleware,
|
|
53
|
+
* auth email provider, and pre-selected account tools based on auth mode.
|
|
54
|
+
*
|
|
55
|
+
* Primary adapter selection is based on auth mode:
|
|
56
|
+
* - 'loopback-oauth': LoopbackOAuthProvider (interactive OAuth with token storage)
|
|
57
|
+
* - 'service-account': ServiceAccountProvider (JWT-based authentication)
|
|
58
|
+
*
|
|
59
|
+
* @param config - Server configuration (transport + auth settings)
|
|
60
|
+
* @param deps - Runtime dependencies (logger, tokenStore, etc.)
|
|
61
|
+
* @returns OAuth adapters with pre-configured middleware and account tools
|
|
62
|
+
* @throws Error if service account mode but no key file provided
|
|
63
|
+
*/
|
|
64
|
+
export declare function createOAuthAdapters(config: ServerConfig, deps: OAuthRuntimeDeps, baseUrl?: string): Promise<OAuthAdapters>;
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createOAuthAdapters", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createOAuthAdapters;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _oauth = require("@mcp-z/oauth");
|
|
12
|
+
var _oauthgoogle = require("@mcp-z/oauth-google");
|
|
13
|
+
var _constantsts = require("../constants.js");
|
|
14
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
15
|
+
try {
|
|
16
|
+
var info = gen[key](arg);
|
|
17
|
+
var value = info.value;
|
|
18
|
+
} catch (error) {
|
|
19
|
+
reject(error);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (info.done) {
|
|
23
|
+
resolve(value);
|
|
24
|
+
} else {
|
|
25
|
+
Promise.resolve(value).then(_next, _throw);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function _async_to_generator(fn) {
|
|
29
|
+
return function() {
|
|
30
|
+
var self = this, args = arguments;
|
|
31
|
+
return new Promise(function(resolve, reject) {
|
|
32
|
+
var gen = fn.apply(self, args);
|
|
33
|
+
function _next(value) {
|
|
34
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
35
|
+
}
|
|
36
|
+
function _throw(err) {
|
|
37
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
38
|
+
}
|
|
39
|
+
_next(undefined);
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function _define_property(obj, key, value) {
|
|
44
|
+
if (key in obj) {
|
|
45
|
+
Object.defineProperty(obj, key, {
|
|
46
|
+
value: value,
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true
|
|
50
|
+
});
|
|
51
|
+
} else {
|
|
52
|
+
obj[key] = value;
|
|
53
|
+
}
|
|
54
|
+
return obj;
|
|
55
|
+
}
|
|
56
|
+
function _object_spread(target) {
|
|
57
|
+
for(var i = 1; i < arguments.length; i++){
|
|
58
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
59
|
+
var ownKeys = Object.keys(source);
|
|
60
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
61
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
62
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
ownKeys.forEach(function(key) {
|
|
66
|
+
_define_property(target, key, source[key]);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return target;
|
|
70
|
+
}
|
|
71
|
+
function ownKeys(object, enumerableOnly) {
|
|
72
|
+
var keys = Object.keys(object);
|
|
73
|
+
if (Object.getOwnPropertySymbols) {
|
|
74
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
75
|
+
if (enumerableOnly) {
|
|
76
|
+
symbols = symbols.filter(function(sym) {
|
|
77
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
keys.push.apply(keys, symbols);
|
|
81
|
+
}
|
|
82
|
+
return keys;
|
|
83
|
+
}
|
|
84
|
+
function _object_spread_props(target, source) {
|
|
85
|
+
source = source != null ? source : {};
|
|
86
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
87
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
88
|
+
} else {
|
|
89
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
90
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return target;
|
|
94
|
+
}
|
|
95
|
+
function _ts_generator(thisArg, body) {
|
|
96
|
+
var f, y, t, _ = {
|
|
97
|
+
label: 0,
|
|
98
|
+
sent: function() {
|
|
99
|
+
if (t[0] & 1) throw t[1];
|
|
100
|
+
return t[1];
|
|
101
|
+
},
|
|
102
|
+
trys: [],
|
|
103
|
+
ops: []
|
|
104
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
105
|
+
return d(g, "next", {
|
|
106
|
+
value: verb(0)
|
|
107
|
+
}), d(g, "throw", {
|
|
108
|
+
value: verb(1)
|
|
109
|
+
}), d(g, "return", {
|
|
110
|
+
value: verb(2)
|
|
111
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
112
|
+
value: function() {
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
}), g;
|
|
116
|
+
function verb(n) {
|
|
117
|
+
return function(v) {
|
|
118
|
+
return step([
|
|
119
|
+
n,
|
|
120
|
+
v
|
|
121
|
+
]);
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function step(op) {
|
|
125
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
126
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
127
|
+
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;
|
|
128
|
+
if (y = 0, t) op = [
|
|
129
|
+
op[0] & 2,
|
|
130
|
+
t.value
|
|
131
|
+
];
|
|
132
|
+
switch(op[0]){
|
|
133
|
+
case 0:
|
|
134
|
+
case 1:
|
|
135
|
+
t = op;
|
|
136
|
+
break;
|
|
137
|
+
case 4:
|
|
138
|
+
_.label++;
|
|
139
|
+
return {
|
|
140
|
+
value: op[1],
|
|
141
|
+
done: false
|
|
142
|
+
};
|
|
143
|
+
case 5:
|
|
144
|
+
_.label++;
|
|
145
|
+
y = op[1];
|
|
146
|
+
op = [
|
|
147
|
+
0
|
|
148
|
+
];
|
|
149
|
+
continue;
|
|
150
|
+
case 7:
|
|
151
|
+
op = _.ops.pop();
|
|
152
|
+
_.trys.pop();
|
|
153
|
+
continue;
|
|
154
|
+
default:
|
|
155
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
156
|
+
_ = 0;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
160
|
+
_.label = op[1];
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
164
|
+
_.label = t[1];
|
|
165
|
+
t = op;
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
if (t && _.label < t[2]) {
|
|
169
|
+
_.label = t[2];
|
|
170
|
+
_.ops.push(op);
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
if (t[2]) _.ops.pop();
|
|
174
|
+
_.trys.pop();
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
op = body.call(thisArg, _);
|
|
178
|
+
} catch (e) {
|
|
179
|
+
op = [
|
|
180
|
+
6,
|
|
181
|
+
e
|
|
182
|
+
];
|
|
183
|
+
y = 0;
|
|
184
|
+
} finally{
|
|
185
|
+
f = t = 0;
|
|
186
|
+
}
|
|
187
|
+
if (op[0] & 5) throw op[1];
|
|
188
|
+
return {
|
|
189
|
+
value: op[0] ? op[1] : void 0,
|
|
190
|
+
done: true
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function createOAuthAdapters(config, deps, baseUrl) {
|
|
195
|
+
return _async_to_generator(function() {
|
|
196
|
+
var logger, tokenStore, dcrStore, resolvedBaseUrl, oauthStaticConfig, primary, dcrRouter, middleware, authAdapter, accountTools, accountPrompts, authAdapter1, middleware1, accountTools1, accountPrompts1, result;
|
|
197
|
+
return _ts_generator(this, function(_state) {
|
|
198
|
+
logger = deps.logger, tokenStore = deps.tokenStore, dcrStore = deps.dcrStore;
|
|
199
|
+
resolvedBaseUrl = baseUrl !== null && baseUrl !== void 0 ? baseUrl : config.baseUrl;
|
|
200
|
+
oauthStaticConfig = _object_spread({
|
|
201
|
+
service: config.name,
|
|
202
|
+
clientId: config.clientId,
|
|
203
|
+
clientSecret: config.clientSecret,
|
|
204
|
+
scope: _constantsts.GOOGLE_SCOPE,
|
|
205
|
+
auth: config.auth,
|
|
206
|
+
headless: config.headless,
|
|
207
|
+
redirectUri: config.transport.type === 'stdio' ? undefined : config.redirectUri
|
|
208
|
+
}, config.serviceAccountKeyFile && {
|
|
209
|
+
serviceAccountKeyFile: config.serviceAccountKeyFile
|
|
210
|
+
}, resolvedBaseUrl && {
|
|
211
|
+
baseUrl: resolvedBaseUrl
|
|
212
|
+
});
|
|
213
|
+
// DCR mode - Dynamic Client Registration with HTTP-only support
|
|
214
|
+
if (oauthStaticConfig.auth === 'dcr') {
|
|
215
|
+
logger.debug('Creating DCR provider', {
|
|
216
|
+
service: oauthStaticConfig.service
|
|
217
|
+
});
|
|
218
|
+
// DCR requires dcrStore and baseUrl
|
|
219
|
+
if (!dcrStore) {
|
|
220
|
+
throw new Error('DCR mode requires dcrStore to be configured');
|
|
221
|
+
}
|
|
222
|
+
if (!oauthStaticConfig.baseUrl) {
|
|
223
|
+
throw new Error('DCR mode requires baseUrl to be configured');
|
|
224
|
+
}
|
|
225
|
+
// Create DcrOAuthProvider (stateless provider that receives tokens from verification context)
|
|
226
|
+
primary = new _oauthgoogle.DcrOAuthProvider(_object_spread_props(_object_spread({
|
|
227
|
+
clientId: oauthStaticConfig.clientId
|
|
228
|
+
}, oauthStaticConfig.clientSecret && {
|
|
229
|
+
clientSecret: oauthStaticConfig.clientSecret
|
|
230
|
+
}), {
|
|
231
|
+
scope: oauthStaticConfig.scope,
|
|
232
|
+
verifyEndpoint: "".concat(oauthStaticConfig.baseUrl, "/oauth/verify"),
|
|
233
|
+
logger: logger
|
|
234
|
+
}));
|
|
235
|
+
// Create DCR OAuth router with authorization server endpoints
|
|
236
|
+
dcrRouter = (0, _oauthgoogle.createDcrRouter)({
|
|
237
|
+
store: dcrStore,
|
|
238
|
+
issuerUrl: oauthStaticConfig.baseUrl,
|
|
239
|
+
baseUrl: oauthStaticConfig.baseUrl,
|
|
240
|
+
scopesSupported: oauthStaticConfig.scope.split(' '),
|
|
241
|
+
clientConfig: _object_spread({
|
|
242
|
+
clientId: oauthStaticConfig.clientId
|
|
243
|
+
}, oauthStaticConfig.clientSecret && {
|
|
244
|
+
clientSecret: oauthStaticConfig.clientSecret
|
|
245
|
+
})
|
|
246
|
+
});
|
|
247
|
+
// DCR uses bearer token authentication with middleware validation
|
|
248
|
+
middleware = primary.authMiddleware();
|
|
249
|
+
// Create auth email provider (stateless)
|
|
250
|
+
authAdapter = {
|
|
251
|
+
getUserEmail: function() {
|
|
252
|
+
throw new Error('DCR mode does not support getUserEmail - tokens are provided via bearer auth');
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
// No account management tools for DCR
|
|
256
|
+
accountTools = [];
|
|
257
|
+
accountPrompts = [];
|
|
258
|
+
return [
|
|
259
|
+
2,
|
|
260
|
+
{
|
|
261
|
+
primary: primary,
|
|
262
|
+
middleware: middleware,
|
|
263
|
+
authAdapter: authAdapter,
|
|
264
|
+
accountTools: accountTools,
|
|
265
|
+
accountPrompts: accountPrompts,
|
|
266
|
+
dcrRouter: dcrRouter
|
|
267
|
+
}
|
|
268
|
+
];
|
|
269
|
+
}
|
|
270
|
+
if (config.auth === 'service-account') {
|
|
271
|
+
// Service account mode - JWT-based authentication
|
|
272
|
+
if (!oauthStaticConfig.serviceAccountKeyFile) {
|
|
273
|
+
throw new Error('Service account key file is required when auth mode is "service-account". ' + 'Set GOOGLE_SERVICE_ACCOUNT_KEY_FILE environment variable or use --service-account-key-file flag.');
|
|
274
|
+
}
|
|
275
|
+
logger.debug('Creating service account provider', {
|
|
276
|
+
service: oauthStaticConfig.service
|
|
277
|
+
});
|
|
278
|
+
primary = new _oauthgoogle.ServiceAccountProvider({
|
|
279
|
+
keyFilePath: oauthStaticConfig.serviceAccountKeyFile,
|
|
280
|
+
scopes: oauthStaticConfig.scope.split(' '),
|
|
281
|
+
logger: logger
|
|
282
|
+
});
|
|
283
|
+
} else {
|
|
284
|
+
// Loopback mode - interactive OAuth with token storage
|
|
285
|
+
logger.debug('Creating loopback OAuth provider', {
|
|
286
|
+
service: oauthStaticConfig.service
|
|
287
|
+
});
|
|
288
|
+
primary = new _oauthgoogle.LoopbackOAuthProvider(_object_spread({
|
|
289
|
+
service: oauthStaticConfig.service,
|
|
290
|
+
clientId: oauthStaticConfig.clientId,
|
|
291
|
+
clientSecret: oauthStaticConfig.clientSecret,
|
|
292
|
+
scope: oauthStaticConfig.scope,
|
|
293
|
+
headless: oauthStaticConfig.headless,
|
|
294
|
+
logger: logger,
|
|
295
|
+
tokenStore: tokenStore
|
|
296
|
+
}, oauthStaticConfig.redirectUri !== undefined && {
|
|
297
|
+
redirectUri: oauthStaticConfig.redirectUri
|
|
298
|
+
}));
|
|
299
|
+
}
|
|
300
|
+
// Create auth email provider (used by account management tools)
|
|
301
|
+
authAdapter1 = _object_spread({
|
|
302
|
+
getUserEmail: function(accountId) {
|
|
303
|
+
return primary.getUserEmail(accountId);
|
|
304
|
+
}
|
|
305
|
+
}, 'authenticateNewAccount' in primary && primary.authenticateNewAccount ? {
|
|
306
|
+
authenticateNewAccount: function() {
|
|
307
|
+
var _primary_authenticateNewAccount;
|
|
308
|
+
return (_primary_authenticateNewAccount = primary.authenticateNewAccount) === null || _primary_authenticateNewAccount === void 0 ? void 0 : _primary_authenticateNewAccount.call(primary);
|
|
309
|
+
}
|
|
310
|
+
} : {});
|
|
311
|
+
if (oauthStaticConfig.auth === 'service-account') {
|
|
312
|
+
// Service account mode - no account management tools needed (single identity)
|
|
313
|
+
middleware1 = primary.authMiddleware();
|
|
314
|
+
accountTools1 = [];
|
|
315
|
+
accountPrompts1 = [];
|
|
316
|
+
logger.debug('Service account mode - no account tools', {
|
|
317
|
+
service: oauthStaticConfig.service
|
|
318
|
+
});
|
|
319
|
+
} else {
|
|
320
|
+
// Loopback OAuth - multi-account mode
|
|
321
|
+
middleware1 = primary.authMiddleware();
|
|
322
|
+
result = _oauth.AccountServer.createLoopback({
|
|
323
|
+
service: oauthStaticConfig.service,
|
|
324
|
+
store: tokenStore,
|
|
325
|
+
logger: logger,
|
|
326
|
+
auth: authAdapter1
|
|
327
|
+
});
|
|
328
|
+
accountTools1 = result.tools;
|
|
329
|
+
accountPrompts1 = result.prompts;
|
|
330
|
+
logger.debug('Loopback OAuth (multi-account mode)', {
|
|
331
|
+
service: oauthStaticConfig.service
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
return [
|
|
335
|
+
2,
|
|
336
|
+
{
|
|
337
|
+
primary: primary,
|
|
338
|
+
middleware: middleware1,
|
|
339
|
+
authAdapter: authAdapter1,
|
|
340
|
+
accountTools: accountTools1,
|
|
341
|
+
accountPrompts: accountPrompts1
|
|
342
|
+
}
|
|
343
|
+
];
|
|
344
|
+
});
|
|
345
|
+
})();
|
|
346
|
+
}
|
|
347
|
+
/* 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/setup/oauth-google.ts"],"sourcesContent":["import { AccountServer, type AuthEmailProvider } from '@mcp-z/oauth';\nimport type { CachedToken } from '@mcp-z/oauth-google';\nimport { createDcrRouter, DcrOAuthProvider, LoopbackOAuthProvider, ServiceAccountProvider } from '@mcp-z/oauth-google';\nimport type { Logger, PromptModule, ToolModule } from '@mcp-z/server';\nimport type { Router } from 'express';\nimport type { Keyv } from 'keyv';\nimport { GOOGLE_SCOPE } from '../constants.ts';\nimport type { ServerConfig } from '../types.js';\n\n/**\n * Drive OAuth runtime dependencies\n */\nexport interface OAuthRuntimeDeps {\n logger: Logger;\n tokenStore: Keyv<CachedToken>;\n dcrStore?: Keyv<unknown>;\n}\n\n/**\n * Auth middleware wrapper with withToolAuth/withResourceAuth/withPromptAuth methods\n * Uses structural constraints to avoid contravariance issues with handler types.\n */\nexport interface AuthMiddleware {\n withToolAuth<T extends { name: string; config: unknown; handler: unknown }>(module: T): T;\n withResourceAuth<T extends { name: string; template?: unknown; config?: unknown; handler: unknown }>(module: T): T;\n withPromptAuth<T extends { name: string; config: unknown; handler: unknown }>(module: T): T;\n}\n\n/**\n * Result of OAuth adapter creation\n */\nexport interface OAuthAdapters {\n primary: LoopbackOAuthProvider | ServiceAccountProvider | DcrOAuthProvider;\n middleware: AuthMiddleware;\n authAdapter: AuthEmailProvider;\n accountTools: ToolModule[];\n accountPrompts: PromptModule[];\n dcrRouter?: Router;\n}\n\n/**\n * Create Drive OAuth adapters based on transport configuration\n *\n * Returns primary adapter (loopback or service account), pre-configured middleware,\n * auth email provider, and pre-selected account tools based on auth mode.\n *\n * Primary adapter selection is based on auth mode:\n * - 'loopback-oauth': LoopbackOAuthProvider (interactive OAuth with token storage)\n * - 'service-account': ServiceAccountProvider (JWT-based authentication)\n *\n * @param config - Server configuration (transport + auth settings)\n * @param deps - Runtime dependencies (logger, tokenStore, etc.)\n * @returns OAuth adapters with pre-configured middleware and account tools\n * @throws Error if service account mode but no key file provided\n */\nexport async function createOAuthAdapters(config: ServerConfig, deps: OAuthRuntimeDeps, baseUrl?: string): Promise<OAuthAdapters> {\n const { logger, tokenStore, dcrStore } = deps;\n const resolvedBaseUrl = baseUrl ?? config.baseUrl;\n const oauthStaticConfig = {\n service: config.name,\n clientId: config.clientId,\n clientSecret: config.clientSecret,\n scope: GOOGLE_SCOPE,\n auth: config.auth,\n headless: config.headless,\n redirectUri: config.transport.type === 'stdio' ? undefined : config.redirectUri,\n ...(config.serviceAccountKeyFile && { serviceAccountKeyFile: config.serviceAccountKeyFile }),\n ...(resolvedBaseUrl && { baseUrl: resolvedBaseUrl }),\n };\n\n // Create primary adapter based on auth mode\n let primary: LoopbackOAuthProvider | ServiceAccountProvider | DcrOAuthProvider;\n\n // DCR mode - Dynamic Client Registration with HTTP-only support\n if (oauthStaticConfig.auth === 'dcr') {\n logger.debug('Creating DCR provider', { service: oauthStaticConfig.service });\n\n // DCR requires dcrStore and baseUrl\n if (!dcrStore) {\n throw new Error('DCR mode requires dcrStore to be configured');\n }\n if (!oauthStaticConfig.baseUrl) {\n throw new Error('DCR mode requires baseUrl to be configured');\n }\n\n // Create DcrOAuthProvider (stateless provider that receives tokens from verification context)\n primary = new DcrOAuthProvider({\n clientId: oauthStaticConfig.clientId,\n ...(oauthStaticConfig.clientSecret && { clientSecret: oauthStaticConfig.clientSecret }),\n scope: oauthStaticConfig.scope,\n verifyEndpoint: `${oauthStaticConfig.baseUrl}/oauth/verify`,\n logger,\n });\n\n // Create DCR OAuth router with authorization server endpoints\n const dcrRouter = createDcrRouter({\n store: dcrStore,\n issuerUrl: oauthStaticConfig.baseUrl,\n baseUrl: oauthStaticConfig.baseUrl,\n scopesSupported: oauthStaticConfig.scope.split(' '),\n clientConfig: {\n clientId: oauthStaticConfig.clientId,\n ...(oauthStaticConfig.clientSecret && { clientSecret: oauthStaticConfig.clientSecret }),\n },\n });\n\n // DCR uses bearer token authentication with middleware validation\n const middleware = primary.authMiddleware();\n\n // Create auth email provider (stateless)\n const authAdapter: AuthEmailProvider = {\n getUserEmail: () => {\n throw new Error('DCR mode does not support getUserEmail - tokens are provided via bearer auth');\n },\n };\n\n // No account management tools for DCR\n const accountTools: ToolModule[] = [];\n const accountPrompts: PromptModule[] = [];\n\n return { primary, middleware: middleware as unknown as AuthMiddleware, authAdapter, accountTools, accountPrompts, dcrRouter };\n }\n\n if (config.auth === 'service-account') {\n // Service account mode - JWT-based authentication\n if (!oauthStaticConfig.serviceAccountKeyFile) {\n throw new Error('Service account key file is required when auth mode is \"service-account\". ' + 'Set GOOGLE_SERVICE_ACCOUNT_KEY_FILE environment variable or use --service-account-key-file flag.');\n }\n\n logger.debug('Creating service account provider', { service: oauthStaticConfig.service });\n primary = new ServiceAccountProvider({\n keyFilePath: oauthStaticConfig.serviceAccountKeyFile,\n scopes: oauthStaticConfig.scope.split(' '),\n logger,\n });\n } else {\n // Loopback mode - interactive OAuth with token storage\n logger.debug('Creating loopback OAuth provider', { service: oauthStaticConfig.service });\n primary = new LoopbackOAuthProvider({\n service: oauthStaticConfig.service,\n clientId: oauthStaticConfig.clientId,\n clientSecret: oauthStaticConfig.clientSecret,\n scope: oauthStaticConfig.scope,\n headless: oauthStaticConfig.headless,\n logger,\n tokenStore,\n ...(oauthStaticConfig.redirectUri !== undefined && {\n redirectUri: oauthStaticConfig.redirectUri,\n }),\n });\n }\n\n // Create auth email provider (used by account management tools)\n const authAdapter: AuthEmailProvider = {\n getUserEmail: (accountId) => primary.getUserEmail(accountId),\n ...('authenticateNewAccount' in primary && primary.authenticateNewAccount\n ? {\n authenticateNewAccount: () => primary.authenticateNewAccount?.(),\n }\n : {}),\n };\n\n // Select middleware AND account tools based on auth mode\n let middleware: ReturnType<LoopbackOAuthProvider['authMiddleware']>;\n let accountTools: ToolModule[];\n let accountPrompts: PromptModule[];\n\n if (oauthStaticConfig.auth === 'service-account') {\n // Service account mode - no account management tools needed (single identity)\n middleware = primary.authMiddleware();\n accountTools = [];\n accountPrompts = [];\n logger.debug('Service account mode - no account tools', { service: oauthStaticConfig.service });\n } else {\n // Loopback OAuth - multi-account mode\n middleware = primary.authMiddleware();\n\n const result = AccountServer.createLoopback({\n service: oauthStaticConfig.service,\n store: tokenStore,\n logger,\n auth: authAdapter,\n });\n accountTools = result.tools as ToolModule[];\n accountPrompts = result.prompts as PromptModule[];\n logger.debug('Loopback OAuth (multi-account mode)', { service: oauthStaticConfig.service });\n }\n\n return { primary, middleware: middleware as unknown as AuthMiddleware, authAdapter, accountTools, accountPrompts };\n}\n"],"names":["createOAuthAdapters","config","deps","baseUrl","logger","tokenStore","dcrStore","resolvedBaseUrl","oauthStaticConfig","primary","dcrRouter","middleware","authAdapter","accountTools","accountPrompts","result","service","name","clientId","clientSecret","scope","GOOGLE_SCOPE","auth","headless","redirectUri","transport","type","undefined","serviceAccountKeyFile","debug","Error","DcrOAuthProvider","verifyEndpoint","createDcrRouter","store","issuerUrl","scopesSupported","split","clientConfig","authMiddleware","getUserEmail","ServiceAccountProvider","keyFilePath","scopes","LoopbackOAuthProvider","accountId","authenticateNewAccount","AccountServer","createLoopback","tools","prompts"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CachedToken } from '@mcp-z/oauth-google';
|
|
2
|
+
import type { Logger, MiddlewareLayer } from '@mcp-z/server';
|
|
3
|
+
import type { CommonRuntime, RuntimeOverrides, ServerConfig } from '../types.js';
|
|
4
|
+
import { type AuthMiddleware } from './oauth-google.js';
|
|
5
|
+
export declare function createLogger(config: ServerConfig): Logger;
|
|
6
|
+
export declare function createTokenStore(baseDir: string): Promise<import("keyv").Keyv<CachedToken>>;
|
|
7
|
+
export declare function createDcrStore(baseDir: string, required: boolean): Promise<import("keyv").Keyv<unknown>>;
|
|
8
|
+
export declare function createAuthLayer(authMiddleware: AuthMiddleware): MiddlewareLayer;
|
|
9
|
+
export declare function createLoggingLayer(logger: Logger): MiddlewareLayer;
|
|
10
|
+
export declare function createDefaultRuntime(config: ServerConfig, overrides?: RuntimeOverrides): Promise<CommonRuntime>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CachedToken } from '@mcp-z/oauth-google';
|
|
2
|
+
import type { Logger, MiddlewareLayer } from '@mcp-z/server';
|
|
3
|
+
import type { CommonRuntime, RuntimeOverrides, ServerConfig } from '../types.js';
|
|
4
|
+
import { type AuthMiddleware } from './oauth-google.js';
|
|
5
|
+
export declare function createLogger(config: ServerConfig): Logger;
|
|
6
|
+
export declare function createTokenStore(baseDir: string): Promise<import("keyv").Keyv<CachedToken>>;
|
|
7
|
+
export declare function createDcrStore(baseDir: string, required: boolean): Promise<import("keyv").Keyv<unknown>>;
|
|
8
|
+
export declare function createAuthLayer(authMiddleware: AuthMiddleware): MiddlewareLayer;
|
|
9
|
+
export declare function createLoggingLayer(logger: Logger): MiddlewareLayer;
|
|
10
|
+
export declare function createDefaultRuntime(config: ServerConfig, overrides?: RuntimeOverrides): Promise<CommonRuntime>;
|