claude-code-plus-plus 0.1.1 → 0.2.1
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/dist/app.d.ts +52 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +318 -0
- package/dist/app.js.map +1 -0
- package/dist/cli/commands/index.d.ts +5 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +9 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/start.d.ts +16 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +23 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +22 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parser.d.ts +31 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +117 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/validators.d.ts +46 -0
- package/dist/cli/validators.d.ts.map +1 -0
- package/dist/cli/validators.js +159 -0
- package/dist/cli/validators.js.map +1 -0
- package/dist/config/defaults.d.ts +14 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +32 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +32 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +38 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +116 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/paths.d.ts +47 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +95 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/schema.d.ts +15 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +36 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/index.d.ts +13 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +13 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/session/index.d.ts +7 -0
- package/dist/core/session/index.d.ts.map +1 -0
- package/dist/core/session/index.js +6 -0
- package/dist/core/session/index.js.map +1 -0
- package/dist/core/session/session-manager.d.ts +46 -0
- package/dist/core/session/session-manager.d.ts.map +1 -0
- package/dist/core/session/session-manager.js +245 -0
- package/dist/core/session/session-manager.js.map +1 -0
- package/dist/core/session/session.d.ts +44 -0
- package/dist/core/session/session.d.ts.map +1 -0
- package/dist/core/session/session.js +78 -0
- package/dist/core/session/session.js.map +1 -0
- package/dist/core/terminal/index.d.ts +7 -0
- package/dist/core/terminal/index.d.ts.map +1 -0
- package/dist/core/terminal/index.js +6 -0
- package/dist/core/terminal/index.js.map +1 -0
- package/dist/core/terminal/terminal-manager.d.ts +36 -0
- package/dist/core/terminal/terminal-manager.d.ts.map +1 -0
- package/dist/core/terminal/terminal-manager.js +182 -0
- package/dist/core/terminal/terminal-manager.js.map +1 -0
- package/dist/core/terminal/terminal.d.ts +27 -0
- package/dist/core/terminal/terminal.d.ts.map +1 -0
- package/dist/core/terminal/terminal.js +38 -0
- package/dist/core/terminal/terminal.js.map +1 -0
- package/dist/core/workspace/index.d.ts +7 -0
- package/dist/core/workspace/index.d.ts.map +1 -0
- package/dist/core/workspace/index.js +6 -0
- package/dist/core/workspace/index.js.map +1 -0
- package/dist/core/workspace/workspace-manager.d.ts +59 -0
- package/dist/core/workspace/workspace-manager.d.ts.map +1 -0
- package/dist/core/workspace/workspace-manager.js +224 -0
- package/dist/core/workspace/workspace-manager.js.map +1 -0
- package/dist/core/workspace/workspace.d.ts +56 -0
- package/dist/core/workspace/workspace.d.ts.map +1 -0
- package/dist/core/workspace/workspace.js +96 -0
- package/dist/core/workspace/workspace.js.map +1 -0
- package/dist/core/worktree/index.d.ts +7 -0
- package/dist/core/worktree/index.d.ts.map +1 -0
- package/dist/core/worktree/index.js +6 -0
- package/dist/core/worktree/index.js.map +1 -0
- package/dist/core/worktree/worktree-manager.d.ts +47 -0
- package/dist/core/worktree/worktree-manager.d.ts.map +1 -0
- package/dist/core/worktree/worktree-manager.js +170 -0
- package/dist/core/worktree/worktree-manager.js.map +1 -0
- package/dist/core/worktree/worktree.d.ts +35 -0
- package/dist/core/worktree/worktree.d.ts.map +1 -0
- package/dist/core/worktree/worktree.js +50 -0
- package/dist/core/worktree/worktree.js.map +1 -0
- package/dist/events/bus.d.ts +76 -0
- package/dist/events/bus.d.ts.map +1 -0
- package/dist/events/bus.js +223 -0
- package/dist/events/bus.js.map +1 -0
- package/dist/events/handlers/index.d.ts +28 -0
- package/dist/events/handlers/index.d.ts.map +1 -0
- package/dist/events/handlers/index.js +44 -0
- package/dist/events/handlers/index.js.map +1 -0
- package/dist/events/handlers/session-events.d.ts +12 -0
- package/dist/events/handlers/session-events.d.ts.map +1 -0
- package/dist/events/handlers/session-events.js +38 -0
- package/dist/events/handlers/session-events.js.map +1 -0
- package/dist/events/handlers/terminal-events.d.ts +12 -0
- package/dist/events/handlers/terminal-events.d.ts.map +1 -0
- package/dist/events/handlers/terminal-events.js +37 -0
- package/dist/events/handlers/terminal-events.js.map +1 -0
- package/dist/events/handlers/ui-events.d.ts +11 -0
- package/dist/events/handlers/ui-events.d.ts.map +1 -0
- package/dist/events/handlers/ui-events.js +202 -0
- package/dist/events/handlers/ui-events.js.map +1 -0
- package/dist/events/index.d.ts +9 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +10 -0
- package/dist/events/index.js.map +1 -0
- package/dist/git/index.d.ts +5 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +10 -0
- package/dist/git/index.js.map +1 -0
- package/dist/git/worktree.d.ts +44 -0
- package/dist/git/worktree.d.ts.map +1 -0
- package/dist/git/worktree.js +163 -0
- package/dist/git/worktree.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +73 -145
- package/dist/index.js.map +1 -1
- package/dist/launcher/index.d.ts +24 -0
- package/dist/launcher/index.d.ts.map +1 -0
- package/dist/launcher/index.js +260 -0
- package/dist/launcher/index.js.map +1 -0
- package/dist/multiplexer/base.d.ts +73 -0
- package/dist/multiplexer/base.d.ts.map +1 -0
- package/dist/multiplexer/base.js +68 -0
- package/dist/multiplexer/base.js.map +1 -0
- package/dist/multiplexer/factory.d.ts +28 -0
- package/dist/multiplexer/factory.d.ts.map +1 -0
- package/dist/multiplexer/factory.js +72 -0
- package/dist/multiplexer/factory.js.map +1 -0
- package/dist/multiplexer/index.d.ts +14 -0
- package/dist/multiplexer/index.d.ts.map +1 -0
- package/dist/multiplexer/index.js +15 -0
- package/dist/multiplexer/index.js.map +1 -0
- package/dist/multiplexer/tmux/index.d.ts +9 -0
- package/dist/multiplexer/tmux/index.d.ts.map +1 -0
- package/dist/multiplexer/tmux/index.js +7 -0
- package/dist/multiplexer/tmux/index.js.map +1 -0
- package/dist/multiplexer/tmux/tmux-commands.d.ts +96 -0
- package/dist/multiplexer/tmux/tmux-commands.d.ts.map +1 -0
- package/dist/multiplexer/tmux/tmux-commands.js +282 -0
- package/dist/multiplexer/tmux/tmux-commands.js.map +1 -0
- package/dist/multiplexer/tmux/tmux-config.d.ts +57 -0
- package/dist/multiplexer/tmux/tmux-config.d.ts.map +1 -0
- package/dist/multiplexer/tmux/tmux-config.js +103 -0
- package/dist/multiplexer/tmux/tmux-config.js.map +1 -0
- package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +94 -0
- package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +1 -0
- package/dist/multiplexer/tmux/tmux-multiplexer.js +302 -0
- package/dist/multiplexer/tmux/tmux-multiplexer.js.map +1 -0
- package/dist/multiplexer/windows/index.d.ts +5 -0
- package/dist/multiplexer/windows/index.d.ts.map +1 -0
- package/dist/multiplexer/windows/index.js +5 -0
- package/dist/multiplexer/windows/index.js.map +1 -0
- package/dist/multiplexer/windows/windows-multiplexer.d.ts +61 -0
- package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +1 -0
- package/dist/multiplexer/windows/windows-multiplexer.js +151 -0
- package/dist/multiplexer/windows/windows-multiplexer.js.map +1 -0
- package/dist/platform/clipboard.d.ts +26 -0
- package/dist/platform/clipboard.d.ts.map +1 -0
- package/dist/platform/clipboard.js +161 -0
- package/dist/platform/clipboard.js.map +1 -0
- package/dist/platform/detector.d.ts +78 -0
- package/dist/platform/detector.d.ts.map +1 -0
- package/dist/platform/detector.js +184 -0
- package/dist/platform/detector.js.map +1 -0
- package/dist/platform/index.d.ts +14 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +53 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/paths.d.ts +63 -0
- package/dist/platform/paths.d.ts.map +1 -0
- package/dist/platform/paths.js +162 -0
- package/dist/platform/paths.js.map +1 -0
- package/dist/platform/shell.d.ts +43 -0
- package/dist/platform/shell.d.ts.map +1 -0
- package/dist/platform/shell.js +195 -0
- package/dist/platform/shell.js.map +1 -0
- package/dist/services/claude/claude-detector.d.ts +37 -0
- package/dist/services/claude/claude-detector.d.ts.map +1 -0
- package/dist/services/claude/claude-detector.js +83 -0
- package/dist/services/claude/claude-detector.js.map +1 -0
- package/dist/services/claude/claude-service.d.ts +57 -0
- package/dist/services/claude/claude-service.d.ts.map +1 -0
- package/dist/services/claude/claude-service.js +108 -0
- package/dist/services/claude/claude-service.js.map +1 -0
- package/dist/services/claude/index.d.ts +7 -0
- package/dist/services/claude/index.d.ts.map +1 -0
- package/dist/services/claude/index.js +6 -0
- package/dist/services/claude/index.js.map +1 -0
- package/dist/services/git/branch-service.d.ts +64 -0
- package/dist/services/git/branch-service.d.ts.map +1 -0
- package/dist/services/git/branch-service.js +217 -0
- package/dist/services/git/branch-service.js.map +1 -0
- package/dist/services/git/git-service.d.ts +44 -0
- package/dist/services/git/git-service.d.ts.map +1 -0
- package/dist/services/git/git-service.js +145 -0
- package/dist/services/git/git-service.js.map +1 -0
- package/dist/services/git/index.d.ts +8 -0
- package/dist/services/git/index.d.ts.map +1 -0
- package/dist/services/git/index.js +7 -0
- package/dist/services/git/index.js.map +1 -0
- package/dist/services/git/worktree-service.d.ts +61 -0
- package/dist/services/git/worktree-service.d.ts.map +1 -0
- package/dist/services/git/worktree-service.js +243 -0
- package/dist/services/git/worktree-service.js.map +1 -0
- package/dist/services/index.d.ts +12 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +12 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/process/index.d.ts +8 -0
- package/dist/services/process/index.d.ts.map +1 -0
- package/dist/services/process/index.js +6 -0
- package/dist/services/process/index.js.map +1 -0
- package/dist/services/process/process-monitor.d.ts +98 -0
- package/dist/services/process/process-monitor.d.ts.map +1 -0
- package/dist/services/process/process-monitor.js +173 -0
- package/dist/services/process/process-monitor.js.map +1 -0
- package/dist/services/process/process-spawner.d.ts +55 -0
- package/dist/services/process/process-spawner.d.ts.map +1 -0
- package/dist/services/process/process-spawner.js +93 -0
- package/dist/services/process/process-spawner.js.map +1 -0
- package/dist/sidebar/app.d.ts +70 -0
- package/dist/sidebar/app.d.ts.map +1 -0
- package/dist/sidebar/app.js +1237 -0
- package/dist/sidebar/app.js.map +1 -0
- package/dist/sidebar/index.d.ts +8 -0
- package/dist/sidebar/index.d.ts.map +1 -0
- package/dist/sidebar/index.js +28 -0
- package/dist/sidebar/index.js.map +1 -0
- package/dist/sidebar/input.d.ts +33 -0
- package/dist/sidebar/input.d.ts.map +1 -0
- package/dist/sidebar/input.js +160 -0
- package/dist/sidebar/input.js.map +1 -0
- package/dist/sidebar/render.d.ts +73 -0
- package/dist/sidebar/render.d.ts.map +1 -0
- package/dist/sidebar/render.js +415 -0
- package/dist/sidebar/render.js.map +1 -0
- package/dist/state/actions.d.ts +49 -0
- package/dist/state/actions.d.ts.map +1 -0
- package/dist/state/actions.js +512 -0
- package/dist/state/actions.js.map +1 -0
- package/dist/state/index.d.ts +16 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +28 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/middleware/index.d.ts +7 -0
- package/dist/state/middleware/index.d.ts.map +1 -0
- package/dist/state/middleware/index.js +6 -0
- package/dist/state/middleware/index.js.map +1 -0
- package/dist/state/middleware/logger.d.ts +22 -0
- package/dist/state/middleware/logger.d.ts.map +1 -0
- package/dist/state/middleware/logger.js +45 -0
- package/dist/state/middleware/logger.js.map +1 -0
- package/dist/state/middleware/persistence.d.ts +29 -0
- package/dist/state/middleware/persistence.d.ts.map +1 -0
- package/dist/state/middleware/persistence.js +71 -0
- package/dist/state/middleware/persistence.js.map +1 -0
- package/dist/state/persistence/file-adapter.d.ts +48 -0
- package/dist/state/persistence/file-adapter.d.ts.map +1 -0
- package/dist/state/persistence/file-adapter.js +96 -0
- package/dist/state/persistence/file-adapter.js.map +1 -0
- package/dist/state/persistence/index.d.ts +8 -0
- package/dist/state/persistence/index.d.ts.map +1 -0
- package/dist/state/persistence/index.js +6 -0
- package/dist/state/persistence/index.js.map +1 -0
- package/dist/state/persistence/serializer.d.ts +41 -0
- package/dist/state/persistence/serializer.d.ts.map +1 -0
- package/dist/state/persistence/serializer.js +114 -0
- package/dist/state/persistence/serializer.js.map +1 -0
- package/dist/state/selectors.d.ts +67 -0
- package/dist/state/selectors.d.ts.map +1 -0
- package/dist/state/selectors.js +177 -0
- package/dist/state/selectors.js.map +1 -0
- package/dist/state/store.d.ts +86 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +161 -0
- package/dist/state/store.js.map +1 -0
- package/dist/state/types.d.ts +269 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +7 -0
- package/dist/state/types.js.map +1 -0
- package/dist/terminal/bar-handler.d.ts +15 -0
- package/dist/terminal/bar-handler.d.ts.map +1 -0
- package/dist/terminal/bar-handler.js +244 -0
- package/dist/terminal/bar-handler.js.map +1 -0
- package/dist/terminal/bar-render.d.ts +33 -0
- package/dist/terminal/bar-render.d.ts.map +1 -0
- package/dist/terminal/bar-render.js +126 -0
- package/dist/terminal/bar-render.js.map +1 -0
- package/dist/terminal/index.d.ts +8 -0
- package/dist/terminal/index.d.ts.map +1 -0
- package/dist/terminal/index.js +14 -0
- package/dist/terminal/index.js.map +1 -0
- package/dist/tmux/commands.d.ts +26 -0
- package/dist/tmux/commands.d.ts.map +1 -0
- package/dist/tmux/commands.js +74 -0
- package/dist/tmux/commands.js.map +1 -0
- package/dist/tmux/index.d.ts +6 -0
- package/dist/tmux/index.d.ts.map +1 -0
- package/dist/tmux/index.js +42 -0
- package/dist/tmux/index.js.map +1 -0
- package/dist/tmux/pane.d.ts +111 -0
- package/dist/tmux/pane.d.ts.map +1 -0
- package/dist/tmux/pane.js +231 -0
- package/dist/tmux/pane.js.map +1 -0
- package/dist/types/config.d.ts +103 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +7 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/entities.d.ts +88 -0
- package/dist/types/entities.d.ts.map +1 -0
- package/dist/types/entities.js +8 -0
- package/dist/types/entities.js.map +1 -0
- package/dist/types/events.d.ts +156 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +8 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/multiplexer.d.ts +238 -0
- package/dist/types/multiplexer.d.ts.map +1 -0
- package/dist/types/multiplexer.js +8 -0
- package/dist/types/multiplexer.js.map +1 -0
- package/dist/types.d.ts +67 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -3
- package/dist/types.js.map +1 -1
- package/dist/ui/components/base.d.ts +155 -0
- package/dist/ui/components/base.d.ts.map +1 -0
- package/dist/ui/components/base.js +269 -0
- package/dist/ui/components/base.js.map +1 -0
- package/dist/ui/components/index.d.ts +10 -0
- package/dist/ui/components/index.d.ts.map +1 -0
- package/dist/ui/components/index.js +10 -0
- package/dist/ui/components/index.js.map +1 -0
- package/dist/ui/components/input-field.d.ts +98 -0
- package/dist/ui/components/input-field.d.ts.map +1 -0
- package/dist/ui/components/input-field.js +274 -0
- package/dist/ui/components/input-field.js.map +1 -0
- package/dist/ui/components/list.d.ts +94 -0
- package/dist/ui/components/list.d.ts.map +1 -0
- package/dist/ui/components/list.js +294 -0
- package/dist/ui/components/list.js.map +1 -0
- package/dist/ui/components/modal.d.ts +83 -0
- package/dist/ui/components/modal.d.ts.map +1 -0
- package/dist/ui/components/modal.js +249 -0
- package/dist/ui/components/modal.js.map +1 -0
- package/dist/ui/components/tabs.d.ts +97 -0
- package/dist/ui/components/tabs.d.ts.map +1 -0
- package/dist/ui/components/tabs.js +252 -0
- package/dist/ui/components/tabs.js.map +1 -0
- package/dist/ui/components/text.d.ts +60 -0
- package/dist/ui/components/text.d.ts.map +1 -0
- package/dist/ui/components/text.js +224 -0
- package/dist/ui/components/text.js.map +1 -0
- package/dist/ui/index.d.ts +12 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +18 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input/index.d.ts +8 -0
- package/dist/ui/input/index.d.ts.map +1 -0
- package/dist/ui/input/index.js +8 -0
- package/dist/ui/input/index.js.map +1 -0
- package/dist/ui/input/input-manager.d.ts +83 -0
- package/dist/ui/input/input-manager.d.ts.map +1 -0
- package/dist/ui/input/input-manager.js +200 -0
- package/dist/ui/input/input-manager.js.map +1 -0
- package/dist/ui/input/keybindings.d.ts +47 -0
- package/dist/ui/input/keybindings.d.ts.map +1 -0
- package/dist/ui/input/keybindings.js +168 -0
- package/dist/ui/input/keybindings.js.map +1 -0
- package/dist/ui/input/keyboard.d.ts +24 -0
- package/dist/ui/input/keyboard.d.ts.map +1 -0
- package/dist/ui/input/keyboard.js +230 -0
- package/dist/ui/input/keyboard.js.map +1 -0
- package/dist/ui/input/mouse.d.ts +44 -0
- package/dist/ui/input/mouse.d.ts.map +1 -0
- package/dist/ui/input/mouse.js +161 -0
- package/dist/ui/input/mouse.js.map +1 -0
- package/dist/ui/layout/box.d.ts +63 -0
- package/dist/ui/layout/box.d.ts.map +1 -0
- package/dist/ui/layout/box.js +160 -0
- package/dist/ui/layout/box.js.map +1 -0
- package/dist/ui/layout/constraints.d.ts +77 -0
- package/dist/ui/layout/constraints.d.ts.map +1 -0
- package/dist/ui/layout/constraints.js +154 -0
- package/dist/ui/layout/constraints.js.map +1 -0
- package/dist/ui/layout/flex.d.ts +59 -0
- package/dist/ui/layout/flex.d.ts.map +1 -0
- package/dist/ui/layout/flex.js +163 -0
- package/dist/ui/layout/flex.js.map +1 -0
- package/dist/ui/layout/index.d.ts +7 -0
- package/dist/ui/layout/index.d.ts.map +1 -0
- package/dist/ui/layout/index.js +7 -0
- package/dist/ui/layout/index.js.map +1 -0
- package/dist/ui/modals/delete-modal.d.ts +27 -0
- package/dist/ui/modals/delete-modal.d.ts.map +1 -0
- package/dist/ui/modals/delete-modal.js +59 -0
- package/dist/ui/modals/delete-modal.js.map +1 -0
- package/dist/ui/modals/index.d.ts +7 -0
- package/dist/ui/modals/index.d.ts.map +1 -0
- package/dist/ui/modals/index.js +7 -0
- package/dist/ui/modals/index.js.map +1 -0
- package/dist/ui/modals/input-modal.d.ts +66 -0
- package/dist/ui/modals/input-modal.d.ts.map +1 -0
- package/dist/ui/modals/input-modal.js +185 -0
- package/dist/ui/modals/input-modal.js.map +1 -0
- package/dist/ui/modals/quit-modal.d.ts +30 -0
- package/dist/ui/modals/quit-modal.d.ts.map +1 -0
- package/dist/ui/modals/quit-modal.js +65 -0
- package/dist/ui/modals/quit-modal.js.map +1 -0
- package/dist/ui/renderer/ansi.d.ts +206 -0
- package/dist/ui/renderer/ansi.d.ts.map +1 -0
- package/dist/ui/renderer/ansi.js +318 -0
- package/dist/ui/renderer/ansi.js.map +1 -0
- package/dist/ui/renderer/canvas.d.ts +126 -0
- package/dist/ui/renderer/canvas.d.ts.map +1 -0
- package/dist/ui/renderer/canvas.js +346 -0
- package/dist/ui/renderer/canvas.js.map +1 -0
- package/dist/ui/renderer/colors.d.ts +65 -0
- package/dist/ui/renderer/colors.d.ts.map +1 -0
- package/dist/ui/renderer/colors.js +260 -0
- package/dist/ui/renderer/colors.js.map +1 -0
- package/dist/ui/renderer/index.d.ts +8 -0
- package/dist/ui/renderer/index.d.ts.map +1 -0
- package/dist/ui/renderer/index.js +8 -0
- package/dist/ui/renderer/index.js.map +1 -0
- package/dist/ui/renderer/symbols.d.ts +176 -0
- package/dist/ui/renderer/symbols.d.ts.map +1 -0
- package/dist/ui/renderer/symbols.js +246 -0
- package/dist/ui/renderer/symbols.js.map +1 -0
- package/dist/ui/views/index.d.ts +7 -0
- package/dist/ui/views/index.d.ts.map +1 -0
- package/dist/ui/views/index.js +7 -0
- package/dist/ui/views/index.js.map +1 -0
- package/dist/ui/views/sidebar-view.d.ts +89 -0
- package/dist/ui/views/sidebar-view.d.ts.map +1 -0
- package/dist/ui/views/sidebar-view.js +259 -0
- package/dist/ui/views/sidebar-view.js.map +1 -0
- package/dist/ui/views/terminal-bar-view.d.ts +67 -0
- package/dist/ui/views/terminal-bar-view.d.ts.map +1 -0
- package/dist/ui/views/terminal-bar-view.js +172 -0
- package/dist/ui/views/terminal-bar-view.js.map +1 -0
- package/dist/ui/views/welcome-view.d.ts +34 -0
- package/dist/ui/views/welcome-view.d.ts.map +1 -0
- package/dist/ui/views/welcome-view.js +116 -0
- package/dist/ui/views/welcome-view.js.map +1 -0
- package/dist/utils/async.d.ts +68 -0
- package/dist/utils/async.d.ts.map +1 -0
- package/dist/utils/async.js +147 -0
- package/dist/utils/async.js.map +1 -0
- package/dist/utils/errors.d.ts +136 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +241 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/id.d.ts +51 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +88 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +78 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +75 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +219 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/string.d.ts +71 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +175 -0
- package/dist/utils/string.js.map +1 -0
- package/dist/utils/validation.d.ts +72 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +211 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging Utility
|
|
3
|
+
*
|
|
4
|
+
* Provides structured logging with levels and optional file output.
|
|
5
|
+
*/
|
|
6
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
7
|
+
export interface LoggerOptions {
|
|
8
|
+
/** Minimum log level to output */
|
|
9
|
+
level: LogLevel;
|
|
10
|
+
/** Context/component name for the logger */
|
|
11
|
+
context?: string;
|
|
12
|
+
/** File path to write logs (optional) */
|
|
13
|
+
filePath?: string;
|
|
14
|
+
/** Whether to include timestamps */
|
|
15
|
+
timestamps?: boolean;
|
|
16
|
+
/** Whether to output to console (disabled in TUI) */
|
|
17
|
+
console?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Logger class for structured logging
|
|
21
|
+
*/
|
|
22
|
+
export declare class Logger {
|
|
23
|
+
private readonly options;
|
|
24
|
+
private fileInitialized;
|
|
25
|
+
constructor(options: LoggerOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Check if a log level should be output
|
|
28
|
+
*/
|
|
29
|
+
private shouldLog;
|
|
30
|
+
/**
|
|
31
|
+
* Initialize the log file if needed
|
|
32
|
+
*/
|
|
33
|
+
private initializeFile;
|
|
34
|
+
/**
|
|
35
|
+
* Write a log entry
|
|
36
|
+
*/
|
|
37
|
+
private log;
|
|
38
|
+
/**
|
|
39
|
+
* Log a debug message
|
|
40
|
+
*/
|
|
41
|
+
debug(message: string, ...args: unknown[]): void;
|
|
42
|
+
/**
|
|
43
|
+
* Log an info message
|
|
44
|
+
*/
|
|
45
|
+
info(message: string, ...args: unknown[]): void;
|
|
46
|
+
/**
|
|
47
|
+
* Log a warning message
|
|
48
|
+
*/
|
|
49
|
+
warn(message: string, ...args: unknown[]): void;
|
|
50
|
+
/**
|
|
51
|
+
* Log an error message
|
|
52
|
+
*/
|
|
53
|
+
error(message: string, error?: Error | unknown): void;
|
|
54
|
+
/**
|
|
55
|
+
* Create a child logger with additional context
|
|
56
|
+
*/
|
|
57
|
+
child(context: string): Logger;
|
|
58
|
+
/**
|
|
59
|
+
* Create a logger with a specific level
|
|
60
|
+
*/
|
|
61
|
+
withLevel(level: LogLevel): Logger;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get the default logger
|
|
65
|
+
*/
|
|
66
|
+
export declare function getLogger(): Logger;
|
|
67
|
+
/**
|
|
68
|
+
* Set the default logger
|
|
69
|
+
*/
|
|
70
|
+
export declare function setDefaultLogger(logger: Logger): void;
|
|
71
|
+
/**
|
|
72
|
+
* Create and set the default logger with options
|
|
73
|
+
*/
|
|
74
|
+
export declare function initializeLogger(options: LoggerOptions): Logger;
|
|
75
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAS3D,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA+CD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,eAAe,CAAkB;gBAE7B,OAAO,EAAE,aAAa;IAUlC;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,GAAG;IA4CX;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIhD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI;IAYrD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAW9B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;CAMnC;AAKD;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAG/D"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Logging Utility
|
|
4
|
+
*
|
|
5
|
+
* Provides structured logging with levels and optional file output.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Logger = void 0;
|
|
9
|
+
exports.getLogger = getLogger;
|
|
10
|
+
exports.setDefaultLogger = setDefaultLogger;
|
|
11
|
+
exports.initializeLogger = initializeLogger;
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const LOG_LEVEL_PRIORITY = {
|
|
15
|
+
debug: 0,
|
|
16
|
+
info: 1,
|
|
17
|
+
warn: 2,
|
|
18
|
+
error: 3,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Format a log entry for output
|
|
22
|
+
*/
|
|
23
|
+
function formatLogEntry(entry, includeTimestamp) {
|
|
24
|
+
const parts = [];
|
|
25
|
+
if (includeTimestamp) {
|
|
26
|
+
parts.push(`[${entry.timestamp.toISOString()}]`);
|
|
27
|
+
}
|
|
28
|
+
parts.push(`[${entry.level.toUpperCase()}]`);
|
|
29
|
+
if (entry.context) {
|
|
30
|
+
parts.push(`[${entry.context}]`);
|
|
31
|
+
}
|
|
32
|
+
parts.push(entry.message);
|
|
33
|
+
if (entry.args.length > 0) {
|
|
34
|
+
const argsStr = entry.args
|
|
35
|
+
.map((arg) => {
|
|
36
|
+
if (typeof arg === 'object') {
|
|
37
|
+
try {
|
|
38
|
+
return JSON.stringify(arg, null, 2);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return String(arg);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return String(arg);
|
|
45
|
+
})
|
|
46
|
+
.join(' ');
|
|
47
|
+
parts.push(argsStr);
|
|
48
|
+
}
|
|
49
|
+
return parts.join(' ');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Logger class for structured logging
|
|
53
|
+
*/
|
|
54
|
+
class Logger {
|
|
55
|
+
options;
|
|
56
|
+
fileInitialized = false;
|
|
57
|
+
constructor(options) {
|
|
58
|
+
this.options = {
|
|
59
|
+
level: options.level,
|
|
60
|
+
context: options.context || '',
|
|
61
|
+
filePath: options.filePath || '',
|
|
62
|
+
timestamps: options.timestamps ?? true,
|
|
63
|
+
console: options.console ?? false,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if a log level should be output
|
|
68
|
+
*/
|
|
69
|
+
shouldLog(level) {
|
|
70
|
+
return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.options.level];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Initialize the log file if needed
|
|
74
|
+
*/
|
|
75
|
+
initializeFile() {
|
|
76
|
+
if (this.fileInitialized || !this.options.filePath) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const dir = (0, path_1.dirname)(this.options.filePath);
|
|
81
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
82
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
this.fileInitialized = true;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Silently fail - logging should never crash the app
|
|
88
|
+
this.fileInitialized = true; // Don't retry
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Write a log entry
|
|
93
|
+
*/
|
|
94
|
+
log(level, message, args) {
|
|
95
|
+
if (!this.shouldLog(level)) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const entry = {
|
|
99
|
+
timestamp: new Date(),
|
|
100
|
+
level,
|
|
101
|
+
context: this.options.context,
|
|
102
|
+
message,
|
|
103
|
+
args,
|
|
104
|
+
};
|
|
105
|
+
const formatted = formatLogEntry(entry, this.options.timestamps);
|
|
106
|
+
// Write to file if configured
|
|
107
|
+
if (this.options.filePath) {
|
|
108
|
+
this.initializeFile();
|
|
109
|
+
try {
|
|
110
|
+
(0, fs_1.appendFileSync)(this.options.filePath, formatted + '\n');
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Silently fail
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Write to console if enabled (usually disabled in TUI mode)
|
|
117
|
+
if (this.options.console) {
|
|
118
|
+
switch (level) {
|
|
119
|
+
case 'error':
|
|
120
|
+
console.error(formatted);
|
|
121
|
+
break;
|
|
122
|
+
case 'warn':
|
|
123
|
+
console.warn(formatted);
|
|
124
|
+
break;
|
|
125
|
+
case 'info':
|
|
126
|
+
console.info(formatted);
|
|
127
|
+
break;
|
|
128
|
+
case 'debug':
|
|
129
|
+
console.log(formatted);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Log a debug message
|
|
136
|
+
*/
|
|
137
|
+
debug(message, ...args) {
|
|
138
|
+
this.log('debug', message, args);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Log an info message
|
|
142
|
+
*/
|
|
143
|
+
info(message, ...args) {
|
|
144
|
+
this.log('info', message, args);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Log a warning message
|
|
148
|
+
*/
|
|
149
|
+
warn(message, ...args) {
|
|
150
|
+
this.log('warn', message, args);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Log an error message
|
|
154
|
+
*/
|
|
155
|
+
error(message, error) {
|
|
156
|
+
if (error instanceof Error) {
|
|
157
|
+
this.log('error', message, [
|
|
158
|
+
{ message: error.message, stack: error.stack },
|
|
159
|
+
]);
|
|
160
|
+
}
|
|
161
|
+
else if (error !== undefined) {
|
|
162
|
+
this.log('error', message, [error]);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
this.log('error', message, []);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Create a child logger with additional context
|
|
170
|
+
*/
|
|
171
|
+
child(context) {
|
|
172
|
+
const newContext = this.options.context
|
|
173
|
+
? `${this.options.context}:${context}`
|
|
174
|
+
: context;
|
|
175
|
+
return new Logger({
|
|
176
|
+
...this.options,
|
|
177
|
+
context: newContext,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Create a logger with a specific level
|
|
182
|
+
*/
|
|
183
|
+
withLevel(level) {
|
|
184
|
+
return new Logger({
|
|
185
|
+
...this.options,
|
|
186
|
+
level,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
exports.Logger = Logger;
|
|
191
|
+
// Default logger instance (will be configured by the app)
|
|
192
|
+
let defaultLogger = null;
|
|
193
|
+
/**
|
|
194
|
+
* Get the default logger
|
|
195
|
+
*/
|
|
196
|
+
function getLogger() {
|
|
197
|
+
if (!defaultLogger) {
|
|
198
|
+
// Create a no-op logger if not initialized
|
|
199
|
+
defaultLogger = new Logger({
|
|
200
|
+
level: 'error',
|
|
201
|
+
console: false,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
return defaultLogger;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Set the default logger
|
|
208
|
+
*/
|
|
209
|
+
function setDefaultLogger(logger) {
|
|
210
|
+
defaultLogger = logger;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Create and set the default logger with options
|
|
214
|
+
*/
|
|
215
|
+
function initializeLogger(options) {
|
|
216
|
+
defaultLogger = new Logger(options);
|
|
217
|
+
return defaultLogger;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String Manipulation Utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Truncate a string to a maximum length, adding ellipsis if truncated
|
|
6
|
+
* @param str - String to truncate
|
|
7
|
+
* @param maxLength - Maximum length including ellipsis
|
|
8
|
+
* @param ellipsis - Ellipsis string (default: '…')
|
|
9
|
+
* @returns Truncated string
|
|
10
|
+
*/
|
|
11
|
+
export declare function truncate(str: string, maxLength: number, ellipsis?: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Pad a string to a minimum length
|
|
14
|
+
* @param str - String to pad
|
|
15
|
+
* @param length - Target length
|
|
16
|
+
* @param char - Padding character (default: ' ')
|
|
17
|
+
* @param direction - Pad direction (default: 'right')
|
|
18
|
+
* @returns Padded string
|
|
19
|
+
*/
|
|
20
|
+
export declare function pad(str: string, length: number, char?: string, direction?: 'left' | 'right' | 'center'): string;
|
|
21
|
+
/**
|
|
22
|
+
* Wrap text to a maximum width
|
|
23
|
+
* @param text - Text to wrap
|
|
24
|
+
* @param maxWidth - Maximum line width
|
|
25
|
+
* @returns Array of lines
|
|
26
|
+
*/
|
|
27
|
+
export declare function wrap(text: string, maxWidth: number): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Convert a string to a slug (lowercase, hyphenated)
|
|
30
|
+
* @param str - String to slugify
|
|
31
|
+
* @returns Slugified string
|
|
32
|
+
*/
|
|
33
|
+
export declare function slugify(str: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Strip ANSI escape codes from a string
|
|
36
|
+
* @param str - String with ANSI codes
|
|
37
|
+
* @returns Clean string without ANSI codes
|
|
38
|
+
*/
|
|
39
|
+
export declare function stripAnsi(str: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Calculate the visible width of a string (excluding ANSI codes)
|
|
42
|
+
* @param str - String to measure
|
|
43
|
+
* @returns Visible width in characters
|
|
44
|
+
*/
|
|
45
|
+
export declare function visibleWidth(str: string): number;
|
|
46
|
+
/**
|
|
47
|
+
* Indent each line of a string
|
|
48
|
+
* @param str - String to indent
|
|
49
|
+
* @param spaces - Number of spaces to indent
|
|
50
|
+
* @returns Indented string
|
|
51
|
+
*/
|
|
52
|
+
export declare function indent(str: string, spaces: number): string;
|
|
53
|
+
/**
|
|
54
|
+
* Remove common leading whitespace from all lines
|
|
55
|
+
* @param str - String to dedent
|
|
56
|
+
* @returns Dedented string
|
|
57
|
+
*/
|
|
58
|
+
export declare function dedent(str: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Capitalize the first letter of a string
|
|
61
|
+
* @param str - String to capitalize
|
|
62
|
+
* @returns Capitalized string
|
|
63
|
+
*/
|
|
64
|
+
export declare function capitalize(str: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Convert a string to title case
|
|
67
|
+
* @param str - String to convert
|
|
68
|
+
* @returns Title-cased string
|
|
69
|
+
*/
|
|
70
|
+
export declare function titleCase(str: string): string;
|
|
71
|
+
//# sourceMappingURL=string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAY,GACrB,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAgB,GAAG,CACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAAY,EAClB,SAAS,GAAE,MAAM,GAAG,OAAO,GAAG,QAAkB,GAC/C,MAAM,CAkBR;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAmC7D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgB1C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7C"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* String Manipulation Utilities
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.truncate = truncate;
|
|
7
|
+
exports.pad = pad;
|
|
8
|
+
exports.wrap = wrap;
|
|
9
|
+
exports.slugify = slugify;
|
|
10
|
+
exports.stripAnsi = stripAnsi;
|
|
11
|
+
exports.visibleWidth = visibleWidth;
|
|
12
|
+
exports.indent = indent;
|
|
13
|
+
exports.dedent = dedent;
|
|
14
|
+
exports.capitalize = capitalize;
|
|
15
|
+
exports.titleCase = titleCase;
|
|
16
|
+
/**
|
|
17
|
+
* Truncate a string to a maximum length, adding ellipsis if truncated
|
|
18
|
+
* @param str - String to truncate
|
|
19
|
+
* @param maxLength - Maximum length including ellipsis
|
|
20
|
+
* @param ellipsis - Ellipsis string (default: '…')
|
|
21
|
+
* @returns Truncated string
|
|
22
|
+
*/
|
|
23
|
+
function truncate(str, maxLength, ellipsis = '…') {
|
|
24
|
+
if (str.length <= maxLength) {
|
|
25
|
+
return str;
|
|
26
|
+
}
|
|
27
|
+
return str.slice(0, maxLength - ellipsis.length) + ellipsis;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Pad a string to a minimum length
|
|
31
|
+
* @param str - String to pad
|
|
32
|
+
* @param length - Target length
|
|
33
|
+
* @param char - Padding character (default: ' ')
|
|
34
|
+
* @param direction - Pad direction (default: 'right')
|
|
35
|
+
* @returns Padded string
|
|
36
|
+
*/
|
|
37
|
+
function pad(str, length, char = ' ', direction = 'right') {
|
|
38
|
+
if (str.length >= length) {
|
|
39
|
+
return str;
|
|
40
|
+
}
|
|
41
|
+
const padding = char.repeat(length - str.length);
|
|
42
|
+
switch (direction) {
|
|
43
|
+
case 'left':
|
|
44
|
+
return padding + str;
|
|
45
|
+
case 'right':
|
|
46
|
+
return str + padding;
|
|
47
|
+
case 'center': {
|
|
48
|
+
const leftPad = Math.floor(padding.length / 2);
|
|
49
|
+
const rightPad = padding.length - leftPad;
|
|
50
|
+
return char.repeat(leftPad) + str + char.repeat(rightPad);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Wrap text to a maximum width
|
|
56
|
+
* @param text - Text to wrap
|
|
57
|
+
* @param maxWidth - Maximum line width
|
|
58
|
+
* @returns Array of lines
|
|
59
|
+
*/
|
|
60
|
+
function wrap(text, maxWidth) {
|
|
61
|
+
if (text.length <= maxWidth) {
|
|
62
|
+
return [text];
|
|
63
|
+
}
|
|
64
|
+
const words = text.split(' ');
|
|
65
|
+
const lines = [];
|
|
66
|
+
let currentLine = '';
|
|
67
|
+
for (const word of words) {
|
|
68
|
+
if (currentLine.length + word.length + 1 <= maxWidth) {
|
|
69
|
+
currentLine += (currentLine ? ' ' : '') + word;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
if (currentLine) {
|
|
73
|
+
lines.push(currentLine);
|
|
74
|
+
}
|
|
75
|
+
// Handle words longer than maxWidth
|
|
76
|
+
if (word.length > maxWidth) {
|
|
77
|
+
let remaining = word;
|
|
78
|
+
while (remaining.length > maxWidth) {
|
|
79
|
+
lines.push(remaining.slice(0, maxWidth));
|
|
80
|
+
remaining = remaining.slice(maxWidth);
|
|
81
|
+
}
|
|
82
|
+
currentLine = remaining;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
currentLine = word;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (currentLine) {
|
|
90
|
+
lines.push(currentLine);
|
|
91
|
+
}
|
|
92
|
+
return lines;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Convert a string to a slug (lowercase, hyphenated)
|
|
96
|
+
* @param str - String to slugify
|
|
97
|
+
* @returns Slugified string
|
|
98
|
+
*/
|
|
99
|
+
function slugify(str) {
|
|
100
|
+
return str
|
|
101
|
+
.toLowerCase()
|
|
102
|
+
.trim()
|
|
103
|
+
.replace(/[^\w\s-]/g, '')
|
|
104
|
+
.replace(/[\s_-]+/g, '-')
|
|
105
|
+
.replace(/^-+|-+$/g, '');
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Strip ANSI escape codes from a string
|
|
109
|
+
* @param str - String with ANSI codes
|
|
110
|
+
* @returns Clean string without ANSI codes
|
|
111
|
+
*/
|
|
112
|
+
function stripAnsi(str) {
|
|
113
|
+
// eslint-disable-next-line no-control-regex
|
|
114
|
+
return str.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '');
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Calculate the visible width of a string (excluding ANSI codes)
|
|
118
|
+
* @param str - String to measure
|
|
119
|
+
* @returns Visible width in characters
|
|
120
|
+
*/
|
|
121
|
+
function visibleWidth(str) {
|
|
122
|
+
return stripAnsi(str).length;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Indent each line of a string
|
|
126
|
+
* @param str - String to indent
|
|
127
|
+
* @param spaces - Number of spaces to indent
|
|
128
|
+
* @returns Indented string
|
|
129
|
+
*/
|
|
130
|
+
function indent(str, spaces) {
|
|
131
|
+
const prefix = ' '.repeat(spaces);
|
|
132
|
+
return str
|
|
133
|
+
.split('\n')
|
|
134
|
+
.map((line) => prefix + line)
|
|
135
|
+
.join('\n');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Remove common leading whitespace from all lines
|
|
139
|
+
* @param str - String to dedent
|
|
140
|
+
* @returns Dedented string
|
|
141
|
+
*/
|
|
142
|
+
function dedent(str) {
|
|
143
|
+
const lines = str.split('\n');
|
|
144
|
+
const nonEmptyLines = lines.filter((line) => line.trim().length > 0);
|
|
145
|
+
if (nonEmptyLines.length === 0) {
|
|
146
|
+
return str;
|
|
147
|
+
}
|
|
148
|
+
const minIndent = Math.min(...nonEmptyLines.map((line) => {
|
|
149
|
+
const match = line.match(/^(\s*)/);
|
|
150
|
+
return match ? match[1].length : 0;
|
|
151
|
+
}));
|
|
152
|
+
return lines.map((line) => line.slice(minIndent)).join('\n');
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Capitalize the first letter of a string
|
|
156
|
+
* @param str - String to capitalize
|
|
157
|
+
* @returns Capitalized string
|
|
158
|
+
*/
|
|
159
|
+
function capitalize(str) {
|
|
160
|
+
if (!str)
|
|
161
|
+
return str;
|
|
162
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Convert a string to title case
|
|
166
|
+
* @param str - String to convert
|
|
167
|
+
* @returns Title-cased string
|
|
168
|
+
*/
|
|
169
|
+
function titleCase(str) {
|
|
170
|
+
return str
|
|
171
|
+
.split(' ')
|
|
172
|
+
.map((word) => capitalize(word.toLowerCase()))
|
|
173
|
+
.join(' ');
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":";AAAA;;GAEG;;AASH,4BASC;AAUD,kBAuBC;AAQD,oBAmCC;AAOD,0BAOC;AAOD,8BAGC;AAOD,oCAEC;AAQD,wBAMC;AAOD,wBAgBC;AAOD,gCAGC;AAOD,8BAKC;AAxLD;;;;;;GAMG;AACH,SAAgB,QAAQ,CACtB,GAAW,EACX,SAAiB,EACjB,WAAmB,GAAG;IAEtB,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,GAAG,CACjB,GAAW,EACX,MAAc,EACd,OAAe,GAAG,EAClB,YAAyC,OAAO;IAEhD,IAAI,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAEjD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,OAAO,GAAG,GAAG,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,GAAG,GAAG,OAAO,CAAC;QACvB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;YAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,IAAI,CAAC,IAAY,EAAE,QAAgB;IACjD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YACrD,WAAW,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YACD,oCAAoC;YACpC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;gBACrB,OAAO,SAAS,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;oBACnC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACzC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxC,CAAC;gBACD,WAAW,GAAG,SAAS,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,GAAG;SACP,WAAW,EAAE;SACb,IAAI,EAAE;SACN,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;SACxB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,4CAA4C;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,GAAW,EAAE,MAAc;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,GAAG;SACP,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Common validation functions for user input and data.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Check if a string is a valid git branch name
|
|
8
|
+
* @param name - Branch name to validate
|
|
9
|
+
* @returns true if valid
|
|
10
|
+
*/
|
|
11
|
+
export declare function isValidBranchName(name: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Check if a string is a valid session name
|
|
14
|
+
* @param name - Session name to validate
|
|
15
|
+
* @returns true if valid
|
|
16
|
+
*/
|
|
17
|
+
export declare function isValidSessionName(name: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a string is a valid tmux session name
|
|
20
|
+
* @param name - Session name to validate
|
|
21
|
+
* @returns true if valid
|
|
22
|
+
*/
|
|
23
|
+
export declare function isValidTmuxSessionName(name: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Check if a path is valid (basic check)
|
|
26
|
+
* @param path - Path to validate
|
|
27
|
+
* @returns true if valid
|
|
28
|
+
*/
|
|
29
|
+
export declare function isValidPath(path: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Check if a string is a valid terminal title
|
|
32
|
+
* @param title - Title to validate
|
|
33
|
+
* @returns true if valid
|
|
34
|
+
*/
|
|
35
|
+
export declare function isValidTerminalTitle(title: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Sanitize a branch name by replacing invalid characters
|
|
38
|
+
* @param name - Name to sanitize
|
|
39
|
+
* @returns Sanitized branch name
|
|
40
|
+
*/
|
|
41
|
+
export declare function sanitizeBranchName(name: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* Sanitize a session name
|
|
44
|
+
* @param name - Name to sanitize
|
|
45
|
+
* @returns Sanitized session name
|
|
46
|
+
*/
|
|
47
|
+
export declare function sanitizeSessionName(name: string): string;
|
|
48
|
+
/**
|
|
49
|
+
* Validate that a value is defined and not null
|
|
50
|
+
*/
|
|
51
|
+
export declare function isDefined<T>(value: T | null | undefined): value is T;
|
|
52
|
+
/**
|
|
53
|
+
* Validate that a string is not empty
|
|
54
|
+
*/
|
|
55
|
+
export declare function isNonEmptyString(value: unknown): value is string;
|
|
56
|
+
/**
|
|
57
|
+
* Validate that a value is a positive integer
|
|
58
|
+
*/
|
|
59
|
+
export declare function isPositiveInteger(value: unknown): value is number;
|
|
60
|
+
/**
|
|
61
|
+
* Validate that a value is a non-negative integer
|
|
62
|
+
*/
|
|
63
|
+
export declare function isNonNegativeInteger(value: unknown): value is number;
|
|
64
|
+
/**
|
|
65
|
+
* Assert that a condition is true, throwing if not
|
|
66
|
+
*/
|
|
67
|
+
export declare function assert(condition: unknown, message?: string): asserts condition;
|
|
68
|
+
/**
|
|
69
|
+
* Assert that a value is defined, returning it
|
|
70
|
+
*/
|
|
71
|
+
export declare function assertDefined<T>(value: T | null | undefined, message?: string): T;
|
|
72
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgCvD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAcxD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAkB5D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAa3D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMpE;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,MAA2B,GACnC,OAAO,CAAC,SAAS,CAInB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3B,OAAO,GAAE,MAA+B,GACvC,CAAC,CAKH"}
|