@dataflint/mcp-server 1.0.15 → 1.0.17

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 (60) hide show
  1. package/dist/auth/secrets/aws-secrets-provider.d.ts.map +1 -1
  2. package/dist/auth/secrets/aws-secrets-provider.js +3 -1
  3. package/dist/auth/secrets/aws-secrets-provider.js.map +1 -1
  4. package/dist/auth.d.ts +47 -0
  5. package/dist/auth.d.ts.map +1 -0
  6. package/dist/auth.js +302 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/dataflint-server-service.d.ts +3 -6
  9. package/dist/dataflint-server-service.d.ts.map +1 -1
  10. package/dist/dataflint-server-service.js +48 -133
  11. package/dist/dataflint-server-service.js.map +1 -1
  12. package/dist/index.d.ts +4 -3
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +7 -11
  15. package/dist/index.js.map +1 -1
  16. package/dist/request-context.d.ts +0 -20
  17. package/dist/request-context.d.ts.map +1 -1
  18. package/dist/request-context.js +1 -31
  19. package/dist/request-context.js.map +1 -1
  20. package/dist/server.d.ts +2 -2
  21. package/dist/server.d.ts.map +1 -1
  22. package/dist/server.js +14 -16
  23. package/dist/server.js.map +1 -1
  24. package/dist/standalone/config.d.ts +7 -13
  25. package/dist/standalone/config.d.ts.map +1 -1
  26. package/dist/standalone/config.js +1387 -280
  27. package/dist/standalone/config.js.map +7 -1
  28. package/dist/standalone/logger.js +2 -2
  29. package/dist/standalone/logger.js.map +1 -1
  30. package/dist/standalone/server.d.ts.map +1 -1
  31. package/dist/standalone/server.js +25 -45
  32. package/dist/standalone/server.js.map +1 -1
  33. package/dist/standalone/stdio-transport.d.ts +1 -2
  34. package/dist/standalone/stdio-transport.d.ts.map +1 -1
  35. package/dist/standalone/stdio-transport.js +4 -3
  36. package/dist/standalone/stdio-transport.js.map +1 -1
  37. package/dist/tools/base.d.ts +16 -0
  38. package/dist/tools/base.d.ts.map +1 -1
  39. package/dist/tools/base.js +16 -0
  40. package/dist/tools/base.js.map +1 -1
  41. package/dist/tools/core-tools.d.ts.map +1 -1
  42. package/dist/tools/core-tools.js +4 -4
  43. package/dist/tools/core-tools.js.map +1 -1
  44. package/dist/tools/expertise-tools.d.ts.map +1 -1
  45. package/dist/tools/expertise-tools.js +5 -5
  46. package/dist/tools/expertise-tools.js.map +1 -1
  47. package/dist/tools/findings-tools.d.ts.map +1 -1
  48. package/dist/tools/findings-tools.js +4 -4
  49. package/dist/tools/findings-tools.js.map +1 -1
  50. package/dist/tools/highlight-tools.d.ts.map +1 -1
  51. package/dist/tools/highlight-tools.js +8 -10
  52. package/dist/tools/highlight-tools.js.map +1 -1
  53. package/dist/tools/listing-tools.d.ts.map +1 -1
  54. package/dist/tools/listing-tools.js +1 -1
  55. package/dist/tools/listing-tools.js.map +1 -1
  56. package/dist/types.d.ts +13 -5
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js +0 -5
  59. package/dist/types.js.map +1 -1
  60. package/package.json +3 -2
@@ -1 +1,7 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/standalone/config.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/auth/customer-auth-configs.ts", "../../src/auth/types.ts", "../../src/auth/auth0-service.ts", "../../src/auth/auth0-m2m-service.ts", "../../src/auth/service-account-service.ts", "../../src/auth/secrets/aws-secrets-provider.ts", "../../src/auth/secrets/local-file-secrets-provider.ts", "../../src/auth/secrets/secrets-provider.ts", "../../src/auth/secrets/index.ts", "../../src/auth/auth-strategy-factory.ts", "../../src/auth/index.ts", "../../src/standalone/config.ts"],
4
+ "sourcesContent": ["/**\n * Customer-specific authentication configurations\n *\n * This file contains mappings from hashed customer domains to their Auth0 configurations.\n * Customer domains are hashed using SHA-256 for privacy.\n *\n * To add a new customer:\n * 1. Generate hash: npm run hash-domain -- \"customer.domain.com\"\n * 2. Add entry to customerAuthConfigs with the hash as key\n */\n\nexport interface CustomerAuthConfig {\n /**\n * Auth0 client ID for this customer\n */\n clientId: string;\n\n /**\n * Optional function to produce customer-specific Auth0 domain\n * @param customerDomain - The customer's domain (e.g., \"acme.corp\")\n * @returns Auth0 domain URL (e.g., \"https://dataflint-acme.us.auth0.com/\")\n */\n domainProducer?: (customerDomain: string) => string;\n}\n\n/**\n * Mapping from hashed customer domain to Auth0 configuration\n * Key: SHA-256 hash of customer domain\n * Value: CustomerAuthConfig with clientId and optional domainProducer\n */\nexport const customerAuthConfigs: { [key: string]: CustomerAuthConfig } = {\n // Customer domain hash \u2192 Auth0 configuration\n \"857064adfec4e0e5e37be8afef397155db006bb6009d1b395388d9174eb40795\": {\n clientId: \"CWvpqujjEV2aoRSDVWFSh1U6HQALygB0\",\n domainProducer: (customerDomain) =>\n `https://dataflint-${customerDomain}.us.auth0.com/`,\n },\n\n cafe6e0af028d729afd3c4a386482621af90e8e117b1216f2bbc08e86a5e9445: {\n clientId: \"HRLICLhE0BP4AeZ8dSPAoDHFmMZVacxi\",\n },\n\n \"1613f29ea956158d2ad56a10780feb45d78755819565e76c4bf0d9069d17aab9\": {\n clientId: \"CnyJJKVqes0Y0uU57GreAeaPbJlm4l4w\",\n },\n\n eae8e3404182477f008479b38a6629ee86b23cefe2c418c5dc5c2f0d02af5475: {\n clientId: \"etY3z44ssWohe77PEBIMPzktW4BmvWGT\",\n },\n\n // dataflint-demo (added from commit f38928c)\n cc1677626e05d82b301cc83c22a850eac849555e704f288083108d79f600cea1: {\n clientId: \"u9W23NGvlV58W2N9WXMMhsM12bKK8oGI\",\n },\n};\n", "/**\n * Auth types and interfaces for DataFlint authentication\n *\n * This module defines the core interfaces used across all authentication strategies:\n * - Service Account (M2M token from file)\n * - Auth0 M2M (client credentials grant)\n * - Auth0 User (interactive OAuth2/PKCE flow)\n */\n\n/**\n * Basic authentication configuration for Auth0\n */\nexport interface AuthConfig {\n domain: string;\n clientId: string;\n scope: string;\n audience: string;\n}\n\n/**\n * Result from a successful authentication\n */\nexport interface AuthResult {\n accessToken: string;\n idToken?: string;\n refreshToken?: string;\n expiresAt?: Date;\n userInfo?: unknown;\n}\n\n/**\n * Credentials required for Auth0 M2M (client credentials) authentication\n */\nexport interface Auth0M2MCredentials {\n client_id: string;\n client_secret: string;\n audience: string;\n domain: string;\n}\n\n/**\n * Authentication strategy types\n */\nexport enum AuthStrategyType {\n SERVICE_ACCOUNT = \"service_account\",\n AUTH0_M2M = \"auth0_m2m\",\n AUTH0_USER = \"auth0_user\",\n}\n\n/**\n * M2M authentication mode types\n */\nexport enum M2MType {\n NONE = \"none\",\n SERVICE_ACCOUNT = \"service_account\",\n AUTH0_M2M = \"auth0_m2m\",\n}\n\n/**\n * M2M authentication mode - single source of truth for M2M detection\n */\nexport type M2MMode =\n | { type: M2MType.NONE }\n | { type: M2MType.SERVICE_ACCOUNT; tokenPath: string; tenantId?: string }\n | { type: M2MType.AUTH0_M2M; secretName: string; tenantId?: string };\n\n/**\n * User information returned from authentication\n */\nexport interface AuthUserInfo {\n sub: string;\n name: string;\n tenant_id?: string;\n}\n\n/**\n * Common interface for all authentication strategies\n *\n * Implementations:\n * - ServiceAccountService: Reads JWT from file path\n * - Auth0M2MService: Uses client credentials grant\n * - Auth0Service: Uses interactive OAuth2/PKCE flow\n */\nexport interface IAuthStrategy {\n /**\n * Get the type of this authentication strategy\n */\n getType(): AuthStrategyType;\n\n /**\n * Initialize the authentication strategy (e.g., discover issuer, validate credentials)\n */\n initialize(): Promise<void>;\n\n /**\n * Get a valid access token, refreshing if necessary\n */\n getToken(): Promise<string>;\n\n /**\n * Force refresh the token\n */\n refreshToken(): Promise<void>;\n\n /**\n * Check if currently authenticated with a valid token\n */\n isAuthenticated(): Promise<boolean>;\n\n /**\n * Get user information for the current authentication\n */\n getUserInfo(): Promise<AuthUserInfo>;\n\n /**\n * Get the tenant ID associated with this authentication (if any)\n */\n getTenantId(): string | undefined;\n}\n\n/**\n * Configuration provider interface for authentication\n */\nexport interface IAuthConfigProvider {\n getAuthConfig(): AuthConfig;\n getM2MMode(): M2MMode;\n getTenantId(): string | undefined;\n getEnvironment(): string;\n getServerUrl(): string;\n}\n\n/**\n * Logger interface for authentication services\n */\nexport interface IAuthLogger {\n info(message: string): void;\n warn(message: string): void;\n error(message: string, error?: unknown): void;\n debug(message: string): void;\n}\n\n/**\n * Handler for opening URLs (used for OAuth2 browser-based flow)\n */\nexport type OpenUrlHandler = (url: string) => Promise<void>;\n\n/**\n * Provider function for AuthConfig\n */\nexport type ConfigProvider = () => AuthConfig;\n", "/**\n * Auth0 OAuth2/PKCE Authentication Service\n *\n * Provides interactive browser-based authentication using Auth0 with PKCE flow.\n * This is the primary authentication method for user-facing applications.\n */\n\nimport * as http from \"http\";\nimport { Client, Issuer, generators, custom } from \"openid-client\";\nimport { URL } from \"url\";\nimport {\n AuthConfig,\n AuthResult,\n OpenUrlHandler,\n ConfigProvider,\n IAuthLogger,\n} from \"./types\";\n\nconst AUTH_DISCOVERY_TIMEOUT_MS = 10_000; // 10 seconds\n\ncustom.setHttpOptionsDefaults({\n timeout: AUTH_DISCOVERY_TIMEOUT_MS,\n});\n\n/**\n * Default no-op logger for when no logger is provided\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * Auth0 service for interactive OAuth2/PKCE authentication\n *\n * @example\n * ```typescript\n * const auth0Service = new Auth0Service(\n * async (url) => { await open(url); },\n * () => configService.getAuthConfig(),\n * logger\n * );\n *\n * await auth0Service.initialize();\n * const result = await auth0Service.authenticate();\n * console.log('Access Token:', result.accessToken);\n * ```\n */\nexport class Auth0Service {\n private config: AuthConfig;\n private redirectUri: string;\n private callbackPort: number;\n private client: Client | null = null;\n private issuer: Issuer | null = null;\n private initialized = false;\n private openUrlHandler: OpenUrlHandler;\n private logger: IAuthLogger;\n\n constructor(\n openUrlHandler: OpenUrlHandler,\n configProvider: ConfigProvider,\n logger?: IAuthLogger,\n callbackPort: number = 11334\n ) {\n this.logger = logger || noopLogger;\n this.openUrlHandler = openUrlHandler;\n this.config = {\n ...configProvider(),\n scope: configProvider().scope || \"openid profile email\",\n };\n this.callbackPort = callbackPort;\n this.redirectUri = `http://localhost:${callbackPort}/callback`;\n this.logger.info(\n `Auth0Service initialized for domain: ${this.config.domain}`\n );\n }\n\n /**\n * Initialize the Auth0 client by discovering the issuer metadata\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n this.logger.debug(\"Auth0 client already initialized\");\n return;\n }\n\n try {\n const issuerUrl = this.config.domain.startsWith(\"http\")\n ? this.config.domain\n : `https://${this.config.domain}`;\n\n this.logger.info(\n `Attempting to discover Auth0 issuer at: ${issuerUrl}`\n );\n this.logger.debug(`Discovery URL will be: ${issuerUrl}`);\n\n this.issuer = await Issuer.discover(issuerUrl);\n this.logger.info(\n `Auth0 issuer discovered successfully: ${this.issuer.issuer}`\n );\n\n this.client = new this.issuer.Client({\n client_id: this.config.clientId,\n redirect_uris: [this.redirectUri],\n response_types: [\"code\"],\n token_endpoint_auth_method: \"none\", // Public client, no client secret required\n });\n\n this.initialized = true;\n this.logger.info(\"Auth0 client initialized successfully\");\n } catch (error) {\n this.logger.error(\"Failed to initialize Auth0 client\", error);\n this.logger.error(`Auth0 domain: ${this.config.domain}`);\n this.logger.error(`Client ID: ${this.config.clientId}`);\n this.logger.error(\n `Constructed issuer URL: ${this.config.domain.startsWith(\"http\") ? this.config.domain : `https://${this.config.domain}`}`\n );\n\n // Check if it's a network/discovery error\n if (error instanceof Error) {\n if (\n error.message.includes(\"404\") ||\n error.message.includes(\"Not Found\")\n ) {\n throw new Error(\n `Auth0 domain '${this.config.domain}' not found. Please verify your Auth0 domain configuration. The discovery endpoint ${this.config.domain} returned 404.`\n );\n } else if (\n error.message.includes(\"ENOTFOUND\") ||\n error.message.includes(\"getaddrinfo\")\n ) {\n throw new Error(\n `Cannot connect to Auth0 domain '${this.config.domain}'. Please check your internet connection and verify the domain is correct.`\n );\n }\n }\n\n throw new Error(`Auth0 initialization failed: ${error}`);\n }\n }\n\n /**\n * Start the authentication flow\n */\n async authenticate(): Promise<AuthResult> {\n if (!this.client) {\n await this.initialize();\n }\n\n if (!this.client) {\n throw new Error(\"Auth0 client not initialized\");\n }\n\n // Generate PKCE code verifier/challenge for security\n const codeVerifier = generators.codeVerifier();\n const codeChallenge = generators.codeChallenge(codeVerifier);\n\n // Create the authorization URL\n const authUrl = this.client.authorizationUrl({\n scope: this.config.scope,\n code_challenge: codeChallenge,\n code_challenge_method: \"S256\",\n ...(this.config.audience && { audience: this.config.audience }),\n });\n\n this.logger.info(\"Opening browser for authentication...\");\n\n try {\n await this.openUrlHandler(authUrl);\n } catch (error) {\n this.logger.error(\"Failed to open browser\", error);\n this.logger.info(`Please manually navigate to: ${authUrl}`);\n }\n\n // Wait for the callback and exchange the code for tokens\n return new Promise((resolve, reject) => {\n const server = http.createServer(async (req, res) => {\n try {\n if (!req.url?.startsWith(\"/callback\")) {\n res.writeHead(404, { \"Content-Type\": \"text/plain\" });\n res.end(\"Not Found\");\n return;\n }\n\n const callbackUrl = new URL(\n `http://localhost:${this.callbackPort}${req.url}`\n );\n const params = this.client!.callbackParams(\n callbackUrl.toString()\n );\n\n // Exchange authorization code for tokens\n const tokenSet = await this.client!.callback(\n this.redirectUri,\n params,\n {\n code_verifier: codeVerifier,\n }\n );\n\n const authResult = this.processTokenSet(tokenSet);\n\n // Send success response\n res.writeHead(200, { \"Content-Type\": \"text/html\" });\n res.end(`\n <html>\n <body style=\"font-family: Arial, sans-serif; text-align: center; padding: 50px;\">\n <h2 style=\"color: #4CAF50;\">Authentication Successful!</h2>\n <p>You can now close this tab and return to VS Code/Cursor.</p>\n <script>\n setTimeout(() => {\n window.close();\n }, 3000);\n </script>\n </body>\n </html>\n `);\n\n server.close();\n resolve(authResult);\n } catch (error) {\n this.logger.error(\"Authentication callback error\", error);\n\n // Send error response\n res.writeHead(400, { \"Content-Type\": \"text/html\" });\n res.end(`\n <html>\n <body style=\"font-family: Arial, sans-serif; text-align: center; padding: 50px;\">\n <h2 style=\"color: #f44336;\">Authentication Failed</h2>\n <p>Error: ${error}</p>\n <p>Please try again.</p>\n </body>\n </html>\n `);\n\n server.close();\n reject(error);\n }\n });\n\n server.listen(this.callbackPort, () => {\n this.logger.info(\n `Listening for Auth0 callback on http://localhost:${this.callbackPort}/callback`\n );\n });\n\n // Add timeout to prevent hanging\n setTimeout(() => {\n server.close();\n reject(\n new Error(\n \"Authentication timeout - no response received within 5 minutes\"\n )\n );\n }, 300000); // 5 minutes timeout\n });\n }\n\n /**\n * Get user information using the access token\n */\n async getUserInfo(accessToken: string): Promise<unknown> {\n if (!this.client) {\n throw new Error(\"Auth0 client not initialized\");\n }\n\n try {\n this.logger.info(\"Fetching user information...\");\n\n const userInfo = await this.client.userinfo(accessToken);\n\n this.logger.info(\"User information retrieved successfully\");\n this.logger.debug(`User ID: ${userInfo.sub}`);\n\n return userInfo;\n } catch (error) {\n this.logger.error(\"Failed to get user info\", error);\n throw error;\n }\n }\n\n /**\n * Refresh the access token using refresh token\n */\n async refreshToken(refreshToken: string): Promise<AuthResult> {\n if (!this.client) {\n throw new Error(\"Auth0 client not initialized\");\n }\n\n try {\n this.logger.info(\"Refreshing access token...\");\n\n const tokenSet = await this.client.refresh(refreshToken);\n const result = this.processTokenSet(tokenSet);\n\n this.logger.info(\"Token refresh completed successfully\");\n return result;\n } catch (error) {\n this.logger.error(\"Token refresh failed\", error);\n throw error;\n }\n }\n\n /**\n * Process token set and return structured result\n */\n private processTokenSet(tokenSet: {\n access_token?: string;\n id_token?: string;\n refresh_token?: string;\n expires_at?: number;\n }): AuthResult {\n const result: AuthResult = {\n accessToken: tokenSet.access_token!,\n idToken: tokenSet.id_token,\n refreshToken: tokenSet.refresh_token,\n };\n\n if (tokenSet.expires_at) {\n result.expiresAt = new Date(tokenSet.expires_at * 1000);\n }\n\n this.logger.info(\"Authentication tokens processed successfully\");\n this.logger.debug(\n `Access Token: ${result.accessToken?.substring(0, 20)}...`\n );\n this.logger.debug(\n `ID Token: ${result.idToken ? \"Present\" : \"Not provided\"}`\n );\n this.logger.debug(\n `Refresh Token: ${result.refreshToken ? \"Present\" : \"Not provided\"}`\n );\n this.logger.debug(`Expires At: ${result.expiresAt}`);\n\n return result;\n }\n\n /**\n * Check if a token is expired\n */\n isTokenExpired(authResult: AuthResult): boolean {\n if (!authResult.expiresAt) {\n this.logger.debug(\n \"No expiration time available, considering token valid\"\n );\n return false; // If no expiration time, assume it's still valid\n }\n\n // Ensure expiresAt is a Date object (it might be a string if serialized)\n const expiresAt =\n authResult.expiresAt instanceof Date\n ? authResult.expiresAt\n : new Date(authResult.expiresAt);\n\n const now = new Date();\n const buffer = 5 * 60 * 1000; // 5 minutes buffer\n const isExpired = expiresAt.getTime() - buffer < now.getTime();\n\n if (isExpired) {\n this.logger.warn(\"Access token is expired or will expire soon\");\n } else {\n this.logger.debug(\"Access token is still valid\");\n }\n\n return isExpired;\n }\n\n /**\n * Logout (revoke tokens if supported)\n */\n async logout(accessToken: string): Promise<void> {\n if (!this.client) {\n throw new Error(\"Auth0 client not initialized\");\n }\n\n try {\n await this.client.revoke(accessToken);\n this.logger.info(\"Token revoked successfully\");\n } catch (error) {\n this.logger.error(\"Failed to revoke token\", error);\n // Don't throw error as logout should be graceful\n }\n }\n}\n\n// Re-export AuthResult for convenience\nexport type { AuthResult };\n", "/**\n * Auth0 Machine-to-Machine (M2M) Authentication Service\n *\n * Provides authentication using Auth0's client credentials grant.\n * This is used for server-to-server communication where no user interaction is needed.\n *\n * The service automatically caches tokens and refreshes them before expiration.\n */\n\nimport {\n IAuthStrategy,\n AuthStrategyType,\n AuthUserInfo,\n Auth0M2MCredentials,\n IAuthLogger,\n} from \"./types\";\n\ninterface TokenCacheEntry {\n accessToken: string;\n expiresAt: number;\n}\n\n/**\n * Default no-op logger for when no logger is provided\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * Token response from Auth0 client credentials grant\n */\ninterface Auth0TokenResponse {\n access_token: string;\n token_type: string;\n expires_in: number;\n scope?: string;\n}\n\n/**\n * Auth0 M2M authentication strategy using client credentials grant\n *\n * @example\n * ```typescript\n * const credentials: Auth0M2MCredentials = {\n * client_id: 'my-client-id',\n * client_secret: 'my-client-secret',\n * domain: 'https://my-tenant.auth0.com',\n * audience: 'https://api.example.com',\n * };\n *\n * const service = new Auth0M2MService(credentials, 'tenant-123', logger);\n * await service.initialize();\n * const token = await service.getToken();\n * ```\n */\nexport class Auth0M2MService implements IAuthStrategy {\n private credentials: Auth0M2MCredentials;\n private tenantId: string | undefined;\n private tokenCache: TokenCacheEntry | null = null;\n private logger: IAuthLogger;\n private initialized = false;\n\n /**\n * Token expiry buffer in milliseconds (5 minutes)\n * Tokens will be refreshed this long before actual expiration\n */\n private static readonly EXPIRY_BUFFER_MS = 5 * 60 * 1000;\n\n constructor(\n credentials: Auth0M2MCredentials,\n tenantId?: string,\n logger?: IAuthLogger\n ) {\n this.credentials = credentials;\n this.tenantId = tenantId;\n this.logger = logger || noopLogger;\n\n // Security: only log partial client_id\n const clientIdPrefix = credentials.client_id.substring(0, 8);\n this.logger.info(\n `Auth0M2MService created for client: ${clientIdPrefix}...`\n );\n }\n\n /**\n * Get the strategy type identifier\n */\n getType(): AuthStrategyType {\n return AuthStrategyType.AUTH0_M2M;\n }\n\n /**\n * Initialize the M2M service\n * Validates credentials format and performs initial token fetch\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n this.logger.debug(\"Auth0M2MService already initialized\");\n return;\n }\n\n this.logger.info(\"Initializing Auth0M2MService...\");\n\n // Validate credentials\n if (!this.credentials.client_id || !this.credentials.client_secret) {\n throw new Error(\n \"M2M credentials missing client_id or client_secret\"\n );\n }\n if (!this.credentials.domain) {\n throw new Error(\"M2M credentials missing domain\");\n }\n if (!this.credentials.audience) {\n throw new Error(\"M2M credentials missing audience\");\n }\n\n // Perform initial token fetch to validate credentials\n await this.fetchNewToken();\n\n this.initialized = true;\n this.logger.info(\"Auth0M2MService initialized successfully\");\n }\n\n /**\n * Get a valid access token, fetching a new one if cache is expired\n */\n async getToken(): Promise<string> {\n const now = Date.now();\n\n // Check if we have a valid cached token (with buffer)\n if (\n this.tokenCache &&\n now < this.tokenCache.expiresAt - Auth0M2MService.EXPIRY_BUFFER_MS\n ) {\n this.logger.debug(\"Using cached M2M token\");\n return this.tokenCache.accessToken;\n }\n\n this.logger.info(\n \"M2M token expired or not cached, fetching new token...\"\n );\n await this.fetchNewToken();\n\n return this.tokenCache!.accessToken;\n }\n\n /**\n * Force refresh the token by clearing cache and fetching a new one\n */\n async refreshToken(): Promise<void> {\n this.logger.info(\"Force refreshing M2M token...\");\n this.tokenCache = null;\n await this.fetchNewToken();\n this.logger.info(\"M2M token refreshed\");\n }\n\n /**\n * Check if currently authenticated (credentials are valid)\n */\n async isAuthenticated(): Promise<boolean> {\n try {\n await this.getToken();\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get user information for the M2M client\n * Returns synthetic user info since M2M clients don't have traditional user profiles\n */\n async getUserInfo(): Promise<AuthUserInfo> {\n const clientIdPrefix = this.credentials.client_id.substring(0, 8);\n return {\n sub: `m2m-client-${clientIdPrefix}`,\n name: \"M2M Client\",\n ...(this.tenantId && { tenant_id: this.tenantId }),\n };\n }\n\n /**\n * Get the tenant ID associated with this M2M client\n */\n getTenantId(): string | undefined {\n return this.tenantId;\n }\n\n /**\n * Fetch a new token from Auth0 using client credentials grant\n */\n private async fetchNewToken(): Promise<void> {\n const domain = this.credentials.domain.startsWith(\"http\")\n ? this.credentials.domain\n : `https://${this.credentials.domain}`;\n\n const tokenUrl = `${domain.replace(/\\/$/, \"\")}/oauth/token`;\n\n this.logger.debug(`Fetching M2M token from: ${tokenUrl}`);\n\n const requestBody = {\n grant_type: \"client_credentials\",\n client_id: this.credentials.client_id,\n client_secret: this.credentials.client_secret,\n audience: this.credentials.audience,\n };\n\n try {\n const response = await fetch(tokenUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(requestBody),\n });\n\n if (!response.ok) {\n this.logger.error(\n `M2M token request failed: ${response.status}`\n );\n throw new Error(\n `Auth0 M2M token request failed with status ${response.status}`\n );\n }\n\n const tokenResponse = (await response.json()) as Auth0TokenResponse;\n\n if (!tokenResponse.access_token) {\n throw new Error(\"Auth0 response missing access_token\");\n }\n\n const expiresIn = tokenResponse.expires_in || 3600; // Default to 1 hour\n const expiresAt = Date.now() + expiresIn * 1000;\n\n this.tokenCache = {\n accessToken: tokenResponse.access_token,\n expiresAt,\n };\n\n const expiresInMinutes = Math.floor(expiresIn / 60);\n this.logger.info(\n `M2M token obtained${this.tenantId ? ` for tenant ${this.tenantId}` : \"\"}: expires in ${expiresInMinutes} minutes`\n );\n } catch (error) {\n // Clear cache on error\n this.tokenCache = null;\n\n if (error instanceof Error) {\n this.logger.error(\"Failed to fetch M2M token\", error);\n throw error;\n }\n\n throw new Error(`Failed to fetch M2M token: ${error}`);\n }\n }\n}\n", "/**\n * Service Account Authentication Service\n *\n * Provides authentication using a pre-generated JWT token read from a file.\n * This is typically used for M2M (machine-to-machine) scenarios where a service\n * account token is mounted as a file (e.g., in Kubernetes).\n *\n * The token is expected to be a valid JWT with an 'exp' claim.\n */\n\nimport * as fs from \"fs\";\nimport {\n IAuthStrategy,\n AuthStrategyType,\n AuthUserInfo,\n IAuthLogger,\n} from \"./types\";\n\ninterface TokenCacheEntry {\n token: string;\n expiresAt: number;\n}\n\n/**\n * Default no-op logger for when no logger is provided\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * Service Account authentication strategy\n *\n * Reads a JWT token from a file path and manages token caching and expiration.\n *\n * @example\n * ```typescript\n * const service = new ServiceAccountService(\n * '/var/run/secrets/dataflint/token',\n * 'tenant-123',\n * logger\n * );\n *\n * await service.initialize();\n * const token = await service.getToken();\n * ```\n */\nexport class ServiceAccountService implements IAuthStrategy {\n private tokenPath: string;\n private tenantId: string | undefined;\n private tokenCache: TokenCacheEntry | null = null;\n private logger: IAuthLogger;\n\n constructor(tokenPath: string, tenantId?: string, logger?: IAuthLogger) {\n this.tokenPath = tokenPath;\n this.tenantId = tenantId;\n this.logger = logger || noopLogger;\n }\n\n /**\n * Get the strategy type identifier\n */\n getType(): AuthStrategyType {\n return AuthStrategyType.SERVICE_ACCOUNT;\n }\n\n /**\n * Initialize the service account strategy\n * Validates that the token file exists and is readable\n */\n async initialize(): Promise<void> {\n this.logger.info(\n `Initializing ServiceAccountService with token path: ${this.tokenPath}`\n );\n\n if (!fs.existsSync(this.tokenPath)) {\n throw new Error(\n `Service account token file not found: ${this.tokenPath}`\n );\n }\n\n // Pre-load and validate the token\n await this.getToken();\n this.logger.info(\"ServiceAccountService initialized successfully\");\n }\n\n /**\n * Get a valid access token, reading from file if cache is expired\n */\n async getToken(): Promise<string> {\n const now = Date.now();\n\n // Check if we have a valid cached token (with 5-minute buffer)\n const bufferMs = 5 * 60 * 1000;\n if (this.tokenCache && now < this.tokenCache.expiresAt - bufferMs) {\n this.logger.debug(\"Using cached service account token\");\n return this.tokenCache.token;\n }\n\n const rawToken = this.readTokenFromFile();\n this.validateAndCacheToken(rawToken);\n\n return this.tokenCache!.token;\n }\n\n /**\n * Force refresh the token by clearing cache and re-reading from file\n */\n async refreshToken(): Promise<void> {\n this.logger.info(\"Refreshing service account token...\");\n this.tokenCache = null;\n await this.getToken();\n this.logger.info(\"Service account token refreshed\");\n }\n\n /**\n * Check if currently authenticated (token file exists and is valid)\n */\n async isAuthenticated(): Promise<boolean> {\n try {\n await this.getToken();\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get user information for the service account\n * Returns synthetic user info since service accounts don't have traditional user profiles\n */\n async getUserInfo(): Promise<AuthUserInfo> {\n return {\n sub: \"m2m-service-account\",\n name: \"M2M Service Account\",\n ...(this.tenantId && { tenant_id: this.tenantId }),\n };\n }\n\n /**\n * Get the tenant ID associated with this service account\n */\n getTenantId(): string | undefined {\n return this.tenantId;\n }\n\n /**\n * Read the token from the file system\n */\n private readTokenFromFile(): string {\n return fs.readFileSync(this.tokenPath, \"utf8\");\n }\n\n /**\n * Validate the token format and cache it with expiration\n */\n private validateAndCacheToken(rawToken: string): void {\n const token = rawToken.trim();\n\n if (!token) {\n throw new Error(\"Service account token is empty\");\n }\n\n const parts = token.split(\".\");\n if (parts.length !== 3) {\n throw new Error(\n `Invalid JWT format: expected 3 parts, got ${parts.length}`\n );\n }\n\n const expiresAt = this.extractExpiration(token);\n const now = Date.now();\n const expiresIn = Math.floor((expiresAt - now) / 1000);\n\n // Check if token is already expired\n if (expiresAt <= now) {\n throw new Error(\"Service account token is expired\");\n }\n\n this.logger.info(\n `Service account token loaded${this.tenantId ? ` for tenant ${this.tenantId}` : \"\"}: expires in ${expiresIn}s (${new Date(expiresAt).toISOString()})`\n );\n\n this.tokenCache = {\n token,\n expiresAt,\n };\n }\n\n /**\n * Extract expiration time from JWT payload\n */\n private extractExpiration(token: string): number {\n const parts = token.split(\".\");\n\n try {\n const payload = parts[1];\n const decoded = Buffer.from(payload, \"base64url\").toString(\"utf8\");\n const parsed = JSON.parse(decoded);\n\n if (typeof parsed.exp === \"number\") {\n return parsed.exp * 1000;\n }\n\n this.logger.warn(\n \"JWT missing 'exp' field, using fallback expiration\"\n );\n return Date.now() + 300000; // 5 minutes fallback\n } catch (error) {\n this.logger.warn(\n `Failed to parse JWT expiration: ${error}, using fallback expiration`\n );\n return Date.now() + 300000; // 5 minutes fallback\n }\n }\n}\n", "/**\n * AWS Secrets Manager Provider\n *\n * Loads M2M credentials from AWS Secrets Manager.\n * Uses dynamic import to avoid requiring AWS SDK when not in AWS environment.\n */\n\nimport { Auth0M2MCredentials, IAuthLogger } from \"../types\";\nimport { ISecretsProvider } from \"./types\";\n\n/**\n * Default no-op logger\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * AWS Secrets Manager provider for M2M credentials\n *\n * This provider:\n * 1. Detects AWS environment via env vars\n * 2. Dynamically imports AWS SDK to avoid bundling overhead\n * 3. Loads credentials from Secrets Manager\n *\n * @example\n * ```typescript\n * const provider = new AWSSecretsProvider(logger);\n * if (await provider.isAvailable()) {\n * const credentials = await provider.loadAuth0M2MCredentials('my-secret-name');\n * }\n * ```\n */\nexport class AWSSecretsProvider implements ISecretsProvider {\n private logger: IAuthLogger;\n private region: string | undefined;\n\n constructor(logger?: IAuthLogger) {\n this.logger = logger || noopLogger;\n this.region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;\n }\n\n /**\n * Get the provider name for logging\n */\n getName(): string {\n return \"AWS Secrets Manager\";\n }\n\n /**\n * Check if running in AWS environment with credentials available\n */\n async isAvailable(): Promise<boolean> {\n // Check for AWS environment indicators\n const hasRegion = !!(\n process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION\n );\n const hasExecutionEnv = !!process.env.AWS_EXECUTION_ENV;\n const hasCredentials = !!(\n process.env.AWS_ACCESS_KEY_ID ||\n process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||\n process.env.AWS_WEB_IDENTITY_TOKEN_FILE\n );\n\n const isAWSEnvironment =\n hasRegion && (hasExecutionEnv || hasCredentials);\n\n if (isAWSEnvironment) {\n this.logger.debug(\"AWS environment detected\");\n } else {\n this.logger.debug(\"Not in AWS environment\");\n }\n\n return isAWSEnvironment;\n }\n\n /**\n * Load Auth0 M2M credentials from AWS Secrets Manager\n *\n * @param secretName - The name or ARN of the secret in Secrets Manager\n * @returns M2M credentials or null if not found\n */\n async loadAuth0M2MCredentials(\n secretName: string\n ): Promise<Auth0M2MCredentials | null> {\n this.logger.info(\n `Loading M2M credentials from AWS Secrets Manager: ${secretName}`\n );\n\n try {\n // Dynamic import to avoid bundling AWS SDK when not needed\n const { SecretsManagerClient, GetSecretValueCommand } =\n // @ts-expect-error - @aws-sdk/client-secrets-manager is an optional runtime dependency\n await import(\"@aws-sdk/client-secrets-manager\");\n\n const client = new SecretsManagerClient({\n region: this.region,\n });\n\n const command = new GetSecretValueCommand({\n SecretId: secretName,\n });\n\n const response = await client.send(command);\n\n if (!response.SecretString) {\n this.logger.error(\"Secret value is empty or binary\");\n return null;\n }\n\n const secretValue = JSON.parse(response.SecretString);\n\n // Validate required fields\n if (\n !secretValue.client_id ||\n !secretValue.client_secret ||\n !secretValue.audience ||\n !secretValue.domain\n ) {\n this.logger.error(\n \"Secret missing required fields (client_id, client_secret, audience, domain)\"\n );\n return null;\n }\n\n this.logger.info(\"M2M credentials loaded from AWS Secrets Manager\");\n return {\n client_id: secretValue.client_id,\n client_secret: secretValue.client_secret,\n audience: secretValue.audience,\n domain: secretValue.domain,\n };\n } catch (error) {\n if (error instanceof Error) {\n if (error.name === \"ResourceNotFoundException\") {\n this.logger.warn(`Secret not found: ${secretName}`);\n return null;\n }\n if (error.message.includes(\"Cannot find module\")) {\n this.logger.warn(\n \"AWS SDK not available - @aws-sdk/client-secrets-manager not installed\"\n );\n return null;\n }\n this.logger.error(\"Failed to load secret from AWS\", error);\n }\n return null;\n }\n }\n}\n", "/**\n * Local File Secrets Provider\n *\n * Loads M2M credentials from local file system.\n * Primarily used for local development and testing.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as os from \"os\";\nimport { Auth0M2MCredentials, IAuthLogger } from \"../types\";\nimport { ISecretsProvider } from \"./types\";\n\n/**\n * Default no-op logger\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * Local file secrets provider for M2M credentials\n *\n * Loads credentials from `~/.dataflint/m2m_secret.{environment}.json`\n *\n * @example\n * ```typescript\n * const provider = new LocalFileSecretsProvider('prod', logger);\n * if (await provider.isAvailable()) {\n * const credentials = await provider.loadAuth0M2MCredentials('unused');\n * }\n * ```\n */\nexport class LocalFileSecretsProvider implements ISecretsProvider {\n private logger: IAuthLogger;\n private environment: string;\n private secretFilePath: string;\n\n constructor(environment: string, logger?: IAuthLogger) {\n this.logger = logger || noopLogger;\n this.environment = environment;\n this.secretFilePath = path.join(\n os.homedir(),\n \".dataflint\",\n `m2m_secret.${environment}.json`\n );\n }\n\n /**\n * Get the provider name for logging\n */\n getName(): string {\n return \"Local File\";\n }\n\n /**\n * Check if the local secret file exists\n */\n async isAvailable(): Promise<boolean> {\n const exists = fs.existsSync(this.secretFilePath);\n\n if (exists) {\n this.logger.debug(\n `Local M2M secret file found: ${this.secretFilePath}`\n );\n } else {\n this.logger.debug(\n `Local M2M secret file not found: ${this.secretFilePath}`\n );\n }\n\n return exists;\n }\n\n /**\n * Load Auth0 M2M credentials from local file\n *\n * @param _secretName - Ignored, uses environment-based file path\n * @returns M2M credentials or null if not found or invalid\n */\n async loadAuth0M2MCredentials(\n _secretName: string\n ): Promise<Auth0M2MCredentials | null> {\n this.logger.info(\n `Loading M2M credentials from local file: ${this.secretFilePath}`\n );\n\n try {\n if (!fs.existsSync(this.secretFilePath)) {\n this.logger.debug(\"Local secret file does not exist\");\n return null;\n }\n\n // Check file permissions (should be 0600 for security)\n const stats = fs.statSync(this.secretFilePath);\n const mode = stats.mode & 0o777;\n if (mode !== 0o600) {\n this.logger.warn(\n `Secret file has insecure permissions: ${mode.toString(8)}. Should be 600.`\n );\n }\n\n const content = fs.readFileSync(this.secretFilePath, \"utf8\");\n const secretValue = JSON.parse(content);\n\n // Validate required fields\n if (\n !secretValue.client_id ||\n !secretValue.client_secret ||\n !secretValue.audience ||\n !secretValue.domain\n ) {\n this.logger.error(\n \"Local secret file missing required fields (client_id, client_secret, audience, domain)\"\n );\n return null;\n }\n\n this.logger.info(\"M2M credentials loaded from local file\");\n return {\n client_id: secretValue.client_id,\n client_secret: secretValue.client_secret,\n audience: secretValue.audience,\n domain: secretValue.domain,\n };\n } catch (error) {\n if (error instanceof SyntaxError) {\n this.logger.error(\"Failed to parse local secret file as JSON\");\n } else {\n this.logger.error(\"Failed to load local secret file\", error);\n }\n return null;\n }\n }\n\n /**\n * Get the path to the secret file (for diagnostics)\n */\n getSecretFilePath(): string {\n return this.secretFilePath;\n }\n}\n", "/**\n * Composite Secrets Provider\n *\n * Tries multiple secrets providers in priority order:\n * 1. AWS Secrets Manager (production environments)\n * 2. Local file (development/testing)\n */\n\nimport { Auth0M2MCredentials, IAuthLogger } from \"../types\";\nimport { ISecretsProvider } from \"./types\";\nimport { AWSSecretsProvider } from \"./aws-secrets-provider\";\nimport { LocalFileSecretsProvider } from \"./local-file-secrets-provider\";\n\n/**\n * Default no-op logger\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * Composite secrets provider that tries multiple sources in order\n *\n * Priority:\n * 1. AWS Secrets Manager (if in AWS environment)\n * 2. Local file (~/.dataflint/m2m_secret.{env}.json)\n *\n * @example\n * ```typescript\n * const provider = new SecretsProvider('prod', logger);\n * const credentials = await provider.loadAuth0M2MCredentials('auth0_m2m_databricks_loader_prod');\n * if (credentials) {\n * // Use credentials for Auth0 M2M authentication\n * }\n * ```\n */\nexport class SecretsProvider implements ISecretsProvider {\n private logger: IAuthLogger;\n private providers: ISecretsProvider[];\n private environment: string;\n\n constructor(environment: string, logger?: IAuthLogger) {\n this.logger = logger || noopLogger;\n this.environment = environment;\n\n // Initialize providers in priority order\n this.providers = [\n new AWSSecretsProvider(logger),\n new LocalFileSecretsProvider(environment, logger),\n ];\n }\n\n /**\n * Get the provider name for logging\n */\n getName(): string {\n return \"Composite Secrets Provider\";\n }\n\n /**\n * Check if any provider is available\n */\n async isAvailable(): Promise<boolean> {\n for (const provider of this.providers) {\n if (await provider.isAvailable()) {\n this.logger.debug(\n `Secrets provider available: ${provider.getName()}`\n );\n return true;\n }\n }\n this.logger.debug(\"No secrets providers available\");\n return false;\n }\n\n /**\n * Load Auth0 M2M credentials from the first available provider\n *\n * @param secretName - The name of the secret (used for AWS, ignored for local file)\n * @returns M2M credentials or null if not found in any provider\n */\n async loadAuth0M2MCredentials(\n secretName: string\n ): Promise<Auth0M2MCredentials | null> {\n this.logger.info(\"Attempting to load M2M credentials...\");\n\n for (const provider of this.providers) {\n const providerName = provider.getName();\n\n if (!(await provider.isAvailable())) {\n this.logger.debug(`Provider not available: ${providerName}`);\n continue;\n }\n\n this.logger.info(`Trying provider: ${providerName}`);\n const credentials =\n await provider.loadAuth0M2MCredentials(secretName);\n\n if (credentials) {\n this.logger.info(\n `M2M credentials loaded from: ${providerName}`\n );\n return credentials;\n }\n\n this.logger.debug(\n `No credentials found in provider: ${providerName}`\n );\n }\n\n this.logger.info(\"No M2M credentials found in any provider\");\n return null;\n }\n\n /**\n * Get the default secret name for M2M credentials based on environment\n *\n * @param environment - The environment (prod, staging, local)\n * @returns The default secret name\n */\n static getDefaultSecretName(environment: string): string {\n return `auth0_m2m_databricks_loader_${environment}`;\n }\n}\n", "/**\n * Secrets Providers Module\n *\n * Provides multiple strategies for loading M2M credentials:\n * - AWS Secrets Manager (production)\n * - Local file (development)\n */\n\nexport { ISecretsProvider } from \"./types\";\nexport { AWSSecretsProvider } from \"./aws-secrets-provider\";\nexport { LocalFileSecretsProvider } from \"./local-file-secrets-provider\";\nexport { SecretsProvider } from \"./secrets-provider\";\n", "/**\n * Authentication Strategy Factory\n *\n * Creates the appropriate authentication strategy based on configuration and environment.\n *\n * Strategy Priority (for MCP standalone server):\n * 1. Service Account - M2M_SA_TOKEN_PATH env var \u2192 read JWT from file\n * 2. Auth0 M2M - Secrets available \u2192 client credentials grant\n * 3. Auth0 User - Interactive OAuth2/PKCE flow (fallback, returned as null)\n *\n * Note: VS Code Extension only uses Auth0 User flow directly (no factory needed).\n */\n\nimport {\n IAuthStrategy,\n AuthStrategyType,\n IAuthConfigProvider,\n IAuthLogger,\n M2MMode,\n M2MType,\n} from \"./types\";\nimport { ServiceAccountService } from \"./service-account-service\";\nimport { Auth0M2MService } from \"./auth0-m2m-service\";\nimport { SecretsProvider } from \"./secrets\";\n\n/**\n * Result from strategy creation\n */\nexport interface StrategyResult {\n /**\n * The created strategy, or null if fallback to interactive OAuth is needed\n */\n strategy: IAuthStrategy | null;\n\n /**\n * The type of strategy created (or 'auth0_user' if null strategy)\n */\n strategyType: AuthStrategyType;\n}\n\n/**\n * Default no-op logger\n */\nconst noopLogger: IAuthLogger = {\n info: () => {},\n warn: () => {},\n error: () => {},\n debug: () => {},\n};\n\n/**\n * Factory for creating authentication strategies\n *\n * This factory determines the best authentication strategy based on:\n * 1. Environment configuration (M2M_SA_TOKEN_PATH)\n * 2. Available secrets (AWS Secrets Manager or local file)\n * 3. Falls back to interactive OAuth if no M2M strategy is available\n *\n * @example\n * ```typescript\n * const factory = new AuthStrategyFactory(configService, logger);\n * const { strategy, strategyType } = await factory.createStrategy();\n *\n * if (strategy) {\n * // Use M2M strategy (ServiceAccount or Auth0 M2M)\n * await strategy.initialize();\n * const token = await strategy.getToken();\n * } else {\n * // Fall back to interactive Auth0 OAuth flow\n * const auth0Service = new Auth0Service(...);\n * await auth0Service.authenticate();\n * }\n * ```\n */\nexport class AuthStrategyFactory {\n private configProvider: IAuthConfigProvider;\n private logger: IAuthLogger;\n\n constructor(configProvider: IAuthConfigProvider, logger?: IAuthLogger) {\n this.configProvider = configProvider;\n this.logger = logger || noopLogger;\n }\n\n async createStrategy(): Promise<StrategyResult> {\n const m2mMode = this.configProvider.getM2MMode();\n\n switch (m2mMode.type) {\n case M2MType.SERVICE_ACCOUNT:\n return this.buildServiceAccountStrategy(m2mMode);\n case M2MType.AUTH0_M2M:\n return await this.buildAuth0M2MStrategy(m2mMode);\n default:\n this.logger.info(\"Using interactive OAuth flow\");\n return {\n strategy: null,\n strategyType: AuthStrategyType.AUTH0_USER,\n };\n }\n }\n\n private buildServiceAccountStrategy(\n mode: Extract<M2MMode, { type: M2MType.SERVICE_ACCOUNT }>\n ): StrategyResult {\n this.logger.info(`Service Account mode: ${mode.tokenPath}`);\n return {\n strategy: new ServiceAccountService(\n mode.tokenPath,\n mode.tenantId,\n this.logger\n ),\n strategyType: AuthStrategyType.SERVICE_ACCOUNT,\n };\n }\n\n private async buildAuth0M2MStrategy(\n mode: Extract<M2MMode, { type: M2MType.AUTH0_M2M }>\n ): Promise<StrategyResult> {\n const secretsProvider = new SecretsProvider(\n this.configProvider.getEnvironment(),\n this.logger\n );\n\n if (!(await secretsProvider.isAvailable())) {\n throw new Error(\n `Auth0 M2M mode requires a secrets provider. ` +\n `M2M_AUTH0_SECRET_NAME is set to \"${mode.secretName}\" but no secrets provider is available. ` +\n `Ensure AWS credentials are configured or use Service Account mode instead.`\n );\n }\n\n const credentials = await secretsProvider.loadAuth0M2MCredentials(\n mode.secretName\n );\n if (!credentials) {\n throw new Error(\n `Auth0 M2M credentials not found: \"${mode.secretName}\". ` +\n `Ensure the secret exists and contains valid Auth0 M2M credentials.`\n );\n }\n\n this.logger.info(`Auth0 M2M mode: ${mode.secretName}`);\n return {\n strategy: new Auth0M2MService(\n credentials,\n mode.tenantId,\n this.logger\n ),\n strategyType: AuthStrategyType.AUTH0_M2M,\n };\n }\n\n async isM2MAvailable(): Promise<boolean> {\n const mode = this.configProvider.getM2MMode();\n if (mode.type === M2MType.SERVICE_ACCOUNT) {\n return true;\n }\n if (mode.type === M2MType.AUTH0_M2M) {\n const secretsProvider = new SecretsProvider(\n this.configProvider.getEnvironment(),\n this.logger\n );\n return secretsProvider.isAvailable();\n }\n return false;\n }\n}\n", "/**\n * Shared authentication configuration and services for DataFlint\n *\n * This package provides:\n * - Customer-specific Auth0 configuration lookup\n * - Multiple authentication strategies (Service Account, Auth0 M2M, Auth0 User)\n * - Secrets providers (AWS Secrets Manager, Local File)\n * - Strategy factory for automatic strategy selection\n *\n * @example Basic usage with Auth0 user flow:\n * ```typescript\n * import { Auth0Service, getCustomerAuthConfig } from \"@dataflint/shared-auth-config\";\n *\n * const config = getCustomerAuthConfig(\"acme.corp\");\n * const auth0 = new Auth0Service(openUrl, () => config, logger);\n * await auth0.authenticate();\n * ```\n *\n * @example Using the strategy factory (MCP standalone):\n * ```typescript\n * import { AuthStrategyFactory } from \"@dataflint/shared-auth-config\";\n *\n * const factory = new AuthStrategyFactory(configService, logger);\n * const { strategy, strategyType } = await factory.createStrategy();\n *\n * if (strategy) {\n * await strategy.initialize();\n * const token = await strategy.getToken();\n * } else {\n * // Fall back to interactive OAuth\n * }\n * ```\n */\n\nimport * as crypto from \"node:crypto\";\nimport {\n customerAuthConfigs,\n CustomerAuthConfig,\n} from \"./customer-auth-configs\";\n\n// ============================================================================\n// Customer Auth Configuration\n// ============================================================================\n\n/**\n * Resolved authentication configuration for a customer\n */\nexport interface ResolvedAuthConfig {\n /**\n * Auth0 domain URL (e.g., \"https://dataflint-acme.us.auth0.com/\")\n */\n domain: string;\n\n /**\n * Auth0 client ID\n */\n clientId: string;\n\n /**\n * Auth0 audience (API identifier)\n */\n audience: string;\n\n /**\n * DataFlint API server URL\n */\n serverUrl: string;\n}\n\n/**\n * Get customer-specific authentication configuration\n *\n * This function:\n * 1. Hashes the customer domain using SHA-256\n * 2. Looks up the hash in customerAuthConfigs\n * 3. Returns the resolved Auth0 configuration\n *\n * @param customerDomain - Customer's domain (e.g., \"acme.corp\")\n * @returns ResolvedAuthConfig or null if customer not found\n */\nexport function getCustomerAuthConfig(\n customerDomain: string\n): ResolvedAuthConfig | null {\n // Step 1: Hash the customer domain using SHA-256\n const customerHash = crypto\n .createHash(\"sha256\")\n .update(customerDomain)\n .digest(\"hex\");\n\n // Step 2: Look up the hash in our customer configurations\n const customerConfig = customerAuthConfigs[customerHash];\n if (!customerConfig) {\n // Customer not found in registry\n return null;\n }\n\n // Step 3: Build the complete authentication configuration\n return {\n // Use custom Auth0 domain if domainProducer is defined, otherwise use default\n domain:\n customerConfig.domainProducer?.(customerDomain) ||\n \"https://dataflint.us.auth0.com/\",\n\n // Customer-specific Auth0 client ID\n clientId: customerConfig.clientId,\n\n // Customer-specific API audience\n audience: `https://api.${customerDomain}.dataflint.io`,\n\n // Customer-specific server URL\n serverUrl: `https://api.${customerDomain}.dataflint.io`,\n };\n}\n\n// Re-export customer configs for direct access if needed\nexport { customerAuthConfigs, CustomerAuthConfig };\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport {\n AuthConfig,\n AuthResult,\n Auth0M2MCredentials,\n AuthStrategyType,\n M2MType,\n M2MMode,\n AuthUserInfo,\n IAuthStrategy,\n IAuthConfigProvider,\n IAuthLogger,\n OpenUrlHandler,\n ConfigProvider,\n} from \"./types\";\n\n// ============================================================================\n// Authentication Services\n// ============================================================================\n\nexport { Auth0Service } from \"./auth0-service\";\nexport { Auth0M2MService } from \"./auth0-m2m-service\";\nexport { ServiceAccountService } from \"./service-account-service\";\n\n// ============================================================================\n// Authentication Strategy Factory\n// ============================================================================\n\nexport { AuthStrategyFactory, StrategyResult } from \"./auth-strategy-factory\";\n\n// ============================================================================\n// Secrets Providers\n// ============================================================================\n\nexport {\n ISecretsProvider,\n AWSSecretsProvider,\n LocalFileSecretsProvider,\n SecretsProvider,\n} from \"./secrets\";\n", "import * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as os from \"os\";\nimport * as crypto from \"crypto\";\nimport { AuthConfig, IConfigService } from \"../types\";\nimport { getCustomerAuthConfig } from \"../auth/index.js\";\n\nexport interface StandaloneConfig {\n serverUrl?: string;\n authDomain?: string;\n clientId?: string;\n audience?: string;\n scope?: string;\n credentialsPath?: string;\n adminCompanyDomain?: string;\n customerDomain?: string;\n}\n\n/**\n * Configuration service for standalone MCP server\n * Implements IConfigService without VS Code dependencies\n */\nexport class StandaloneConfigService implements IConfigService {\n private config: StandaloneConfig;\n private credentialsPath: string;\n\n constructor(config: StandaloneConfig = {}) {\n this.config = this.mergeWithDefaults(config);\n\n // Generate credentials path based on clientId hash to avoid collisions\n if (config.credentialsPath) {\n this.credentialsPath = config.credentialsPath;\n } else {\n const clientIdHash = crypto\n .createHash(\"sha256\")\n .update(this.config.clientId!)\n .digest(\"hex\")\n .substring(0, 8); // Use first 8 chars of hash\n\n this.credentialsPath = path.join(\n os.homedir(),\n \".dataflint\",\n `credentials-${clientIdHash}.json`\n );\n }\n\n // Ensure .dataflint directory exists\n this.ensureDataflintDirectory();\n }\n\n private ensureDataflintDirectory(): void {\n const dataflintDir = path.dirname(this.credentialsPath);\n if (!fs.existsSync(dataflintDir)) {\n fs.mkdirSync(dataflintDir, { recursive: true, mode: 0o700 });\n }\n }\n\n private mergeWithDefaults(config: StandaloneConfig): StandaloneConfig {\n // Environment variable overrides\n const envConfig: StandaloneConfig = {\n serverUrl: process.env.DATAFLINT_SERVER_URL,\n authDomain: process.env.DATAFLINT_AUTH_DOMAIN,\n clientId: process.env.DATAFLINT_CLIENT_ID,\n audience: process.env.DATAFLINT_AUDIENCE,\n scope: process.env.DATAFLINT_SCOPE,\n adminCompanyDomain: process.env.DATAFLINT_ADMIN_COMPANY_DOMAIN,\n customerDomain: process.env.DATAFLINT_CUSTOMER_DOMAIN,\n };\n\n // Config file (if exists)\n const configFilePath = path.join(\n os.homedir(),\n \".dataflint\",\n \"config.json\"\n );\n let fileConfig: StandaloneConfig = {};\n if (fs.existsSync(configFilePath)) {\n try {\n const fileContent = fs.readFileSync(configFilePath, \"utf8\");\n fileConfig = JSON.parse(fileContent);\n } catch (error) {\n // Ignore file reading errors, use defaults\n }\n }\n\n // Check for customer domain (highest priority for auth config)\n const customerDomain =\n config.customerDomain ||\n envConfig.customerDomain ||\n fileConfig.customerDomain;\n\n if (customerDomain) {\n // Customer domain provided - resolve customer-specific config\n console.error(\n `[CONFIG] Customer domain detected: ${customerDomain}`\n );\n\n const customerConfig = getCustomerAuthConfig(customerDomain);\n\n if (!customerConfig) {\n console.error(\n `[CONFIG] ERROR: Unknown customer domain: ${customerDomain}`\n );\n throw new Error(\n `Unknown customer domain: \"${customerDomain}\". ` +\n `This customer is not registered in the system. ` +\n `Please check the domain name or contact support.`\n );\n }\n\n console.error(`[CONFIG] Using customer-specific configuration:`);\n console.error(\n `[CONFIG] - Server URL: ${customerConfig.serverUrl}`\n );\n console.error(\n `[CONFIG] - Auth0 Domain: ${customerConfig.domain}`\n );\n console.error(\n `[CONFIG] - Client ID: ${customerConfig.clientId.substring(0, 8)}...`\n );\n\n // Return customer-specific configuration\n // Customer config takes precedence over everything else\n return {\n serverUrl: customerConfig.serverUrl,\n authDomain: customerConfig.domain,\n clientId: customerConfig.clientId,\n audience: customerConfig.audience,\n scope: \"openid profile email offline_access\",\n // Credentials path only configurable via CLI argument for security\n credentialsPath: config.credentialsPath,\n adminCompanyDomain:\n config.adminCompanyDomain ||\n envConfig.adminCompanyDomain ||\n fileConfig.adminCompanyDomain ||\n \"none\",\n customerDomain: customerDomain,\n };\n }\n\n // No customer domain - use existing merge logic\n console.error(\n `[CONFIG] No customer domain - using default/explicit configuration`\n );\n\n return {\n serverUrl:\n config.serverUrl ||\n envConfig.serverUrl ||\n fileConfig.serverUrl ||\n \"https://api.dataflint.io\",\n authDomain:\n config.authDomain ||\n envConfig.authDomain ||\n fileConfig.authDomain ||\n \"https://dataflint.us.auth0.com/\",\n clientId:\n config.clientId ||\n envConfig.clientId ||\n fileConfig.clientId ||\n \"1NdbhkYoLyqQWtevBNal1BozB9pSZe3g\",\n audience:\n config.audience ||\n envConfig.audience ||\n fileConfig.audience ||\n \"https://api.dataflint.io\",\n scope:\n config.scope ||\n envConfig.scope ||\n fileConfig.scope ||\n \"openid profile email offline_access\",\n adminCompanyDomain:\n config.adminCompanyDomain ||\n envConfig.adminCompanyDomain ||\n fileConfig.adminCompanyDomain ||\n \"none\",\n // Credentials path only configurable via CLI argument for security\n credentialsPath: config.credentialsPath,\n customerDomain: undefined,\n };\n }\n\n // IConfigService interface implementation\n\n getServerUrl(): string {\n return this.config.serverUrl!;\n }\n\n getEnvironment(): string {\n return \"prod\";\n }\n\n getCustomerDomain(): string | null {\n return this.config.customerDomain || null;\n }\n\n getAdminCompanyDomain(): string {\n return this.config.adminCompanyDomain || \"none\";\n }\n\n getAuthConfig(): AuthConfig {\n return {\n domain: this.config.authDomain!,\n clientId: this.config.clientId!,\n audience: this.config.audience!,\n scope: this.config.scope || \"openid profile email offline_access\",\n };\n }\n\n async getAuthSecret(): Promise<string | undefined> {\n try {\n if (fs.existsSync(this.credentialsPath)) {\n const content = fs.readFileSync(this.credentialsPath, \"utf8\");\n return content;\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n async setAuthSecret(value: string): Promise<void> {\n // Ensure directory exists\n this.ensureDataflintDirectory();\n\n // Write with restricted permissions (600)\n fs.writeFileSync(this.credentialsPath, value, {\n mode: 0o600,\n encoding: \"utf8\",\n });\n }\n\n async deleteAuthSecret(): Promise<void> {\n try {\n if (fs.existsSync(this.credentialsPath)) {\n fs.unlinkSync(this.credentialsPath);\n }\n } catch (error) {\n // Ignore deletion errors\n }\n }\n\n getSendSourceCode(): boolean {\n // In standalone mode, default to false (privacy-first)\n // Can be configured via DATAFLINT_SEND_SOURCE_CODE env var\n const envValue = process.env.DATAFLINT_SEND_SOURCE_CODE;\n return envValue?.toLowerCase() === \"true\";\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8Ba,IAAAA,SAAA,sBAA6D;;MAEtE,oEAAoE;QAChE,UAAU;QACV,gBAAgB,CAAC,mBACb,qBAAqB,cAAc;;MAG3C,kEAAkE;QAC9D,UAAU;;MAGd,oEAAoE;QAChE,UAAU;;MAGd,kEAAkE;QAC9D,UAAU;;;MAId,kEAAkE;QAC9D,UAAU;;;;;;;;;;;;ACTlB,QAAY;AAAZ,KAAA,SAAYC,mBAAgB;AACxB,MAAAA,kBAAA,iBAAA,IAAA;AACA,MAAAA,kBAAA,WAAA,IAAA;AACA,MAAAA,kBAAA,YAAA,IAAA;IACJ,GAJY,qBAAgBC,SAAA,mBAAhB,mBAAgB,CAAA,EAAA;AAS5B,QAAY;AAAZ,KAAA,SAAYC,UAAO;AACf,MAAAA,SAAA,MAAA,IAAA;AACA,MAAAA,SAAA,iBAAA,IAAA;AACA,MAAAA,SAAA,WAAA,IAAA;IACJ,GAJY,YAAOD,SAAA,UAAP,UAAO,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CnB,QAAA,OAAAE,cAAA,QAAA,MAAA,CAAA;AACA,QAAA,kBAAA,QAAA,eAAA;AACA,QAAA,QAAA,QAAA,KAAA;AASA,QAAM,4BAA4B;AAElC,oBAAA,OAAO,uBAAuB;MAC1B,SAAS;KACZ;AAKD,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AAmBlB,QAAa,eAAb,MAAyB;MACb;MACA;MACA;MACA,SAAwB;MACxB,SAAwB;MACxB,cAAc;MACd;MACA;MAER,YACI,gBACA,gBACA,QACA,eAAuB,OAAK;AAE5B,aAAK,SAAS,UAAU;AACxB,aAAK,iBAAiB;AACtB,aAAK,SAAS;UACV,GAAG,eAAc;UACjB,OAAO,eAAc,EAAG,SAAS;;AAErC,aAAK,eAAe;AACpB,aAAK,cAAc,oBAAoB,YAAY;AACnD,aAAK,OAAO,KACR,wCAAwC,KAAK,OAAO,MAAM,EAAE;MAEpE;;;;MAKA,MAAM,aAAU;AACZ,YAAI,KAAK,aAAa;AAClB,eAAK,OAAO,MAAM,kCAAkC;AACpD;QACJ;AAEA,YAAI;AACA,gBAAM,YAAY,KAAK,OAAO,OAAO,WAAW,MAAM,IAChD,KAAK,OAAO,SACZ,WAAW,KAAK,OAAO,MAAM;AAEnC,eAAK,OAAO,KACR,2CAA2C,SAAS,EAAE;AAE1D,eAAK,OAAO,MAAM,0BAA0B,SAAS,EAAE;AAEvD,eAAK,SAAS,MAAM,gBAAA,OAAO,SAAS,SAAS;AAC7C,eAAK,OAAO,KACR,yCAAyC,KAAK,OAAO,MAAM,EAAE;AAGjE,eAAK,SAAS,IAAI,KAAK,OAAO,OAAO;YACjC,WAAW,KAAK,OAAO;YACvB,eAAe,CAAC,KAAK,WAAW;YAChC,gBAAgB,CAAC,MAAM;YACvB,4BAA4B;;WAC/B;AAED,eAAK,cAAc;AACnB,eAAK,OAAO,KAAK,uCAAuC;QAC5D,SAAS,OAAO;AACZ,eAAK,OAAO,MAAM,qCAAqC,KAAK;AAC5D,eAAK,OAAO,MAAM,iBAAiB,KAAK,OAAO,MAAM,EAAE;AACvD,eAAK,OAAO,MAAM,cAAc,KAAK,OAAO,QAAQ,EAAE;AACtD,eAAK,OAAO,MACR,2BAA2B,KAAK,OAAO,OAAO,WAAW,MAAM,IAAI,KAAK,OAAO,SAAS,WAAW,KAAK,OAAO,MAAM,EAAE,EAAE;AAI7H,cAAI,iBAAiB,OAAO;AACxB,gBACI,MAAM,QAAQ,SAAS,KAAK,KAC5B,MAAM,QAAQ,SAAS,WAAW,GACpC;AACE,oBAAM,IAAI,MACN,iBAAiB,KAAK,OAAO,MAAM,sFAAsF,KAAK,OAAO,MAAM,gBAAgB;YAEnK,WACI,MAAM,QAAQ,SAAS,WAAW,KAClC,MAAM,QAAQ,SAAS,aAAa,GACtC;AACE,oBAAM,IAAI,MACN,mCAAmC,KAAK,OAAO,MAAM,4EAA4E;YAEzI;UACJ;AAEA,gBAAM,IAAI,MAAM,gCAAgC,KAAK,EAAE;QAC3D;MACJ;;;;MAKA,MAAM,eAAY;AACd,YAAI,CAAC,KAAK,QAAQ;AACd,gBAAM,KAAK,WAAU;QACzB;AAEA,YAAI,CAAC,KAAK,QAAQ;AACd,gBAAM,IAAI,MAAM,8BAA8B;QAClD;AAGA,cAAM,eAAe,gBAAA,WAAW,aAAY;AAC5C,cAAM,gBAAgB,gBAAA,WAAW,cAAc,YAAY;AAG3D,cAAM,UAAU,KAAK,OAAO,iBAAiB;UACzC,OAAO,KAAK,OAAO;UACnB,gBAAgB;UAChB,uBAAuB;UACvB,GAAI,KAAK,OAAO,YAAY,EAAE,UAAU,KAAK,OAAO,SAAQ;SAC/D;AAED,aAAK,OAAO,KAAK,uCAAuC;AAExD,YAAI;AACA,gBAAM,KAAK,eAAe,OAAO;QACrC,SAAS,OAAO;AACZ,eAAK,OAAO,MAAM,0BAA0B,KAAK;AACjD,eAAK,OAAO,KAAK,gCAAgC,OAAO,EAAE;QAC9D;AAGA,eAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACnC,gBAAM,SAAS,KAAK,aAAa,OAAO,KAAK,QAAO;;AAChD,gBAAI;AACA,kBAAI,GAAC,SAAI,QAAJ,mBAAS,WAAW,eAAc;AACnC,oBAAI,UAAU,KAAK,EAAE,gBAAgB,aAAY,CAAE;AACnD,oBAAI,IAAI,WAAW;AACnB;cACJ;AAEA,oBAAM,cAAc,IAAI,MAAA,IACpB,oBAAoB,KAAK,YAAY,GAAG,IAAI,GAAG,EAAE;AAErD,oBAAM,SAAS,KAAK,OAAQ,eACxB,YAAY,SAAQ,CAAE;AAI1B,oBAAM,WAAW,MAAM,KAAK,OAAQ,SAChC,KAAK,aACL,QACA;gBACI,eAAe;eAClB;AAGL,oBAAM,aAAa,KAAK,gBAAgB,QAAQ;AAGhD,kBAAI,UAAU,KAAK,EAAE,gBAAgB,YAAW,CAAE;AAClD,kBAAI,IAAI;;;;;;;;;;;;WAYjB;AAES,qBAAO,MAAK;AACZ,sBAAQ,UAAU;YACtB,SAAS,OAAO;AACZ,mBAAK,OAAO,MAAM,iCAAiC,KAAK;AAGxD,kBAAI,UAAU,KAAK,EAAE,gBAAgB,YAAW,CAAE;AAClD,kBAAI,IAAI;;;;4BAIA,KAAK;;;;WAItB;AAES,qBAAO,MAAK;AACZ,qBAAO,KAAK;YAChB;UACJ,CAAC;AAED,iBAAO,OAAO,KAAK,cAAc,MAAK;AAClC,iBAAK,OAAO,KACR,oDAAoD,KAAK,YAAY,WAAW;UAExF,CAAC;AAGD,qBAAW,MAAK;AACZ,mBAAO,MAAK;AACZ,mBACI,IAAI,MACA,gEAAgE,CACnE;UAET,GAAG,GAAM;QACb,CAAC;MACL;;;;MAKA,MAAM,YAAY,aAAmB;AACjC,YAAI,CAAC,KAAK,QAAQ;AACd,gBAAM,IAAI,MAAM,8BAA8B;QAClD;AAEA,YAAI;AACA,eAAK,OAAO,KAAK,8BAA8B;AAE/C,gBAAM,WAAW,MAAM,KAAK,OAAO,SAAS,WAAW;AAEvD,eAAK,OAAO,KAAK,yCAAyC;AAC1D,eAAK,OAAO,MAAM,YAAY,SAAS,GAAG,EAAE;AAE5C,iBAAO;QACX,SAAS,OAAO;AACZ,eAAK,OAAO,MAAM,2BAA2B,KAAK;AAClD,gBAAM;QACV;MACJ;;;;MAKA,MAAM,aAAa,cAAoB;AACnC,YAAI,CAAC,KAAK,QAAQ;AACd,gBAAM,IAAI,MAAM,8BAA8B;QAClD;AAEA,YAAI;AACA,eAAK,OAAO,KAAK,4BAA4B;AAE7C,gBAAM,WAAW,MAAM,KAAK,OAAO,QAAQ,YAAY;AACvD,gBAAM,SAAS,KAAK,gBAAgB,QAAQ;AAE5C,eAAK,OAAO,KAAK,sCAAsC;AACvD,iBAAO;QACX,SAAS,OAAO;AACZ,eAAK,OAAO,MAAM,wBAAwB,KAAK;AAC/C,gBAAM;QACV;MACJ;;;;MAKQ,gBAAgB,UAKvB;;AACG,cAAM,SAAqB;UACvB,aAAa,SAAS;UACtB,SAAS,SAAS;UAClB,cAAc,SAAS;;AAG3B,YAAI,SAAS,YAAY;AACrB,iBAAO,YAAY,IAAI,KAAK,SAAS,aAAa,GAAI;QAC1D;AAEA,aAAK,OAAO,KAAK,8CAA8C;AAC/D,aAAK,OAAO,MACR,kBAAiB,YAAO,gBAAP,mBAAoB,UAAU,GAAG,GAAG,KAAK;AAE9D,aAAK,OAAO,MACR,aAAa,OAAO,UAAU,YAAY,cAAc,EAAE;AAE9D,aAAK,OAAO,MACR,kBAAkB,OAAO,eAAe,YAAY,cAAc,EAAE;AAExE,aAAK,OAAO,MAAM,eAAe,OAAO,SAAS,EAAE;AAEnD,eAAO;MACX;;;;MAKA,eAAe,YAAsB;AACjC,YAAI,CAAC,WAAW,WAAW;AACvB,eAAK,OAAO,MACR,uDAAuD;AAE3D,iBAAO;QACX;AAGA,cAAM,YACF,WAAW,qBAAqB,OAC1B,WAAW,YACX,IAAI,KAAK,WAAW,SAAS;AAEvC,cAAM,MAAM,oBAAI,KAAI;AACpB,cAAM,SAAS,IAAI,KAAK;AACxB,cAAM,YAAY,UAAU,QAAO,IAAK,SAAS,IAAI,QAAO;AAE5D,YAAI,WAAW;AACX,eAAK,OAAO,KAAK,6CAA6C;QAClE,OAAO;AACH,eAAK,OAAO,MAAM,6BAA6B;QACnD;AAEA,eAAO;MACX;;;;MAKA,MAAM,OAAO,aAAmB;AAC5B,YAAI,CAAC,KAAK,QAAQ;AACd,gBAAM,IAAI,MAAM,8BAA8B;QAClD;AAEA,YAAI;AACA,gBAAM,KAAK,OAAO,OAAO,WAAW;AACpC,eAAK,OAAO,KAAK,4BAA4B;QACjD,SAAS,OAAO;AACZ,eAAK,OAAO,MAAM,0BAA0B,KAAK;QAErD;MACJ;;AA9UJ,IAAAC,SAAA,eAAA;;;;;;;;;;ACzCA,QAAA,UAAA;AAgBA,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AA8BlB,QAAa,kBAAb,MAAa,iBAAe;MAChB;MACA;MACA,aAAqC;MACrC;MACA,cAAc;;;;;MAMd,OAAgB,mBAAmB,IAAI,KAAK;MAEpD,YACI,aACA,UACA,QAAoB;AAEpB,aAAK,cAAc;AACnB,aAAK,WAAW;AAChB,aAAK,SAAS,UAAU;AAGxB,cAAM,iBAAiB,YAAY,UAAU,UAAU,GAAG,CAAC;AAC3D,aAAK,OAAO,KACR,uCAAuC,cAAc,KAAK;MAElE;;;;MAKA,UAAO;AACH,eAAO,QAAA,iBAAiB;MAC5B;;;;;MAMA,MAAM,aAAU;AACZ,YAAI,KAAK,aAAa;AAClB,eAAK,OAAO,MAAM,qCAAqC;AACvD;QACJ;AAEA,aAAK,OAAO,KAAK,iCAAiC;AAGlD,YAAI,CAAC,KAAK,YAAY,aAAa,CAAC,KAAK,YAAY,eAAe;AAChE,gBAAM,IAAI,MACN,oDAAoD;QAE5D;AACA,YAAI,CAAC,KAAK,YAAY,QAAQ;AAC1B,gBAAM,IAAI,MAAM,gCAAgC;QACpD;AACA,YAAI,CAAC,KAAK,YAAY,UAAU;AAC5B,gBAAM,IAAI,MAAM,kCAAkC;QACtD;AAGA,cAAM,KAAK,cAAa;AAExB,aAAK,cAAc;AACnB,aAAK,OAAO,KAAK,0CAA0C;MAC/D;;;;MAKA,MAAM,WAAQ;AACV,cAAM,MAAM,KAAK,IAAG;AAGpB,YACI,KAAK,cACL,MAAM,KAAK,WAAW,YAAY,iBAAgB,kBACpD;AACE,eAAK,OAAO,MAAM,wBAAwB;AAC1C,iBAAO,KAAK,WAAW;QAC3B;AAEA,aAAK,OAAO,KACR,wDAAwD;AAE5D,cAAM,KAAK,cAAa;AAExB,eAAO,KAAK,WAAY;MAC5B;;;;MAKA,MAAM,eAAY;AACd,aAAK,OAAO,KAAK,+BAA+B;AAChD,aAAK,aAAa;AAClB,cAAM,KAAK,cAAa;AACxB,aAAK,OAAO,KAAK,qBAAqB;MAC1C;;;;MAKA,MAAM,kBAAe;AACjB,YAAI;AACA,gBAAM,KAAK,SAAQ;AACnB,iBAAO;QACX,QAAQ;AACJ,iBAAO;QACX;MACJ;;;;;MAMA,MAAM,cAAW;AACb,cAAM,iBAAiB,KAAK,YAAY,UAAU,UAAU,GAAG,CAAC;AAChE,eAAO;UACH,KAAK,cAAc,cAAc;UACjC,MAAM;UACN,GAAI,KAAK,YAAY,EAAE,WAAW,KAAK,SAAQ;;MAEvD;;;;MAKA,cAAW;AACP,eAAO,KAAK;MAChB;;;;MAKQ,MAAM,gBAAa;AACvB,cAAM,SAAS,KAAK,YAAY,OAAO,WAAW,MAAM,IAClD,KAAK,YAAY,SACjB,WAAW,KAAK,YAAY,MAAM;AAExC,cAAM,WAAW,GAAG,OAAO,QAAQ,OAAO,EAAE,CAAC;AAE7C,aAAK,OAAO,MAAM,4BAA4B,QAAQ,EAAE;AAExD,cAAM,cAAc;UAChB,YAAY;UACZ,WAAW,KAAK,YAAY;UAC5B,eAAe,KAAK,YAAY;UAChC,UAAU,KAAK,YAAY;;AAG/B,YAAI;AACA,gBAAM,WAAW,MAAM,MAAM,UAAU;YACnC,QAAQ;YACR,SAAS;cACL,gBAAgB;;YAEpB,MAAM,KAAK,UAAU,WAAW;WACnC;AAED,cAAI,CAAC,SAAS,IAAI;AACd,iBAAK,OAAO,MACR,6BAA6B,SAAS,MAAM,EAAE;AAElD,kBAAM,IAAI,MACN,8CAA8C,SAAS,MAAM,EAAE;UAEvE;AAEA,gBAAM,gBAAiB,MAAM,SAAS,KAAI;AAE1C,cAAI,CAAC,cAAc,cAAc;AAC7B,kBAAM,IAAI,MAAM,qCAAqC;UACzD;AAEA,gBAAM,YAAY,cAAc,cAAc;AAC9C,gBAAM,YAAY,KAAK,IAAG,IAAK,YAAY;AAE3C,eAAK,aAAa;YACd,aAAa,cAAc;YAC3B;;AAGJ,gBAAM,mBAAmB,KAAK,MAAM,YAAY,EAAE;AAClD,eAAK,OAAO,KACR,qBAAqB,KAAK,WAAW,eAAe,KAAK,QAAQ,KAAK,EAAE,gBAAgB,gBAAgB,UAAU;QAE1H,SAAS,OAAO;AAEZ,eAAK,aAAa;AAElB,cAAI,iBAAiB,OAAO;AACxB,iBAAK,OAAO,MAAM,6BAA6B,KAAK;AACpD,kBAAM;UACV;AAEA,gBAAM,IAAI,MAAM,8BAA8B,KAAK,EAAE;QACzD;MACJ;;AAvMJ,IAAAC,SAAA,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDA,QAAAC,MAAAC,cAAA,QAAA,IAAA,CAAA;AACA,QAAA,UAAA;AAeA,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AAoBlB,QAAa,wBAAb,MAAkC;MACtB;MACA;MACA,aAAqC;MACrC;MAER,YAAY,WAAmB,UAAmB,QAAoB;AAClE,aAAK,YAAY;AACjB,aAAK,WAAW;AAChB,aAAK,SAAS,UAAU;MAC5B;;;;MAKA,UAAO;AACH,eAAO,QAAA,iBAAiB;MAC5B;;;;;MAMA,MAAM,aAAU;AACZ,aAAK,OAAO,KACR,uDAAuD,KAAK,SAAS,EAAE;AAG3E,YAAI,CAACD,IAAG,WAAW,KAAK,SAAS,GAAG;AAChC,gBAAM,IAAI,MACN,yCAAyC,KAAK,SAAS,EAAE;QAEjE;AAGA,cAAM,KAAK,SAAQ;AACnB,aAAK,OAAO,KAAK,gDAAgD;MACrE;;;;MAKA,MAAM,WAAQ;AACV,cAAM,MAAM,KAAK,IAAG;AAGpB,cAAM,WAAW,IAAI,KAAK;AAC1B,YAAI,KAAK,cAAc,MAAM,KAAK,WAAW,YAAY,UAAU;AAC/D,eAAK,OAAO,MAAM,oCAAoC;AACtD,iBAAO,KAAK,WAAW;QAC3B;AAEA,cAAM,WAAW,KAAK,kBAAiB;AACvC,aAAK,sBAAsB,QAAQ;AAEnC,eAAO,KAAK,WAAY;MAC5B;;;;MAKA,MAAM,eAAY;AACd,aAAK,OAAO,KAAK,qCAAqC;AACtD,aAAK,aAAa;AAClB,cAAM,KAAK,SAAQ;AACnB,aAAK,OAAO,KAAK,iCAAiC;MACtD;;;;MAKA,MAAM,kBAAe;AACjB,YAAI;AACA,gBAAM,KAAK,SAAQ;AACnB,iBAAO;QACX,QAAQ;AACJ,iBAAO;QACX;MACJ;;;;;MAMA,MAAM,cAAW;AACb,eAAO;UACH,KAAK;UACL,MAAM;UACN,GAAI,KAAK,YAAY,EAAE,WAAW,KAAK,SAAQ;;MAEvD;;;;MAKA,cAAW;AACP,eAAO,KAAK;MAChB;;;;MAKQ,oBAAiB;AACrB,eAAOA,IAAG,aAAa,KAAK,WAAW,MAAM;MACjD;;;;MAKQ,sBAAsB,UAAgB;AAC1C,cAAM,QAAQ,SAAS,KAAI;AAE3B,YAAI,CAAC,OAAO;AACR,gBAAM,IAAI,MAAM,gCAAgC;QACpD;AAEA,cAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,YAAI,MAAM,WAAW,GAAG;AACpB,gBAAM,IAAI,MACN,6CAA6C,MAAM,MAAM,EAAE;QAEnE;AAEA,cAAM,YAAY,KAAK,kBAAkB,KAAK;AAC9C,cAAM,MAAM,KAAK,IAAG;AACpB,cAAM,YAAY,KAAK,OAAO,YAAY,OAAO,GAAI;AAGrD,YAAI,aAAa,KAAK;AAClB,gBAAM,IAAI,MAAM,kCAAkC;QACtD;AAEA,aAAK,OAAO,KACR,+BAA+B,KAAK,WAAW,eAAe,KAAK,QAAQ,KAAK,EAAE,gBAAgB,SAAS,MAAM,IAAI,KAAK,SAAS,EAAE,YAAW,CAAE,GAAG;AAGzJ,aAAK,aAAa;UACd;UACA;;MAER;;;;MAKQ,kBAAkB,OAAa;AACnC,cAAM,QAAQ,MAAM,MAAM,GAAG;AAE7B,YAAI;AACA,gBAAM,UAAU,MAAM,CAAC;AACvB,gBAAM,UAAU,OAAO,KAAK,SAAS,WAAW,EAAE,SAAS,MAAM;AACjE,gBAAM,SAAS,KAAK,MAAM,OAAO;AAEjC,cAAI,OAAO,OAAO,QAAQ,UAAU;AAChC,mBAAO,OAAO,MAAM;UACxB;AAEA,eAAK,OAAO,KACR,oDAAoD;AAExD,iBAAO,KAAK,IAAG,IAAK;QACxB,SAAS,OAAO;AACZ,eAAK,OAAO,KACR,mCAAmC,KAAK,6BAA6B;AAEzE,iBAAO,KAAK,IAAG,IAAK;QACxB;MACJ;;AAvKJ,IAAAE,SAAA,wBAAA;;;;;;;;;;ACrCA,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AAmBlB,QAAa,qBAAb,MAA+B;MACnB;MACA;MAER,YAAY,QAAoB;AAC5B,aAAK,SAAS,UAAU;AACxB,aAAK,SAAS,QAAQ,IAAI,cAAc,QAAQ,IAAI;MACxD;;;;MAKA,UAAO;AACH,eAAO;MACX;;;;MAKA,MAAM,cAAW;AAEb,cAAM,YAAY,CAAC,EACf,QAAQ,IAAI,cAAc,QAAQ,IAAI;AAE1C,cAAM,kBAAkB,CAAC,CAAC,QAAQ,IAAI;AACtC,cAAM,iBAAiB,CAAC,EACpB,QAAQ,IAAI,qBACZ,QAAQ,IAAI,0CACZ,QAAQ,IAAI;AAGhB,cAAM,mBACF,cAAc,mBAAmB;AAErC,YAAI,kBAAkB;AAClB,eAAK,OAAO,MAAM,0BAA0B;QAChD,OAAO;AACH,eAAK,OAAO,MAAM,wBAAwB;QAC9C;AAEA,eAAO;MACX;;;;;;;MAQA,MAAM,wBACF,YAAkB;AAElB,aAAK,OAAO,KACR,qDAAqD,UAAU,EAAE;AAGrE,YAAI;AAEA,gBAAM,EAAE,sBAAsB,sBAAqB;;YAE/C,MAAM,OAAO,iCAAiC;;AAElD,gBAAM,SAAS,IAAI,qBAAqB;YACpC,QAAQ,KAAK;WAChB;AAED,gBAAM,UAAU,IAAI,sBAAsB;YACtC,UAAU;WACb;AAED,gBAAM,WAAW,MAAM,OAAO,KAAK,OAAO;AAE1C,cAAI,CAAC,SAAS,cAAc;AACxB,iBAAK,OAAO,MAAM,iCAAiC;AACnD,mBAAO;UACX;AAEA,gBAAM,cAAc,KAAK,MAAM,SAAS,YAAY;AAGpD,cACI,CAAC,YAAY,aACb,CAAC,YAAY,iBACb,CAAC,YAAY,YACb,CAAC,YAAY,QACf;AACE,iBAAK,OAAO,MACR,6EAA6E;AAEjF,mBAAO;UACX;AAEA,eAAK,OAAO,KAAK,iDAAiD;AAClE,iBAAO;YACH,WAAW,YAAY;YACvB,eAAe,YAAY;YAC3B,UAAU,YAAY;YACtB,QAAQ,YAAY;;QAE5B,SAAS,OAAO;AACZ,cAAI,iBAAiB,OAAO;AACxB,gBAAI,MAAM,SAAS,6BAA6B;AAC5C,mBAAK,OAAO,KAAK,qBAAqB,UAAU,EAAE;AAClD,qBAAO;YACX;AACA,gBAAI,MAAM,QAAQ,SAAS,oBAAoB,GAAG;AAC9C,mBAAK,OAAO,KACR,uEAAuE;AAE3E,qBAAO;YACX;AACA,iBAAK,OAAO,MAAM,kCAAkC,KAAK;UAC7D;AACA,iBAAO;QACX;MACJ;;AAnHJ,IAAAC,SAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA,QAAAC,MAAAC,cAAA,QAAA,IAAA,CAAA;AACA,QAAAC,QAAAD,cAAA,QAAA,MAAA,CAAA;AACA,QAAAE,MAAAF,cAAA,QAAA,IAAA,CAAA;AAOA,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AAgBlB,QAAa,2BAAb,MAAqC;MACzB;MACA;MACA;MAER,YAAY,aAAqB,QAAoB;AACjD,aAAK,SAAS,UAAU;AACxB,aAAK,cAAc;AACnB,aAAK,iBAAiBC,MAAK,KACvBC,IAAG,QAAO,GACV,cACA,cAAc,WAAW,OAAO;MAExC;;;;MAKA,UAAO;AACH,eAAO;MACX;;;;MAKA,MAAM,cAAW;AACb,cAAM,SAASH,IAAG,WAAW,KAAK,cAAc;AAEhD,YAAI,QAAQ;AACR,eAAK,OAAO,MACR,gCAAgC,KAAK,cAAc,EAAE;QAE7D,OAAO;AACH,eAAK,OAAO,MACR,oCAAoC,KAAK,cAAc,EAAE;QAEjE;AAEA,eAAO;MACX;;;;;;;MAQA,MAAM,wBACF,aAAmB;AAEnB,aAAK,OAAO,KACR,4CAA4C,KAAK,cAAc,EAAE;AAGrE,YAAI;AACA,cAAI,CAACA,IAAG,WAAW,KAAK,cAAc,GAAG;AACrC,iBAAK,OAAO,MAAM,kCAAkC;AACpD,mBAAO;UACX;AAGA,gBAAM,QAAQA,IAAG,SAAS,KAAK,cAAc;AAC7C,gBAAM,OAAO,MAAM,OAAO;AAC1B,cAAI,SAAS,KAAO;AAChB,iBAAK,OAAO,KACR,yCAAyC,KAAK,SAAS,CAAC,CAAC,kBAAkB;UAEnF;AAEA,gBAAM,UAAUA,IAAG,aAAa,KAAK,gBAAgB,MAAM;AAC3D,gBAAM,cAAc,KAAK,MAAM,OAAO;AAGtC,cACI,CAAC,YAAY,aACb,CAAC,YAAY,iBACb,CAAC,YAAY,YACb,CAAC,YAAY,QACf;AACE,iBAAK,OAAO,MACR,wFAAwF;AAE5F,mBAAO;UACX;AAEA,eAAK,OAAO,KAAK,wCAAwC;AACzD,iBAAO;YACH,WAAW,YAAY;YACvB,eAAe,YAAY;YAC3B,UAAU,YAAY;YACtB,QAAQ,YAAY;;QAE5B,SAAS,OAAO;AACZ,cAAI,iBAAiB,aAAa;AAC9B,iBAAK,OAAO,MAAM,2CAA2C;UACjE,OAAO;AACH,iBAAK,OAAO,MAAM,oCAAoC,KAAK;UAC/D;AACA,iBAAO;QACX;MACJ;;;;MAKA,oBAAiB;AACb,eAAO,KAAK;MAChB;;AA3GJ,IAAAI,SAAA,2BAAA;;;;;;;;;;AC1BA,QAAA,yBAAA;AACA,QAAA,gCAAA;AAKA,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AAmBlB,QAAa,kBAAb,MAA4B;MAChB;MACA;MACA;MAER,YAAY,aAAqB,QAAoB;AACjD,aAAK,SAAS,UAAU;AACxB,aAAK,cAAc;AAGnB,aAAK,YAAY;UACb,IAAI,uBAAA,mBAAmB,MAAM;UAC7B,IAAI,8BAAA,yBAAyB,aAAa,MAAM;;MAExD;;;;MAKA,UAAO;AACH,eAAO;MACX;;;;MAKA,MAAM,cAAW;AACb,mBAAW,YAAY,KAAK,WAAW;AACnC,cAAI,MAAM,SAAS,YAAW,GAAI;AAC9B,iBAAK,OAAO,MACR,+BAA+B,SAAS,QAAO,CAAE,EAAE;AAEvD,mBAAO;UACX;QACJ;AACA,aAAK,OAAO,MAAM,gCAAgC;AAClD,eAAO;MACX;;;;;;;MAQA,MAAM,wBACF,YAAkB;AAElB,aAAK,OAAO,KAAK,uCAAuC;AAExD,mBAAW,YAAY,KAAK,WAAW;AACnC,gBAAM,eAAe,SAAS,QAAO;AAErC,cAAI,CAAE,MAAM,SAAS,YAAW,GAAK;AACjC,iBAAK,OAAO,MAAM,2BAA2B,YAAY,EAAE;AAC3D;UACJ;AAEA,eAAK,OAAO,KAAK,oBAAoB,YAAY,EAAE;AACnD,gBAAM,cACF,MAAM,SAAS,wBAAwB,UAAU;AAErD,cAAI,aAAa;AACb,iBAAK,OAAO,KACR,gCAAgC,YAAY,EAAE;AAElD,mBAAO;UACX;AAEA,eAAK,OAAO,MACR,qCAAqC,YAAY,EAAE;QAE3D;AAEA,aAAK,OAAO,KAAK,0CAA0C;AAC3D,eAAO;MACX;;;;;;;MAQA,OAAO,qBAAqB,aAAmB;AAC3C,eAAO,+BAA+B,WAAW;MACrD;;AAtFJ,IAAAC,SAAA,kBAAA;;;;;;;;;;AC9BA,QAAA,yBAAA;AAAS,WAAA,eAAAC,UAAA,sBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,uBAAA;IAAkB,EAAA,CAAA;AAC3B,QAAA,gCAAA;AAAS,WAAA,eAAAA,UAAA,4BAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,8BAAA;IAAwB,EAAA,CAAA;AACjC,QAAA,qBAAA;AAAS,WAAA,eAAAA,UAAA,mBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,mBAAA;IAAe,EAAA,CAAA;;;;;;;;;;ACExB,QAAA,UAAA;AAQA,QAAA,4BAAA;AACA,QAAA,sBAAA;AACA,QAAA,YAAA;AAoBA,QAAM,aAA0B;MAC5B,MAAM,MAAK;MAAE;MACb,MAAM,MAAK;MAAE;MACb,OAAO,MAAK;MAAE;MACd,OAAO,MAAK;MAAE;;AA2BlB,QAAa,sBAAb,MAAgC;MACpB;MACA;MAER,YAAY,gBAAqC,QAAoB;AACjE,aAAK,iBAAiB;AACtB,aAAK,SAAS,UAAU;MAC5B;MAEA,MAAM,iBAAc;AAChB,cAAM,UAAU,KAAK,eAAe,WAAU;AAE9C,gBAAQ,QAAQ,MAAM;UAClB,KAAK,QAAA,QAAQ;AACT,mBAAO,KAAK,4BAA4B,OAAO;UACnD,KAAK,QAAA,QAAQ;AACT,mBAAO,MAAM,KAAK,sBAAsB,OAAO;UACnD;AACI,iBAAK,OAAO,KAAK,8BAA8B;AAC/C,mBAAO;cACH,UAAU;cACV,cAAc,QAAA,iBAAiB;;QAE3C;MACJ;MAEQ,4BACJ,MAAyD;AAEzD,aAAK,OAAO,KAAK,yBAAyB,KAAK,SAAS,EAAE;AAC1D,eAAO;UACH,UAAU,IAAI,0BAAA,sBACV,KAAK,WACL,KAAK,UACL,KAAK,MAAM;UAEf,cAAc,QAAA,iBAAiB;;MAEvC;MAEQ,MAAM,sBACV,MAAmD;AAEnD,cAAM,kBAAkB,IAAI,UAAA,gBACxB,KAAK,eAAe,eAAc,GAClC,KAAK,MAAM;AAGf,YAAI,CAAE,MAAM,gBAAgB,YAAW,GAAK;AACxC,gBAAM,IAAI,MACN,gFACwC,KAAK,UAAU,oHACyB;QAExF;AAEA,cAAM,cAAc,MAAM,gBAAgB,wBACtC,KAAK,UAAU;AAEnB,YAAI,CAAC,aAAa;AACd,gBAAM,IAAI,MACN,qCAAqC,KAAK,UAAU,uEACoB;QAEhF;AAEA,aAAK,OAAO,KAAK,mBAAmB,KAAK,UAAU,EAAE;AACrD,eAAO;UACH,UAAU,IAAI,oBAAA,gBACV,aACA,KAAK,UACL,KAAK,MAAM;UAEf,cAAc,QAAA,iBAAiB;;MAEvC;MAEA,MAAM,iBAAc;AAChB,cAAM,OAAO,KAAK,eAAe,WAAU;AAC3C,YAAI,KAAK,SAAS,QAAA,QAAQ,iBAAiB;AACvC,iBAAO;QACX;AACA,YAAI,KAAK,SAAS,QAAA,QAAQ,WAAW;AACjC,gBAAM,kBAAkB,IAAI,UAAA,gBACxB,KAAK,eAAe,eAAc,GAClC,KAAK,MAAM;AAEf,iBAAO,gBAAgB,YAAW;QACtC;AACA,eAAO;MACX;;AA1FJ,IAAAC,SAAA,sBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACMA,IAAAC,SAAA,wBAAA;AA9CA,QAAAC,UAAAC,cAAA,QAAA,aAAA,CAAA;AACA,QAAA,0BAAA;AAgFS,WAAA,eAAAF,UAAA,uBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aA/EL,wBAAA;IAAmB,EAAA,CAAA;AA4CvB,aAAgB,sBACZ,gBAAsB;;AAGtB,YAAM,eAAeC,QAChB,WAAW,QAAQ,EACnB,OAAO,cAAc,EACrB,OAAO,KAAK;AAGjB,YAAM,iBAAiB,wBAAA,oBAAoB,YAAY;AACvD,UAAI,CAAC,gBAAgB;AAEjB,eAAO;MACX;AAGA,aAAO;;QAEH,UACI,oBAAe,mBAAf,wCAAgC,oBAChC;;QAGJ,UAAU,eAAe;;QAGzB,UAAU,eAAe,cAAc;;QAGvC,WAAW,eAAe,cAAc;;IAEhD;AASA,QAAA,UAAA;AAII,WAAA,eAAAD,UAAA,oBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,QAAA;IAAgB,EAAA,CAAA;AAChB,WAAA,eAAAA,UAAA,WAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,QAAA;IAAO,EAAA,CAAA;AAcX,QAAA,kBAAA;AAAS,WAAA,eAAAA,UAAA,gBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,gBAAA;IAAY,EAAA,CAAA;AACrB,QAAA,sBAAA;AAAS,WAAA,eAAAA,UAAA,mBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,oBAAA;IAAe,EAAA,CAAA;AACxB,QAAA,4BAAA;AAAS,WAAA,eAAAA,UAAA,yBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,0BAAA;IAAqB,EAAA,CAAA;AAM9B,QAAA,0BAAA;AAAS,WAAA,eAAAA,UAAA,uBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,wBAAA;IAAmB,EAAA,CAAA;AAM5B,QAAA,YAAA;AAEI,WAAA,eAAAA,UAAA,sBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAkB,EAAA,CAAA;AAClB,WAAA,eAAAA,UAAA,4BAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAwB,EAAA,CAAA;AACxB,WAAA,eAAAA,UAAA,mBAAA,EAAA,YAAA,MAAA,KAAA,WAAA;AAAA,aAAA,UAAA;IAAe,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9JnB,IAAA,KAAA,aAAA,QAAA,IAAA,CAAA;AACA,IAAA,OAAA,aAAA,QAAA,MAAA,CAAA;AACA,IAAA,KAAA,aAAA,QAAA,IAAA,CAAA;AACA,IAAA,SAAA,aAAA,QAAA,QAAA,CAAA;AAEA,IAAA,aAAA;AAiBA,IAAa,0BAAb,MAAoC;EACxB;EACA;EAER,YAAY,SAA2B,CAAA,GAAE;AACrC,SAAK,SAAS,KAAK,kBAAkB,MAAM;AAG3C,QAAI,OAAO,iBAAiB;AACxB,WAAK,kBAAkB,OAAO;IAClC,OAAO;AACH,YAAM,eAAe,OAChB,WAAW,QAAQ,EACnB,OAAO,KAAK,OAAO,QAAS,EAC5B,OAAO,KAAK,EACZ,UAAU,GAAG,CAAC;AAEnB,WAAK,kBAAkB,KAAK,KACxB,GAAG,QAAO,GACV,cACA,eAAe,YAAY,OAAO;IAE1C;AAGA,SAAK,yBAAwB;EACjC;EAEQ,2BAAwB;AAC5B,UAAM,eAAe,KAAK,QAAQ,KAAK,eAAe;AACtD,QAAI,CAAC,GAAG,WAAW,YAAY,GAAG;AAC9B,SAAG,UAAU,cAAc,EAAE,WAAW,MAAM,MAAM,IAAK,CAAE;IAC/D;EACJ;EAEQ,kBAAkB,QAAwB;AAE9C,UAAM,YAA8B;MAChC,WAAW,QAAQ,IAAI;MACvB,YAAY,QAAQ,IAAI;MACxB,UAAU,QAAQ,IAAI;MACtB,UAAU,QAAQ,IAAI;MACtB,OAAO,QAAQ,IAAI;MACnB,oBAAoB,QAAQ,IAAI;MAChC,gBAAgB,QAAQ,IAAI;;AAIhC,UAAM,iBAAiB,KAAK,KACxB,GAAG,QAAO,GACV,cACA,aAAa;AAEjB,QAAI,aAA+B,CAAA;AACnC,QAAI,GAAG,WAAW,cAAc,GAAG;AAC/B,UAAI;AACA,cAAM,cAAc,GAAG,aAAa,gBAAgB,MAAM;AAC1D,qBAAa,KAAK,MAAM,WAAW;MACvC,SAAS,OAAO;MAEhB;IACJ;AAGA,UAAM,iBACF,OAAO,kBACP,UAAU,kBACV,WAAW;AAEf,QAAI,gBAAgB;AAEhB,cAAQ,MACJ,sCAAsC,cAAc,EAAE;AAG1D,YAAM,kBAAiB,GAAA,WAAA,uBAAsB,cAAc;AAE3D,UAAI,CAAC,gBAAgB;AACjB,gBAAQ,MACJ,4CAA4C,cAAc,EAAE;AAEhE,cAAM,IAAI,MACN,6BAA6B,cAAc,oGAEW;MAE9D;AAEA,cAAQ,MAAM,iDAAiD;AAC/D,cAAQ,MACJ,4BAA4B,eAAe,SAAS,EAAE;AAE1D,cAAQ,MACJ,8BAA8B,eAAe,MAAM,EAAE;AAEzD,cAAQ,MACJ,2BAA2B,eAAe,SAAS,UAAU,GAAG,CAAC,CAAC,KAAK;AAK3E,aAAO;QACH,WAAW,eAAe;QAC1B,YAAY,eAAe;QAC3B,UAAU,eAAe;QACzB,UAAU,eAAe;QACzB,OAAO;;QAEP,iBAAiB,OAAO;QACxB,oBACI,OAAO,sBACP,UAAU,sBACV,WAAW,sBACX;QACJ;;IAER;AAGA,YAAQ,MACJ,oEAAoE;AAGxE,WAAO;MACH,WACI,OAAO,aACP,UAAU,aACV,WAAW,aACX;MACJ,YACI,OAAO,cACP,UAAU,cACV,WAAW,cACX;MACJ,UACI,OAAO,YACP,UAAU,YACV,WAAW,YACX;MACJ,UACI,OAAO,YACP,UAAU,YACV,WAAW,YACX;MACJ,OACI,OAAO,SACP,UAAU,SACV,WAAW,SACX;MACJ,oBACI,OAAO,sBACP,UAAU,sBACV,WAAW,sBACX;;MAEJ,iBAAiB,OAAO;MACxB,gBAAgB;;EAExB;;EAIA,eAAY;AACR,WAAO,KAAK,OAAO;EACvB;EAEA,iBAAc;AACV,WAAO;EACX;EAEA,oBAAiB;AACb,WAAO,KAAK,OAAO,kBAAkB;EACzC;EAEA,wBAAqB;AACjB,WAAO,KAAK,OAAO,sBAAsB;EAC7C;EAEA,gBAAa;AACT,WAAO;MACH,QAAQ,KAAK,OAAO;MACpB,UAAU,KAAK,OAAO;MACtB,UAAU,KAAK,OAAO;MACtB,OAAO,KAAK,OAAO,SAAS;;EAEpC;EAEA,MAAM,gBAAa;AACf,QAAI;AACA,UAAI,GAAG,WAAW,KAAK,eAAe,GAAG;AACrC,cAAM,UAAU,GAAG,aAAa,KAAK,iBAAiB,MAAM;AAC5D,eAAO;MACX;AACA,aAAO;IACX,SAAS,OAAO;AACZ,aAAO;IACX;EACJ;EAEA,MAAM,cAAc,OAAa;AAE7B,SAAK,yBAAwB;AAG7B,OAAG,cAAc,KAAK,iBAAiB,OAAO;MAC1C,MAAM;MACN,UAAU;KACb;EACL;EAEA,MAAM,mBAAgB;AAClB,QAAI;AACA,UAAI,GAAG,WAAW,KAAK,eAAe,GAAG;AACrC,WAAG,WAAW,KAAK,eAAe;MACtC;IACJ,SAAS,OAAO;IAEhB;EACJ;EAEA,oBAAiB;AAGb,UAAM,WAAW,QAAQ,IAAI;AAC7B,YAAO,qCAAU,mBAAkB;EACvC;;AAjOJ,QAAA,0BAAA;",
6
+ "names": ["exports", "AuthStrategyType", "exports", "M2MType", "__importStar", "exports", "exports", "fs", "__importStar", "exports", "exports", "fs", "__importStar", "path", "os", "exports", "exports", "exports", "exports", "exports", "crypto", "__importStar"]
7
+ }
@@ -34,8 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.StandaloneLogger = void 0;
37
- const fs = __importStar(require("node:fs"));
38
- const path = __importStar(require("node:path"));
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
39
  /**
40
40
  * Standalone logger implementation for MCP server
41
41
  * Writes to stderr (for stdio mode) and optionally to a log file
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/standalone/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAGlC;;;GAGG;AACH,MAAa,gBAAgB;IACjB,OAAO,CAAU;IAEzB,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,mCAAmC;QACnC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,OAAe;QAChD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,IAAI,SAAS,KAAK,KAAK,KAAK,OAAO,EAAE,CAAC;IACjD,CAAC;IAEO,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,KAAW;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CACvC,KAAK,CAAC,WAAW,EAAE,EACnB,OAAO,CACV,CAAC;QACF,MAAM,WAAW,GAAG,KAAK;YACrB,CAAC,CAAC,GAAG,gBAAgB,YAAY,KAAK,CAAC,QAAQ,EAAE,YAAY,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE;YACnF,CAAC,CAAC,gBAAgB,CAAC;QAEvB,yDAAyD;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QAEzC,kCAAkC;QAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC;gBACD,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,2BAA2B;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe;QACjB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAW;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ;AAzDD,4CAyDC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/standalone/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAG7B;;;GAGG;AACH,MAAa,gBAAgB;IACjB,OAAO,CAAU;IAEzB,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,mCAAmC;QACnC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,OAAe;QAChD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,IAAI,SAAS,KAAK,KAAK,KAAK,OAAO,EAAE,CAAC;IACjD,CAAC;IAEO,GAAG,CAAC,KAAa,EAAE,OAAe,EAAE,KAAW;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CACvC,KAAK,CAAC,WAAW,EAAE,EACnB,OAAO,CACV,CAAC;QACF,MAAM,WAAW,GAAG,KAAK;YACrB,CAAC,CAAC,GAAG,gBAAgB,YAAY,KAAK,CAAC,QAAQ,EAAE,YAAY,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE;YACnF,CAAC,CAAC,gBAAgB,CAAC;QAEvB,yDAAyD;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QAEzC,kCAAkC;QAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC;gBACD,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,2BAA2B;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe;QACjB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAW;QAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;CACJ;AAzDD,4CAyDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/standalone/server.ts"],"names":[],"mappings":";AAgMA;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0H3D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/standalone/server.ts"],"names":[],"mappings":";AAsLA;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgH3D"}
@@ -36,16 +36,13 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.startStandaloneServer = startStandaloneServer;
38
38
  const commander_1 = require("commander");
39
- const path = __importStar(require("node:path"));
40
- const os = __importStar(require("node:os"));
39
+ const path = __importStar(require("path"));
40
+ const os = __importStar(require("os"));
41
41
  const config_1 = require("./config");
42
42
  const stdio_transport_1 = require("./stdio-transport");
43
43
  const logger_1 = require("./logger");
44
44
  const server_1 = require("../server");
45
45
  const logger_2 = require("../logger");
46
- const index_js_1 = require("../auth/index.js");
47
- // Hardcoded version - avoids file read at module load time which breaks in bundled environments
48
- const MCP_VERSION = "1.0.5";
49
46
  /**
50
47
  * Configure Logger for standalone mode
51
48
  * In stdio mode: write to stderr + file (stdout reserved for protocol)
@@ -95,6 +92,8 @@ async function performAuthentication(configService) {
95
92
  const logger = logger_2.Logger.getInstance();
96
93
  logger.info("Starting authentication flow...");
97
94
  logger.info("A browser window will open for you to authenticate with DataFlint.");
95
+ // Import Auth0Service dynamically to use its authentication flow
96
+ const { Auth0Service } = await import("../auth.js");
98
97
  const openUrlHandler = async (url) => {
99
98
  logger.info(`Opening browser: ${url}`);
100
99
  const openModule = await import("open");
@@ -103,7 +102,7 @@ async function performAuthentication(configService) {
103
102
  const configProvider = () => {
104
103
  return configService.getAuthConfig();
105
104
  };
106
- const auth0Service = new index_js_1.Auth0Service(openUrlHandler, configProvider, logger);
105
+ const auth0Service = new Auth0Service(openUrlHandler, configProvider);
107
106
  try {
108
107
  // Perform authentication
109
108
  const authResult = await auth0Service.authenticate();
@@ -124,12 +123,13 @@ async function performAuthentication(configService) {
124
123
  /**
125
124
  * Start the MCP server in the specified transport mode
126
125
  */
127
- async function startServer(configService, transport, port, m2mStrategy) {
126
+ async function startServer(configService, transport, port) {
128
127
  const logger = logger_2.Logger.getInstance();
129
128
  if (transport === "stdio") {
130
129
  logger.info("Starting MCP server in stdio mode...");
131
- const stdioServer = new stdio_transport_1.StdioMcpServer(configService, m2mStrategy);
130
+ const stdioServer = new stdio_transport_1.StdioMcpServer(configService);
132
131
  await stdioServer.start();
132
+ // Server will run indefinitely, handling stdin/stdout
133
133
  logger.info("MCP server is running. Press Ctrl+C to stop.");
134
134
  }
135
135
  else {
@@ -144,10 +144,11 @@ async function startServer(configService, transport, port, m2mStrategy) {
144
144
  const addHighlightsHandler = async (highlights, clearExisting) => {
145
145
  logger.debug(`Highlight request received (standalone mode - no-op): ${highlights.length} highlights`);
146
146
  };
147
- const httpServer = new server_1.DataFlintCopilotMcpServer(openUrlHandler, configProvider, addHighlightsHandler, configService, port, m2mStrategy);
147
+ const httpServer = new server_1.DataFlintCopilotMcpServer(openUrlHandler, configProvider, addHighlightsHandler, configService, port);
148
148
  await httpServer.start();
149
149
  logger.info(`MCP server is running on http://localhost:${port}/mcp`);
150
150
  logger.info("Press Ctrl+C to stop.");
151
+ // Keep process alive
151
152
  await new Promise(() => { });
152
153
  }
153
154
  }
@@ -156,22 +157,18 @@ async function startServer(configService, transport, port, m2mStrategy) {
156
157
  */
157
158
  async function startStandaloneServer() {
158
159
  const program = new commander_1.Command();
159
- // NOTE: CLI options intentionally have no defaults here.
160
- // Defaults are applied in StandaloneConfigService.mergeWithDefaults()
161
- // to ensure proper priority: CLI args > env vars > config file > defaults
162
160
  program
163
161
  .name("dataflint-mcp-server")
164
162
  .description("DataFlint MCP Server")
165
- .version(MCP_VERSION)
166
- .option("--server-url <url>", "DataFlint API server URL")
167
- .option("--auth-domain <domain>", "Auth0 domain")
168
- .option("--client-id <id>", "Auth0 client ID")
169
- .option("--audience <audience>", "Auth0 API audience")
170
- .option("--scope <scope>", "OAuth scope")
163
+ .version("1.0.0")
164
+ .option("--server-url <url>", "DataFlint API server URL", "https://api.dataflint.io")
165
+ .option("--auth-domain <domain>", "Auth0 domain", "https://dataflint.us.auth0.com/")
166
+ .option("--client-id <id>", "Auth0 client ID", "1NdbhkYoLyqQWtevBNal1BozB9pSZe3g")
167
+ .option("--audience <audience>", "Auth0 API audience", "https://api.dataflint.io")
168
+ .option("--scope <scope>", "OAuth scope", "openid profile email offline_access")
171
169
  .option("--credentials <path>", "Path to credentials file (default: ~/.dataflint/credentials-{hash}.json)")
172
- .addOption(new commander_1.Option("--admin-company-domain <domain>", "Admin company domain for multi-tenant routing").hideHelp())
170
+ .option("--admin-company-domain <domain>", "Admin company domain for multi-tenant routing")
173
171
  .option("--customer-domain <domain>", "Customer domain for authentication (e.g., acme.corp)")
174
- .option("--tenant-id <id>", "Tenant ID for M2M authentication (sent as X-DATAFLINT-TENANT-ID header)")
175
172
  .option("-t, --transport <type>", "Transport type: stdio or http", "stdio")
176
173
  .option("-p, --port <port>", "HTTP port (if using http transport)", "11223");
177
174
  program.parse(process.argv);
@@ -198,37 +195,20 @@ async function startStandaloneServer() {
198
195
  credentialsPath: options.credentials,
199
196
  adminCompanyDomain: options.adminCompanyDomain,
200
197
  customerDomain: options.customerDomain,
201
- tenantId: options.tenantId,
202
198
  });
203
199
  logger.info(`Server URL: ${configService.getServerUrl()}`);
204
- // Use AuthStrategyFactory to determine authentication strategy
205
- const strategyFactory = new index_js_1.AuthStrategyFactory(configService, logger);
206
- const { strategy, strategyType } = await strategyFactory.createStrategy();
207
- let m2mStrategy;
208
- if (strategy) {
209
- // M2M strategy available (ServiceAccount or Auth0 M2M)
210
- logger.info(`Authentication mode: ${strategyType}`);
211
- await strategy.initialize();
212
- m2mStrategy = strategy;
213
- const tenantId = strategy.getTenantId();
214
- if (tenantId) {
215
- logger.info(`Tenant ID: ${tenantId}`);
216
- }
200
+ // Check if already authenticated
201
+ const authenticated = await isAuthenticated(configService);
202
+ if (!authenticated) {
203
+ logger.info("No valid authentication tokens found.");
204
+ await performAuthentication(configService);
217
205
  }
218
206
  else {
219
- // Fall back to interactive OAuth2 flow
220
- logger.info("Authentication mode: interactive OAuth2");
221
- const authenticated = await isAuthenticated(configService);
222
- if (!authenticated) {
223
- logger.info("No valid authentication tokens found.");
224
- await performAuthentication(configService);
225
- }
226
- else {
227
- logger.info("Using existing authentication tokens.");
228
- }
207
+ logger.info("Using existing authentication tokens.");
229
208
  }
209
+ // Start the server
230
210
  const port = parseInt(options.port || "11223", 10);
231
- await startServer(configService, options.transport, port, m2mStrategy);
211
+ await startServer(configService, options.transport, port);
232
212
  }
233
213
  catch (error) {
234
214
  logger.error("Failed to start MCP server", error);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/standalone/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/standalone/server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { DataFlintServerService } from "../dataflint-server-service";
2
- import { IAuthStrategy } from "../auth/index.js";
3
2
  import { IConfigService } from "../types";
4
3
  /**
5
4
  * MCP Server using stdio transport for Claude Code CLI
@@ -12,7 +11,7 @@ export declare class StdioMcpServer {
12
11
  private dataflintService;
13
12
  private mcpState;
14
13
  private configService;
15
- constructor(configService: IConfigService, m2mStrategy?: IAuthStrategy);
14
+ constructor(configService: IConfigService);
16
15
  private setupShutdownHandlers;
17
16
  start(): Promise<void>;
18
17
  stop(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../src/standalone/stdio-transport.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACH,cAAc,EAKjB,MAAM,UAAU,CAAC;AAGlB;;;;GAIG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,aAAa,CAAiB;gBAE1B,aAAa,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,aAAa;IAqEtE,OAAO,CAAC,qBAAqB;IAavB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BrB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC,mBAAmB,IAAI,sBAAsB;CAGhD"}
1
+ {"version":3,"file":"stdio-transport.d.ts","sourceRoot":"","sources":["../../src/standalone/stdio-transport.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EACH,cAAc,EAKjB,MAAM,UAAU,CAAC;AAGlB;;;;GAIG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,aAAa,CAAiB;gBAE1B,aAAa,EAAE,cAAc;IAoEzC,OAAO,CAAC,qBAAqB;IAavB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BrB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAIzC,mBAAmB,IAAI,sBAAsB;CAGhD"}
@@ -6,7 +6,7 @@ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
6
  const state_1 = require("../state");
7
7
  const dataflint_server_service_1 = require("../dataflint-server-service");
8
8
  const tools_1 = require("../tools");
9
- const index_js_1 = require("../auth/index.js");
9
+ const auth_1 = require("../auth");
10
10
  const logger_1 = require("../logger");
11
11
  /**
12
12
  * MCP Server using stdio transport for Claude Code CLI
@@ -19,10 +19,11 @@ class StdioMcpServer {
19
19
  dataflintService;
20
20
  mcpState;
21
21
  configService;
22
- constructor(configService, m2mStrategy) {
22
+ constructor(configService) {
23
23
  this.configService = configService;
24
24
  const logger = logger_1.Logger.getInstance();
25
25
  logger.info("Initializing stdio MCP server...");
26
+ // Create DataFlint service
26
27
  const openUrlHandler = async (url) => {
27
28
  const openModule = await import("open");
28
29
  await openModule.default(url);
@@ -30,7 +31,7 @@ class StdioMcpServer {
30
31
  const configProvider = () => {
31
32
  return this.configService.getAuthConfig();
32
33
  };
33
- this.dataflintService = new dataflint_server_service_1.DataFlintServerService(() => new index_js_1.Auth0Service(openUrlHandler, configProvider, logger), configService, undefined, m2mStrategy);
34
+ this.dataflintService = new dataflint_server_service_1.DataFlintServerService(() => new auth_1.Auth0Service(openUrlHandler, configProvider), configService);
34
35
  this.mcpState = new state_1.DataFlintMcpState();
35
36
  // Create MCP server
36
37
  this.server = new mcp_js_1.McpServer({
@@ -1 +1 @@
1
- {"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../../src/standalone/stdio-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stdio-transport.js","sourceRoot":"","sources":["../../src/standalone/stdio-transport.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,wEAAiF;AACjF,oCAA6C;AAC7C,0EAAqE;AACrE,oCAA6C;AAC7C,kCAAuC;AAQvC,sCAAmC;AAEnC;;;;GAIG;AACH,MAAa,cAAc;IACf,MAAM,CAAY;IAClB,SAAS,CAAuB;IAChC,gBAAgB,CAAyB;IACzC,QAAQ,CAAoB;IAC5B,aAAa,CAAiB;IAEtC,YAAY,aAA6B;QACrC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEhD,2BAA2B;QAC3B,MAAM,cAAc,GAAmB,KAAK,EAAE,GAAW,EAAE,EAAE;YACzD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,cAAc,GAAmB,GAAG,EAAE;YACxC,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC9C,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,iDAAsB,CAC9C,GAAG,EAAE,CAAC,IAAI,mBAAY,CAAC,cAAc,EAAE,cAAc,CAAC,EACtD,aAAa,CAChB,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAiB,EAAE,CAAC;QAExC,oBAAoB;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAS,CACvB;YACI,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,OAAO;SACnB,EACD;YACI,YAAY,EAAE;gBACV,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,EAAE;aACZ;SACJ,CACJ,CAAC;QAEF,8CAA8C;QAC9C,gDAAgD;QAChD,MAAM,oBAAoB,GAAyB,KAAK,EACpD,UAA0B,EAC1B,aAAsB,EACxB,EAAE;YACA,MAAM,CAAC,KAAK,CACR,yDAAyD,UAAU,CAAC,MAAM,8BAA8B,aAAa,EAAE,CAC1H,CAAC;YACF,iEAAiE;QACrE,CAAC,CAAC;QAEF,2BAA2B;QAC3B,MAAM,cAAc,GAAG,IAAI,yBAAiB,CACxC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,QAAQ,EACb,oBAAoB,EACpB,IAAI,CAAC,aAAa,CACrB,CAAC;QACF,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAElC,yBAAyB;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAE5C,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE5C,0BAA0B;QAC1B,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAEO,qBAAqB;QACzB,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,CAAC;YACD,gCAAgC;YAChC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAEtD,wCAAwC;YACxC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CACP,qEAAqE,CACxE,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;QAEpC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAE5C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;QAEhC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;CACJ;AAnJD,wCAmJC"}
@@ -1,4 +1,5 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
2
3
  import { DataFlintJobService } from "../dataflint-job-service.js";
3
4
  import { DataFlintMcpState } from "../state.js";
4
5
  import { DataFlintServerService } from "../dataflint-server-service.js";
@@ -24,6 +25,21 @@ export interface McpToolResponse {
24
25
  }>;
25
26
  isError?: boolean;
26
27
  }
28
+ /**
29
+ * Type-erased wrapper around McpServer.registerTool to avoid exponential
30
+ * TypeScript type instantiation caused by the MCP SDK's complex generic
31
+ * signature combined with inline zod schemas.
32
+ *
33
+ * The MCP SDK's registerTool<InputArgs, OutputArgs> triggers millions of
34
+ * type instantiations per call when TypeScript infers zod schema types.
35
+ * This wrapper breaks that inference chain while preserving full runtime behavior.
36
+ */
37
+ export declare function registerTool(server: McpServer, name: string, config: {
38
+ title?: string;
39
+ description?: string;
40
+ inputSchema?: any;
41
+ annotations?: ToolAnnotations;
42
+ }, cb: (args: any, extra: any) => Promise<any>): void;
27
43
  export declare function successResponse(data: unknown): McpToolResponse;
28
44
  export declare function errorResponse(message: string, troubleshootingSteps: string[]): McpToolResponse;
29
45
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACH,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,mBAAmB,CAAC;IAChC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,aAAa,EAAE,cAAc,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAS9D;AAED,wBAAgB,aAAa,CACzB,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAAE,GAC/B,eAAe,CAajB"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACH,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,mBAAmB,CAAC;IAChC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,aAAa,EAAE,cAAc,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC5B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CACxB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC,EAED,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAC5C,IAAI,CAGN;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAS9D;AAED,wBAAgB,aAAa,CACzB,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAAE,GAC/B,eAAe,CAajB"}
@@ -1,7 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerTool = registerTool;
3
4
  exports.successResponse = successResponse;
4
5
  exports.errorResponse = errorResponse;
6
+ /**
7
+ * Type-erased wrapper around McpServer.registerTool to avoid exponential
8
+ * TypeScript type instantiation caused by the MCP SDK's complex generic
9
+ * signature combined with inline zod schemas.
10
+ *
11
+ * The MCP SDK's registerTool<InputArgs, OutputArgs> triggers millions of
12
+ * type instantiations per call when TypeScript infers zod schema types.
13
+ * This wrapper breaks that inference chain while preserving full runtime behavior.
14
+ */
15
+ function registerTool(server, name, config,
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ cb) {
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ server.registerTool(name, config, cb);
20
+ }
5
21
  function successResponse(data) {
6
22
  return {
7
23
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":";;AA8BA,0CASC;AAED,sCAgBC;AA3BD,SAAgB,eAAe,CAAC,IAAa;IACzC,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACJ;KACJ,CAAC;AACN,CAAC;AAED,SAAgB,aAAa,CACzB,OAAe,EACf,oBAA8B;IAE9B,MAAM,KAAK,GAAG,oBAAoB;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,OAAO,+BAA+B,KAAK,EAAE;aACzD;SACJ;KACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":";;AAwCA,oCAeC;AAED,0CASC;AAED,sCAgBC;AArDD;;;;;;;;GAQG;AACH,SAAgB,YAAY,CACxB,MAAiB,EACjB,IAAY,EACZ,MAMC;AACD,8DAA8D;AAC9D,EAA2C;IAE3C,8DAA8D;IAC7D,MAAc,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,eAAe,CAAC,IAAa;IACzC,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;SACJ;KACJ,CAAC;AACN,CAAC;AAED,SAAgB,aAAa,CACzB,OAAe,EACf,oBAA8B;IAE9B,MAAM,KAAK,GAAG,oBAAoB;SAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,OAAO;QACH,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,GAAG,OAAO,+BAA+B,KAAK,EAAE;aACzD;SACJ;KACJ,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-tools.d.ts","sourceRoot":"","sources":["../../src/tools/core-tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAkC,MAAM,WAAW,CAAC;AAexE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAUxD"}
1
+ {"version":3,"file":"core-tools.d.ts","sourceRoot":"","sources":["../../src/tools/core-tools.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,WAAW,EAId,MAAM,WAAW,CAAC;AAenB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAUxD"}