@dataflint/mcp-server 1.0.17 → 1.0.21

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 (55) hide show
  1. package/dist/auth/auth0-service.d.ts.map +1 -1
  2. package/dist/auth/auth0-service.js +27 -13
  3. package/dist/auth/auth0-service.js.map +1 -1
  4. package/dist/auth/errors.d.ts +86 -0
  5. package/dist/auth/errors.d.ts.map +1 -0
  6. package/dist/auth/errors.js +144 -0
  7. package/dist/auth/errors.js.map +1 -0
  8. package/dist/auth/index.d.ts +1 -0
  9. package/dist/auth/index.d.ts.map +1 -1
  10. package/dist/auth/index.js +10 -1
  11. package/dist/auth/index.js.map +1 -1
  12. package/dist/dataflint-server-service.d.ts +12 -4
  13. package/dist/dataflint-server-service.d.ts.map +1 -1
  14. package/dist/dataflint-server-service.js +219 -63
  15. package/dist/dataflint-server-service.js.map +1 -1
  16. package/dist/errors.d.ts +55 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +185 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/index.d.ts +3 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +21 -5
  23. package/dist/index.js.map +1 -1
  24. package/dist/request-context.d.ts +20 -0
  25. package/dist/request-context.d.ts.map +1 -1
  26. package/dist/request-context.js +31 -1
  27. package/dist/request-context.js.map +1 -1
  28. package/dist/server.d.ts +2 -2
  29. package/dist/server.d.ts.map +1 -1
  30. package/dist/server.js +16 -14
  31. package/dist/server.js.map +1 -1
  32. package/dist/standalone/config.d.ts +13 -7
  33. package/dist/standalone/config.d.ts.map +1 -1
  34. package/dist/standalone/config.js +361 -81
  35. package/dist/standalone/config.js.map +4 -4
  36. package/dist/standalone/server.d.ts.map +1 -1
  37. package/dist/standalone/server.js +45 -25
  38. package/dist/standalone/server.js.map +1 -1
  39. package/dist/standalone/stdio-transport.d.ts +2 -1
  40. package/dist/standalone/stdio-transport.d.ts.map +1 -1
  41. package/dist/standalone/stdio-transport.js +3 -4
  42. package/dist/standalone/stdio-transport.js.map +1 -1
  43. package/dist/test-helpers.d.ts +27 -0
  44. package/dist/test-helpers.d.ts.map +1 -0
  45. package/dist/test-helpers.js +101 -0
  46. package/dist/test-helpers.js.map +1 -0
  47. package/dist/types.d.ts +5 -13
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/types.js +5 -0
  50. package/dist/types.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/auth.d.ts +0 -47
  53. package/dist/auth.d.ts.map +0 -1
  54. package/dist/auth.js +0 -302
  55. package/dist/auth.js.map +0 -1
package/dist/auth.js DELETED
@@ -1,302 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Auth0Service = void 0;
37
- const http = __importStar(require("http"));
38
- const openid_client_1 = require("openid-client");
39
- const url_1 = require("url");
40
- const logger_1 = require("./logger");
41
- const AUTH_DISCOVERY_TIMEOUT_MS = 10_000; // 10 seconds
42
- openid_client_1.custom.setHttpOptionsDefaults({
43
- timeout: AUTH_DISCOVERY_TIMEOUT_MS,
44
- });
45
- class Auth0Service {
46
- config;
47
- redirectUri;
48
- callbackPort;
49
- client = null;
50
- issuer = null;
51
- initialized = false;
52
- openUrlHandler;
53
- constructor(openUrlHandler, configProvider, callbackPort = 11334) {
54
- const logger = logger_1.Logger.getInstance();
55
- this.openUrlHandler = openUrlHandler;
56
- this.config = {
57
- ...configProvider(),
58
- scope: configProvider().scope || "openid profile email",
59
- };
60
- this.callbackPort = callbackPort;
61
- this.redirectUri = `http://localhost:${callbackPort}/callback`;
62
- logger.info(`Auth0Service initialized for domain: ${this.config.domain}`);
63
- }
64
- /**
65
- * Initialize the Auth0 client by discovering the issuer metadata
66
- */
67
- async initialize() {
68
- const logger = logger_1.Logger.getInstance();
69
- if (this.initialized) {
70
- logger.debug("Auth0 client already initialized");
71
- return;
72
- }
73
- try {
74
- const issuerUrl = this.config.domain.startsWith("http")
75
- ? this.config.domain
76
- : `https://${this.config.domain}`;
77
- logger.info(`Attempting to discover Auth0 issuer at: ${issuerUrl}`);
78
- logger.debug(`Discovery URL will be: ${issuerUrl}`);
79
- this.issuer = await openid_client_1.Issuer.discover(issuerUrl);
80
- logger.info(`Auth0 issuer discovered successfully: ${this.issuer.issuer}`);
81
- this.client = new this.issuer.Client({
82
- client_id: this.config.clientId,
83
- redirect_uris: [this.redirectUri],
84
- response_types: ["code"],
85
- token_endpoint_auth_method: "none", // Public client, no client secret required
86
- });
87
- this.initialized = true;
88
- logger.info("Auth0 client initialized successfully");
89
- }
90
- catch (error) {
91
- logger.error("Failed to initialize Auth0 client", error);
92
- logger.error(`Auth0 domain: ${this.config.domain}`);
93
- logger.error(`Client ID: ${this.config.clientId}`);
94
- logger.error(`Constructed issuer URL: ${this.config.domain.startsWith("http") ? this.config.domain : `https://${this.config.domain}`}`);
95
- // Check if it's a network/discovery error
96
- if (error instanceof Error) {
97
- if (error.message.includes("404") ||
98
- error.message.includes("Not Found")) {
99
- throw new Error(`Auth0 domain '${this.config.domain}' not found. Please verify your Auth0 domain configuration. The discovery endpoint ${this.config.domain} returned 404.`);
100
- }
101
- else if (error.message.includes("ENOTFOUND") ||
102
- error.message.includes("getaddrinfo")) {
103
- throw new Error(`Cannot connect to Auth0 domain '${this.config.domain}'. Please check your internet connection and verify the domain is correct.`);
104
- }
105
- }
106
- throw new Error(`Auth0 initialization failed: ${error}`);
107
- }
108
- }
109
- /**
110
- * Start the authentication flow
111
- */
112
- async authenticate() {
113
- const logger = logger_1.Logger.getInstance();
114
- if (!this.client) {
115
- await this.initialize();
116
- }
117
- if (!this.client) {
118
- throw new Error("Auth0 client not initialized");
119
- }
120
- // Generate PKCE code verifier/challenge for security
121
- const codeVerifier = openid_client_1.generators.codeVerifier();
122
- const codeChallenge = openid_client_1.generators.codeChallenge(codeVerifier);
123
- // Create the authorization URL
124
- const authUrl = this.client.authorizationUrl({
125
- scope: this.config.scope,
126
- code_challenge: codeChallenge,
127
- code_challenge_method: "S256",
128
- ...(this.config.audience && { audience: this.config.audience }),
129
- });
130
- logger.info("Opening browser for authentication...");
131
- try {
132
- await this.openUrlHandler(authUrl);
133
- }
134
- catch (error) {
135
- logger.error("Failed to open browser", error);
136
- logger.info(`Please manually navigate to: ${authUrl}`);
137
- }
138
- // Wait for the callback and exchange the code for tokens
139
- return new Promise((resolve, reject) => {
140
- const server = http.createServer(async (req, res) => {
141
- try {
142
- if (!req.url?.startsWith("/callback")) {
143
- res.writeHead(404, { "Content-Type": "text/plain" });
144
- res.end("Not Found");
145
- return;
146
- }
147
- const callbackUrl = new url_1.URL(`http://localhost:${this.callbackPort}${req.url}`);
148
- const params = this.client.callbackParams(callbackUrl.toString());
149
- // Exchange authorization code for tokens
150
- const tokenSet = await this.client.callback(this.redirectUri, params, {
151
- code_verifier: codeVerifier,
152
- });
153
- const authResult = this.processTokenSet(tokenSet);
154
- // Send success response
155
- res.writeHead(200, { "Content-Type": "text/html" });
156
- res.end(`
157
- <html>
158
- <body style="font-family: Arial, sans-serif; text-align: center; padding: 50px;">
159
- <h2 style="color: #4CAF50;">Authentication Successful!</h2>
160
- <p>You can now close this tab and return to VS Code/Cursor.</p>
161
- <script>
162
- setTimeout(() => {
163
- window.close();
164
- }, 3000);
165
- </script>
166
- </body>
167
- </html>
168
- `);
169
- server.close();
170
- resolve(authResult);
171
- }
172
- catch (error) {
173
- logger.error("Authentication callback error", error);
174
- // Send error response
175
- res.writeHead(400, { "Content-Type": "text/html" });
176
- res.end(`
177
- <html>
178
- <body style="font-family: Arial, sans-serif; text-align: center; padding: 50px;">
179
- <h2 style="color: #f44336;">❌ Authentication Failed</h2>
180
- <p>Error: ${error}</p>
181
- <p>Please try again.</p>
182
- </body>
183
- </html>
184
- `);
185
- server.close();
186
- reject(error);
187
- }
188
- });
189
- server.listen(this.callbackPort, () => {
190
- logger.info(`Listening for Auth0 callback on http://localhost:${this.callbackPort}/callback`);
191
- });
192
- // Add timeout to prevent hanging
193
- setTimeout(() => {
194
- server.close();
195
- reject(new Error("Authentication timeout - no response received within 5 minutes"));
196
- }, 300000); // 5 minutes timeout
197
- });
198
- }
199
- /**
200
- * Get user information using the access token
201
- */
202
- async getUserInfo(accessToken) {
203
- const logger = logger_1.Logger.getInstance();
204
- if (!this.client) {
205
- throw new Error("Auth0 client not initialized");
206
- }
207
- try {
208
- logger.info("Fetching user information...");
209
- const userInfo = await this.client.userinfo(accessToken);
210
- logger.info("User information retrieved successfully");
211
- logger.debug(`User ID: ${userInfo.sub}`);
212
- return userInfo;
213
- }
214
- catch (error) {
215
- logger.error("Failed to get user info", error);
216
- throw error;
217
- }
218
- }
219
- /**
220
- * Refresh the access token using refresh token
221
- */
222
- async refreshToken(refreshToken) {
223
- const logger = logger_1.Logger.getInstance();
224
- if (!this.client) {
225
- throw new Error("Auth0 client not initialized");
226
- }
227
- try {
228
- logger.info("Refreshing access token...");
229
- const tokenSet = await this.client.refresh(refreshToken);
230
- const result = this.processTokenSet(tokenSet);
231
- logger.info("Token refresh completed successfully");
232
- return result;
233
- }
234
- catch (error) {
235
- logger.error("Token refresh failed", error);
236
- throw error;
237
- }
238
- }
239
- /**
240
- * Process token set and return structured result
241
- */
242
- processTokenSet(tokenSet) {
243
- const logger = logger_1.Logger.getInstance();
244
- const result = {
245
- accessToken: tokenSet.access_token,
246
- idToken: tokenSet.id_token,
247
- refreshToken: tokenSet.refresh_token,
248
- };
249
- if (tokenSet.expires_at) {
250
- result.expiresAt = new Date(tokenSet.expires_at * 1000);
251
- }
252
- logger.info("Authentication tokens processed successfully");
253
- logger.debug(`Access Token: ${result.accessToken?.substring(0, 20)}...`);
254
- logger.debug(`ID Token: ${result.idToken ? "Present" : "Not provided"}`);
255
- logger.debug(`Refresh Token: ${result.refreshToken ? "Present" : "Not provided"}`);
256
- logger.debug(`Expires At: ${result.expiresAt}`);
257
- return result;
258
- }
259
- /**
260
- * Check if a token is expired
261
- */
262
- isTokenExpired(authResult) {
263
- const logger = logger_1.Logger.getInstance();
264
- if (!authResult.expiresAt) {
265
- logger.debug("No expiration time available, considering token valid");
266
- return false; // If no expiration time, assume it's still valid
267
- }
268
- // Ensure expiresAt is a Date object (it might be a string if serialized)
269
- const expiresAt = authResult.expiresAt instanceof Date
270
- ? authResult.expiresAt
271
- : new Date(authResult.expiresAt);
272
- const now = new Date();
273
- const buffer = 5 * 60 * 1000; // 5 minutes buffer
274
- const isExpired = expiresAt.getTime() - buffer < now.getTime();
275
- if (isExpired) {
276
- logger.warn("Access token is expired or will expire soon");
277
- }
278
- else {
279
- logger.debug("Access token is still valid");
280
- }
281
- return isExpired;
282
- }
283
- /**
284
- * Logout (revoke tokens if supported)
285
- */
286
- async logout(accessToken) {
287
- const logger = logger_1.Logger.getInstance();
288
- if (!this.client) {
289
- throw new Error("Auth0 client not initialized");
290
- }
291
- try {
292
- await this.client.revoke(accessToken);
293
- logger.info("Token revoked successfully");
294
- }
295
- catch (error) {
296
- logger.error("Failed to revoke token", error);
297
- // Don't throw error as logout should be graceful
298
- }
299
- }
300
- }
301
- exports.Auth0Service = Auth0Service;
302
- //# sourceMappingURL=auth.js.map
package/dist/auth.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}