{"version":3,"sources":["jsdelivr-header.js","/npm/@aashari/mcp-server-atlassian-bitbucket@2.3.0/dist/index.js"],"names":[],"mappings":"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","file":"/npm/@aashari/mcp-server-atlassian-bitbucket@2.3.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@aashari/mcp-server-atlassian-bitbucket@2.3.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.startServer = startServer;\nconst mcp_js_1 = require(\"@modelcontextprotocol/sdk/server/mcp.js\");\nconst streamableHttp_js_1 = require(\"@modelcontextprotocol/sdk/server/streamableHttp.js\");\nconst stdio_js_1 = require(\"@modelcontextprotocol/sdk/server/stdio.js\");\nconst logger_util_js_1 = require(\"./utils/logger.util.js\");\nconst config_util_js_1 = require(\"./utils/config.util.js\");\nconst constants_util_js_1 = require(\"./utils/constants.util.js\");\nconst index_js_1 = require(\"./cli/index.js\");\nconst express_1 = __importDefault(require(\"express\"));\nconst cors_1 = __importDefault(require(\"cors\"));\n// Import tools\nconst atlassian_api_tool_js_1 = __importDefault(require(\"./tools/atlassian.api.tool.js\"));\nconst atlassian_repositories_tool_js_1 = __importDefault(require(\"./tools/atlassian.repositories.tool.js\"));\n// Create a contextualized logger for this file\nconst indexLogger = logger_util_js_1.Logger.forContext('index.ts');\n// Log initialization at debug level\nindexLogger.debug('Bitbucket MCP server module loaded');\nlet serverInstance = null;\nlet transportInstance = null;\n/**\n * Start the MCP server with the specified transport mode\n *\n * @param mode The transport mode to use (stdio or http)\n * @returns Promise that resolves to the server instance when started successfully\n */\nasync function startServer(mode = 'stdio') {\n    const serverLogger = logger_util_js_1.Logger.forContext('index.ts', 'startServer');\n    // Load configuration\n    serverLogger.info('Starting MCP server initialization...');\n    config_util_js_1.config.load();\n    if (config_util_js_1.config.getBoolean('DEBUG')) {\n        serverLogger.debug('Debug mode enabled');\n    }\n    serverLogger.info(`Initializing Bitbucket MCP server v${constants_util_js_1.VERSION}`);\n    serverInstance = new mcp_js_1.McpServer({\n        name: constants_util_js_1.PACKAGE_NAME,\n        version: constants_util_js_1.VERSION,\n    });\n    // Register all tools\n    serverLogger.info('Registering MCP tools...');\n    atlassian_api_tool_js_1.default.registerTools(serverInstance);\n    atlassian_repositories_tool_js_1.default.registerTools(serverInstance);\n    serverLogger.info('All tools registered successfully');\n    if (mode === 'stdio') {\n        // STDIO Transport\n        serverLogger.info('Using STDIO transport for MCP communication');\n        transportInstance = new stdio_js_1.StdioServerTransport();\n        try {\n            await serverInstance.connect(transportInstance);\n            serverLogger.info('MCP server started successfully on STDIO transport');\n            setupGracefulShutdown();\n            return serverInstance;\n        }\n        catch (err) {\n            serverLogger.error('Failed to start server on STDIO transport', err);\n            process.exit(1);\n        }\n    }\n    else {\n        // HTTP Transport with Express\n        serverLogger.info('Using Streamable HTTP transport for MCP communication');\n        const app = (0, express_1.default)();\n        app.use((0, cors_1.default)());\n        app.use(express_1.default.json());\n        const mcpEndpoint = '/mcp';\n        serverLogger.debug(`MCP endpoint: ${mcpEndpoint}`);\n        // Create transport instance\n        const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({\n            sessionIdGenerator: undefined,\n        });\n        // Connect server to transport\n        await serverInstance.connect(transport);\n        transportInstance = transport;\n        // Handle all MCP requests\n        app.all(mcpEndpoint, (req, res) => {\n            transport\n                .handleRequest(req, res, req.body)\n                .catch((err) => {\n                serverLogger.error('Error in transport.handleRequest', err);\n                if (!res.headersSent) {\n                    res.status(500).json({\n                        error: 'Internal Server Error',\n                    });\n                }\n            });\n        });\n        // Health check endpoint\n        app.get('/', (_req, res) => {\n            res.send(`Bitbucket MCP Server v${constants_util_js_1.VERSION} is running`);\n        });\n        // Start HTTP server\n        const PORT = Number(process.env.PORT ?? 3000);\n        await new Promise((resolve) => {\n            app.listen(PORT, () => {\n                serverLogger.info(`HTTP transport listening on http://localhost:${PORT}${mcpEndpoint}`);\n                resolve();\n            });\n        });\n        setupGracefulShutdown();\n        return serverInstance;\n    }\n}\n/**\n * Main entry point - this will run when executed directly\n * Determines whether to run in CLI or server mode based on command-line arguments\n */\nasync function main() {\n    const mainLogger = logger_util_js_1.Logger.forContext('index.ts', 'main');\n    // Load configuration\n    config_util_js_1.config.load();\n    // CLI mode - if any arguments are provided\n    if (process.argv.length > 2) {\n        mainLogger.info('Starting in CLI mode');\n        await (0, index_js_1.runCli)(process.argv.slice(2));\n        mainLogger.info('CLI execution completed');\n        return;\n    }\n    // Server mode - determine transport\n    const transportMode = (process.env.TRANSPORT_MODE || 'stdio').toLowerCase();\n    let mode;\n    if (transportMode === 'stdio') {\n        mode = 'stdio';\n    }\n    else if (transportMode === 'http') {\n        mode = 'http';\n    }\n    else {\n        mainLogger.warn(`Unknown TRANSPORT_MODE \"${transportMode}\", defaulting to stdio`);\n        mode = 'stdio';\n    }\n    mainLogger.info(`Starting server with ${mode.toUpperCase()} transport`);\n    await startServer(mode);\n    mainLogger.info('Server is now running');\n}\n/**\n * Set up graceful shutdown handlers for the server\n */\nfunction setupGracefulShutdown() {\n    const shutdownLogger = logger_util_js_1.Logger.forContext('index.ts', 'shutdown');\n    const shutdown = async () => {\n        try {\n            shutdownLogger.info('Shutting down gracefully...');\n            if (transportInstance &&\n                'close' in transportInstance &&\n                typeof transportInstance.close === 'function') {\n                await transportInstance.close();\n            }\n            if (serverInstance && typeof serverInstance.close === 'function') {\n                await serverInstance.close();\n            }\n            process.exit(0);\n        }\n        catch (err) {\n            shutdownLogger.error('Error during shutdown', err);\n            process.exit(1);\n        }\n    };\n    ['SIGINT', 'SIGTERM'].forEach((signal) => {\n        process.on(signal, shutdown);\n    });\n}\n// If this file is being executed directly (not imported), run the main function\nif (require.main === module) {\n    main().catch((err) => {\n        indexLogger.error('Unhandled error in main process', err);\n        process.exit(1);\n    });\n}\n"]}