synapse-mcp 1.0.0 → 1.0.2
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 +1820 -147
- package/dist/constants.d.ts +10 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -8
- package/dist/constants.js.map +1 -1
- package/dist/events/emitter.d.ts +63 -0
- package/dist/events/emitter.d.ts.map +1 -0
- package/dist/events/emitter.js +112 -0
- package/dist/events/emitter.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +51 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +3 -0
- package/dist/events/types.js.map +1 -0
- package/dist/formatters/compose.d.ts +185 -0
- package/dist/formatters/compose.d.ts.map +1 -0
- package/dist/formatters/compose.js +397 -0
- package/dist/formatters/compose.js.map +1 -0
- package/dist/formatters/container.d.ts +84 -0
- package/dist/formatters/container.d.ts.map +1 -0
- package/dist/formatters/container.js +323 -0
- package/dist/formatters/container.js.map +1 -0
- package/dist/formatters/diagnostics.d.ts +20 -0
- package/dist/formatters/diagnostics.d.ts.map +1 -0
- package/dist/formatters/diagnostics.js +73 -0
- package/dist/formatters/diagnostics.js.map +1 -0
- package/dist/formatters/docker.d.ts +139 -0
- package/dist/formatters/docker.d.ts.map +1 -0
- package/dist/formatters/docker.js +216 -0
- package/dist/formatters/docker.js.map +1 -0
- package/dist/formatters/host.d.ts +137 -0
- package/dist/formatters/host.d.ts.map +1 -0
- package/dist/formatters/host.js +198 -0
- package/dist/formatters/host.js.map +1 -0
- package/dist/formatters/index.d.ts +17 -270
- package/dist/formatters/index.d.ts.map +1 -1
- package/dist/formatters/index.js +21 -456
- package/dist/formatters/index.js.map +1 -1
- package/dist/formatters/scout.d.ts +424 -0
- package/dist/formatters/scout.d.ts.map +1 -0
- package/dist/formatters/scout.js +687 -0
- package/dist/formatters/scout.js.map +1 -0
- package/dist/formatters/strategy.d.ts +105 -0
- package/dist/formatters/strategy.d.ts.map +1 -0
- package/dist/formatters/strategy.js +120 -0
- package/dist/formatters/strategy.js.map +1 -0
- package/dist/formatters/utils.d.ts +84 -0
- package/dist/formatters/utils.d.ts.map +1 -0
- package/dist/formatters/utils.js +129 -0
- package/dist/formatters/utils.js.map +1 -0
- package/dist/health-rate-limiter.d.ts +59 -0
- package/dist/health-rate-limiter.d.ts.map +1 -0
- package/dist/health-rate-limiter.js +159 -0
- package/dist/health-rate-limiter.js.map +1 -0
- package/dist/index.js +61 -100
- package/dist/index.js.map +1 -1
- package/dist/middleware/async-handler.d.ts +62 -0
- package/dist/middleware/async-handler.d.ts.map +1 -0
- package/dist/middleware/async-handler.js +58 -0
- package/dist/middleware/async-handler.js.map +1 -0
- package/dist/middleware/auth.d.ts +32 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +63 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/csrf-protection.d.ts +58 -0
- package/dist/middleware/csrf-protection.d.ts.map +1 -0
- package/dist/middleware/csrf-protection.js +123 -0
- package/dist/middleware/csrf-protection.js.map +1 -0
- package/dist/middleware/error-handler.d.ts +49 -0
- package/dist/middleware/error-handler.d.ts.map +1 -0
- package/dist/middleware/error-handler.js +90 -0
- package/dist/middleware/error-handler.js.map +1 -0
- package/dist/middleware/error-mapper.d.ts +44 -0
- package/dist/middleware/error-mapper.d.ts.map +1 -0
- package/dist/middleware/error-mapper.js +127 -0
- package/dist/middleware/error-mapper.js.map +1 -0
- package/dist/middleware/index.d.ts +13 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +13 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/request-id.d.ts +22 -0
- package/dist/middleware/request-id.d.ts.map +1 -0
- package/dist/middleware/request-id.js +31 -0
- package/dist/middleware/request-id.js.map +1 -0
- package/dist/middleware/types.d.ts +33 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +2 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/schemas/common.d.ts +205 -8
- package/dist/schemas/common.d.ts.map +1 -1
- package/dist/schemas/common.js +290 -17
- package/dist/schemas/common.js.map +1 -1
- package/dist/schemas/flux/compose.d.ts +307 -44
- package/dist/schemas/flux/compose.d.ts.map +1 -1
- package/dist/schemas/flux/compose.js +74 -48
- package/dist/schemas/flux/compose.js.map +1 -1
- package/dist/schemas/flux/container.d.ts +423 -56
- package/dist/schemas/flux/container.d.ts.map +1 -1
- package/dist/schemas/flux/container.js +83 -61
- package/dist/schemas/flux/container.js.map +1 -1
- package/dist/schemas/flux/docker.d.ts +254 -37
- package/dist/schemas/flux/docker.d.ts.map +1 -1
- package/dist/schemas/flux/docker.js +69 -39
- package/dist/schemas/flux/docker.js.map +1 -1
- package/dist/schemas/flux/host.d.ts +312 -29
- package/dist/schemas/flux/host.d.ts.map +1 -1
- package/dist/schemas/flux/host.js +74 -31
- package/dist/schemas/flux/host.js.map +1 -1
- package/dist/schemas/flux/index.d.ts +503 -11
- package/dist/schemas/flux/index.d.ts.map +1 -1
- package/dist/schemas/flux/index.js +34 -70
- package/dist/schemas/flux/index.js.map +1 -1
- package/dist/schemas/host-config.d.ts +76 -0
- package/dist/schemas/host-config.d.ts.map +1 -0
- package/dist/schemas/host-config.js +105 -0
- package/dist/schemas/host-config.js.map +1 -0
- package/dist/schemas/scout/index.d.ts +80 -23
- package/dist/schemas/scout/index.d.ts.map +1 -1
- package/dist/schemas/scout/index.js +26 -11
- package/dist/schemas/scout/index.js.map +1 -1
- package/dist/schemas/scout/logs.d.ts +17 -5
- package/dist/schemas/scout/logs.d.ts.map +1 -1
- package/dist/schemas/scout/logs.js +41 -31
- package/dist/schemas/scout/logs.js.map +1 -1
- package/dist/schemas/scout/simple.d.ts +126 -11
- package/dist/schemas/scout/simple.d.ts.map +1 -1
- package/dist/schemas/scout/simple.js +112 -57
- package/dist/schemas/scout/simple.js.map +1 -1
- package/dist/schemas/scout/zfs.d.ts +17 -5
- package/dist/schemas/scout/zfs.d.ts.map +1 -1
- package/dist/schemas/scout/zfs.js +34 -25
- package/dist/schemas/scout/zfs.js.map +1 -1
- package/dist/services/cache-layer.d.ts +160 -0
- package/dist/services/cache-layer.d.ts.map +1 -0
- package/dist/services/cache-layer.js +138 -0
- package/dist/services/cache-layer.js.map +1 -0
- package/dist/services/compose-cache.d.ts +75 -0
- package/dist/services/compose-cache.d.ts.map +1 -0
- package/dist/services/compose-cache.js +178 -0
- package/dist/services/compose-cache.js.map +1 -0
- package/dist/services/compose-discovery.d.ts +46 -0
- package/dist/services/compose-discovery.d.ts.map +1 -0
- package/dist/services/compose-discovery.js +219 -0
- package/dist/services/compose-discovery.js.map +1 -0
- package/dist/services/compose-project-lister.d.ts +27 -0
- package/dist/services/compose-project-lister.d.ts.map +1 -0
- package/dist/services/compose-project-lister.js +71 -0
- package/dist/services/compose-project-lister.js.map +1 -0
- package/dist/services/compose-scanner.d.ts +63 -0
- package/dist/services/compose-scanner.d.ts.map +1 -0
- package/dist/services/compose-scanner.js +253 -0
- package/dist/services/compose-scanner.js.map +1 -0
- package/dist/services/compose.d.ts +64 -28
- package/dist/services/compose.d.ts.map +1 -1
- package/dist/services/compose.js +220 -98
- package/dist/services/compose.js.map +1 -1
- package/dist/services/config-loader.d.ts +23 -0
- package/dist/services/config-loader.d.ts.map +1 -0
- package/dist/services/config-loader.js +124 -0
- package/dist/services/config-loader.js.map +1 -0
- package/dist/services/config-service.d.ts +38 -0
- package/dist/services/config-service.d.ts.map +1 -0
- package/dist/services/config-service.js +225 -0
- package/dist/services/config-service.js.map +1 -0
- package/dist/services/container-host-map-cache.d.ts +121 -0
- package/dist/services/container-host-map-cache.d.ts.map +1 -0
- package/dist/services/container-host-map-cache.js +188 -0
- package/dist/services/container-host-map-cache.js.map +1 -0
- package/dist/services/container.d.ts +194 -6
- package/dist/services/container.d.ts.map +1 -1
- package/dist/services/container.js +386 -11
- package/dist/services/container.js.map +1 -1
- package/dist/services/diagnostics.d.ts +57 -0
- package/dist/services/diagnostics.d.ts.map +1 -0
- package/dist/services/diagnostics.js +271 -0
- package/dist/services/diagnostics.js.map +1 -0
- package/dist/services/docker/container-service.d.ts +123 -0
- package/dist/services/docker/container-service.d.ts.map +1 -0
- package/dist/services/docker/container-service.js +347 -0
- package/dist/services/docker/container-service.js.map +1 -0
- package/dist/services/docker/image-service.d.ts +82 -0
- package/dist/services/docker/image-service.d.ts.map +1 -0
- package/dist/services/docker/image-service.js +193 -0
- package/dist/services/docker/image-service.js.map +1 -0
- package/dist/services/docker/index.d.ts +80 -0
- package/dist/services/docker/index.d.ts.map +1 -0
- package/dist/services/docker/index.js +103 -0
- package/dist/services/docker/index.js.map +1 -0
- package/dist/services/docker/network-service.d.ts +22 -0
- package/dist/services/docker/network-service.d.ts.map +1 -0
- package/dist/services/docker/network-service.js +43 -0
- package/dist/services/docker/network-service.js.map +1 -0
- package/dist/services/docker/system-service.d.ts +49 -0
- package/dist/services/docker/system-service.d.ts.map +1 -0
- package/dist/services/docker/system-service.js +215 -0
- package/dist/services/docker/system-service.js.map +1 -0
- package/dist/services/docker/utils/client-factory.d.ts +56 -0
- package/dist/services/docker/utils/client-factory.d.ts.map +1 -0
- package/dist/services/docker/utils/client-factory.js +139 -0
- package/dist/services/docker/utils/client-factory.js.map +1 -0
- package/dist/services/docker/utils/client-manager.d.ts +88 -0
- package/dist/services/docker/utils/client-manager.d.ts.map +1 -0
- package/dist/services/docker/utils/client-manager.js +124 -0
- package/dist/services/docker/utils/client-manager.js.map +1 -0
- package/dist/services/docker/utils/exec-handler.d.ts +94 -0
- package/dist/services/docker/utils/exec-handler.d.ts.map +1 -0
- package/dist/services/docker/utils/exec-handler.js +197 -0
- package/dist/services/docker/utils/exec-handler.js.map +1 -0
- package/dist/services/docker/utils/formatters.d.ts +13 -0
- package/dist/services/docker/utils/formatters.d.ts.map +1 -0
- package/dist/services/docker/utils/formatters.js +33 -0
- package/dist/services/docker/utils/formatters.js.map +1 -0
- package/dist/services/docker/utils/log-parser.d.ts +10 -0
- package/dist/services/docker/utils/log-parser.d.ts.map +1 -0
- package/dist/services/docker/utils/log-parser.js +48 -0
- package/dist/services/docker/utils/log-parser.js.map +1 -0
- package/dist/services/docker/utils/stats-calculator.d.ts +68 -0
- package/dist/services/docker/utils/stats-calculator.d.ts.map +1 -0
- package/dist/services/docker/utils/stats-calculator.js +61 -0
- package/dist/services/docker/utils/stats-calculator.js.map +1 -0
- package/dist/services/docker/volume-service.d.ts +22 -0
- package/dist/services/docker/volume-service.d.ts.map +1 -0
- package/dist/services/docker/volume-service.js +48 -0
- package/dist/services/docker/volume-service.js.map +1 -0
- package/dist/services/docker-interfaces.d.ts +283 -0
- package/dist/services/docker-interfaces.d.ts.map +1 -0
- package/dist/services/docker-interfaces.js +13 -0
- package/dist/services/docker-interfaces.js.map +1 -0
- package/dist/services/docker.d.ts +42 -5
- package/dist/services/docker.d.ts.map +1 -1
- package/dist/services/docker.js +335 -127
- package/dist/services/docker.js.map +1 -1
- package/dist/services/file-service.d.ts +6 -2
- package/dist/services/file-service.d.ts.map +1 -1
- package/dist/services/file-service.js +156 -52
- package/dist/services/file-service.js.map +1 -1
- package/dist/services/host-config-repository.d.ts +133 -0
- package/dist/services/host-config-repository.d.ts.map +1 -0
- package/dist/services/host-config-repository.js +323 -0
- package/dist/services/host-config-repository.js.map +1 -0
- package/dist/services/host-resolver.d.ts +49 -0
- package/dist/services/host-resolver.d.ts.map +1 -0
- package/dist/services/host-resolver.js +176 -0
- package/dist/services/host-resolver.js.map +1 -0
- package/dist/services/interfaces.d.ts +61 -194
- package/dist/services/interfaces.d.ts.map +1 -1
- package/dist/services/local-executor.d.ts +31 -0
- package/dist/services/local-executor.d.ts.map +1 -0
- package/dist/services/local-executor.js +71 -0
- package/dist/services/local-executor.js.map +1 -0
- package/dist/services/ssh-config-loader.d.ts +35 -0
- package/dist/services/ssh-config-loader.d.ts.map +1 -0
- package/dist/services/ssh-config-loader.js +218 -0
- package/dist/services/ssh-config-loader.js.map +1 -0
- package/dist/services/ssh-pool.d.ts +26 -1
- package/dist/services/ssh-pool.d.ts.map +1 -1
- package/dist/services/ssh-pool.js +166 -25
- package/dist/services/ssh-pool.js.map +1 -1
- package/dist/services/ssh-service.d.ts +3 -0
- package/dist/services/ssh-service.d.ts.map +1 -1
- package/dist/services/ssh-service.js +53 -31
- package/dist/services/ssh-service.js.map +1 -1
- package/dist/services/ssh.d.ts +2 -6
- package/dist/services/ssh.d.ts.map +1 -1
- package/dist/services/ssh.js +9 -40
- package/dist/services/ssh.js.map +1 -1
- package/dist/tools/definitions/flux.d.ts +13 -0
- package/dist/tools/definitions/flux.d.ts.map +1 -0
- package/dist/tools/definitions/flux.js +101 -0
- package/dist/tools/definitions/flux.js.map +1 -0
- package/dist/tools/definitions/index.d.ts +8 -0
- package/dist/tools/definitions/index.d.ts.map +1 -0
- package/dist/tools/definitions/index.js +8 -0
- package/dist/tools/definitions/index.js.map +1 -0
- package/dist/tools/definitions/scout.d.ts +13 -0
- package/dist/tools/definitions/scout.d.ts.map +1 -0
- package/dist/tools/definitions/scout.js +78 -0
- package/dist/tools/definitions/scout.js.map +1 -0
- package/dist/tools/flux.d.ts +16 -8
- package/dist/tools/flux.d.ts.map +1 -1
- package/dist/tools/flux.js +27 -66
- package/dist/tools/flux.js.map +1 -1
- package/dist/tools/handlers/base-handler.d.ts +172 -0
- package/dist/tools/handlers/base-handler.d.ts.map +1 -0
- package/dist/tools/handlers/base-handler.js +234 -0
- package/dist/tools/handlers/base-handler.js.map +1 -0
- package/dist/tools/handlers/compose-handlers.d.ts +108 -0
- package/dist/tools/handlers/compose-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/compose-handlers.js +293 -0
- package/dist/tools/handlers/compose-handlers.js.map +1 -0
- package/dist/tools/handlers/compose-utils.d.ts +35 -0
- package/dist/tools/handlers/compose-utils.d.ts.map +1 -0
- package/dist/tools/handlers/compose-utils.js +76 -0
- package/dist/tools/handlers/compose-utils.js.map +1 -0
- package/dist/tools/handlers/compose.d.ts +23 -0
- package/dist/tools/handlers/compose.d.ts.map +1 -0
- package/dist/tools/handlers/compose.js +125 -0
- package/dist/tools/handlers/compose.js.map +1 -0
- package/dist/tools/handlers/container.d.ts +23 -0
- package/dist/tools/handlers/container.d.ts.map +1 -0
- package/dist/tools/handlers/container.js +333 -0
- package/dist/tools/handlers/container.js.map +1 -0
- package/dist/tools/handlers/docker.d.ts +24 -0
- package/dist/tools/handlers/docker.d.ts.map +1 -0
- package/dist/tools/handlers/docker.js +155 -0
- package/dist/tools/handlers/docker.js.map +1 -0
- package/dist/tools/handlers/host.d.ts +23 -0
- package/dist/tools/handlers/host.d.ts.map +1 -0
- package/dist/tools/handlers/host.js +196 -0
- package/dist/tools/handlers/host.js.map +1 -0
- package/dist/tools/handlers/scout-logs.d.ts +24 -0
- package/dist/tools/handlers/scout-logs.d.ts.map +1 -0
- package/dist/tools/handlers/scout-logs.js +119 -0
- package/dist/tools/handlers/scout-logs.js.map +1 -0
- package/dist/tools/handlers/scout-simple.d.ts +23 -0
- package/dist/tools/handlers/scout-simple.d.ts.map +1 -0
- package/dist/tools/handlers/scout-simple.js +286 -0
- package/dist/tools/handlers/scout-simple.js.map +1 -0
- package/dist/tools/handlers/scout-zfs.d.ts +23 -0
- package/dist/tools/handlers/scout-zfs.d.ts.map +1 -0
- package/dist/tools/handlers/scout-zfs.js +82 -0
- package/dist/tools/handlers/scout-zfs.js.map +1 -0
- package/dist/tools/index.d.ts +32 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +41 -35
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +135 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +151 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/scout.d.ts +16 -8
- package/dist/tools/scout.d.ts.map +1 -1
- package/dist/tools/scout.js +36 -78
- package/dist/tools/scout.js.map +1 -1
- package/dist/types.d.ts +629 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/command-security.d.ts +82 -0
- package/dist/utils/command-security.d.ts.map +1 -0
- package/dist/utils/command-security.js +122 -0
- package/dist/utils/command-security.js.map +1 -0
- package/dist/utils/error-sanitization.d.ts +77 -0
- package/dist/utils/error-sanitization.d.ts.map +1 -0
- package/dist/utils/error-sanitization.js +107 -0
- package/dist/utils/error-sanitization.js.map +1 -0
- package/dist/utils/errors.d.ts +30 -6
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +91 -12
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/help-handler.d.ts +23 -0
- package/dist/utils/help-handler.d.ts.map +1 -0
- package/dist/utils/help-handler.js +21 -0
- package/dist/utils/help-handler.js.map +1 -0
- package/dist/utils/help.d.ts +1 -1
- package/dist/utils/help.d.ts.map +1 -1
- package/dist/utils/help.js +57 -16
- package/dist/utils/help.js.map +1 -1
- package/dist/utils/host-utils.d.ts +31 -0
- package/dist/utils/host-utils.d.ts.map +1 -0
- package/dist/utils/host-utils.js +80 -0
- package/dist/utils/host-utils.js.map +1 -0
- package/dist/utils/index.d.ts +8 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +8 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/init-detection.d.ts +36 -0
- package/dist/utils/init-detection.d.ts.map +1 -0
- package/dist/utils/init-detection.js +79 -0
- package/dist/utils/init-detection.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +32 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pagination.d.ts +20 -0
- package/dist/utils/pagination.d.ts.map +1 -0
- package/dist/utils/pagination.js +29 -0
- package/dist/utils/pagination.js.map +1 -0
- package/dist/utils/path-security.d.ts +132 -18
- package/dist/utils/path-security.d.ts.map +1 -1
- package/dist/utils/path-security.js +164 -35
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/sorting.d.ts +33 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/sorting.js +57 -0
- package/dist/utils/sorting.js.map +1 -0
- package/dist/utils/text-filters.d.ts +13 -0
- package/dist/utils/text-filters.d.ts.map +1 -0
- package/dist/utils/text-filters.js +18 -0
- package/dist/utils/text-filters.js.map +1 -0
- package/dist/utils/time.d.ts +11 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +13 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/validation.d.ts +25 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +56 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +45 -19
- package/dist/schemas/discriminator.d.ts +0 -20
- package/dist/schemas/discriminator.d.ts.map +0 -1
- package/dist/schemas/discriminator.js +0 -25
- package/dist/schemas/discriminator.js.map +0 -1
- package/dist/schemas/unified.d.ts +0 -674
- package/dist/schemas/unified.d.ts.map +0 -1
- package/dist/schemas/unified.js +0 -453
- package/dist/schemas/unified.js.map +0 -1
- package/dist/tools/unified.d.ts +0 -7
- package/dist/tools/unified.d.ts.map +0 -1
- package/dist/tools/unified.js +0 -827
- package/dist/tools/unified.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format bytes to human readable
|
|
3
|
+
*/
|
|
4
|
+
export declare function formatBytes(bytes: number): string;
|
|
5
|
+
/**
|
|
6
|
+
* Format uptime from created timestamp
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatUptime(created: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Format Docker image ID (truncate sha256: prefix and limit to 12 chars)
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatImageId(id: string): string;
|
|
13
|
+
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../../src/services/docker/utils/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGhD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format bytes to human readable
|
|
3
|
+
*/
|
|
4
|
+
export function formatBytes(bytes) {
|
|
5
|
+
if (bytes === 0)
|
|
6
|
+
return "0 B";
|
|
7
|
+
const k = 1024;
|
|
8
|
+
const sizes = ["B", "KB", "MB", "GB", "TB"];
|
|
9
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
10
|
+
return `${(bytes / k ** i).toFixed(1)} ${sizes[i]}`;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Format uptime from created timestamp
|
|
14
|
+
*/
|
|
15
|
+
export function formatUptime(created) {
|
|
16
|
+
const diff = Date.now() - new Date(created).getTime();
|
|
17
|
+
const days = Math.floor(diff / 86400000);
|
|
18
|
+
const hours = Math.floor((diff % 86400000) / 3600000);
|
|
19
|
+
const minutes = Math.floor((diff % 3600000) / 60000);
|
|
20
|
+
if (days > 0)
|
|
21
|
+
return `${days}d ${hours}h`;
|
|
22
|
+
if (hours > 0)
|
|
23
|
+
return `${hours}h ${minutes}m`;
|
|
24
|
+
return `${minutes}m`;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Format Docker image ID (truncate sha256: prefix and limit to 12 chars)
|
|
28
|
+
*/
|
|
29
|
+
export function formatImageId(id) {
|
|
30
|
+
const cleaned = id.replace(/^sha256:/, "");
|
|
31
|
+
return cleaned.slice(0, 12) || cleaned;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=formatters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../../src/services/docker/utils/formatters.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAErD,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;IAC9C,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LogEntry } from "../../../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse time specification (absolute or relative) - pure helper function
|
|
4
|
+
*/
|
|
5
|
+
export declare function parseTimeSpec(spec: string): number;
|
|
6
|
+
/**
|
|
7
|
+
* Parse Docker log output into structured entries - pure helper function
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseDockerLogs(raw: string): LogEntry[];
|
|
10
|
+
//# sourceMappingURL=log-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-parser.d.ts","sourceRoot":"","sources":["../../../../src/services/docker/utils/log-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBlD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuBvD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { getCurrentTimestamp } from "../../../utils/time.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse time specification (absolute or relative) - pure helper function
|
|
4
|
+
*/
|
|
5
|
+
export function parseTimeSpec(spec) {
|
|
6
|
+
// Check for relative time like "1h", "30m", "2d"
|
|
7
|
+
const relativeMatch = spec.match(/^(\d+)([smhd])$/);
|
|
8
|
+
if (relativeMatch) {
|
|
9
|
+
const value = Number.parseInt(relativeMatch[1], 10);
|
|
10
|
+
const unit = relativeMatch[2];
|
|
11
|
+
const multipliers = {
|
|
12
|
+
s: 1,
|
|
13
|
+
m: 60,
|
|
14
|
+
h: 3600,
|
|
15
|
+
d: 86400,
|
|
16
|
+
};
|
|
17
|
+
return Math.floor(Date.now() / 1000) - value * multipliers[unit];
|
|
18
|
+
}
|
|
19
|
+
// Absolute timestamp
|
|
20
|
+
return Math.floor(new Date(spec).getTime() / 1000);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parse Docker log output into structured entries - pure helper function
|
|
24
|
+
*/
|
|
25
|
+
export function parseDockerLogs(raw) {
|
|
26
|
+
const lines = raw.split("\n").filter((l) => l.trim());
|
|
27
|
+
const entries = [];
|
|
28
|
+
for (const line of lines) {
|
|
29
|
+
// Docker log format: timestamp message
|
|
30
|
+
const match = line.match(/^(\d{4}-\d{2}-\d{2}T[\d:.]+Z)\s+(.*)$/);
|
|
31
|
+
if (match) {
|
|
32
|
+
entries.push({
|
|
33
|
+
timestamp: match[1],
|
|
34
|
+
stream: "stdout", // Default, actual stream info requires demuxing
|
|
35
|
+
message: match[2],
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
else if (line.trim()) {
|
|
39
|
+
entries.push({
|
|
40
|
+
timestamp: getCurrentTimestamp(),
|
|
41
|
+
stream: "stdout",
|
|
42
|
+
message: line,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return entries;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=log-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-parser.js","sourceRoot":"","sources":["../../../../src/services/docker/utils/log-parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,iDAAiD;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAA2B;YAC1C,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,IAAI;YACP,CAAC,EAAE,KAAK;SACT,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAe,EAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,MAAM,EAAE,QAAQ,EAAE,gDAAgD;gBAClE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,mBAAmB,EAAE;gBAChC,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate image statistics from Docker disk usage data.
|
|
3
|
+
* Processes image data to compute totals, active count, sizes, and reclaimable space.
|
|
4
|
+
*
|
|
5
|
+
* @param images - Array of image info from Docker df
|
|
6
|
+
* @returns Statistics with total, active, size, and reclaimable bytes
|
|
7
|
+
*/
|
|
8
|
+
export declare function calculateImageStats(images: Array<{
|
|
9
|
+
Size?: number;
|
|
10
|
+
SharedSize?: number;
|
|
11
|
+
Containers?: number;
|
|
12
|
+
}>): {
|
|
13
|
+
total: number;
|
|
14
|
+
active: number;
|
|
15
|
+
size: number;
|
|
16
|
+
reclaimable: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Calculate container statistics from Docker disk usage data.
|
|
20
|
+
* Processes container data to compute totals, running count, and sizes.
|
|
21
|
+
*
|
|
22
|
+
* @param containers - Array of container info from Docker df
|
|
23
|
+
* @returns Statistics with total, running, size, and rootfsSize in bytes
|
|
24
|
+
*/
|
|
25
|
+
export declare function calculateContainerStats(containers: Array<{
|
|
26
|
+
SizeRw?: number;
|
|
27
|
+
SizeRootFs?: number;
|
|
28
|
+
State?: string;
|
|
29
|
+
}>): {
|
|
30
|
+
total: number;
|
|
31
|
+
running: number;
|
|
32
|
+
size: number;
|
|
33
|
+
rootfsSize: number;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Calculate volume statistics from Docker disk usage data.
|
|
37
|
+
* Processes volume data to compute totals, active count, sizes, and reclaimable space.
|
|
38
|
+
*
|
|
39
|
+
* @param volumes - Array of volume info from Docker df
|
|
40
|
+
* @returns Statistics with total, active, size, and reclaimable bytes
|
|
41
|
+
*/
|
|
42
|
+
export declare function calculateVolumeStats(volumes: Array<{
|
|
43
|
+
UsageData?: {
|
|
44
|
+
Size?: number;
|
|
45
|
+
RefCount?: number;
|
|
46
|
+
};
|
|
47
|
+
}>): {
|
|
48
|
+
total: number;
|
|
49
|
+
active: number;
|
|
50
|
+
size: number;
|
|
51
|
+
reclaimable: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Calculate build cache statistics from Docker disk usage data.
|
|
55
|
+
* Processes build cache data to compute totals, sizes, and reclaimable space.
|
|
56
|
+
*
|
|
57
|
+
* @param buildCache - Array of build cache info from Docker df
|
|
58
|
+
* @returns Statistics with total, size, and reclaimable bytes
|
|
59
|
+
*/
|
|
60
|
+
export declare function calculateBuildCacheStats(buildCache: Array<{
|
|
61
|
+
Size?: number;
|
|
62
|
+
InUse?: boolean;
|
|
63
|
+
}>): {
|
|
64
|
+
total: number;
|
|
65
|
+
size: number;
|
|
66
|
+
reclaimable: number;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=stats-calculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats-calculator.d.ts","sourceRoot":"","sources":["../../../../src/services/docker/utils/stats-calculator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACzE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,KAAK,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1E;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAOA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GACnE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate image statistics from Docker disk usage data.
|
|
3
|
+
* Processes image data to compute totals, active count, sizes, and reclaimable space.
|
|
4
|
+
*
|
|
5
|
+
* @param images - Array of image info from Docker df
|
|
6
|
+
* @returns Statistics with total, active, size, and reclaimable bytes
|
|
7
|
+
*/
|
|
8
|
+
export function calculateImageStats(images) {
|
|
9
|
+
const total = images.length;
|
|
10
|
+
const size = images.reduce((sum, i) => sum + (i.Size || 0), 0);
|
|
11
|
+
const shared = images.reduce((sum, i) => sum + (i.SharedSize || 0), 0);
|
|
12
|
+
const active = images.filter((i) => i.Containers && i.Containers > 0).length;
|
|
13
|
+
const reclaimable = size - shared;
|
|
14
|
+
return { total, active, size, reclaimable };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Calculate container statistics from Docker disk usage data.
|
|
18
|
+
* Processes container data to compute totals, running count, and sizes.
|
|
19
|
+
*
|
|
20
|
+
* @param containers - Array of container info from Docker df
|
|
21
|
+
* @returns Statistics with total, running, size, and rootfsSize in bytes
|
|
22
|
+
*/
|
|
23
|
+
export function calculateContainerStats(containers) {
|
|
24
|
+
const total = containers.length;
|
|
25
|
+
const size = containers.reduce((sum, c) => sum + (c.SizeRw || 0), 0);
|
|
26
|
+
const rootfsSize = containers.reduce((sum, c) => sum + (c.SizeRootFs || 0), 0);
|
|
27
|
+
const running = containers.filter((c) => c.State === "running").length;
|
|
28
|
+
return { total, running, size, rootfsSize };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Calculate volume statistics from Docker disk usage data.
|
|
32
|
+
* Processes volume data to compute totals, active count, sizes, and reclaimable space.
|
|
33
|
+
*
|
|
34
|
+
* @param volumes - Array of volume info from Docker df
|
|
35
|
+
* @returns Statistics with total, active, size, and reclaimable bytes
|
|
36
|
+
*/
|
|
37
|
+
export function calculateVolumeStats(volumes) {
|
|
38
|
+
const total = volumes.length;
|
|
39
|
+
const size = volumes.reduce((sum, v) => sum + (v.UsageData?.Size || 0), 0);
|
|
40
|
+
const active = volumes.filter((v) => v.UsageData?.RefCount && v.UsageData.RefCount > 0).length;
|
|
41
|
+
const reclaimable = volumes
|
|
42
|
+
.filter((v) => !v.UsageData?.RefCount)
|
|
43
|
+
.reduce((sum, v) => sum + (v.UsageData?.Size || 0), 0);
|
|
44
|
+
return { total, active, size, reclaimable };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Calculate build cache statistics from Docker disk usage data.
|
|
48
|
+
* Processes build cache data to compute totals, sizes, and reclaimable space.
|
|
49
|
+
*
|
|
50
|
+
* @param buildCache - Array of build cache info from Docker df
|
|
51
|
+
* @returns Statistics with total, size, and reclaimable bytes
|
|
52
|
+
*/
|
|
53
|
+
export function calculateBuildCacheStats(buildCache) {
|
|
54
|
+
const total = buildCache.length;
|
|
55
|
+
const size = buildCache.reduce((sum, b) => sum + (b.Size || 0), 0);
|
|
56
|
+
const reclaimable = buildCache
|
|
57
|
+
.filter((b) => !b.InUse)
|
|
58
|
+
.reduce((sum, b) => sum + (b.Size || 0), 0);
|
|
59
|
+
return { total, size, reclaimable };
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=stats-calculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats-calculator.js","sourceRoot":"","sources":["../../../../src/services/docker/utils/stats-calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { DockerVolumeInfo, HostConfig } from "../../types.js";
|
|
2
|
+
import type { ClientManager } from "./utils/client-manager.js";
|
|
3
|
+
/**
|
|
4
|
+
* Service for Docker volume operations.
|
|
5
|
+
* Handles volume listing and management.
|
|
6
|
+
*/
|
|
7
|
+
export declare class VolumeService {
|
|
8
|
+
private clientManager;
|
|
9
|
+
constructor(clientManager: ClientManager);
|
|
10
|
+
/**
|
|
11
|
+
* List Docker volumes across multiple hosts in parallel.
|
|
12
|
+
*
|
|
13
|
+
* @param hosts - List of Docker hosts to query
|
|
14
|
+
* @returns Promise resolving to array of volume information
|
|
15
|
+
*/
|
|
16
|
+
listVolumes(hosts: HostConfig[]): Promise<DockerVolumeInfo[]>;
|
|
17
|
+
/**
|
|
18
|
+
* List Docker volumes from a single host (internal helper).
|
|
19
|
+
*/
|
|
20
|
+
private listVolumesOnHost;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=volume-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume-service.d.ts","sourceRoot":"","sources":["../../../src/services/docker/volume-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAO/D;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWnE;;OAEG;YACW,iBAAiB;CAuBhC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { narrowToDefaultHost } from "../../utils/host-utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Service for Docker volume operations.
|
|
4
|
+
* Handles volume listing and management.
|
|
5
|
+
*/
|
|
6
|
+
export class VolumeService {
|
|
7
|
+
clientManager;
|
|
8
|
+
constructor(clientManager) {
|
|
9
|
+
this.clientManager = clientManager;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* List Docker volumes across multiple hosts in parallel.
|
|
13
|
+
*
|
|
14
|
+
* @param hosts - List of Docker hosts to query
|
|
15
|
+
* @returns Promise resolving to array of volume information
|
|
16
|
+
*/
|
|
17
|
+
async listVolumes(hosts) {
|
|
18
|
+
const targetHosts = narrowToDefaultHost(hosts);
|
|
19
|
+
const results = await Promise.allSettled(targetHosts.map((host) => this.listVolumesOnHost(host)));
|
|
20
|
+
return results
|
|
21
|
+
.filter((r) => r.status === "fulfilled")
|
|
22
|
+
.flatMap((r) => r.value);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List Docker volumes from a single host (internal helper).
|
|
26
|
+
*/
|
|
27
|
+
async listVolumesOnHost(host) {
|
|
28
|
+
const docker = await this.clientManager.getClient(host);
|
|
29
|
+
const result = await docker.listVolumes();
|
|
30
|
+
const volumes = result?.Volumes ?? [];
|
|
31
|
+
return volumes.map((volume) => {
|
|
32
|
+
// Cast once to document the expected shape with CreatedAt
|
|
33
|
+
const volumeWithCreatedAt = volume;
|
|
34
|
+
return {
|
|
35
|
+
name: volumeWithCreatedAt.Name,
|
|
36
|
+
driver: volumeWithCreatedAt.Driver,
|
|
37
|
+
scope: volumeWithCreatedAt.Scope,
|
|
38
|
+
mountpoint: volumeWithCreatedAt.Mountpoint,
|
|
39
|
+
createdAt: typeof volumeWithCreatedAt.CreatedAt === "string"
|
|
40
|
+
? volumeWithCreatedAt.CreatedAt
|
|
41
|
+
: undefined,
|
|
42
|
+
labels: volumeWithCreatedAt.Labels ?? undefined,
|
|
43
|
+
hostName: host.name,
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=volume-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volume-service.js","sourceRoot":"","sources":["../../../src/services/docker/volume-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAQhE;;;GAGG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAmB;QACnC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CACxD,CAAC;QAEF,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,CAAC,EAAmD,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;aACxF,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,IAAgB;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QAEtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5B,0DAA0D;YAC1D,MAAM,mBAAmB,GAAG,MAA6B,CAAC;YAE1D,OAAO;gBACL,IAAI,EAAE,mBAAmB,CAAC,IAAI;gBAC9B,MAAM,EAAE,mBAAmB,CAAC,MAAM;gBAClC,KAAK,EAAE,mBAAmB,CAAC,KAAK;gBAChC,UAAU,EAAE,mBAAmB,CAAC,UAAU;gBAC1C,SAAS,EACP,OAAO,mBAAmB,CAAC,SAAS,KAAK,QAAQ;oBAC/C,CAAC,CAAC,mBAAmB,CAAC,SAAS;oBAC/B,CAAC,CAAC,SAAS;gBACf,MAAM,EAAE,mBAAmB,CAAC,MAAM,IAAI,SAAS;gBAC/C,QAAQ,EAAE,IAAI,CAAC,IAAI;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Segregated Docker service interfaces following Interface Segregation Principle (ISP).
|
|
3
|
+
* These interfaces provide cohesive, focused Docker contracts.
|
|
4
|
+
*
|
|
5
|
+
* Each interface represents a specific area of Docker functionality:
|
|
6
|
+
* - IContainerOperations: Container lifecycle and inspection
|
|
7
|
+
* - IImageOperations: Image management and builds
|
|
8
|
+
* - IResourceOperations: Networks, volumes, and resource cleanup
|
|
9
|
+
* - IDockerSystemInfo: System information and status
|
|
10
|
+
* - IDockerClientProvider: Low-level client access (internal use)
|
|
11
|
+
*/
|
|
12
|
+
import type Docker from "dockerode";
|
|
13
|
+
import type { ContainerExecResult, ContainerInfo, ContainerProcessList, ContainerStats, DockerDiskUsage, DockerNetworkInfo, DockerRawContainerInfo, DockerRawContainerInspectInfo, DockerSystemInfo, DockerVolumeInfo, HostConfig, HostStatus, ImageInfo, ListImagesOptions, LogEntry, PruneResult } from "../types.js";
|
|
14
|
+
/**
|
|
15
|
+
* Container lifecycle operations and inspection.
|
|
16
|
+
* Provides methods for starting, stopping, monitoring, and interacting with containers.
|
|
17
|
+
*/
|
|
18
|
+
export interface IContainerOperations {
|
|
19
|
+
/**
|
|
20
|
+
* List containers across multiple hosts with optional filtering and pagination.
|
|
21
|
+
*
|
|
22
|
+
* @param hosts - Array of host configurations to query
|
|
23
|
+
* @param options - Filtering and pagination options
|
|
24
|
+
* @param options.state - Filter by container state (all, running, stopped, paused)
|
|
25
|
+
* @param options.nameFilter - Filter by container name (partial match)
|
|
26
|
+
* @param options.imageFilter - Filter by image name (partial match)
|
|
27
|
+
* @param options.labelFilter - Filter by label (format: "key=value")
|
|
28
|
+
* @param options.limit - Maximum number of containers to return
|
|
29
|
+
* @param options.offset - Number of containers to skip before returning results
|
|
30
|
+
* @returns Array of containers with their details and host information
|
|
31
|
+
*/
|
|
32
|
+
listContainers(hosts: HostConfig[], options?: {
|
|
33
|
+
state?: "all" | "running" | "stopped" | "paused";
|
|
34
|
+
nameFilter?: string;
|
|
35
|
+
imageFilter?: string;
|
|
36
|
+
labelFilter?: string;
|
|
37
|
+
limit?: number;
|
|
38
|
+
offset?: number;
|
|
39
|
+
}): Promise<ContainerInfo[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Perform a lifecycle action on a container.
|
|
42
|
+
*
|
|
43
|
+
* @param containerId - Container ID or name
|
|
44
|
+
* @param action - Action to perform (start, stop, restart, pause, unpause)
|
|
45
|
+
* @param host - Host configuration where container is located
|
|
46
|
+
*/
|
|
47
|
+
containerAction(containerId: string, action: "start" | "stop" | "restart" | "pause" | "unpause", host: HostConfig): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Retrieve logs from a container.
|
|
50
|
+
*
|
|
51
|
+
* @param containerId - Container ID or name
|
|
52
|
+
* @param host - Host configuration where container is located
|
|
53
|
+
* @param options - Log retrieval options
|
|
54
|
+
* @param options.lines - Number of lines to retrieve (default: 100)
|
|
55
|
+
* @param options.since - Show logs since timestamp or duration (e.g., "2023-01-01T00:00:00Z" or "10m")
|
|
56
|
+
* @param options.until - Show logs until timestamp or duration
|
|
57
|
+
* @param options.stream - Stream to retrieve (all, stdout, stderr)
|
|
58
|
+
* @returns Array of log entries with timestamps and content
|
|
59
|
+
*/
|
|
60
|
+
getContainerLogs(containerId: string, host: HostConfig, options?: {
|
|
61
|
+
lines?: number;
|
|
62
|
+
since?: string;
|
|
63
|
+
until?: string;
|
|
64
|
+
stream?: "all" | "stdout" | "stderr";
|
|
65
|
+
}): Promise<LogEntry[]>;
|
|
66
|
+
/**
|
|
67
|
+
* Get resource usage statistics for a container.
|
|
68
|
+
*
|
|
69
|
+
* @param containerId - Container ID or name
|
|
70
|
+
* @param host - Host configuration where container is located
|
|
71
|
+
* @returns Resource statistics including CPU, memory, network, and I/O
|
|
72
|
+
*/
|
|
73
|
+
getContainerStats(containerId: string, host: HostConfig): Promise<ContainerStats>;
|
|
74
|
+
/**
|
|
75
|
+
* Execute a command inside a container.
|
|
76
|
+
*
|
|
77
|
+
* @param containerId - Container ID or name
|
|
78
|
+
* @param host - Host configuration where container is located
|
|
79
|
+
* @param options - Exec options
|
|
80
|
+
* @param options.command - Command to execute (allowlisted)
|
|
81
|
+
* @param options.user - Run as specific user
|
|
82
|
+
* @param options.workdir - Working directory
|
|
83
|
+
* @param options.timeout - Execution timeout in ms (default 30s, max 5min)
|
|
84
|
+
* @returns Exec result with stdout, stderr, and exit code
|
|
85
|
+
* @throws Error if timeout exceeded or buffer limit exceeded
|
|
86
|
+
*/
|
|
87
|
+
execContainer(containerId: string, host: HostConfig, options: {
|
|
88
|
+
command: string;
|
|
89
|
+
user?: string;
|
|
90
|
+
workdir?: string;
|
|
91
|
+
timeout?: number;
|
|
92
|
+
}): Promise<ContainerExecResult>;
|
|
93
|
+
/**
|
|
94
|
+
* Get running processes inside a container.
|
|
95
|
+
*
|
|
96
|
+
* @param containerId - Container ID or name
|
|
97
|
+
* @param host - Host configuration where container is located
|
|
98
|
+
* @returns Process list with titles and rows
|
|
99
|
+
*/
|
|
100
|
+
getContainerProcesses(containerId: string, host: HostConfig): Promise<ContainerProcessList>;
|
|
101
|
+
/**
|
|
102
|
+
* Get detailed information about a container.
|
|
103
|
+
*
|
|
104
|
+
* @param containerId - Container ID or name
|
|
105
|
+
* @param host - Host configuration where container is located
|
|
106
|
+
* @returns Full container inspection data from Docker API
|
|
107
|
+
*/
|
|
108
|
+
inspectContainer(containerId: string, host: HostConfig): Promise<DockerRawContainerInspectInfo>;
|
|
109
|
+
/**
|
|
110
|
+
* Find which host a container is running on.
|
|
111
|
+
* Searches across all provided hosts.
|
|
112
|
+
*
|
|
113
|
+
* @param containerId - Container ID or name to find
|
|
114
|
+
* @param hosts - Array of host configurations to search
|
|
115
|
+
* @returns Host config and container info if found, null otherwise
|
|
116
|
+
*/
|
|
117
|
+
findContainerHost(containerId: string, hosts: HostConfig[]): Promise<{
|
|
118
|
+
host: HostConfig;
|
|
119
|
+
container: DockerRawContainerInfo;
|
|
120
|
+
} | null>;
|
|
121
|
+
/**
|
|
122
|
+
* Recreate a container with the same configuration.
|
|
123
|
+
* Optionally pulls the latest image before recreating.
|
|
124
|
+
*
|
|
125
|
+
* @param containerId - Container ID or name to recreate
|
|
126
|
+
* @param host - Host configuration where container is located
|
|
127
|
+
* @param options - Recreate options
|
|
128
|
+
* @param options.pull - Whether to pull latest image before recreating
|
|
129
|
+
* @returns Operation status and new container ID
|
|
130
|
+
*/
|
|
131
|
+
recreateContainer(containerId: string, host: HostConfig, options?: {
|
|
132
|
+
pull?: boolean;
|
|
133
|
+
}): Promise<{
|
|
134
|
+
status: string;
|
|
135
|
+
containerId: string;
|
|
136
|
+
}>;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Image management operations.
|
|
140
|
+
* Provides methods for listing, pulling, removing, and building Docker images.
|
|
141
|
+
*/
|
|
142
|
+
export interface IImageOperations {
|
|
143
|
+
/**
|
|
144
|
+
* List Docker images across multiple hosts with optional filtering.
|
|
145
|
+
*
|
|
146
|
+
* @param hosts - Array of host configurations to query
|
|
147
|
+
* @param options - Filtering options (dangling, reference, etc.)
|
|
148
|
+
* @returns Array of images with their details and host information
|
|
149
|
+
*/
|
|
150
|
+
listImages(hosts: HostConfig[], options?: ListImagesOptions): Promise<ImageInfo[]>;
|
|
151
|
+
/**
|
|
152
|
+
* Pull a Docker image from a registry.
|
|
153
|
+
*
|
|
154
|
+
* @param imageName - Image name with optional tag (e.g., "nginx:latest")
|
|
155
|
+
* @param host - Host configuration where image should be pulled
|
|
156
|
+
* @returns Operation status
|
|
157
|
+
*/
|
|
158
|
+
pullImage(imageName: string, host: HostConfig): Promise<{
|
|
159
|
+
status: string;
|
|
160
|
+
}>;
|
|
161
|
+
/**
|
|
162
|
+
* Remove a Docker image.
|
|
163
|
+
*
|
|
164
|
+
* @param imageId - Image ID or name to remove
|
|
165
|
+
* @param host - Host configuration where image is located
|
|
166
|
+
* @param options - Removal options
|
|
167
|
+
* @param options.force - Force removal even if image is in use
|
|
168
|
+
* @returns Operation status
|
|
169
|
+
*/
|
|
170
|
+
removeImage(imageId: string, host: HostConfig, options?: {
|
|
171
|
+
force?: boolean;
|
|
172
|
+
}): Promise<{
|
|
173
|
+
status: string;
|
|
174
|
+
}>;
|
|
175
|
+
/**
|
|
176
|
+
* Build a Docker image from a Dockerfile.
|
|
177
|
+
*
|
|
178
|
+
* @param host - Host configuration where build should occur
|
|
179
|
+
* @param options - Build options
|
|
180
|
+
* @param options.context - Path to build context directory
|
|
181
|
+
* @param options.tag - Tag for the built image
|
|
182
|
+
* @param options.dockerfile - Path to Dockerfile (relative to context, default: "Dockerfile")
|
|
183
|
+
* @param options.noCache - Disable build cache
|
|
184
|
+
* @returns Operation status
|
|
185
|
+
*/
|
|
186
|
+
buildImage(host: HostConfig, options: {
|
|
187
|
+
context: string;
|
|
188
|
+
tag: string;
|
|
189
|
+
dockerfile?: string;
|
|
190
|
+
noCache?: boolean;
|
|
191
|
+
}): Promise<{
|
|
192
|
+
status: string;
|
|
193
|
+
}>;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Docker resource operations (networks, volumes, cleanup).
|
|
197
|
+
* Provides methods for managing Docker resources and disk usage.
|
|
198
|
+
*/
|
|
199
|
+
export interface IResourceOperations {
|
|
200
|
+
/**
|
|
201
|
+
* List Docker networks across multiple hosts.
|
|
202
|
+
*
|
|
203
|
+
* @param hosts - Array of host configurations to query
|
|
204
|
+
* @returns Array of network details with host information
|
|
205
|
+
*/
|
|
206
|
+
listNetworks(hosts: HostConfig[]): Promise<DockerNetworkInfo[]>;
|
|
207
|
+
/**
|
|
208
|
+
* List Docker volumes across multiple hosts.
|
|
209
|
+
*
|
|
210
|
+
* @param hosts - Array of host configurations to query
|
|
211
|
+
* @returns Array of volume details with host information
|
|
212
|
+
*/
|
|
213
|
+
listVolumes(hosts: HostConfig[]): Promise<DockerVolumeInfo[]>;
|
|
214
|
+
/**
|
|
215
|
+
* Get Docker disk usage information.
|
|
216
|
+
*
|
|
217
|
+
* @param host - Host configuration to query
|
|
218
|
+
* @returns Disk usage breakdown for images, containers, volumes, and build cache
|
|
219
|
+
*/
|
|
220
|
+
getDockerDiskUsage(host: HostConfig): Promise<DockerDiskUsage>;
|
|
221
|
+
/**
|
|
222
|
+
* Remove unused Docker resources (prune operation).
|
|
223
|
+
* This is a destructive operation — callers must pass `force: true` to confirm.
|
|
224
|
+
*
|
|
225
|
+
* @param host - Host configuration where pruning should occur
|
|
226
|
+
* @param target - Resource type to prune (containers, images, volumes, networks, buildcache, all)
|
|
227
|
+
* @param options - Options for the prune operation
|
|
228
|
+
* @param options.force - Must be true to confirm destructive operation
|
|
229
|
+
* @returns Array of prune results showing what was removed and space reclaimed
|
|
230
|
+
* @throws Error if force is not true
|
|
231
|
+
*/
|
|
232
|
+
pruneDocker(host: HostConfig, target: "containers" | "images" | "volumes" | "networks" | "buildcache" | "all", options?: {
|
|
233
|
+
force?: boolean;
|
|
234
|
+
}): Promise<PruneResult[]>;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Docker system information and status.
|
|
238
|
+
* Provides methods for checking Docker daemon status and configuration.
|
|
239
|
+
*/
|
|
240
|
+
export interface IDockerSystemInfo {
|
|
241
|
+
/**
|
|
242
|
+
* Get Docker daemon system information.
|
|
243
|
+
*
|
|
244
|
+
* @param host - Host configuration to query
|
|
245
|
+
* @returns System info including version, OS, architecture, and resource limits
|
|
246
|
+
*/
|
|
247
|
+
getDockerInfo(host: HostConfig): Promise<DockerSystemInfo>;
|
|
248
|
+
/**
|
|
249
|
+
* Get Docker daemon status and version info for multiple hosts.
|
|
250
|
+
*
|
|
251
|
+
* @param hosts - Array of host configurations to check
|
|
252
|
+
* @returns Array of host statuses with daemon info and reachability
|
|
253
|
+
*/
|
|
254
|
+
getHostStatus(hosts: HostConfig[]): Promise<HostStatus[]>;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Low-level Docker client provider (internal use).
|
|
258
|
+
* Provides access to raw dockerode clients for advanced operations.
|
|
259
|
+
*
|
|
260
|
+
* @internal This interface is primarily for internal service implementations.
|
|
261
|
+
* Most consumers should use the higher-level operation interfaces instead.
|
|
262
|
+
*/
|
|
263
|
+
export interface IDockerClientProvider {
|
|
264
|
+
/**
|
|
265
|
+
* Get a Docker client instance for the specified host configuration.
|
|
266
|
+
* Clients are cached per host to reuse connections.
|
|
267
|
+
*
|
|
268
|
+
* @param config - Host configuration containing connection details
|
|
269
|
+
* @returns Docker client instance (dockerode)
|
|
270
|
+
*/
|
|
271
|
+
getDockerClient(config: HostConfig): Promise<Docker>;
|
|
272
|
+
/**
|
|
273
|
+
* Clear all cached Docker client connections.
|
|
274
|
+
* Useful for cleanup during shutdown or when connections need to be reset.
|
|
275
|
+
*/
|
|
276
|
+
clearClients(): void;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Composed Docker contract for components that need full Docker capabilities.
|
|
280
|
+
* This is a type composition, not a monolithic interface declaration.
|
|
281
|
+
*/
|
|
282
|
+
export type DockerOperations = IContainerOperations & IImageOperations & IResourceOperations & IDockerSystemInfo & IDockerClientProvider;
|
|
283
|
+
//# sourceMappingURL=docker-interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-interfaces.d.ts","sourceRoot":"","sources":["../../src/services/docker-interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Segregated Docker service interfaces following Interface Segregation Principle (ISP).
|
|
3
|
+
* These interfaces provide cohesive, focused Docker contracts.
|
|
4
|
+
*
|
|
5
|
+
* Each interface represents a specific area of Docker functionality:
|
|
6
|
+
* - IContainerOperations: Container lifecycle and inspection
|
|
7
|
+
* - IImageOperations: Image management and builds
|
|
8
|
+
* - IResourceOperations: Networks, volumes, and resource cleanup
|
|
9
|
+
* - IDockerSystemInfo: System information and status
|
|
10
|
+
* - IDockerClientProvider: Low-level client access (internal use)
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=docker-interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-interfaces.js","sourceRoot":"","sources":["../../src/services/docker-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|