@mcp-z/oauth 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 (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/dist/cjs/account-utils.d.cts +107 -0
  4. package/dist/cjs/account-utils.d.ts +107 -0
  5. package/dist/cjs/account-utils.js +481 -0
  6. package/dist/cjs/account-utils.js.map +1 -0
  7. package/dist/cjs/index.d.cts +19 -0
  8. package/dist/cjs/index.d.ts +19 -0
  9. package/dist/cjs/index.js +149 -0
  10. package/dist/cjs/index.js.map +1 -0
  11. package/dist/cjs/jwt-auth.d.cts +53 -0
  12. package/dist/cjs/jwt-auth.d.ts +53 -0
  13. package/dist/cjs/jwt-auth.js +417 -0
  14. package/dist/cjs/jwt-auth.js.map +1 -0
  15. package/dist/cjs/key-utils.d.cts +131 -0
  16. package/dist/cjs/key-utils.d.ts +131 -0
  17. package/dist/cjs/key-utils.js +421 -0
  18. package/dist/cjs/key-utils.js.map +1 -0
  19. package/dist/cjs/lib/account-server/index.d.cts +45 -0
  20. package/dist/cjs/lib/account-server/index.d.ts +45 -0
  21. package/dist/cjs/lib/account-server/index.js +67 -0
  22. package/dist/cjs/lib/account-server/index.js.map +1 -0
  23. package/dist/cjs/lib/account-server/loopback.d.cts +22 -0
  24. package/dist/cjs/lib/account-server/loopback.d.ts +22 -0
  25. package/dist/cjs/lib/account-server/loopback.js +778 -0
  26. package/dist/cjs/lib/account-server/loopback.js.map +1 -0
  27. package/dist/cjs/lib/account-server/me.d.cts +23 -0
  28. package/dist/cjs/lib/account-server/me.d.ts +23 -0
  29. package/dist/cjs/lib/account-server/me.js +412 -0
  30. package/dist/cjs/lib/account-server/me.js.map +1 -0
  31. package/dist/cjs/lib/account-server/shared-utils.d.cts +6 -0
  32. package/dist/cjs/lib/account-server/shared-utils.d.ts +6 -0
  33. package/dist/cjs/lib/account-server/shared-utils.js +235 -0
  34. package/dist/cjs/lib/account-server/shared-utils.js.map +1 -0
  35. package/dist/cjs/lib/account-server/stateless.d.cts +20 -0
  36. package/dist/cjs/lib/account-server/stateless.d.ts +20 -0
  37. package/dist/cjs/lib/account-server/stateless.js +32 -0
  38. package/dist/cjs/lib/account-server/stateless.js.map +1 -0
  39. package/dist/cjs/lib/account-server/types.d.cts +32 -0
  40. package/dist/cjs/lib/account-server/types.d.ts +32 -0
  41. package/dist/cjs/lib/account-server/types.js +7 -0
  42. package/dist/cjs/lib/account-server/types.js.map +1 -0
  43. package/dist/cjs/lib/dcr-types.d.cts +126 -0
  44. package/dist/cjs/lib/dcr-types.d.ts +126 -0
  45. package/dist/cjs/lib/dcr-types.js +12 -0
  46. package/dist/cjs/lib/dcr-types.js.map +1 -0
  47. package/dist/cjs/lib/rfc-metadata-types.d.cts +46 -0
  48. package/dist/cjs/lib/rfc-metadata-types.d.ts +46 -0
  49. package/dist/cjs/lib/rfc-metadata-types.js +8 -0
  50. package/dist/cjs/lib/rfc-metadata-types.js.map +1 -0
  51. package/dist/cjs/package.json +1 -0
  52. package/dist/cjs/pkce.d.cts +36 -0
  53. package/dist/cjs/pkce.d.ts +36 -0
  54. package/dist/cjs/pkce.js +25 -0
  55. package/dist/cjs/pkce.js.map +1 -0
  56. package/dist/cjs/sanitizer.d.cts +37 -0
  57. package/dist/cjs/sanitizer.d.ts +37 -0
  58. package/dist/cjs/sanitizer.js +407 -0
  59. package/dist/cjs/sanitizer.js.map +1 -0
  60. package/dist/cjs/schemas/index.d.cts +36 -0
  61. package/dist/cjs/schemas/index.d.ts +36 -0
  62. package/dist/cjs/schemas/index.js +28 -0
  63. package/dist/cjs/schemas/index.js.map +1 -0
  64. package/dist/cjs/session-auth.d.cts +79 -0
  65. package/dist/cjs/session-auth.d.ts +79 -0
  66. package/dist/cjs/session-auth.js +354 -0
  67. package/dist/cjs/session-auth.js.map +1 -0
  68. package/dist/cjs/templates.d.cts +18 -0
  69. package/dist/cjs/templates.d.ts +18 -0
  70. package/dist/cjs/templates.js +38 -0
  71. package/dist/cjs/templates.js.map +1 -0
  72. package/dist/cjs/types.d.cts +343 -0
  73. package/dist/cjs/types.d.ts +343 -0
  74. package/dist/cjs/types.js +210 -0
  75. package/dist/cjs/types.js.map +1 -0
  76. package/dist/esm/account-utils.d.ts +107 -0
  77. package/dist/esm/account-utils.js +179 -0
  78. package/dist/esm/account-utils.js.map +1 -0
  79. package/dist/esm/index.d.ts +19 -0
  80. package/dist/esm/index.js +23 -0
  81. package/dist/esm/index.js.map +1 -0
  82. package/dist/esm/jwt-auth.d.ts +53 -0
  83. package/dist/esm/jwt-auth.js +164 -0
  84. package/dist/esm/jwt-auth.js.map +1 -0
  85. package/dist/esm/key-utils.d.ts +131 -0
  86. package/dist/esm/key-utils.js +143 -0
  87. package/dist/esm/key-utils.js.map +1 -0
  88. package/dist/esm/lib/account-server/index.d.ts +45 -0
  89. package/dist/esm/lib/account-server/index.js +41 -0
  90. package/dist/esm/lib/account-server/index.js.map +1 -0
  91. package/dist/esm/lib/account-server/loopback.d.ts +22 -0
  92. package/dist/esm/lib/account-server/loopback.js +372 -0
  93. package/dist/esm/lib/account-server/loopback.js.map +1 -0
  94. package/dist/esm/lib/account-server/me.d.ts +23 -0
  95. package/dist/esm/lib/account-server/me.js +170 -0
  96. package/dist/esm/lib/account-server/me.js.map +1 -0
  97. package/dist/esm/lib/account-server/shared-utils.d.ts +6 -0
  98. package/dist/esm/lib/account-server/shared-utils.js +24 -0
  99. package/dist/esm/lib/account-server/shared-utils.js.map +1 -0
  100. package/dist/esm/lib/account-server/stateless.d.ts +20 -0
  101. package/dist/esm/lib/account-server/stateless.js +25 -0
  102. package/dist/esm/lib/account-server/stateless.js.map +1 -0
  103. package/dist/esm/lib/account-server/types.d.ts +32 -0
  104. package/dist/esm/lib/account-server/types.js +6 -0
  105. package/dist/esm/lib/account-server/types.js.map +1 -0
  106. package/dist/esm/lib/dcr-types.d.ts +126 -0
  107. package/dist/esm/lib/dcr-types.js +13 -0
  108. package/dist/esm/lib/dcr-types.js.map +1 -0
  109. package/dist/esm/lib/rfc-metadata-types.d.ts +46 -0
  110. package/dist/esm/lib/rfc-metadata-types.js +7 -0
  111. package/dist/esm/lib/rfc-metadata-types.js.map +1 -0
  112. package/dist/esm/package.json +1 -0
  113. package/dist/esm/pkce.d.ts +36 -0
  114. package/dist/esm/pkce.js +33 -0
  115. package/dist/esm/pkce.js.map +1 -0
  116. package/dist/esm/sanitizer.d.ts +37 -0
  117. package/dist/esm/sanitizer.js +256 -0
  118. package/dist/esm/sanitizer.js.map +1 -0
  119. package/dist/esm/schemas/index.d.ts +36 -0
  120. package/dist/esm/schemas/index.js +19 -0
  121. package/dist/esm/schemas/index.js.map +1 -0
  122. package/dist/esm/session-auth.d.ts +79 -0
  123. package/dist/esm/session-auth.js +141 -0
  124. package/dist/esm/session-auth.js.map +1 -0
  125. package/dist/esm/templates.d.ts +18 -0
  126. package/dist/esm/templates.js +132 -0
  127. package/dist/esm/templates.js.map +1 -0
  128. package/dist/esm/types.d.ts +343 -0
  129. package/dist/esm/types.js +34 -0
  130. package/dist/esm/types.js.map +1 -0
  131. package/package.json +82 -0
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Unified account management API for MCP servers.
3
+ *
4
+ * Provides two account management modes:
5
+ * - Loopback: Server-managed multi-account OAuth (LoopbackOAuthProvider)
6
+ * - Stateless: MCP client-managed OAuth (read-only status)
7
+ *
8
+ * @example
9
+ * // Loopback OAuth account management
10
+ * const {tools, prompts} = AccountServer.createLoopback({
11
+ * service: 'gmail',
12
+ * store: tokenStore,
13
+ * logger,
14
+ * auth: authProvider
15
+ * });
16
+ *
17
+ * @example
18
+ * // Stateless mode (MCP OAuth)
19
+ * const {tools, prompts} = AccountServer.createStateless({
20
+ * service: 'gmail'
21
+ * });
22
+ */
23
+ import { createLoopback } from './loopback.js';
24
+ import { createStateless } from './stateless.js';
25
+ export declare const AccountServer: {
26
+ /**
27
+ * Create loopback OAuth account management tools.
28
+ * Server manages multiple accounts with stored tokens (LoopbackOAuthProvider).
29
+ * Returns 4 tools: account-me, account-switch, account-remove, account-list.
30
+ * No prompts.
31
+ */
32
+ createLoopback: typeof createLoopback;
33
+ /**
34
+ * Create stateless mode tools.
35
+ * MCP client manages authentication. Server extracts user identity from bearer token.
36
+ * Returns 1 tool: account-me.
37
+ * No prompts.
38
+ */
39
+ createStateless: typeof createStateless;
40
+ };
41
+ export { createLoopback } from './loopback.js';
42
+ export { createAccountMe } from './me.js';
43
+ export { findAccountByEmailOrAlias } from './shared-utils.js';
44
+ export { createStateless } from './stateless.js';
45
+ export type { AccountLoopbackConfig, AccountMeConfig, AccountStatelessConfig } from './types.js';
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Unified account management API for MCP servers.
3
+ *
4
+ * Provides two account management modes:
5
+ * - Loopback: Server-managed multi-account OAuth (LoopbackOAuthProvider)
6
+ * - Stateless: MCP client-managed OAuth (read-only status)
7
+ *
8
+ * @example
9
+ * // Loopback OAuth account management
10
+ * const {tools, prompts} = AccountServer.createLoopback({
11
+ * service: 'gmail',
12
+ * store: tokenStore,
13
+ * logger,
14
+ * auth: authProvider
15
+ * });
16
+ *
17
+ * @example
18
+ * // Stateless mode (MCP OAuth)
19
+ * const {tools, prompts} = AccountServer.createStateless({
20
+ * service: 'gmail'
21
+ * });
22
+ */
23
+ import { createLoopback } from './loopback.js';
24
+ import { createStateless } from './stateless.js';
25
+ export declare const AccountServer: {
26
+ /**
27
+ * Create loopback OAuth account management tools.
28
+ * Server manages multiple accounts with stored tokens (LoopbackOAuthProvider).
29
+ * Returns 4 tools: account-me, account-switch, account-remove, account-list.
30
+ * No prompts.
31
+ */
32
+ createLoopback: typeof createLoopback;
33
+ /**
34
+ * Create stateless mode tools.
35
+ * MCP client manages authentication. Server extracts user identity from bearer token.
36
+ * Returns 1 tool: account-me.
37
+ * No prompts.
38
+ */
39
+ createStateless: typeof createStateless;
40
+ };
41
+ export { createLoopback } from './loopback.js';
42
+ export { createAccountMe } from './me.js';
43
+ export { findAccountByEmailOrAlias } from './shared-utils.js';
44
+ export { createStateless } from './stateless.js';
45
+ export type { AccountLoopbackConfig, AccountMeConfig, AccountStatelessConfig } from './types.js';
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Unified account management API for MCP servers.
3
+ *
4
+ * Provides two account management modes:
5
+ * - Loopback: Server-managed multi-account OAuth (LoopbackOAuthProvider)
6
+ * - Stateless: MCP client-managed OAuth (read-only status)
7
+ *
8
+ * @example
9
+ * // Loopback OAuth account management
10
+ * const {tools, prompts} = AccountServer.createLoopback({
11
+ * service: 'gmail',
12
+ * store: tokenStore,
13
+ * logger,
14
+ * auth: authProvider
15
+ * });
16
+ *
17
+ * @example
18
+ * // Stateless mode (MCP OAuth)
19
+ * const {tools, prompts} = AccountServer.createStateless({
20
+ * service: 'gmail'
21
+ * });
22
+ */ "use strict";
23
+ Object.defineProperty(exports, "__esModule", {
24
+ value: true
25
+ });
26
+ function _export(target, all) {
27
+ for(var name in all)Object.defineProperty(target, name, {
28
+ enumerable: true,
29
+ get: Object.getOwnPropertyDescriptor(all, name).get
30
+ });
31
+ }
32
+ _export(exports, {
33
+ get AccountServer () {
34
+ return AccountServer;
35
+ },
36
+ get createAccountMe () {
37
+ return _mets.createAccountMe;
38
+ },
39
+ get createLoopback () {
40
+ return _loopbackts.createLoopback;
41
+ },
42
+ get createStateless () {
43
+ return _statelessts.createStateless;
44
+ },
45
+ get findAccountByEmailOrAlias () {
46
+ return _sharedutilsts.findAccountByEmailOrAlias;
47
+ }
48
+ });
49
+ var _loopbackts = require("./loopback.js");
50
+ var _statelessts = require("./stateless.js");
51
+ var _mets = require("./me.js");
52
+ var _sharedutilsts = require("./shared-utils.js");
53
+ var AccountServer = {
54
+ /**
55
+ * Create loopback OAuth account management tools.
56
+ * Server manages multiple accounts with stored tokens (LoopbackOAuthProvider).
57
+ * Returns 4 tools: account-me, account-switch, account-remove, account-list.
58
+ * No prompts.
59
+ */ createLoopback: _loopbackts.createLoopback,
60
+ /**
61
+ * Create stateless mode tools.
62
+ * MCP client manages authentication. Server extracts user identity from bearer token.
63
+ * Returns 1 tool: account-me.
64
+ * No prompts.
65
+ */ createStateless: _statelessts.createStateless
66
+ };
67
+ /* 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/oauth/oauth/src/lib/account-server/index.ts"],"sourcesContent":["/**\n * Unified account management API for MCP servers.\n *\n * Provides two account management modes:\n * - Loopback: Server-managed multi-account OAuth (LoopbackOAuthProvider)\n * - Stateless: MCP client-managed OAuth (read-only status)\n *\n * @example\n * // Loopback OAuth account management\n * const {tools, prompts} = AccountServer.createLoopback({\n * service: 'gmail',\n * store: tokenStore,\n * logger,\n * auth: authProvider\n * });\n *\n * @example\n * // Stateless mode (MCP OAuth)\n * const {tools, prompts} = AccountServer.createStateless({\n * service: 'gmail'\n * });\n */\n\nimport { createLoopback } from './loopback.ts';\nimport { createStateless } from './stateless.ts';\n\nexport const AccountServer = {\n /**\n * Create loopback OAuth account management tools.\n * Server manages multiple accounts with stored tokens (LoopbackOAuthProvider).\n * Returns 4 tools: account-me, account-switch, account-remove, account-list.\n * No prompts.\n */\n createLoopback,\n\n /**\n * Create stateless mode tools.\n * MCP client manages authentication. Server extracts user identity from bearer token.\n * Returns 1 tool: account-me.\n * No prompts.\n */\n createStateless,\n};\n\nexport { createLoopback } from './loopback.ts';\nexport { createAccountMe } from './me.ts';\nexport { findAccountByEmailOrAlias } from './shared-utils.ts';\nexport { createStateless } from './stateless.ts';\nexport type { AccountLoopbackConfig, AccountMeConfig, AccountStatelessConfig } from './types.ts';\n"],"names":["AccountServer","createAccountMe","createLoopback","createStateless","findAccountByEmailOrAlias"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;CAqBC;;;;;;;;;;;QAKYA;eAAAA;;QAmBJC;eAAAA,qBAAe;;QADfC;eAAAA,0BAAc;;QAGdC;eAAAA,4BAAe;;QADfC;eAAAA,wCAAyB;;;0BAvBH;2BACC;oBAqBA;6BACU;AApBnC,IAAMJ,gBAAgB;IAC3B;;;;;GAKC,GACDE,gBAAAA,0BAAc;IAEd;;;;;GAKC,GACDC,iBAAAA,4BAAe;AACjB"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Loopback OAuth account management tools.
3
+ *
4
+ * Provides account management for LoopbackOAuthProvider (server-managed multi-account).
5
+ * Users can add multiple accounts, switch between them, and manage identities.
6
+ *
7
+ * Tools:
8
+ * - account-me: Show current user identity (email, alias, session expiry)
9
+ * - account-switch: Use account (add if needed, switch if already linked)
10
+ * - account-remove: Remove account and delete tokens
11
+ * - account-list: Show all linked accounts (returns empty array if none)
12
+ */
13
+ import type { McpPrompt, McpTool } from '../../types.js';
14
+ import type { AccountLoopbackConfig } from './types.js';
15
+ /**
16
+ * Create loopback OAuth account management tools.
17
+ * Returns 4 tools: account-me, account-switch, account-remove, account-list.
18
+ */
19
+ export declare function createLoopback(config: AccountLoopbackConfig): {
20
+ tools: McpTool[];
21
+ prompts: McpPrompt[];
22
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Loopback OAuth account management tools.
3
+ *
4
+ * Provides account management for LoopbackOAuthProvider (server-managed multi-account).
5
+ * Users can add multiple accounts, switch between them, and manage identities.
6
+ *
7
+ * Tools:
8
+ * - account-me: Show current user identity (email, alias, session expiry)
9
+ * - account-switch: Use account (add if needed, switch if already linked)
10
+ * - account-remove: Remove account and delete tokens
11
+ * - account-list: Show all linked accounts (returns empty array if none)
12
+ */
13
+ import type { McpPrompt, McpTool } from '../../types.js';
14
+ import type { AccountLoopbackConfig } from './types.js';
15
+ /**
16
+ * Create loopback OAuth account management tools.
17
+ * Returns 4 tools: account-me, account-switch, account-remove, account-list.
18
+ */
19
+ export declare function createLoopback(config: AccountLoopbackConfig): {
20
+ tools: McpTool[];
21
+ prompts: McpPrompt[];
22
+ };