@vinkius-core/mcp-fusion 2.9.0 → 2.11.1

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 (77) hide show
  1. package/dist/cli/fusion.js +31 -31
  2. package/dist/cli/fusion.js.map +1 -1
  3. package/dist/cli/templates/config.js +26 -26
  4. package/dist/cli/templates/core.js +111 -111
  5. package/dist/cli/templates/middleware.js +22 -22
  6. package/dist/cli/templates/readme.js +146 -146
  7. package/dist/cli/templates/testing.js +83 -83
  8. package/dist/cli/templates/tools.js +53 -53
  9. package/dist/cli/templates/vectors/database.js +74 -74
  10. package/dist/cli/templates/vectors/oauth.js +64 -64
  11. package/dist/cli/templates/vectors/openapi.js +97 -97
  12. package/dist/core/builder/GroupedToolBuilder.d.ts +41 -0
  13. package/dist/core/builder/GroupedToolBuilder.d.ts.map +1 -1
  14. package/dist/core/builder/GroupedToolBuilder.js +54 -4
  15. package/dist/core/builder/GroupedToolBuilder.js.map +1 -1
  16. package/dist/core/builder/ToolDefinitionCompiler.d.ts +1 -0
  17. package/dist/core/builder/ToolDefinitionCompiler.d.ts.map +1 -1
  18. package/dist/core/builder/ToolDefinitionCompiler.js +1 -1
  19. package/dist/core/builder/ToolDefinitionCompiler.js.map +1 -1
  20. package/dist/core/execution/ExecutionPipeline.d.ts +8 -2
  21. package/dist/core/execution/ExecutionPipeline.d.ts.map +1 -1
  22. package/dist/core/execution/ExecutionPipeline.js +18 -9
  23. package/dist/core/execution/ExecutionPipeline.js.map +1 -1
  24. package/dist/core/registry/ToolRegistry.d.ts +1 -1
  25. package/dist/core/registry/ToolRegistry.d.ts.map +1 -1
  26. package/dist/core/registry/ToolRegistry.js +1 -1
  27. package/dist/core/registry/ToolRegistry.js.map +1 -1
  28. package/dist/core/schema/SchemaGenerator.d.ts +1 -1
  29. package/dist/core/schema/SchemaGenerator.d.ts.map +1 -1
  30. package/dist/core/schema/SchemaGenerator.js +38 -1
  31. package/dist/core/schema/SchemaGenerator.js.map +1 -1
  32. package/dist/core/types.d.ts +2 -0
  33. package/dist/core/types.d.ts.map +1 -1
  34. package/dist/exposition/ExpositionCompiler.d.ts.map +1 -1
  35. package/dist/exposition/ExpositionCompiler.js +25 -2
  36. package/dist/exposition/ExpositionCompiler.js.map +1 -1
  37. package/dist/introspection/BehaviorDigest.d.ts +2 -2
  38. package/dist/introspection/BehaviorDigest.d.ts.map +1 -1
  39. package/dist/introspection/BehaviorDigest.js +38 -36
  40. package/dist/introspection/BehaviorDigest.js.map +1 -1
  41. package/dist/introspection/CapabilityLockfile.d.ts +2 -2
  42. package/dist/introspection/CapabilityLockfile.d.ts.map +1 -1
  43. package/dist/introspection/CapabilityLockfile.js +9 -9
  44. package/dist/introspection/CapabilityLockfile.js.map +1 -1
  45. package/dist/introspection/CryptoAttestation.d.ts.map +1 -1
  46. package/dist/introspection/CryptoAttestation.js +23 -36
  47. package/dist/introspection/CryptoAttestation.js.map +1 -1
  48. package/dist/introspection/SemanticProbe.js +49 -49
  49. package/dist/introspection/ToolContract.d.ts +2 -2
  50. package/dist/introspection/ToolContract.d.ts.map +1 -1
  51. package/dist/introspection/ToolContract.js +9 -9
  52. package/dist/introspection/ToolContract.js.map +1 -1
  53. package/dist/introspection/canonicalize.d.ts +16 -1
  54. package/dist/introspection/canonicalize.d.ts.map +1 -1
  55. package/dist/introspection/canonicalize.js +18 -3
  56. package/dist/introspection/canonicalize.js.map +1 -1
  57. package/dist/presenter/PostProcessor.d.ts +3 -1
  58. package/dist/presenter/PostProcessor.d.ts.map +1 -1
  59. package/dist/presenter/PostProcessor.js +4 -3
  60. package/dist/presenter/PostProcessor.js.map +1 -1
  61. package/dist/presenter/Presenter.d.ts +18 -5
  62. package/dist/presenter/Presenter.d.ts.map +1 -1
  63. package/dist/presenter/Presenter.js +39 -15
  64. package/dist/presenter/Presenter.js.map +1 -1
  65. package/dist/presenter/SelectUtils.d.ts +78 -0
  66. package/dist/presenter/SelectUtils.d.ts.map +1 -0
  67. package/dist/presenter/SelectUtils.js +141 -0
  68. package/dist/presenter/SelectUtils.js.map +1 -0
  69. package/dist/presenter/index.d.ts +1 -0
  70. package/dist/presenter/index.d.ts.map +1 -1
  71. package/dist/presenter/index.js +2 -0
  72. package/dist/presenter/index.js.map +1 -1
  73. package/dist/server/ServerAttachment.d.ts +1 -1
  74. package/dist/server/ServerAttachment.d.ts.map +1 -1
  75. package/dist/server/ServerAttachment.js +3 -3
  76. package/dist/server/ServerAttachment.js.map +1 -1
  77. package/package.json +118 -118
@@ -103,34 +103,34 @@ export class ProgressTracker {
103
103
  /** @internal exported for testing */
104
104
  export const MCP_FUSION_VERSION = '1.1.0';
105
105
  /** @internal exported for testing */
106
- export const HELP = `
107
- fusion — MCP Fusion CLI
108
-
109
- USAGE
110
- fusion create <name> Scaffold a new MCP Fusion server
111
- fusion lock Generate or update ${LOCKFILE_NAME}
112
- fusion lock --check Verify lockfile is up to date (CI gate)
113
-
114
- CREATE OPTIONS
115
- --transport <stdio|sse> Transport layer (default: stdio)
116
- --vector <type> Ingestion vector: vanilla, prisma, n8n, openapi, oauth
117
- --testing Include test suite (default: true)
118
- --no-testing Skip test suite
119
- --yes, -y Skip prompts, use defaults
120
-
121
- LOCK OPTIONS
122
- --server, -s <path> Path to server entrypoint
123
- --name, -n <name> Server name for lockfile header
124
- --cwd <dir> Project root directory
125
-
126
- GLOBAL
127
- --help, -h Show this help message
128
-
129
- EXAMPLES
130
- fusion create my-server
131
- fusion create my-server -y
132
- fusion create my-server --vector prisma --transport sse
133
- fusion lock --server ./src/server.ts
106
+ export const HELP = `
107
+ fusion — MCP Fusion CLI
108
+
109
+ USAGE
110
+ fusion create <name> Scaffold a new MCP Fusion server
111
+ fusion lock Generate or update ${LOCKFILE_NAME}
112
+ fusion lock --check Verify lockfile is up to date (CI gate)
113
+
114
+ CREATE OPTIONS
115
+ --transport <stdio|sse> Transport layer (default: stdio)
116
+ --vector <type> Ingestion vector: vanilla, prisma, n8n, openapi, oauth
117
+ --testing Include test suite (default: true)
118
+ --no-testing Skip test suite
119
+ --yes, -y Skip prompts, use defaults
120
+
121
+ LOCK OPTIONS
122
+ --server, -s <path> Path to server entrypoint
123
+ --name, -n <name> Server name for lockfile header
124
+ --cwd <dir> Project root directory
125
+
126
+ GLOBAL
127
+ --help, -h Show this help message
128
+
129
+ EXAMPLES
130
+ fusion create my-server
131
+ fusion create my-server -y
132
+ fusion create my-server --vector prisma --transport sse
133
+ fusion lock --server ./src/server.ts
134
134
  `.trim();
135
135
  /** @internal exported for testing */
136
136
  export function parseArgs(argv) {
@@ -294,7 +294,7 @@ export async function commandLock(args, reporter) {
294
294
  // Step 2: Compile tool contracts
295
295
  progress.start('compile', 'Compiling tool contracts');
296
296
  const builders = [...registry.getBuilders()];
297
- const contracts = compileContracts(builders);
297
+ const contracts = await compileContracts(builders);
298
298
  const toolCount = Object.keys(contracts).length;
299
299
  progress.done('compile', 'Compiling tool contracts', `${toolCount} tool${toolCount !== 1 ? 's' : ''}`);
300
300
  // Step 3: Discover prompts
@@ -317,7 +317,7 @@ export async function commandLock(args, reporter) {
317
317
  }
318
318
  progress.done('read', 'Reading existing lockfile');
319
319
  progress.start('verify', 'Verifying integrity');
320
- const result = checkLockfile(existing, contracts, options);
320
+ const result = await checkLockfile(existing, contracts, options);
321
321
  if (result.ok) {
322
322
  progress.done('verify', 'Verifying integrity', 'up to date');
323
323
  console.log(`\n✓ ${LOCKFILE_NAME} is up to date.`);
@@ -344,7 +344,7 @@ export async function commandLock(args, reporter) {
344
344
  else {
345
345
  // ── Generate Mode ──
346
346
  progress.start('generate', 'Computing behavioral digests');
347
- const lockfile = generateLockfile(serverName, contracts, MCP_FUSION_VERSION, options);
347
+ const lockfile = await generateLockfile(serverName, contracts, MCP_FUSION_VERSION, options);
348
348
  progress.done('generate', 'Computing behavioral digests');
349
349
  progress.start('write', `Writing ${LOCKFILE_NAME}`);
350
350
  await writeLockfile(lockfile, args.cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"fusion.js","sourceRoot":"","sources":["../../src/cli/fusion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fusion.js","sourceRoot":"","sources":["../../src/cli/fusion.ts"],"names":[],"mappings":"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"}
@@ -85,47 +85,47 @@ export function tsconfig() {
85
85
  }
86
86
  /** Generate `.gitignore` */
87
87
  export function gitignore() {
88
- return `node_modules/
89
- dist/
90
- *.tsbuildinfo
91
- .env
92
- .env.local
93
- coverage/
88
+ return `node_modules/
89
+ dist/
90
+ *.tsbuildinfo
91
+ .env
92
+ .env.local
93
+ coverage/
94
94
  `;
95
95
  }
96
96
  /** Generate `.env.example` with vector-specific vars */
97
97
  export function envExample(config) {
98
- let env = `# ── MCP Fusion Server Environment ─────────────────────
99
- # Copy this to .env and fill in your values.
100
-
101
- # Server
102
- NODE_ENV=development
98
+ let env = `# ── MCP Fusion Server Environment ─────────────────────
99
+ # Copy this to .env and fill in your values.
100
+
101
+ # Server
102
+ NODE_ENV=development
103
103
  `;
104
104
  if (config.vector === 'prisma') {
105
- env += `
106
- # Database (Prisma)
107
- DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"
105
+ env += `
106
+ # Database (Prisma)
107
+ DATABASE_URL="postgresql://user:password@localhost:5432/mydb?schema=public"
108
108
  `;
109
109
  }
110
110
  if (config.vector === 'n8n') {
111
- env += `
112
- # n8n Workflow Automation
113
- N8N_BASE_URL=http://localhost:5678
114
- N8N_API_KEY=your-api-key-here
111
+ env += `
112
+ # n8n Workflow Automation
113
+ N8N_BASE_URL=http://localhost:5678
114
+ N8N_API_KEY=your-api-key-here
115
115
  `;
116
116
  }
117
117
  if (config.vector === 'oauth') {
118
- env += `
119
- # OAuth Device Flow (RFC 8628)
120
- OAUTH_CLIENT_ID=your-client-id
121
- OAUTH_AUTH_ENDPOINT=https://api.example.com/oauth/device/code
122
- OAUTH_TOKEN_ENDPOINT=https://api.example.com/oauth/device/token
118
+ env += `
119
+ # OAuth Device Flow (RFC 8628)
120
+ OAUTH_CLIENT_ID=your-client-id
121
+ OAUTH_AUTH_ENDPOINT=https://api.example.com/oauth/device/code
122
+ OAUTH_TOKEN_ENDPOINT=https://api.example.com/oauth/device/token
123
123
  `;
124
124
  }
125
125
  if (config.transport === 'sse') {
126
- env += `
127
- # SSE Transport
128
- PORT=3001
126
+ env += `
127
+ # SSE Transport
128
+ PORT=3001
129
129
  `;
130
130
  }
131
131
  return env;
@@ -1,130 +1,130 @@
1
1
  /** Generate `src/fusion.ts` — The one-file context center */
2
2
  export function fusionTs() {
3
- return `/**
4
- * Fusion Instance — Context Initialization
5
- *
6
- * Define your context type ONCE. Every f.tool(), f.presenter(),
7
- * f.prompt(), and f.middleware() call inherits AppContext —
8
- * zero generic repetition anywhere in the codebase.
9
- */
10
- import { initFusion } from '@vinkius-core/mcp-fusion';
11
- import type { AppContext } from './context.js';
12
-
13
- export const f = initFusion<AppContext>();
3
+ return `/**
4
+ * Fusion Instance — Context Initialization
5
+ *
6
+ * Define your context type ONCE. Every f.tool(), f.presenter(),
7
+ * f.prompt(), and f.middleware() call inherits AppContext —
8
+ * zero generic repetition anywhere in the codebase.
9
+ */
10
+ import { initFusion } from '@vinkius-core/mcp-fusion';
11
+ import type { AppContext } from './context.js';
12
+
13
+ export const f = initFusion<AppContext>();
14
14
  `;
15
15
  }
16
16
  /** Generate `src/context.ts` — Application context type + factory */
17
17
  export function contextTs() {
18
- return `/**
19
- * Application Context — Shared State for Every Tool Handler
20
- *
21
- * Every f.tool() handler receives { input, ctx } where ctx
22
- * is this AppContext. Extend it with your own services
23
- * (DB client, auth, external APIs, etc.)
24
- */
25
-
26
- export interface AppContext {
27
- /** Current user role for RBAC checks */
28
- role: 'ADMIN' | 'USER' | 'GUEST';
29
-
30
- /** Tenant identifier (multi-tenancy) */
31
- tenantId: string;
32
- }
33
-
34
- /**
35
- * Create the application context for each tool invocation.
36
- *
37
- * In production, hydrate this from the MCP session metadata,
38
- * JWT tokens, or environment variables.
39
- */
40
- export function createContext(): AppContext {
41
- return {
42
- role: 'ADMIN',
43
- tenantId: 'default',
44
- };
45
- }
18
+ return `/**
19
+ * Application Context — Shared State for Every Tool Handler
20
+ *
21
+ * Every f.tool() handler receives { input, ctx } where ctx
22
+ * is this AppContext. Extend it with your own services
23
+ * (DB client, auth, external APIs, etc.)
24
+ */
25
+
26
+ export interface AppContext {
27
+ /** Current user role for RBAC checks */
28
+ role: 'ADMIN' | 'USER' | 'GUEST';
29
+
30
+ /** Tenant identifier (multi-tenancy) */
31
+ tenantId: string;
32
+ }
33
+
34
+ /**
35
+ * Create the application context for each tool invocation.
36
+ *
37
+ * In production, hydrate this from the MCP session metadata,
38
+ * JWT tokens, or environment variables.
39
+ */
40
+ export function createContext(): AppContext {
41
+ return {
42
+ role: 'ADMIN',
43
+ tenantId: 'default',
44
+ };
45
+ }
46
46
  `;
47
47
  }
48
48
  /** Generate `src/server.ts` — Bootstrap with autoDiscover + transport */
49
49
  export function serverTs(config) {
50
50
  const transportImport = config.transport === 'stdio'
51
51
  ? `import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';`
52
- : `import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
52
+ : `import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
53
53
  import { createServer } from 'node:http';`;
54
54
  const transportSetup = config.transport === 'stdio'
55
- ? `
56
- // ── Transport ────────────────────────────────────────────
57
- const transport = new StdioServerTransport();
58
- await server.connect(transport);
55
+ ? `
56
+ // ── Transport ────────────────────────────────────────────
57
+ const transport = new StdioServerTransport();
58
+ await server.connect(transport);
59
59
  console.error('⚡ MCP Fusion server running on stdio');`
60
- : `
61
- // ── Transport ────────────────────────────────────────────
62
- const PORT = Number(process.env['PORT'] ?? 3001);
63
- const transports = new Map<string, SSEServerTransport>();
64
-
65
- const httpServer = createServer(async (req, res) => {
66
- if (req.method === 'GET' && req.url === '/sse') {
67
- const sseTransport = new SSEServerTransport('/mcp/messages', res);
68
- transports.set(sseTransport.sessionId, sseTransport);
69
- res.on('close', () => transports.delete(sseTransport.sessionId));
70
- await server.connect(sseTransport);
71
- } else if (req.method === 'POST' && req.url?.startsWith('/mcp/messages')) {
72
- const url = new URL(req.url, \`http://localhost:\${PORT}\`);
73
- const sessionId = url.searchParams.get('sessionId') ?? '';
74
- const transport = transports.get(sessionId);
75
- if (transport) {
76
- await transport.handlePostMessage(req, res);
77
- } else {
78
- res.writeHead(400).end('Unknown session');
79
- }
80
- } else {
81
- res.writeHead(404).end();
82
- }
83
- });
84
-
85
- httpServer.listen(PORT, () => {
86
- console.error(\`⚡ MCP Fusion SSE server on http://localhost:\${PORT}/sse\`);
60
+ : `
61
+ // ── Transport ────────────────────────────────────────────
62
+ const PORT = Number(process.env['PORT'] ?? 3001);
63
+ const transports = new Map<string, SSEServerTransport>();
64
+
65
+ const httpServer = createServer(async (req, res) => {
66
+ if (req.method === 'GET' && req.url === '/sse') {
67
+ const sseTransport = new SSEServerTransport('/mcp/messages', res);
68
+ transports.set(sseTransport.sessionId, sseTransport);
69
+ res.on('close', () => transports.delete(sseTransport.sessionId));
70
+ await server.connect(sseTransport);
71
+ } else if (req.method === 'POST' && req.url?.startsWith('/mcp/messages')) {
72
+ const url = new URL(req.url, \`http://localhost:\${PORT}\`);
73
+ const sessionId = url.searchParams.get('sessionId') ?? '';
74
+ const transport = transports.get(sessionId);
75
+ if (transport) {
76
+ await transport.handlePostMessage(req, res);
77
+ } else {
78
+ res.writeHead(400).end('Unknown session');
79
+ }
80
+ } else {
81
+ res.writeHead(404).end();
82
+ }
83
+ });
84
+
85
+ httpServer.listen(PORT, () => {
86
+ console.error(\`⚡ MCP Fusion SSE server on http://localhost:\${PORT}/sse\`);
87
87
  });`;
88
- return `/**
89
- * Server Bootstrap — MCP Fusion with autoDiscover
90
- *
91
- * Tools are auto-discovered from src/tools/ — drop a file,
92
- * it becomes a tool. No manual imports or registration needed.
93
- */
94
- import { Server } from '@modelcontextprotocol/sdk/server/index.js';
95
- ${transportImport}
96
- import { ToolRegistry, autoDiscover, PromptRegistry } from '@vinkius-core/mcp-fusion';
97
- import type { AppContext } from './context.js';
98
- import { createContext } from './context.js';
99
- import { f } from './fusion.js';
100
- import { GreetPrompt } from './prompts/greet.js';
101
-
102
- // ── Registries ───────────────────────────────────────────
103
- const registry = f.registry();
104
- const prompts = new PromptRegistry<AppContext>();
105
-
106
- // ── Auto-Discover Tools ──────────────────────────────────
107
- const discovered = await autoDiscover(registry, new URL('./tools', import.meta.url).pathname);
108
- console.error(\`📦 Discovered \${discovered.length} tool file(s)\`);
109
-
110
- // ── Register Prompts ─────────────────────────────────────
111
- prompts.register(GreetPrompt);
112
- console.error(\`💬 Registered \${prompts.size} prompt(s)\`);
113
-
114
- // ── Server ───────────────────────────────────────────────
115
- const server = new Server(
116
- { name: '${config.name}', version: '0.1.0' },
117
- { capabilities: { tools: {}, prompts: {} } },
118
- );
119
-
120
- registry.attachToServer(server, {
121
- contextFactory: () => createContext(),
122
- });
123
-
124
- prompts.attachToServer(server, {
125
- contextFactory: () => createContext(),
126
- });
127
- ${transportSetup}
88
+ return `/**
89
+ * Server Bootstrap — MCP Fusion with autoDiscover
90
+ *
91
+ * Tools are auto-discovered from src/tools/ — drop a file,
92
+ * it becomes a tool. No manual imports or registration needed.
93
+ */
94
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
95
+ ${transportImport}
96
+ import { ToolRegistry, autoDiscover, PromptRegistry } from '@vinkius-core/mcp-fusion';
97
+ import type { AppContext } from './context.js';
98
+ import { createContext } from './context.js';
99
+ import { f } from './fusion.js';
100
+ import { GreetPrompt } from './prompts/greet.js';
101
+
102
+ // ── Registries ───────────────────────────────────────────
103
+ const registry = f.registry();
104
+ const prompts = new PromptRegistry<AppContext>();
105
+
106
+ // ── Auto-Discover Tools ──────────────────────────────────
107
+ const discovered = await autoDiscover(registry, new URL('./tools', import.meta.url).pathname);
108
+ console.error(\`📦 Discovered \${discovered.length} tool file(s)\`);
109
+
110
+ // ── Register Prompts ─────────────────────────────────────
111
+ prompts.register(GreetPrompt);
112
+ console.error(\`💬 Registered \${prompts.size} prompt(s)\`);
113
+
114
+ // ── Server ───────────────────────────────────────────────
115
+ const server = new Server(
116
+ { name: '${config.name}', version: '0.1.0' },
117
+ { capabilities: { tools: {}, prompts: {} } },
118
+ );
119
+
120
+ registry.attachToServer(server, {
121
+ contextFactory: () => createContext(),
122
+ });
123
+
124
+ prompts.attachToServer(server, {
125
+ contextFactory: () => createContext(),
126
+ });
127
+ ${transportSetup}
128
128
  `;
129
129
  }
130
130
  //# sourceMappingURL=core.js.map
@@ -4,28 +4,28 @@
4
4
  */
5
5
  /** Generate `src/middleware/auth.ts` — RBAC middleware */
6
6
  export function authMiddlewareTs() {
7
- return `/**
8
- * Auth Middleware — RBAC Guard
9
- *
10
- * Demonstrates middleware with tRPC-style context derivation.
11
- * Rejects GUEST requests with a structured error.
12
- *
13
- * In production, replace this with JWT validation,
14
- * API key checks, or OAuth token verification.
15
- */
16
- import { error } from '@vinkius-core/mcp-fusion';
17
- import type { AppContext } from '../context.js';
18
-
19
- export async function authGuard<TArgs>(
20
- ctx: AppContext,
21
- _args: TArgs,
22
- next: () => Promise<unknown>,
23
- ): Promise<unknown> {
24
- if (ctx.role === 'GUEST') {
25
- return error('Access denied. Authentication required.');
26
- }
27
- return next();
28
- }
7
+ return `/**
8
+ * Auth Middleware — RBAC Guard
9
+ *
10
+ * Demonstrates middleware with tRPC-style context derivation.
11
+ * Rejects GUEST requests with a structured error.
12
+ *
13
+ * In production, replace this with JWT validation,
14
+ * API key checks, or OAuth token verification.
15
+ */
16
+ import { error } from '@vinkius-core/mcp-fusion';
17
+ import type { AppContext } from '../context.js';
18
+
19
+ export async function authGuard<TArgs>(
20
+ ctx: AppContext,
21
+ _args: TArgs,
22
+ next: () => Promise<unknown>,
23
+ ): Promise<unknown> {
24
+ if (ctx.role === 'GUEST') {
25
+ return error('Access denied. Authentication required.');
26
+ }
27
+ return next();
28
+ }
29
29
  `;
30
30
  }
31
31
  //# sourceMappingURL=middleware.js.map