@ibm/ibmi-mcp-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -0
- package/dist/config/index.d.ts +100 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +463 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/resolver.d.ts +32 -0
- package/dist/config/resolver.d.ts.map +1 -0
- package/dist/config/resolver.js +60 -0
- package/dist/config/resolver.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/crypto.d.ts +11 -0
- package/dist/ibmi-mcp-server/auth/crypto.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/crypto.js +100 -0
- package/dist/ibmi-mcp-server/auth/crypto.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts +28 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +243 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/index.d.ts +9 -0
- package/dist/ibmi-mcp-server/auth/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/index.js +8 -0
- package/dist/ibmi-mcp-server/auth/index.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.d.ts +86 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.js +214 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/types.d.ts +31 -0
- package/dist/ibmi-mcp-server/auth/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/types.js +5 -0
- package/dist/ibmi-mcp-server/auth/types.js.map +1 -0
- package/dist/ibmi-mcp-server/index.d.ts +8 -0
- package/dist/ibmi-mcp-server/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/index.js +126 -0
- package/dist/ibmi-mcp-server/index.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts +7 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js +7 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts +106 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js +145 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts +16 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js +110 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/common.d.ts +174 -0
- package/dist/ibmi-mcp-server/schemas/common.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/common.js +119 -0
- package/dist/ibmi-mcp-server/schemas/common.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts +858 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/config.js +248 -0
- package/dist/ibmi-mcp-server/schemas/config.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/index.d.ts +12 -0
- package/dist/ibmi-mcp-server/schemas/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/index.js +20 -0
- package/dist/ibmi-mcp-server/schemas/index.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/tools.d.ts +287 -0
- package/dist/ibmi-mcp-server/schemas/tools.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/tools.js +167 -0
- package/dist/ibmi-mcp-server/schemas/tools.js.map +1 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +82 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +262 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +130 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js +431 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -0
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts +60 -0
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/connectionPool.js +153 -0
- package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -0
- package/dist/ibmi-mcp-server/services/securityValidation.d.ts +35 -0
- package/dist/ibmi-mcp-server/services/securityValidation.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/securityValidation.js +93 -0
- package/dist/ibmi-mcp-server/services/securityValidation.js.map +1 -0
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts +82 -0
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/sourceManager.js +151 -0
- package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +9 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.js +9 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +51 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js +179 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +52 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js +161 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +13 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.js +13 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +64 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js +190 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +18 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js +64 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts +42 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.js +156 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/index.d.ts +6 -0
- package/dist/ibmi-mcp-server/utils/cli/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/index.js +6 -0
- package/dist/ibmi-mcp-server/utils/cli/index.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +77 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js +309 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts +143 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +665 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts +71 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js +158 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +206 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +236 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +65 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js +236 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts +175 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.js +460 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +126 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +240 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/types.d.ts +74 -0
- package/dist/ibmi-mcp-server/utils/config/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/types.js +8 -0
- package/dist/ibmi-mcp-server/utils/config/types.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +116 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +426 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts +182 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js +726 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts +90 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js +187 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +270 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/constants.d.ts +13 -0
- package/dist/mcp-server/constants.d.ts.map +1 -0
- package/dist/mcp-server/constants.js +13 -0
- package/dist/mcp-server/constants.js.map +1 -0
- package/dist/mcp-server/logging/index.d.ts +8 -0
- package/dist/mcp-server/logging/index.d.ts.map +1 -0
- package/dist/mcp-server/logging/index.js +8 -0
- package/dist/mcp-server/logging/index.js.map +1 -0
- package/dist/mcp-server/logging/setLevelHandler.d.ts +38 -0
- package/dist/mcp-server/logging/setLevelHandler.d.ts.map +1 -0
- package/dist/mcp-server/logging/setLevelHandler.js +83 -0
- package/dist/mcp-server/logging/setLevelHandler.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/index.d.ts +14 -0
- package/dist/mcp-server/resources/echoResource/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/index.js +14 -0
- package/dist/mcp-server/resources/echoResource/index.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/logic.d.ts +37 -0
- package/dist/mcp-server/resources/echoResource/logic.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/logic.js +46 -0
- package/dist/mcp-server/resources/echoResource/logic.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/registration.d.ts +7 -0
- package/dist/mcp-server/resources/echoResource/registration.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/registration.js +51 -0
- package/dist/mcp-server/resources/echoResource/registration.js.map +1 -0
- package/dist/mcp-server/resources/index.d.ts +10 -0
- package/dist/mcp-server/resources/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/index.js +19 -0
- package/dist/mcp-server/resources/index.js.map +1 -0
- package/dist/mcp-server/resources/utils/resource-utils.d.ts +43 -0
- package/dist/mcp-server/resources/utils/resource-utils.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resource-utils.js +44 -0
- package/dist/mcp-server/resources/utils/resource-utils.js.map +1 -0
- package/dist/mcp-server/server.d.ts +23 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +114 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts +8 -0
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/index.js +8 -0
- package/dist/mcp-server/tools/catFactFetcher/index.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +52 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.js +95 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +9 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.js +43 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/index.d.ts +13 -0
- package/dist/mcp-server/tools/echoTool/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/index.js +13 -0
- package/dist/mcp-server/tools/echoTool/index.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/logic.d.ts +69 -0
- package/dist/mcp-server/tools/echoTool/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/logic.js +119 -0
- package/dist/mcp-server/tools/echoTool/logic.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/registration.d.ts +9 -0
- package/dist/mcp-server/tools/echoTool/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/registration.js +45 -0
- package/dist/mcp-server/tools/echoTool/registration.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/index.d.ts +7 -0
- package/dist/mcp-server/tools/imageTest/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/index.js +7 -0
- package/dist/mcp-server/tools/imageTest/index.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/logic.d.ts +27 -0
- package/dist/mcp-server/tools/imageTest/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/logic.js +44 -0
- package/dist/mcp-server/tools/imageTest/logic.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/registration.d.ts +9 -0
- package/dist/mcp-server/tools/imageTest/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/registration.js +49 -0
- package/dist/mcp-server/tools/imageTest/registration.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +4 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +13 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/utils/tool-utils.d.ts +43 -0
- package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/tool-utils.js +44 -0
- package/dist/mcp-server/tools/utils/tool-utils.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +46 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +58 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/index.d.ts +14 -0
- package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/index.js +12 -0
- package/dist/mcp-server/transports/auth/index.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +15 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +9 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +53 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts +21 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js +64 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +118 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +118 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/core/autoTransportManager.d.ts +48 -0
- package/dist/mcp-server/transports/core/autoTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/autoTransportManager.js +57 -0
- package/dist/mcp-server/transports/core/autoTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts +17 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js +20 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts +27 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.js +53 -0
- package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +77 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js +150 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +81 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js +326 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +57 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js +151 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/transportRequest.d.ts +9 -0
- package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportRequest.js +2 -0
- package/dist/mcp-server/transports/core/transportRequest.js.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts +112 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.js +15 -0
- package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +86 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +27 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +407 -0
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +6 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/index.d.ts +8 -0
- package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/index.js +7 -0
- package/dist/mcp-server/transports/http/index.js.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +21 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +54 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
- package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/index.js +6 -0
- package/dist/mcp-server/transports/stdio/index.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +71 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/services/duck-db/duckDBConnectionManager.d.ts +55 -0
- package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBConnectionManager.js +184 -0
- package/dist/services/duck-db/duckDBConnectionManager.js.map +1 -0
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts +18 -0
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBQueryExecutor.js +115 -0
- package/dist/services/duck-db/duckDBQueryExecutor.js.map +1 -0
- package/dist/services/duck-db/duckDBService.d.ts +27 -0
- package/dist/services/duck-db/duckDBService.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBService.js +151 -0
- package/dist/services/duck-db/duckDBService.js.map +1 -0
- package/dist/services/duck-db/types.d.ts +135 -0
- package/dist/services/duck-db/types.d.ts.map +1 -0
- package/dist/services/duck-db/types.js +6 -0
- package/dist/services/duck-db/types.js.map +1 -0
- package/dist/services/llm-providers/openRouterProvider.d.ts +36 -0
- package/dist/services/llm-providers/openRouterProvider.d.ts.map +1 -0
- package/dist/services/llm-providers/openRouterProvider.js +235 -0
- package/dist/services/llm-providers/openRouterProvider.js.map +1 -0
- package/dist/services/supabase/supabaseClient.d.ts +25 -0
- package/dist/services/supabase/supabaseClient.d.ts.map +1 -0
- package/dist/services/supabase/supabaseClient.js +68 -0
- package/dist/services/supabase/supabaseClient.js.map +1 -0
- package/dist/storage/duckdbExample.d.ts +8 -0
- package/dist/storage/duckdbExample.d.ts.map +1 -0
- package/dist/storage/duckdbExample.js +197 -0
- package/dist/storage/duckdbExample.js.map +1 -0
- package/dist/types-global/errors.d.ts +101 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +109 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/utils/formatting/index.d.ts +10 -0
- package/dist/utils/formatting/index.d.ts.map +1 -0
- package/dist/utils/formatting/index.js +10 -0
- package/dist/utils/formatting/index.js.map +1 -0
- package/dist/utils/formatting/markdownBuilder.d.ts +348 -0
- package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
- package/dist/utils/formatting/markdownBuilder.js +501 -0
- package/dist/utils/formatting/markdownBuilder.js.map +1 -0
- package/dist/utils/formatting/sqlFormattingUtils.d.ts +69 -0
- package/dist/utils/formatting/sqlFormattingUtils.d.ts.map +1 -0
- package/dist/utils/formatting/sqlFormattingUtils.js +131 -0
- package/dist/utils/formatting/sqlFormattingUtils.js.map +1 -0
- package/dist/utils/formatting/tableFormatter.d.ts +268 -0
- package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/tableFormatter.js +550 -0
- package/dist/utils/formatting/tableFormatter.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal/asyncContext.d.ts +35 -0
- package/dist/utils/internal/asyncContext.d.ts.map +1 -0
- package/dist/utils/internal/asyncContext.js +38 -0
- package/dist/utils/internal/asyncContext.js.map +1 -0
- package/dist/utils/internal/errorHandler.d.ts +95 -0
- package/dist/utils/internal/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/errorHandler.js +210 -0
- package/dist/utils/internal/errorHandler.js.map +1 -0
- package/dist/utils/internal/index.d.ts +12 -0
- package/dist/utils/internal/index.d.ts.map +1 -0
- package/dist/utils/internal/index.js +12 -0
- package/dist/utils/internal/index.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +30 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +228 -0
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/logging-helpers.d.ts +49 -0
- package/dist/utils/internal/logging-helpers.d.ts.map +1 -0
- package/dist/utils/internal/logging-helpers.js +60 -0
- package/dist/utils/internal/logging-helpers.js.map +1 -0
- package/dist/utils/internal/performance.d.ts +19 -0
- package/dist/utils/internal/performance.d.ts.map +1 -0
- package/dist/utils/internal/performance.js +110 -0
- package/dist/utils/internal/performance.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +41 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +47 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/metrics/index.d.ts +8 -0
- package/dist/utils/metrics/index.d.ts.map +1 -0
- package/dist/utils/metrics/index.js +8 -0
- package/dist/utils/metrics/index.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +36 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +115 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts +22 -0
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/network/fetchWithTimeout.js +78 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -0
- package/dist/utils/network/index.d.ts +7 -0
- package/dist/utils/network/index.d.ts.map +1 -0
- package/dist/utils/network/index.js +6 -0
- package/dist/utils/network/index.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +73 -0
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +108 -0
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +9 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +9 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +83 -0
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +128 -0
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/scheduling/index.d.ts +7 -0
- package/dist/utils/scheduling/index.d.ts.map +1 -0
- package/dist/utils/scheduling/index.js +7 -0
- package/dist/utils/scheduling/index.js.map +1 -0
- package/dist/utils/scheduling/scheduler.d.ts +73 -0
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduling/scheduler.js +155 -0
- package/dist/utils/scheduling/scheduler.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +144 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +232 -0
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +10 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +10 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +109 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +202 -0
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +185 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +472 -0
- package/dist/utils/security/sanitization.js.map +1 -0
- package/dist/utils/telemetry/instrumentation.d.ts +8 -0
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/utils/telemetry/instrumentation.js +121 -0
- package/dist/utils/telemetry/instrumentation.js.map +1 -0
- package/dist/utils/telemetry/semconv.d.ts +16 -0
- package/dist/utils/telemetry/semconv.d.ts.map +1 -0
- package/dist/utils/telemetry/semconv.js +16 -0
- package/dist/utils/telemetry/semconv.js.map +1 -0
- package/package.json +161 -0
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Table formatter utility for creating tables in multiple formats.
|
|
3
|
+
* Supports markdown, ASCII, grid (Unicode), and compact table styles with configurable
|
|
4
|
+
* alignment, truncation, and formatting options.
|
|
5
|
+
* @module src/utils/formatting/tableFormatter
|
|
6
|
+
*/
|
|
7
|
+
import { JsonRpcErrorCode, McpError } from "../../types-global/errors.js";
|
|
8
|
+
import { logger, requestContextService, } from "../index.js";
|
|
9
|
+
/**
|
|
10
|
+
* Utility class for formatting tabular data into various table styles.
|
|
11
|
+
* Provides methods for rendering arrays of objects or raw 2D arrays as tables.
|
|
12
|
+
*/
|
|
13
|
+
export class TableFormatter {
|
|
14
|
+
/**
|
|
15
|
+
* Default formatting options.
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
defaultOptions = {
|
|
19
|
+
style: "markdown",
|
|
20
|
+
alignment: {},
|
|
21
|
+
maxWidth: 50,
|
|
22
|
+
truncate: true,
|
|
23
|
+
headerStyle: "none",
|
|
24
|
+
minWidth: 3,
|
|
25
|
+
padding: 1,
|
|
26
|
+
nullReplacement: "-",
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Track NULL value counts per column during formatting.
|
|
30
|
+
* Reset before each formatting operation.
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
nullCounts = {};
|
|
34
|
+
/**
|
|
35
|
+
* Format an array of objects as a table.
|
|
36
|
+
* Automatically extracts headers from object keys.
|
|
37
|
+
*
|
|
38
|
+
* @template T - Type of objects in the array
|
|
39
|
+
* @param data - Array of objects to format
|
|
40
|
+
* @param options - Table formatting options
|
|
41
|
+
* @param context - Optional request context for logging
|
|
42
|
+
* @returns Formatted table string
|
|
43
|
+
* @throws {McpError} If data is invalid or formatting fails
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const data = [
|
|
48
|
+
* { name: 'Alice', age: 30, role: 'Engineer' },
|
|
49
|
+
* { name: 'Bob', age: 25, role: 'Designer' }
|
|
50
|
+
* ];
|
|
51
|
+
* const table = tableFormatter.format(data, { style: 'grid' });
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
format(data, options, context) {
|
|
55
|
+
const logContext = context ||
|
|
56
|
+
requestContextService.createRequestContext({
|
|
57
|
+
operation: "TableFormatter.format",
|
|
58
|
+
});
|
|
59
|
+
if (!Array.isArray(data)) {
|
|
60
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "Data must be an array", logContext);
|
|
61
|
+
}
|
|
62
|
+
if (data.length === 0) {
|
|
63
|
+
logger.debug(logContext, "Empty data array provided to table formatter");
|
|
64
|
+
return "";
|
|
65
|
+
}
|
|
66
|
+
// Extract headers from first object
|
|
67
|
+
const headers = Object.keys(data[0]);
|
|
68
|
+
// Merge options with defaults
|
|
69
|
+
const opts = {
|
|
70
|
+
...this.defaultOptions,
|
|
71
|
+
...options,
|
|
72
|
+
alignment: { ...this.defaultOptions.alignment, ...options?.alignment },
|
|
73
|
+
};
|
|
74
|
+
// Convert objects to 2D array (without NULL tracking for backward compatibility)
|
|
75
|
+
const rows = data.map((obj) => headers.map((header) => this.stringify(obj[header], opts.nullReplacement)));
|
|
76
|
+
logger.debug({
|
|
77
|
+
...logContext,
|
|
78
|
+
rowCount: rows.length,
|
|
79
|
+
columnCount: headers.length,
|
|
80
|
+
}, "Formatting table from object array");
|
|
81
|
+
return this.formatRaw(headers, rows, options, context);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Format a raw 2D array with explicit headers.
|
|
85
|
+
* Provides full control over headers and cell values.
|
|
86
|
+
*
|
|
87
|
+
* @param headers - Array of column headers
|
|
88
|
+
* @param rows - 2D array of cell values
|
|
89
|
+
* @param options - Table formatting options
|
|
90
|
+
* @param context - Optional request context for logging
|
|
91
|
+
* @returns Formatted table string
|
|
92
|
+
* @throws {McpError} If headers/rows are invalid or formatting fails
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const headers = ['Name', 'Age', 'Role'];
|
|
97
|
+
* const rows = [
|
|
98
|
+
* ['Alice', '30', 'Engineer'],
|
|
99
|
+
* ['Bob', '25', 'Designer']
|
|
100
|
+
* ];
|
|
101
|
+
* const table = tableFormatter.formatRaw(headers, rows, { style: 'ascii' });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
formatRaw(headers, rows, options, context) {
|
|
105
|
+
const logContext = context ||
|
|
106
|
+
requestContextService.createRequestContext({
|
|
107
|
+
operation: "TableFormatter.formatRaw",
|
|
108
|
+
});
|
|
109
|
+
// Validate inputs
|
|
110
|
+
if (!Array.isArray(headers) || headers.length === 0) {
|
|
111
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "Headers must be a non-empty array", logContext);
|
|
112
|
+
}
|
|
113
|
+
if (!Array.isArray(rows)) {
|
|
114
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "Rows must be an array", logContext);
|
|
115
|
+
}
|
|
116
|
+
if (rows.length === 0) {
|
|
117
|
+
logger.debug(logContext, "Empty rows array provided to table formatter");
|
|
118
|
+
return "";
|
|
119
|
+
}
|
|
120
|
+
// Validate row lengths
|
|
121
|
+
const columnCount = headers.length;
|
|
122
|
+
for (let i = 0; i < rows.length; i++) {
|
|
123
|
+
if (rows[i].length !== columnCount) {
|
|
124
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, `Row ${i} has ${rows[i].length} columns but expected ${columnCount}`, { ...logContext, rowIndex: i, expectedColumns: columnCount });
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Merge options with defaults
|
|
128
|
+
const opts = {
|
|
129
|
+
...this.defaultOptions,
|
|
130
|
+
...options,
|
|
131
|
+
alignment: { ...this.defaultOptions.alignment, ...options?.alignment },
|
|
132
|
+
};
|
|
133
|
+
// Apply header styling
|
|
134
|
+
const styledHeaders = this.applyHeaderStyle(headers, opts.headerStyle);
|
|
135
|
+
// Calculate column widths and metadata
|
|
136
|
+
const columns = this.calculateColumns(styledHeaders, rows, opts, logContext);
|
|
137
|
+
// Render table based on style
|
|
138
|
+
try {
|
|
139
|
+
const result = this.renderTable(columns, styledHeaders, rows, opts);
|
|
140
|
+
logger.debug({
|
|
141
|
+
...logContext,
|
|
142
|
+
style: opts.style,
|
|
143
|
+
rows: rows.length,
|
|
144
|
+
columns: columns.length,
|
|
145
|
+
}, "Table formatted successfully");
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
const err = error;
|
|
150
|
+
logger.error({
|
|
151
|
+
...logContext,
|
|
152
|
+
error: err.message,
|
|
153
|
+
}, "Failed to render table");
|
|
154
|
+
throw new McpError(JsonRpcErrorCode.InternalError, `Failed to render table: ${err.message}`, { ...logContext, originalError: err.stack });
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Format an array of objects as a table with NULL value tracking.
|
|
159
|
+
* Returns both the formatted table and metadata about NULL values.
|
|
160
|
+
*
|
|
161
|
+
* @template T - Type of objects in the array
|
|
162
|
+
* @param data - Array of objects to format
|
|
163
|
+
* @param options - Table formatting options
|
|
164
|
+
* @param context - Optional request context for logging
|
|
165
|
+
* @returns Object containing formatted table and metadata
|
|
166
|
+
* @throws {McpError} If data is invalid or formatting fails
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* const data = [
|
|
171
|
+
* { name: 'Alice', age: 30, salary: null },
|
|
172
|
+
* { name: 'Bob', age: 25, salary: 50000 }
|
|
173
|
+
* ];
|
|
174
|
+
* const result = tableFormatter.formatWithMetadata(data, { style: 'grid' });
|
|
175
|
+
* console.log(result.table);
|
|
176
|
+
* console.log(result.metadata.nullCounts); // { salary: 1 }
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
formatWithMetadata(data, options, context) {
|
|
180
|
+
const logContext = context ||
|
|
181
|
+
requestContextService.createRequestContext({
|
|
182
|
+
operation: "TableFormatter.formatWithMetadata",
|
|
183
|
+
});
|
|
184
|
+
if (!Array.isArray(data)) {
|
|
185
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "Data must be an array", logContext);
|
|
186
|
+
}
|
|
187
|
+
if (data.length === 0) {
|
|
188
|
+
logger.debug(logContext, "Empty data array provided to table formatter");
|
|
189
|
+
return {
|
|
190
|
+
table: "",
|
|
191
|
+
metadata: { nullCounts: {} },
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// Reset NULL tracking
|
|
195
|
+
this.nullCounts = {};
|
|
196
|
+
// Extract headers from first object
|
|
197
|
+
const headers = Object.keys(data[0]);
|
|
198
|
+
// Merge options with defaults
|
|
199
|
+
const opts = {
|
|
200
|
+
...this.defaultOptions,
|
|
201
|
+
...options,
|
|
202
|
+
alignment: { ...this.defaultOptions.alignment, ...options?.alignment },
|
|
203
|
+
};
|
|
204
|
+
// Convert objects to 2D array WITH NULL tracking
|
|
205
|
+
const rows = data.map((obj) => headers.map((header) => this.stringify(obj[header], opts.nullReplacement, header)));
|
|
206
|
+
logger.debug({
|
|
207
|
+
...logContext,
|
|
208
|
+
rowCount: rows.length,
|
|
209
|
+
columnCount: headers.length,
|
|
210
|
+
nullCounts: this.nullCounts,
|
|
211
|
+
}, "Formatting table with metadata");
|
|
212
|
+
// Format the table
|
|
213
|
+
const table = this.formatRaw(headers, rows, options, context);
|
|
214
|
+
return {
|
|
215
|
+
table,
|
|
216
|
+
metadata: {
|
|
217
|
+
nullCounts: { ...this.nullCounts },
|
|
218
|
+
},
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Format a raw 2D array with NULL value tracking.
|
|
223
|
+
* Returns both the formatted table and metadata about NULL values.
|
|
224
|
+
*
|
|
225
|
+
* Note: For raw arrays, NULL tracking uses column indices as keys.
|
|
226
|
+
*
|
|
227
|
+
* @param headers - Array of column headers
|
|
228
|
+
* @param rows - 2D array of cell values (may contain null/undefined)
|
|
229
|
+
* @param options - Table formatting options
|
|
230
|
+
* @param context - Optional request context for logging
|
|
231
|
+
* @returns Object containing formatted table and metadata
|
|
232
|
+
* @throws {McpError} If headers/rows are invalid or formatting fails
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* ```typescript
|
|
236
|
+
* const headers = ['Name', 'Age', 'Salary'];
|
|
237
|
+
* const rows = [
|
|
238
|
+
* ['Alice', 30, null],
|
|
239
|
+
* ['Bob', 25, 50000]
|
|
240
|
+
* ];
|
|
241
|
+
* const result = tableFormatter.formatRawWithMetadata(headers, rows);
|
|
242
|
+
* console.log(result.metadata.nullCounts); // { '2': 1 } (column index 2)
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
formatRawWithMetadata(headers, rows, options, context) {
|
|
246
|
+
const logContext = context ||
|
|
247
|
+
requestContextService.createRequestContext({
|
|
248
|
+
operation: "TableFormatter.formatRawWithMetadata",
|
|
249
|
+
});
|
|
250
|
+
// Validate inputs
|
|
251
|
+
if (!Array.isArray(headers) || headers.length === 0) {
|
|
252
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "Headers must be a non-empty array", logContext);
|
|
253
|
+
}
|
|
254
|
+
if (!Array.isArray(rows)) {
|
|
255
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, "Rows must be an array", logContext);
|
|
256
|
+
}
|
|
257
|
+
if (rows.length === 0) {
|
|
258
|
+
logger.debug(logContext, "Empty rows array provided to table formatter");
|
|
259
|
+
return {
|
|
260
|
+
table: "",
|
|
261
|
+
metadata: { nullCounts: {} },
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
// Reset NULL tracking
|
|
265
|
+
this.nullCounts = {};
|
|
266
|
+
// Merge options with defaults
|
|
267
|
+
const opts = {
|
|
268
|
+
...this.defaultOptions,
|
|
269
|
+
...options,
|
|
270
|
+
alignment: { ...this.defaultOptions.alignment, ...options?.alignment },
|
|
271
|
+
};
|
|
272
|
+
// Convert all cells to strings WITH NULL tracking
|
|
273
|
+
const stringRows = rows.map((row) => row.map((cell, colIndex) => this.stringify(cell, opts.nullReplacement, colIndex.toString())));
|
|
274
|
+
logger.debug({
|
|
275
|
+
...logContext,
|
|
276
|
+
rowCount: stringRows.length,
|
|
277
|
+
columnCount: headers.length,
|
|
278
|
+
nullCounts: this.nullCounts,
|
|
279
|
+
}, "Formatting raw table with metadata");
|
|
280
|
+
// Format the table
|
|
281
|
+
const table = this.formatRaw(headers, stringRows, options, context);
|
|
282
|
+
return {
|
|
283
|
+
table,
|
|
284
|
+
metadata: {
|
|
285
|
+
nullCounts: { ...this.nullCounts },
|
|
286
|
+
},
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Apply header styling transformations.
|
|
291
|
+
* @private
|
|
292
|
+
*/
|
|
293
|
+
applyHeaderStyle(headers, style) {
|
|
294
|
+
switch (style) {
|
|
295
|
+
case "uppercase":
|
|
296
|
+
return headers.map((h) => h.toUpperCase());
|
|
297
|
+
case "bold":
|
|
298
|
+
case "none":
|
|
299
|
+
default:
|
|
300
|
+
return headers;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Calculate column widths and metadata.
|
|
305
|
+
* @private
|
|
306
|
+
*/
|
|
307
|
+
calculateColumns(headers, rows, options, context) {
|
|
308
|
+
const columns = headers.map((header, index) => {
|
|
309
|
+
// Determine alignment (use configured or default to left)
|
|
310
|
+
const alignment = options.alignment[header] ||
|
|
311
|
+
options.alignment[index.toString()] ||
|
|
312
|
+
"left";
|
|
313
|
+
// Calculate max content width for this column
|
|
314
|
+
const headerWidth = header.length;
|
|
315
|
+
const maxContentWidth = Math.max(...rows.map((row) => (row[index] || "").length));
|
|
316
|
+
// Determine final width (respecting min/max constraints)
|
|
317
|
+
let width = Math.max(headerWidth, maxContentWidth);
|
|
318
|
+
width = Math.max(width, options.minWidth);
|
|
319
|
+
if (options.maxWidth && width > options.maxWidth) {
|
|
320
|
+
width = options.maxWidth;
|
|
321
|
+
}
|
|
322
|
+
return { name: header, width, alignment };
|
|
323
|
+
});
|
|
324
|
+
logger.debug({
|
|
325
|
+
...context,
|
|
326
|
+
columns: columns.map((c) => ({ name: c.name, width: c.width })),
|
|
327
|
+
}, "Calculated column widths");
|
|
328
|
+
return columns;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Render table using the specified style.
|
|
332
|
+
* @private
|
|
333
|
+
*/
|
|
334
|
+
renderTable(columns, headers, rows, options) {
|
|
335
|
+
switch (options.style) {
|
|
336
|
+
case "markdown":
|
|
337
|
+
return this.renderMarkdown(columns, headers, rows, options);
|
|
338
|
+
case "ascii":
|
|
339
|
+
return this.renderAscii(columns, headers, rows, options);
|
|
340
|
+
case "grid":
|
|
341
|
+
return this.renderGrid(columns, headers, rows, options);
|
|
342
|
+
case "compact":
|
|
343
|
+
return this.renderCompact(columns, headers, rows, options);
|
|
344
|
+
default:
|
|
345
|
+
throw new Error(`Unknown table style: ${String(options.style)}`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Render markdown-style table.
|
|
350
|
+
* @private
|
|
351
|
+
*/
|
|
352
|
+
renderMarkdown(columns, headers, rows, options) {
|
|
353
|
+
const lines = [];
|
|
354
|
+
const pad = " ".repeat(options.padding);
|
|
355
|
+
// Header row
|
|
356
|
+
const headerCells = headers.map((header, i) => this.formatCell(header, columns[i], options));
|
|
357
|
+
lines.push(`|${pad}${headerCells.join(`${pad}|${pad}`)}${pad}|`);
|
|
358
|
+
// Separator row
|
|
359
|
+
const separators = columns.map((col) => {
|
|
360
|
+
const dashes = "-".repeat(col.width);
|
|
361
|
+
return dashes;
|
|
362
|
+
});
|
|
363
|
+
lines.push(`|${pad}${separators.join(`${pad}|${pad}`)}${pad}|`);
|
|
364
|
+
// Data rows
|
|
365
|
+
for (const row of rows) {
|
|
366
|
+
const cells = row.map((cell, i) => this.formatCell(cell, columns[i], options));
|
|
367
|
+
lines.push(`|${pad}${cells.join(`${pad}|${pad}`)}${pad}|`);
|
|
368
|
+
}
|
|
369
|
+
return lines.join("\n");
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Render ASCII box-drawing table.
|
|
373
|
+
* @private
|
|
374
|
+
*/
|
|
375
|
+
renderAscii(columns, headers, rows, options) {
|
|
376
|
+
const lines = [];
|
|
377
|
+
const pad = " ".repeat(options.padding);
|
|
378
|
+
// Top border
|
|
379
|
+
const topBorder = columns
|
|
380
|
+
.map((col) => "-".repeat(col.width + options.padding * 2))
|
|
381
|
+
.join("+");
|
|
382
|
+
lines.push(`+${topBorder}+`);
|
|
383
|
+
// Header row
|
|
384
|
+
const headerCells = headers.map((header, i) => this.formatCell(header, columns[i], options));
|
|
385
|
+
lines.push(`|${pad}${headerCells.join(`${pad}|${pad}`)}${pad}|`);
|
|
386
|
+
// Header separator
|
|
387
|
+
const headerSep = columns
|
|
388
|
+
.map((col) => "-".repeat(col.width + options.padding * 2))
|
|
389
|
+
.join("+");
|
|
390
|
+
lines.push(`+${headerSep}+`);
|
|
391
|
+
// Data rows
|
|
392
|
+
for (const row of rows) {
|
|
393
|
+
const cells = row.map((cell, i) => this.formatCell(cell, columns[i], options));
|
|
394
|
+
lines.push(`|${pad}${cells.join(`${pad}|${pad}`)}${pad}|`);
|
|
395
|
+
}
|
|
396
|
+
// Bottom border
|
|
397
|
+
const bottomBorder = columns
|
|
398
|
+
.map((col) => "-".repeat(col.width + options.padding * 2))
|
|
399
|
+
.join("+");
|
|
400
|
+
lines.push(`+${bottomBorder}+`);
|
|
401
|
+
return lines.join("\n");
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Render Unicode grid table.
|
|
405
|
+
* @private
|
|
406
|
+
*/
|
|
407
|
+
renderGrid(columns, headers, rows, options) {
|
|
408
|
+
const lines = [];
|
|
409
|
+
const pad = " ".repeat(options.padding);
|
|
410
|
+
// Top border
|
|
411
|
+
const topBorder = columns
|
|
412
|
+
.map((col) => "─".repeat(col.width + options.padding * 2))
|
|
413
|
+
.join("┬");
|
|
414
|
+
lines.push(`┌${topBorder}┐`);
|
|
415
|
+
// Header row
|
|
416
|
+
const headerCells = headers.map((header, i) => this.formatCell(header, columns[i], options));
|
|
417
|
+
lines.push(`│${pad}${headerCells.join(`${pad}│${pad}`)}${pad}│`);
|
|
418
|
+
// Header separator
|
|
419
|
+
const headerSep = columns
|
|
420
|
+
.map((col) => "─".repeat(col.width + options.padding * 2))
|
|
421
|
+
.join("┼");
|
|
422
|
+
lines.push(`├${headerSep}┤`);
|
|
423
|
+
// Data rows
|
|
424
|
+
for (const row of rows) {
|
|
425
|
+
const cells = row.map((cell, i) => this.formatCell(cell, columns[i], options));
|
|
426
|
+
lines.push(`│${pad}${cells.join(`${pad}│${pad}`)}${pad}│`);
|
|
427
|
+
}
|
|
428
|
+
// Bottom border
|
|
429
|
+
const bottomBorder = columns
|
|
430
|
+
.map((col) => "─".repeat(col.width + options.padding * 2))
|
|
431
|
+
.join("┴");
|
|
432
|
+
lines.push(`└${bottomBorder}┘`);
|
|
433
|
+
return lines.join("\n");
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Render compact space-separated table.
|
|
437
|
+
* @private
|
|
438
|
+
*/
|
|
439
|
+
renderCompact(columns, headers, rows, options) {
|
|
440
|
+
const lines = [];
|
|
441
|
+
const pad = " ".repeat(options.padding * 2);
|
|
442
|
+
// Header row
|
|
443
|
+
const headerCells = headers.map((header, i) => this.formatCell(header, columns[i], options));
|
|
444
|
+
lines.push(headerCells.join(pad));
|
|
445
|
+
// Data rows
|
|
446
|
+
for (const row of rows) {
|
|
447
|
+
const cells = row.map((cell, i) => this.formatCell(cell, columns[i], options));
|
|
448
|
+
lines.push(cells.join(pad));
|
|
449
|
+
}
|
|
450
|
+
return lines.join("\n");
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Format a single cell with alignment and truncation.
|
|
454
|
+
* @private
|
|
455
|
+
*/
|
|
456
|
+
formatCell(content, column, options) {
|
|
457
|
+
let text = content;
|
|
458
|
+
// Truncate if needed
|
|
459
|
+
if (options.truncate && text.length > column.width) {
|
|
460
|
+
text = text.substring(0, column.width - 3) + "...";
|
|
461
|
+
}
|
|
462
|
+
// Apply alignment padding
|
|
463
|
+
const padding = column.width - text.length;
|
|
464
|
+
if (padding <= 0) {
|
|
465
|
+
return text;
|
|
466
|
+
}
|
|
467
|
+
switch (column.alignment) {
|
|
468
|
+
case "left":
|
|
469
|
+
return text + " ".repeat(padding);
|
|
470
|
+
case "right":
|
|
471
|
+
return " ".repeat(padding) + text;
|
|
472
|
+
case "center": {
|
|
473
|
+
const leftPad = Math.floor(padding / 2);
|
|
474
|
+
const rightPad = padding - leftPad;
|
|
475
|
+
return " ".repeat(leftPad) + text + " ".repeat(rightPad);
|
|
476
|
+
}
|
|
477
|
+
default:
|
|
478
|
+
return text;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Convert any value to a string for display in table.
|
|
483
|
+
* Tracks NULL values per column when columnKey is provided.
|
|
484
|
+
* @private
|
|
485
|
+
*/
|
|
486
|
+
stringify(value, nullReplacement = "-", columnKey) {
|
|
487
|
+
// Handle NULL/undefined values with tracking
|
|
488
|
+
if (value === null || value === undefined) {
|
|
489
|
+
if (columnKey) {
|
|
490
|
+
this.nullCounts[columnKey] = (this.nullCounts[columnKey] || 0) + 1;
|
|
491
|
+
}
|
|
492
|
+
return nullReplacement;
|
|
493
|
+
}
|
|
494
|
+
// Standard value conversion
|
|
495
|
+
if (typeof value === "string")
|
|
496
|
+
return value;
|
|
497
|
+
if (typeof value === "number")
|
|
498
|
+
return value.toString();
|
|
499
|
+
if (typeof value === "boolean")
|
|
500
|
+
return value.toString();
|
|
501
|
+
if (typeof value === "bigint")
|
|
502
|
+
return value.toString();
|
|
503
|
+
if (typeof value === "symbol")
|
|
504
|
+
return value.toString();
|
|
505
|
+
if (typeof value === "function")
|
|
506
|
+
return "[Function]";
|
|
507
|
+
if (Array.isArray(value))
|
|
508
|
+
return JSON.stringify(value);
|
|
509
|
+
if (typeof value === "object") {
|
|
510
|
+
try {
|
|
511
|
+
return JSON.stringify(value);
|
|
512
|
+
}
|
|
513
|
+
catch {
|
|
514
|
+
return "[Object]";
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
return "[Unknown]";
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Singleton instance of TableFormatter.
|
|
522
|
+
* Use this instance to format tabular data into various table styles.
|
|
523
|
+
*
|
|
524
|
+
* @example
|
|
525
|
+
* ```typescript
|
|
526
|
+
* import { tableFormatter } from '../index.js';
|
|
527
|
+
*
|
|
528
|
+
* const data = [
|
|
529
|
+
* { name: 'Alice', age: 30, role: 'Engineer' },
|
|
530
|
+
* { name: 'Bob', age: 25, role: 'Designer' }
|
|
531
|
+
* ];
|
|
532
|
+
*
|
|
533
|
+
* // Markdown table (default)
|
|
534
|
+
* console.log(tableFormatter.format(data));
|
|
535
|
+
*
|
|
536
|
+
* // Grid table with right-aligned age
|
|
537
|
+
* console.log(tableFormatter.format(data, {
|
|
538
|
+
* style: 'grid',
|
|
539
|
+
* alignment: { age: 'right' }
|
|
540
|
+
* }));
|
|
541
|
+
*
|
|
542
|
+
* // Compact table with uppercase headers
|
|
543
|
+
* console.log(tableFormatter.format(data, {
|
|
544
|
+
* style: 'compact',
|
|
545
|
+
* headerStyle: 'uppercase'
|
|
546
|
+
* }));
|
|
547
|
+
* ```
|
|
548
|
+
*/
|
|
549
|
+
export const tableFormatter = new TableFormatter();
|
|
550
|
+
//# sourceMappingURL=tableFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableFormatter.js","sourceRoot":"","sources":["../../../src/utils/formatting/tableFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel file for the utils module.
|
|
3
|
+
* This file re-exports all utilities from their categorized subdirectories,
|
|
4
|
+
* providing a single entry point for accessing utility functions.
|
|
5
|
+
* @module src/utils
|
|
6
|
+
*/
|
|
7
|
+
export * from "./internal/index.js";
|
|
8
|
+
export * from "./metrics/index.js";
|
|
9
|
+
export * from "./parsing/index.js";
|
|
10
|
+
export * from "./security/index.js";
|
|
11
|
+
export * from "./network/index.js";
|
|
12
|
+
export * from "./scheduling/index.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Barrel file for the utils module.
|
|
3
|
+
* This file re-exports all utilities from their categorized subdirectories,
|
|
4
|
+
* providing a single entry point for accessing utility functions.
|
|
5
|
+
* @module src/utils
|
|
6
|
+
*/
|
|
7
|
+
// Re-export all utilities from their categorized subdirectories
|
|
8
|
+
export * from "./internal/index.js";
|
|
9
|
+
export * from "./metrics/index.js";
|
|
10
|
+
export * from "./parsing/index.js";
|
|
11
|
+
export * from "./security/index.js";
|
|
12
|
+
export * from "./network/index.js";
|
|
13
|
+
export * from "./scheduling/index.js";
|
|
14
|
+
// It's good practice to have index.ts files in each subdirectory
|
|
15
|
+
// that export the contents of that directory.
|
|
16
|
+
// Assuming those will be created or already exist.
|
|
17
|
+
// If not, this might need adjustment to export specific files, e.g.:
|
|
18
|
+
// export * from './internal/errorHandler.js';
|
|
19
|
+
// export * from './internal/logger.js';
|
|
20
|
+
// ... etc.
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gEAAgE;AAChE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AAEtC,iEAAiE;AACjE,8CAA8C;AAC9C,mDAAmD;AACnD,qEAAqE;AACrE,8CAA8C;AAC9C,wCAAwC;AACxC,WAAW"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Manages asynchronous context propagation using AsyncLocalStorage.
|
|
3
|
+
* This module provides a mechanism to store and retrieve a `RequestContext` across
|
|
4
|
+
* asynchronous operations, ensuring that critical metadata like `requestId` and trace
|
|
5
|
+
* information is available throughout the entire call stack without prop drilling.
|
|
6
|
+
* @module src/utils/internal/asyncContext
|
|
7
|
+
* @see {@link src/utils/internal/requestContext.ts} for the definition of RequestContext.
|
|
8
|
+
*/
|
|
9
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
10
|
+
import type { RequestContext } from "./requestContext.js";
|
|
11
|
+
/**
|
|
12
|
+
* The singleton `AsyncLocalStorage` instance for storing the `RequestContext`.
|
|
13
|
+
* This holds the context for the duration of a single asynchronous operation,
|
|
14
|
+
* such as an incoming tool call or a scheduled job.
|
|
15
|
+
*/
|
|
16
|
+
export declare const requestContextStore: AsyncLocalStorage<RequestContext>;
|
|
17
|
+
/**
|
|
18
|
+
* Retrieves the current `RequestContext` from the async local storage.
|
|
19
|
+
* It is a synchronous call that depends on the execution context.
|
|
20
|
+
*
|
|
21
|
+
* @returns {RequestContext | undefined} The current `RequestContext` if it exists
|
|
22
|
+
* in the current async context, otherwise `undefined`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getRequestContext(): RequestContext | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* A higher-order function that runs a given function within a specified `RequestContext`.
|
|
27
|
+
* This is the primary mechanism for establishing an async context for an operation.
|
|
28
|
+
*
|
|
29
|
+
* @template T The return type of the function to be executed.
|
|
30
|
+
* @param {RequestContext} context - The `RequestContext` to set for the duration of the function's execution.
|
|
31
|
+
* @param {() => T} fn - The function to execute within the context.
|
|
32
|
+
* @returns {T} The result returned by the function `fn`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function withRequestContext<T>(context: RequestContext, fn: () => T): T;
|
|
35
|
+
//# sourceMappingURL=asyncContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncContext.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/asyncContext.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,mCAA0C,CAAC;AAE3E;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,SAAS,CAE9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE7E"}
|