claude-code-plus-plus 0.2.0 → 0.2.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/dist/cli/commands/index.js +5 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/start.js +4 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/index.js +18 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/parser.js +8 -3
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/validators.js +30 -20
- package/dist/cli/validators.js.map +1 -1
- package/dist/config/defaults.js +10 -5
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.js +24 -4
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.js +29 -20
- package/dist/config/loader.js.map +1 -1
- package/dist/config/paths.js +30 -21
- package/dist/config/paths.js.map +1 -1
- package/dist/config/schema.js +6 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/git/index.js +6 -1
- package/dist/git/index.js.map +1 -1
- package/dist/git/worktree.js +18 -13
- package/dist/git/worktree.js.map +1 -1
- package/dist/index.js +41 -6
- package/dist/index.js.map +1 -1
- package/dist/launcher/index.d.ts.map +1 -1
- package/dist/launcher/index.js +60 -26
- package/dist/launcher/index.js.map +1 -1
- package/dist/platform/clipboard.js +22 -15
- package/dist/platform/clipboard.js.map +1 -1
- package/dist/platform/detector.js +37 -22
- package/dist/platform/detector.js.map +1 -1
- package/dist/platform/index.js +42 -4
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/paths.js +61 -48
- package/dist/platform/paths.js.map +1 -1
- package/dist/platform/shell.js +35 -27
- package/dist/platform/shell.js.map +1 -1
- package/dist/sidebar/app.d.ts.map +1 -1
- package/dist/sidebar/app.js +73 -39
- package/dist/sidebar/app.js.map +1 -1
- package/dist/sidebar/index.js +4 -2
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/input.js +12 -5
- package/dist/sidebar/input.js.map +1 -1
- package/dist/sidebar/render.js +102 -90
- package/dist/sidebar/render.js.map +1 -1
- package/dist/terminal/bar-handler.js +9 -7
- package/dist/terminal/bar-handler.js.map +1 -1
- package/dist/terminal/bar-render.js +6 -2
- package/dist/terminal/bar-render.js.map +1 -1
- package/dist/terminal/index.js +6 -1
- package/dist/terminal/index.js.map +1 -1
- package/dist/tmux/commands.js +18 -11
- package/dist/tmux/commands.js.map +1 -1
- package/dist/tmux/index.js +33 -7
- package/dist/tmux/index.js.map +1 -1
- package/dist/tmux/pane.js +76 -51
- package/dist/tmux/pane.js.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/async.js +16 -7
- package/dist/utils/async.js.map +1 -1
- package/dist/utils/errors.js +31 -14
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/id.js +19 -10
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/index.js +65 -6
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.js +17 -10
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/string.js +22 -10
- package/dist/utils/string.js.map +1 -1
- package/dist/utils/validation.js +28 -13
- package/dist/utils/validation.js.map +1 -1
- package/package.json +4 -4
- package/dist/app.d.ts +0 -52
- package/dist/app.d.ts.map +0 -1
- package/dist/app.js +0 -318
- package/dist/app.js.map +0 -1
- package/dist/core/index.d.ts +0 -14
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -14
- package/dist/core/index.js.map +0 -1
- package/dist/core/session/index.d.ts +0 -7
- package/dist/core/session/index.d.ts.map +0 -1
- package/dist/core/session/index.js +0 -6
- package/dist/core/session/index.js.map +0 -1
- package/dist/core/session/session-manager.d.ts +0 -46
- package/dist/core/session/session-manager.d.ts.map +0 -1
- package/dist/core/session/session-manager.js +0 -245
- package/dist/core/session/session-manager.js.map +0 -1
- package/dist/core/session/session.d.ts +0 -44
- package/dist/core/session/session.d.ts.map +0 -1
- package/dist/core/session/session.js +0 -78
- package/dist/core/session/session.js.map +0 -1
- package/dist/core/terminal/index.d.ts +0 -7
- package/dist/core/terminal/index.d.ts.map +0 -1
- package/dist/core/terminal/index.js +0 -6
- package/dist/core/terminal/index.js.map +0 -1
- package/dist/core/terminal/terminal-manager.d.ts +0 -36
- package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
- package/dist/core/terminal/terminal-manager.js +0 -182
- package/dist/core/terminal/terminal-manager.js.map +0 -1
- package/dist/core/terminal/terminal.d.ts +0 -27
- package/dist/core/terminal/terminal.d.ts.map +0 -1
- package/dist/core/terminal/terminal.js +0 -38
- package/dist/core/terminal/terminal.js.map +0 -1
- package/dist/core/workspace/index.d.ts +0 -7
- package/dist/core/workspace/index.d.ts.map +0 -1
- package/dist/core/workspace/index.js +0 -6
- package/dist/core/workspace/index.js.map +0 -1
- package/dist/core/workspace/workspace-manager.d.ts +0 -59
- package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
- package/dist/core/workspace/workspace-manager.js +0 -224
- package/dist/core/workspace/workspace-manager.js.map +0 -1
- package/dist/core/workspace/workspace.d.ts +0 -56
- package/dist/core/workspace/workspace.d.ts.map +0 -1
- package/dist/core/workspace/workspace.js +0 -96
- package/dist/core/workspace/workspace.js.map +0 -1
- package/dist/core/worktree/index.d.ts +0 -7
- package/dist/core/worktree/index.d.ts.map +0 -1
- package/dist/core/worktree/index.js +0 -6
- package/dist/core/worktree/index.js.map +0 -1
- package/dist/core/worktree/worktree-manager.d.ts +0 -47
- package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
- package/dist/core/worktree/worktree-manager.js +0 -170
- package/dist/core/worktree/worktree-manager.js.map +0 -1
- package/dist/core/worktree/worktree.d.ts +0 -35
- package/dist/core/worktree/worktree.d.ts.map +0 -1
- package/dist/core/worktree/worktree.js +0 -50
- package/dist/core/worktree/worktree.js.map +0 -1
- package/dist/core/worktree-manager.d.ts +0 -26
- package/dist/core/worktree-manager.d.ts.map +0 -1
- package/dist/core/worktree-manager.js +0 -177
- package/dist/core/worktree-manager.js.map +0 -1
- package/dist/events/bus.d.ts +0 -76
- package/dist/events/bus.d.ts.map +0 -1
- package/dist/events/bus.js +0 -223
- package/dist/events/bus.js.map +0 -1
- package/dist/events/handlers/index.d.ts +0 -28
- package/dist/events/handlers/index.d.ts.map +0 -1
- package/dist/events/handlers/index.js +0 -44
- package/dist/events/handlers/index.js.map +0 -1
- package/dist/events/handlers/session-events.d.ts +0 -12
- package/dist/events/handlers/session-events.d.ts.map +0 -1
- package/dist/events/handlers/session-events.js +0 -38
- package/dist/events/handlers/session-events.js.map +0 -1
- package/dist/events/handlers/terminal-events.d.ts +0 -12
- package/dist/events/handlers/terminal-events.d.ts.map +0 -1
- package/dist/events/handlers/terminal-events.js +0 -37
- package/dist/events/handlers/terminal-events.js.map +0 -1
- package/dist/events/handlers/ui-events.d.ts +0 -11
- package/dist/events/handlers/ui-events.d.ts.map +0 -1
- package/dist/events/handlers/ui-events.js +0 -202
- package/dist/events/handlers/ui-events.js.map +0 -1
- package/dist/events/index.d.ts +0 -9
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -10
- package/dist/events/index.js.map +0 -1
- package/dist/multiplexer/base.d.ts +0 -73
- package/dist/multiplexer/base.d.ts.map +0 -1
- package/dist/multiplexer/base.js +0 -68
- package/dist/multiplexer/base.js.map +0 -1
- package/dist/multiplexer/factory.d.ts +0 -28
- package/dist/multiplexer/factory.d.ts.map +0 -1
- package/dist/multiplexer/factory.js +0 -72
- package/dist/multiplexer/factory.js.map +0 -1
- package/dist/multiplexer/index.d.ts +0 -14
- package/dist/multiplexer/index.d.ts.map +0 -1
- package/dist/multiplexer/index.js +0 -15
- package/dist/multiplexer/index.js.map +0 -1
- package/dist/multiplexer/tmux/index.d.ts +0 -9
- package/dist/multiplexer/tmux/index.d.ts.map +0 -1
- package/dist/multiplexer/tmux/index.js +0 -7
- package/dist/multiplexer/tmux/index.js.map +0 -1
- package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
- package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
- package/dist/multiplexer/tmux/tmux-commands.js +0 -282
- package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
- package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
- package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
- package/dist/multiplexer/tmux/tmux-config.js +0 -103
- package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
- package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
- package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
- package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
- package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
- package/dist/multiplexer/windows/index.d.ts +0 -5
- package/dist/multiplexer/windows/index.d.ts.map +0 -1
- package/dist/multiplexer/windows/index.js +0 -5
- package/dist/multiplexer/windows/index.js.map +0 -1
- package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
- package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
- package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
- package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
- package/dist/services/claude/claude-detector.d.ts +0 -37
- package/dist/services/claude/claude-detector.d.ts.map +0 -1
- package/dist/services/claude/claude-detector.js +0 -83
- package/dist/services/claude/claude-detector.js.map +0 -1
- package/dist/services/claude/claude-service.d.ts +0 -57
- package/dist/services/claude/claude-service.d.ts.map +0 -1
- package/dist/services/claude/claude-service.js +0 -108
- package/dist/services/claude/claude-service.js.map +0 -1
- package/dist/services/claude/index.d.ts +0 -7
- package/dist/services/claude/index.d.ts.map +0 -1
- package/dist/services/claude/index.js +0 -6
- package/dist/services/claude/index.js.map +0 -1
- package/dist/services/git/branch-service.d.ts +0 -64
- package/dist/services/git/branch-service.d.ts.map +0 -1
- package/dist/services/git/branch-service.js +0 -217
- package/dist/services/git/branch-service.js.map +0 -1
- package/dist/services/git/git-service.d.ts +0 -44
- package/dist/services/git/git-service.d.ts.map +0 -1
- package/dist/services/git/git-service.js +0 -145
- package/dist/services/git/git-service.js.map +0 -1
- package/dist/services/git/index.d.ts +0 -8
- package/dist/services/git/index.d.ts.map +0 -1
- package/dist/services/git/index.js +0 -7
- package/dist/services/git/index.js.map +0 -1
- package/dist/services/git/worktree-service.d.ts +0 -61
- package/dist/services/git/worktree-service.d.ts.map +0 -1
- package/dist/services/git/worktree-service.js +0 -243
- package/dist/services/git/worktree-service.js.map +0 -1
- package/dist/services/index.d.ts +0 -12
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -12
- package/dist/services/index.js.map +0 -1
- package/dist/services/process/index.d.ts +0 -8
- package/dist/services/process/index.d.ts.map +0 -1
- package/dist/services/process/index.js +0 -6
- package/dist/services/process/index.js.map +0 -1
- package/dist/services/process/process-monitor.d.ts +0 -98
- package/dist/services/process/process-monitor.d.ts.map +0 -1
- package/dist/services/process/process-monitor.js +0 -173
- package/dist/services/process/process-monitor.js.map +0 -1
- package/dist/services/process/process-spawner.d.ts +0 -55
- package/dist/services/process/process-spawner.d.ts.map +0 -1
- package/dist/services/process/process-spawner.js +0 -93
- package/dist/services/process/process-spawner.js.map +0 -1
- package/dist/sidebar.d.ts +0 -13
- package/dist/sidebar.d.ts.map +0 -1
- package/dist/sidebar.js +0 -1535
- package/dist/sidebar.js.map +0 -1
- package/dist/state/actions.d.ts +0 -49
- package/dist/state/actions.d.ts.map +0 -1
- package/dist/state/actions.js +0 -512
- package/dist/state/actions.js.map +0 -1
- package/dist/state/index.d.ts +0 -16
- package/dist/state/index.d.ts.map +0 -1
- package/dist/state/index.js +0 -28
- package/dist/state/index.js.map +0 -1
- package/dist/state/middleware/index.d.ts +0 -7
- package/dist/state/middleware/index.d.ts.map +0 -1
- package/dist/state/middleware/index.js +0 -6
- package/dist/state/middleware/index.js.map +0 -1
- package/dist/state/middleware/logger.d.ts +0 -22
- package/dist/state/middleware/logger.d.ts.map +0 -1
- package/dist/state/middleware/logger.js +0 -45
- package/dist/state/middleware/logger.js.map +0 -1
- package/dist/state/middleware/persistence.d.ts +0 -29
- package/dist/state/middleware/persistence.d.ts.map +0 -1
- package/dist/state/middleware/persistence.js +0 -71
- package/dist/state/middleware/persistence.js.map +0 -1
- package/dist/state/persistence/file-adapter.d.ts +0 -48
- package/dist/state/persistence/file-adapter.d.ts.map +0 -1
- package/dist/state/persistence/file-adapter.js +0 -96
- package/dist/state/persistence/file-adapter.js.map +0 -1
- package/dist/state/persistence/index.d.ts +0 -8
- package/dist/state/persistence/index.d.ts.map +0 -1
- package/dist/state/persistence/index.js +0 -6
- package/dist/state/persistence/index.js.map +0 -1
- package/dist/state/persistence/serializer.d.ts +0 -41
- package/dist/state/persistence/serializer.d.ts.map +0 -1
- package/dist/state/persistence/serializer.js +0 -114
- package/dist/state/persistence/serializer.js.map +0 -1
- package/dist/state/selectors.d.ts +0 -67
- package/dist/state/selectors.d.ts.map +0 -1
- package/dist/state/selectors.js +0 -177
- package/dist/state/selectors.js.map +0 -1
- package/dist/state/store.d.ts +0 -86
- package/dist/state/store.d.ts.map +0 -1
- package/dist/state/store.js +0 -161
- package/dist/state/store.js.map +0 -1
- package/dist/state/types.d.ts +0 -269
- package/dist/state/types.d.ts.map +0 -1
- package/dist/state/types.js +0 -7
- package/dist/state/types.js.map +0 -1
- package/dist/state.d.ts +0 -53
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -101
- package/dist/state.js.map +0 -1
- package/dist/terminal-manager.d.ts +0 -16
- package/dist/terminal-manager.d.ts.map +0 -1
- package/dist/terminal-manager.js +0 -364
- package/dist/terminal-manager.js.map +0 -1
- package/dist/tmux.d.ts +0 -163
- package/dist/tmux.d.ts.map +0 -1
- package/dist/tmux.js +0 -360
- package/dist/tmux.js.map +0 -1
- package/dist/types/config.d.ts +0 -103
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -7
- package/dist/types/config.js.map +0 -1
- package/dist/types/entities.d.ts +0 -88
- package/dist/types/entities.d.ts.map +0 -1
- package/dist/types/entities.js +0 -8
- package/dist/types/entities.js.map +0 -1
- package/dist/types/events.d.ts +0 -156
- package/dist/types/events.d.ts.map +0 -1
- package/dist/types/events.js +0 -8
- package/dist/types/events.js.map +0 -1
- package/dist/types/index.d.ts +0 -11
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/types/multiplexer.d.ts +0 -238
- package/dist/types/multiplexer.d.ts.map +0 -1
- package/dist/types/multiplexer.js +0 -8
- package/dist/types/multiplexer.js.map +0 -1
- package/dist/ui/components/base.d.ts +0 -155
- package/dist/ui/components/base.d.ts.map +0 -1
- package/dist/ui/components/base.js +0 -269
- package/dist/ui/components/base.js.map +0 -1
- package/dist/ui/components/index.d.ts +0 -10
- package/dist/ui/components/index.d.ts.map +0 -1
- package/dist/ui/components/index.js +0 -10
- package/dist/ui/components/index.js.map +0 -1
- package/dist/ui/components/input-field.d.ts +0 -98
- package/dist/ui/components/input-field.d.ts.map +0 -1
- package/dist/ui/components/input-field.js +0 -274
- package/dist/ui/components/input-field.js.map +0 -1
- package/dist/ui/components/list.d.ts +0 -94
- package/dist/ui/components/list.d.ts.map +0 -1
- package/dist/ui/components/list.js +0 -294
- package/dist/ui/components/list.js.map +0 -1
- package/dist/ui/components/modal.d.ts +0 -83
- package/dist/ui/components/modal.d.ts.map +0 -1
- package/dist/ui/components/modal.js +0 -249
- package/dist/ui/components/modal.js.map +0 -1
- package/dist/ui/components/tabs.d.ts +0 -97
- package/dist/ui/components/tabs.d.ts.map +0 -1
- package/dist/ui/components/tabs.js +0 -252
- package/dist/ui/components/tabs.js.map +0 -1
- package/dist/ui/components/text.d.ts +0 -60
- package/dist/ui/components/text.d.ts.map +0 -1
- package/dist/ui/components/text.js +0 -224
- package/dist/ui/components/text.js.map +0 -1
- package/dist/ui/index.d.ts +0 -12
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -18
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/input/index.d.ts +0 -8
- package/dist/ui/input/index.d.ts.map +0 -1
- package/dist/ui/input/index.js +0 -8
- package/dist/ui/input/index.js.map +0 -1
- package/dist/ui/input/input-manager.d.ts +0 -83
- package/dist/ui/input/input-manager.d.ts.map +0 -1
- package/dist/ui/input/input-manager.js +0 -200
- package/dist/ui/input/input-manager.js.map +0 -1
- package/dist/ui/input/keybindings.d.ts +0 -47
- package/dist/ui/input/keybindings.d.ts.map +0 -1
- package/dist/ui/input/keybindings.js +0 -168
- package/dist/ui/input/keybindings.js.map +0 -1
- package/dist/ui/input/keyboard.d.ts +0 -24
- package/dist/ui/input/keyboard.d.ts.map +0 -1
- package/dist/ui/input/keyboard.js +0 -230
- package/dist/ui/input/keyboard.js.map +0 -1
- package/dist/ui/input/mouse.d.ts +0 -44
- package/dist/ui/input/mouse.d.ts.map +0 -1
- package/dist/ui/input/mouse.js +0 -161
- package/dist/ui/input/mouse.js.map +0 -1
- package/dist/ui/layout/box.d.ts +0 -63
- package/dist/ui/layout/box.d.ts.map +0 -1
- package/dist/ui/layout/box.js +0 -160
- package/dist/ui/layout/box.js.map +0 -1
- package/dist/ui/layout/constraints.d.ts +0 -77
- package/dist/ui/layout/constraints.d.ts.map +0 -1
- package/dist/ui/layout/constraints.js +0 -154
- package/dist/ui/layout/constraints.js.map +0 -1
- package/dist/ui/layout/flex.d.ts +0 -59
- package/dist/ui/layout/flex.d.ts.map +0 -1
- package/dist/ui/layout/flex.js +0 -163
- package/dist/ui/layout/flex.js.map +0 -1
- package/dist/ui/layout/index.d.ts +0 -7
- package/dist/ui/layout/index.d.ts.map +0 -1
- package/dist/ui/layout/index.js +0 -7
- package/dist/ui/layout/index.js.map +0 -1
- package/dist/ui/modals/delete-modal.d.ts +0 -27
- package/dist/ui/modals/delete-modal.d.ts.map +0 -1
- package/dist/ui/modals/delete-modal.js +0 -59
- package/dist/ui/modals/delete-modal.js.map +0 -1
- package/dist/ui/modals/index.d.ts +0 -7
- package/dist/ui/modals/index.d.ts.map +0 -1
- package/dist/ui/modals/index.js +0 -7
- package/dist/ui/modals/index.js.map +0 -1
- package/dist/ui/modals/input-modal.d.ts +0 -66
- package/dist/ui/modals/input-modal.d.ts.map +0 -1
- package/dist/ui/modals/input-modal.js +0 -185
- package/dist/ui/modals/input-modal.js.map +0 -1
- package/dist/ui/modals/quit-modal.d.ts +0 -30
- package/dist/ui/modals/quit-modal.d.ts.map +0 -1
- package/dist/ui/modals/quit-modal.js +0 -65
- package/dist/ui/modals/quit-modal.js.map +0 -1
- package/dist/ui/renderer/ansi.d.ts +0 -206
- package/dist/ui/renderer/ansi.d.ts.map +0 -1
- package/dist/ui/renderer/ansi.js +0 -318
- package/dist/ui/renderer/ansi.js.map +0 -1
- package/dist/ui/renderer/canvas.d.ts +0 -126
- package/dist/ui/renderer/canvas.d.ts.map +0 -1
- package/dist/ui/renderer/canvas.js +0 -346
- package/dist/ui/renderer/canvas.js.map +0 -1
- package/dist/ui/renderer/colors.d.ts +0 -65
- package/dist/ui/renderer/colors.d.ts.map +0 -1
- package/dist/ui/renderer/colors.js +0 -260
- package/dist/ui/renderer/colors.js.map +0 -1
- package/dist/ui/renderer/index.d.ts +0 -8
- package/dist/ui/renderer/index.d.ts.map +0 -1
- package/dist/ui/renderer/index.js +0 -8
- package/dist/ui/renderer/index.js.map +0 -1
- package/dist/ui/renderer/symbols.d.ts +0 -176
- package/dist/ui/renderer/symbols.d.ts.map +0 -1
- package/dist/ui/renderer/symbols.js +0 -246
- package/dist/ui/renderer/symbols.js.map +0 -1
- package/dist/ui/views/index.d.ts +0 -7
- package/dist/ui/views/index.d.ts.map +0 -1
- package/dist/ui/views/index.js +0 -7
- package/dist/ui/views/index.js.map +0 -1
- package/dist/ui/views/sidebar-view.d.ts +0 -89
- package/dist/ui/views/sidebar-view.d.ts.map +0 -1
- package/dist/ui/views/sidebar-view.js +0 -259
- package/dist/ui/views/sidebar-view.js.map +0 -1
- package/dist/ui/views/terminal-bar-view.d.ts +0 -67
- package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
- package/dist/ui/views/terminal-bar-view.js +0 -172
- package/dist/ui/views/terminal-bar-view.js.map +0 -1
- package/dist/ui/views/welcome-view.d.ts +0 -34
- package/dist/ui/views/welcome-view.d.ts.map +0 -1
- package/dist/ui/views/welcome-view.js +0 -116
- package/dist/ui/views/welcome-view.js.map +0 -1
package/dist/utils/errors.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Custom Error Classes
|
|
3
4
|
*
|
|
4
5
|
* Domain-specific errors for better error handling and debugging.
|
|
5
6
|
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.NotFoundError = exports.ValidationError = exports.UIError = exports.StateError = exports.TerminalError = exports.SessionError = exports.WorktreeError = exports.GitError = exports.MultiplexerError = exports.ConfigError = exports.AppError = void 0;
|
|
9
|
+
exports.isAppError = isAppError;
|
|
10
|
+
exports.wrapError = wrapError;
|
|
11
|
+
exports.getErrorMessage = getErrorMessage;
|
|
6
12
|
/**
|
|
7
13
|
* Base error class for the application
|
|
8
14
|
*/
|
|
9
|
-
|
|
15
|
+
class AppError extends Error {
|
|
10
16
|
code;
|
|
11
17
|
context;
|
|
12
18
|
cause;
|
|
@@ -30,19 +36,21 @@ export class AppError extends Error {
|
|
|
30
36
|
};
|
|
31
37
|
}
|
|
32
38
|
}
|
|
39
|
+
exports.AppError = AppError;
|
|
33
40
|
/**
|
|
34
41
|
* Error for configuration-related issues
|
|
35
42
|
*/
|
|
36
|
-
|
|
43
|
+
class ConfigError extends AppError {
|
|
37
44
|
constructor(message, context) {
|
|
38
45
|
super(message, 'CONFIG_ERROR', { context });
|
|
39
46
|
this.name = 'ConfigError';
|
|
40
47
|
}
|
|
41
48
|
}
|
|
49
|
+
exports.ConfigError = ConfigError;
|
|
42
50
|
/**
|
|
43
51
|
* Error for multiplexer operations (tmux, etc.)
|
|
44
52
|
*/
|
|
45
|
-
|
|
53
|
+
class MultiplexerError extends AppError {
|
|
46
54
|
command;
|
|
47
55
|
exitCode;
|
|
48
56
|
stderr;
|
|
@@ -61,10 +69,11 @@ export class MultiplexerError extends AppError {
|
|
|
61
69
|
this.stderr = options?.stderr;
|
|
62
70
|
}
|
|
63
71
|
}
|
|
72
|
+
exports.MultiplexerError = MultiplexerError;
|
|
64
73
|
/**
|
|
65
74
|
* Error for Git operations
|
|
66
75
|
*/
|
|
67
|
-
|
|
76
|
+
class GitError extends AppError {
|
|
68
77
|
command;
|
|
69
78
|
exitCode;
|
|
70
79
|
constructor(message, options) {
|
|
@@ -80,10 +89,11 @@ export class GitError extends AppError {
|
|
|
80
89
|
this.exitCode = options?.exitCode;
|
|
81
90
|
}
|
|
82
91
|
}
|
|
92
|
+
exports.GitError = GitError;
|
|
83
93
|
/**
|
|
84
94
|
* Error for worktree operations
|
|
85
95
|
*/
|
|
86
|
-
|
|
96
|
+
class WorktreeError extends AppError {
|
|
87
97
|
worktreePath;
|
|
88
98
|
branch;
|
|
89
99
|
constructor(message, options) {
|
|
@@ -99,10 +109,11 @@ export class WorktreeError extends AppError {
|
|
|
99
109
|
this.branch = options?.branch;
|
|
100
110
|
}
|
|
101
111
|
}
|
|
112
|
+
exports.WorktreeError = WorktreeError;
|
|
102
113
|
/**
|
|
103
114
|
* Error for session operations
|
|
104
115
|
*/
|
|
105
|
-
|
|
116
|
+
class SessionError extends AppError {
|
|
106
117
|
sessionId;
|
|
107
118
|
constructor(message, options) {
|
|
108
119
|
super(message, 'SESSION_ERROR', {
|
|
@@ -113,10 +124,11 @@ export class SessionError extends AppError {
|
|
|
113
124
|
this.sessionId = options?.sessionId;
|
|
114
125
|
}
|
|
115
126
|
}
|
|
127
|
+
exports.SessionError = SessionError;
|
|
116
128
|
/**
|
|
117
129
|
* Error for terminal operations
|
|
118
130
|
*/
|
|
119
|
-
|
|
131
|
+
class TerminalError extends AppError {
|
|
120
132
|
terminalId;
|
|
121
133
|
paneId;
|
|
122
134
|
constructor(message, options) {
|
|
@@ -132,10 +144,11 @@ export class TerminalError extends AppError {
|
|
|
132
144
|
this.paneId = options?.paneId;
|
|
133
145
|
}
|
|
134
146
|
}
|
|
147
|
+
exports.TerminalError = TerminalError;
|
|
135
148
|
/**
|
|
136
149
|
* Error for state/persistence operations
|
|
137
150
|
*/
|
|
138
|
-
|
|
151
|
+
class StateError extends AppError {
|
|
139
152
|
statePath;
|
|
140
153
|
constructor(message, options) {
|
|
141
154
|
super(message, 'STATE_ERROR', {
|
|
@@ -146,10 +159,11 @@ export class StateError extends AppError {
|
|
|
146
159
|
this.statePath = options?.statePath;
|
|
147
160
|
}
|
|
148
161
|
}
|
|
162
|
+
exports.StateError = StateError;
|
|
149
163
|
/**
|
|
150
164
|
* Error for UI operations
|
|
151
165
|
*/
|
|
152
|
-
|
|
166
|
+
class UIError extends AppError {
|
|
153
167
|
component;
|
|
154
168
|
constructor(message, options) {
|
|
155
169
|
super(message, 'UI_ERROR', {
|
|
@@ -160,10 +174,11 @@ export class UIError extends AppError {
|
|
|
160
174
|
this.component = options?.component;
|
|
161
175
|
}
|
|
162
176
|
}
|
|
177
|
+
exports.UIError = UIError;
|
|
163
178
|
/**
|
|
164
179
|
* Error for validation failures
|
|
165
180
|
*/
|
|
166
|
-
|
|
181
|
+
class ValidationError extends AppError {
|
|
167
182
|
field;
|
|
168
183
|
value;
|
|
169
184
|
constructor(message, options) {
|
|
@@ -178,10 +193,11 @@ export class ValidationError extends AppError {
|
|
|
178
193
|
this.value = options?.value;
|
|
179
194
|
}
|
|
180
195
|
}
|
|
196
|
+
exports.ValidationError = ValidationError;
|
|
181
197
|
/**
|
|
182
198
|
* Error for when a required resource is not found
|
|
183
199
|
*/
|
|
184
|
-
|
|
200
|
+
class NotFoundError extends AppError {
|
|
185
201
|
resourceType;
|
|
186
202
|
resourceId;
|
|
187
203
|
constructor(resourceType, resourceId, message) {
|
|
@@ -193,16 +209,17 @@ export class NotFoundError extends AppError {
|
|
|
193
209
|
this.resourceId = resourceId;
|
|
194
210
|
}
|
|
195
211
|
}
|
|
212
|
+
exports.NotFoundError = NotFoundError;
|
|
196
213
|
/**
|
|
197
214
|
* Check if an error is an AppError
|
|
198
215
|
*/
|
|
199
|
-
|
|
216
|
+
function isAppError(error) {
|
|
200
217
|
return error instanceof AppError;
|
|
201
218
|
}
|
|
202
219
|
/**
|
|
203
220
|
* Wrap an unknown error in an AppError
|
|
204
221
|
*/
|
|
205
|
-
|
|
222
|
+
function wrapError(error, message, code = 'UNKNOWN_ERROR') {
|
|
206
223
|
if (error instanceof AppError) {
|
|
207
224
|
return error;
|
|
208
225
|
}
|
|
@@ -212,7 +229,7 @@ export function wrapError(error, message, code = 'UNKNOWN_ERROR') {
|
|
|
212
229
|
/**
|
|
213
230
|
* Extract error message from any error type
|
|
214
231
|
*/
|
|
215
|
-
|
|
232
|
+
function getErrorMessage(error) {
|
|
216
233
|
if (error instanceof Error) {
|
|
217
234
|
return error.message;
|
|
218
235
|
}
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/id.js
CHANGED
|
@@ -1,23 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* ID Generation Utilities
|
|
3
4
|
*
|
|
4
5
|
* Functions for generating unique identifiers.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.generateId = generateId;
|
|
9
|
+
exports.generateShortId = generateShortId;
|
|
10
|
+
exports.generateSessionId = generateSessionId;
|
|
11
|
+
exports.hashString = hashString;
|
|
12
|
+
exports.createProjectId = createProjectId;
|
|
13
|
+
exports.sanitizeForId = sanitizeForId;
|
|
14
|
+
exports.createTmuxSessionName = createTmuxSessionName;
|
|
15
|
+
const crypto_1 = require("crypto");
|
|
7
16
|
/**
|
|
8
17
|
* Generate a random ID using crypto random bytes
|
|
9
18
|
* @param length - Length of the ID (default: 8)
|
|
10
19
|
* @returns Random alphanumeric string
|
|
11
20
|
*/
|
|
12
|
-
|
|
13
|
-
const bytes = randomBytes(Math.ceil(length / 2));
|
|
21
|
+
function generateId(length = 8) {
|
|
22
|
+
const bytes = (0, crypto_1.randomBytes)(Math.ceil(length / 2));
|
|
14
23
|
return bytes.toString('hex').slice(0, length);
|
|
15
24
|
}
|
|
16
25
|
/**
|
|
17
26
|
* Generate a short random ID suitable for display
|
|
18
27
|
* @returns 6-character alphanumeric string
|
|
19
28
|
*/
|
|
20
|
-
|
|
29
|
+
function generateShortId() {
|
|
21
30
|
return generateId(6);
|
|
22
31
|
}
|
|
23
32
|
/**
|
|
@@ -25,7 +34,7 @@ export function generateShortId() {
|
|
|
25
34
|
* Useful for tmux session names which have restrictions
|
|
26
35
|
* @returns Session-safe ID string
|
|
27
36
|
*/
|
|
28
|
-
|
|
37
|
+
function generateSessionId() {
|
|
29
38
|
const chars = 'abcdefghijklmnopqrstuvwxyz';
|
|
30
39
|
const firstChar = chars[Math.floor(Math.random() * chars.length)];
|
|
31
40
|
return firstChar + generateId(7);
|
|
@@ -36,8 +45,8 @@ export function generateSessionId() {
|
|
|
36
45
|
* @param length - Length of output hash (default: 8)
|
|
37
46
|
* @returns Hex hash string
|
|
38
47
|
*/
|
|
39
|
-
|
|
40
|
-
const hash = createHash('md5').update(input).digest('hex');
|
|
48
|
+
function hashString(input, length = 8) {
|
|
49
|
+
const hash = (0, crypto_1.createHash)('md5').update(input).digest('hex');
|
|
41
50
|
return hash.slice(0, length);
|
|
42
51
|
}
|
|
43
52
|
/**
|
|
@@ -46,7 +55,7 @@ export function hashString(input, length = 8) {
|
|
|
46
55
|
* @param projectPath - Full path to the project
|
|
47
56
|
* @returns Unique project identifier
|
|
48
57
|
*/
|
|
49
|
-
|
|
58
|
+
function createProjectId(projectPath) {
|
|
50
59
|
const basename = projectPath.split('/').pop() || 'project';
|
|
51
60
|
const hash = hashString(projectPath, 6);
|
|
52
61
|
return `${sanitizeForId(basename)}-${hash}`;
|
|
@@ -57,7 +66,7 @@ export function createProjectId(projectPath) {
|
|
|
57
66
|
* @param input - String to sanitize
|
|
58
67
|
* @returns Sanitized string
|
|
59
68
|
*/
|
|
60
|
-
|
|
69
|
+
function sanitizeForId(input) {
|
|
61
70
|
return input
|
|
62
71
|
.toLowerCase()
|
|
63
72
|
.replace(/[^a-z0-9]/g, '-')
|
|
@@ -71,7 +80,7 @@ export function sanitizeForId(input) {
|
|
|
71
80
|
* @param projectPath - Full path to the project
|
|
72
81
|
* @returns Tmux-safe session name
|
|
73
82
|
*/
|
|
74
|
-
|
|
83
|
+
function createTmuxSessionName(projectName, projectPath) {
|
|
75
84
|
const sanitized = sanitizeForId(projectName);
|
|
76
85
|
const hash = hashString(projectPath, 6);
|
|
77
86
|
return `cpp-${sanitized}-${hash}`;
|
package/dist/utils/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AASH,gCAGC;AAMD,0CAEC;AAOD,8CAIC;AAQD,gCAGC;AAQD,0CAIC;AAQD,sCAOC;AAQD,sDAOC;AAlFD,mCAAiD;AAEjD;;;;GAIG;AACH,SAAgB,UAAU,CAAC,SAAiB,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe;IAC7B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,OAAO,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,KAAa,EAAE,SAAiB,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC3D,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,WAAmB,EACnB,WAAmB;IAEnB,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,OAAO,SAAS,IAAI,IAAI,EAAE,CAAC;AACpC,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,19 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Utils Module
|
|
3
4
|
*
|
|
4
5
|
* Shared utility functions used across the application.
|
|
5
6
|
* This module depends only on the types module.
|
|
6
7
|
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.isDefined = exports.sanitizeSessionName = exports.sanitizeBranchName = exports.isValidTerminalTitle = exports.isValidPath = exports.isValidTmuxSessionName = exports.isValidSessionName = exports.isValidBranchName = exports.initializeLogger = exports.setDefaultLogger = exports.getLogger = exports.Logger = exports.getErrorMessage = exports.wrapError = exports.isAppError = exports.NotFoundError = exports.ValidationError = exports.UIError = exports.StateError = exports.TerminalError = exports.SessionError = exports.WorktreeError = exports.GitError = exports.MultiplexerError = exports.ConfigError = exports.AppError = exports.createDeferred = exports.mapWithConcurrency = exports.withTimeout = exports.retry = exports.throttle = exports.debounce = exports.delay = exports.titleCase = exports.capitalize = exports.dedent = exports.indent = exports.visibleWidth = exports.stripAnsi = exports.slugify = exports.wrap = exports.pad = exports.truncate = exports.createTmuxSessionName = exports.sanitizeForId = exports.createProjectId = exports.hashString = exports.generateSessionId = exports.generateShortId = exports.generateId = void 0;
|
|
10
|
+
exports.assertDefined = exports.assert = exports.isNonNegativeInteger = exports.isPositiveInteger = exports.isNonEmptyString = void 0;
|
|
7
11
|
// ID generation
|
|
8
|
-
|
|
12
|
+
var id_1 = require("./id");
|
|
13
|
+
Object.defineProperty(exports, "generateId", { enumerable: true, get: function () { return id_1.generateId; } });
|
|
14
|
+
Object.defineProperty(exports, "generateShortId", { enumerable: true, get: function () { return id_1.generateShortId; } });
|
|
15
|
+
Object.defineProperty(exports, "generateSessionId", { enumerable: true, get: function () { return id_1.generateSessionId; } });
|
|
16
|
+
Object.defineProperty(exports, "hashString", { enumerable: true, get: function () { return id_1.hashString; } });
|
|
17
|
+
Object.defineProperty(exports, "createProjectId", { enumerable: true, get: function () { return id_1.createProjectId; } });
|
|
18
|
+
Object.defineProperty(exports, "sanitizeForId", { enumerable: true, get: function () { return id_1.sanitizeForId; } });
|
|
19
|
+
Object.defineProperty(exports, "createTmuxSessionName", { enumerable: true, get: function () { return id_1.createTmuxSessionName; } });
|
|
9
20
|
// String manipulation
|
|
10
|
-
|
|
21
|
+
var string_1 = require("./string");
|
|
22
|
+
Object.defineProperty(exports, "truncate", { enumerable: true, get: function () { return string_1.truncate; } });
|
|
23
|
+
Object.defineProperty(exports, "pad", { enumerable: true, get: function () { return string_1.pad; } });
|
|
24
|
+
Object.defineProperty(exports, "wrap", { enumerable: true, get: function () { return string_1.wrap; } });
|
|
25
|
+
Object.defineProperty(exports, "slugify", { enumerable: true, get: function () { return string_1.slugify; } });
|
|
26
|
+
Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return string_1.stripAnsi; } });
|
|
27
|
+
Object.defineProperty(exports, "visibleWidth", { enumerable: true, get: function () { return string_1.visibleWidth; } });
|
|
28
|
+
Object.defineProperty(exports, "indent", { enumerable: true, get: function () { return string_1.indent; } });
|
|
29
|
+
Object.defineProperty(exports, "dedent", { enumerable: true, get: function () { return string_1.dedent; } });
|
|
30
|
+
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return string_1.capitalize; } });
|
|
31
|
+
Object.defineProperty(exports, "titleCase", { enumerable: true, get: function () { return string_1.titleCase; } });
|
|
11
32
|
// Async utilities
|
|
12
|
-
|
|
33
|
+
var async_1 = require("./async");
|
|
34
|
+
Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return async_1.delay; } });
|
|
35
|
+
Object.defineProperty(exports, "debounce", { enumerable: true, get: function () { return async_1.debounce; } });
|
|
36
|
+
Object.defineProperty(exports, "throttle", { enumerable: true, get: function () { return async_1.throttle; } });
|
|
37
|
+
Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return async_1.retry; } });
|
|
38
|
+
Object.defineProperty(exports, "withTimeout", { enumerable: true, get: function () { return async_1.withTimeout; } });
|
|
39
|
+
Object.defineProperty(exports, "mapWithConcurrency", { enumerable: true, get: function () { return async_1.mapWithConcurrency; } });
|
|
40
|
+
Object.defineProperty(exports, "createDeferred", { enumerable: true, get: function () { return async_1.createDeferred; } });
|
|
13
41
|
// Error handling
|
|
14
|
-
|
|
42
|
+
var errors_1 = require("./errors");
|
|
43
|
+
Object.defineProperty(exports, "AppError", { enumerable: true, get: function () { return errors_1.AppError; } });
|
|
44
|
+
Object.defineProperty(exports, "ConfigError", { enumerable: true, get: function () { return errors_1.ConfigError; } });
|
|
45
|
+
Object.defineProperty(exports, "MultiplexerError", { enumerable: true, get: function () { return errors_1.MultiplexerError; } });
|
|
46
|
+
Object.defineProperty(exports, "GitError", { enumerable: true, get: function () { return errors_1.GitError; } });
|
|
47
|
+
Object.defineProperty(exports, "WorktreeError", { enumerable: true, get: function () { return errors_1.WorktreeError; } });
|
|
48
|
+
Object.defineProperty(exports, "SessionError", { enumerable: true, get: function () { return errors_1.SessionError; } });
|
|
49
|
+
Object.defineProperty(exports, "TerminalError", { enumerable: true, get: function () { return errors_1.TerminalError; } });
|
|
50
|
+
Object.defineProperty(exports, "StateError", { enumerable: true, get: function () { return errors_1.StateError; } });
|
|
51
|
+
Object.defineProperty(exports, "UIError", { enumerable: true, get: function () { return errors_1.UIError; } });
|
|
52
|
+
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
|
|
53
|
+
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: function () { return errors_1.NotFoundError; } });
|
|
54
|
+
Object.defineProperty(exports, "isAppError", { enumerable: true, get: function () { return errors_1.isAppError; } });
|
|
55
|
+
Object.defineProperty(exports, "wrapError", { enumerable: true, get: function () { return errors_1.wrapError; } });
|
|
56
|
+
Object.defineProperty(exports, "getErrorMessage", { enumerable: true, get: function () { return errors_1.getErrorMessage; } });
|
|
15
57
|
// Logging
|
|
16
|
-
|
|
58
|
+
var logger_1 = require("./logger");
|
|
59
|
+
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_1.Logger; } });
|
|
60
|
+
Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_1.getLogger; } });
|
|
61
|
+
Object.defineProperty(exports, "setDefaultLogger", { enumerable: true, get: function () { return logger_1.setDefaultLogger; } });
|
|
62
|
+
Object.defineProperty(exports, "initializeLogger", { enumerable: true, get: function () { return logger_1.initializeLogger; } });
|
|
17
63
|
// Validation
|
|
18
|
-
|
|
64
|
+
var validation_1 = require("./validation");
|
|
65
|
+
Object.defineProperty(exports, "isValidBranchName", { enumerable: true, get: function () { return validation_1.isValidBranchName; } });
|
|
66
|
+
Object.defineProperty(exports, "isValidSessionName", { enumerable: true, get: function () { return validation_1.isValidSessionName; } });
|
|
67
|
+
Object.defineProperty(exports, "isValidTmuxSessionName", { enumerable: true, get: function () { return validation_1.isValidTmuxSessionName; } });
|
|
68
|
+
Object.defineProperty(exports, "isValidPath", { enumerable: true, get: function () { return validation_1.isValidPath; } });
|
|
69
|
+
Object.defineProperty(exports, "isValidTerminalTitle", { enumerable: true, get: function () { return validation_1.isValidTerminalTitle; } });
|
|
70
|
+
Object.defineProperty(exports, "sanitizeBranchName", { enumerable: true, get: function () { return validation_1.sanitizeBranchName; } });
|
|
71
|
+
Object.defineProperty(exports, "sanitizeSessionName", { enumerable: true, get: function () { return validation_1.sanitizeSessionName; } });
|
|
72
|
+
Object.defineProperty(exports, "isDefined", { enumerable: true, get: function () { return validation_1.isDefined; } });
|
|
73
|
+
Object.defineProperty(exports, "isNonEmptyString", { enumerable: true, get: function () { return validation_1.isNonEmptyString; } });
|
|
74
|
+
Object.defineProperty(exports, "isPositiveInteger", { enumerable: true, get: function () { return validation_1.isPositiveInteger; } });
|
|
75
|
+
Object.defineProperty(exports, "isNonNegativeInteger", { enumerable: true, get: function () { return validation_1.isNonNegativeInteger; } });
|
|
76
|
+
Object.defineProperty(exports, "assert", { enumerable: true, get: function () { return validation_1.assert; } });
|
|
77
|
+
Object.defineProperty(exports, "assertDefined", { enumerable: true, get: function () { return validation_1.assertDefined; } });
|
|
19
78
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,gBAAgB;AAChB,2BAQc;AAPZ,gGAAA,UAAU,OAAA;AACV,qGAAA,eAAe,OAAA;AACf,uGAAA,iBAAiB,OAAA;AACjB,gGAAA,UAAU,OAAA;AACV,qGAAA,eAAe,OAAA;AACf,mGAAA,aAAa,OAAA;AACb,2GAAA,qBAAqB,OAAA;AAGvB,sBAAsB;AACtB,mCAWkB;AAVhB,kGAAA,QAAQ,OAAA;AACR,6FAAA,GAAG,OAAA;AACH,8FAAA,IAAI,OAAA;AACJ,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,gGAAA,MAAM,OAAA;AACN,gGAAA,MAAM,OAAA;AACN,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AAGX,kBAAkB;AAClB,iCAQiB;AAPf,8FAAA,KAAK,OAAA;AACL,iGAAA,QAAQ,OAAA;AACR,iGAAA,QAAQ,OAAA;AACR,8FAAA,KAAK,OAAA;AACL,oGAAA,WAAW,OAAA;AACX,2GAAA,kBAAkB,OAAA;AAClB,uGAAA,cAAc,OAAA;AAIhB,iBAAiB;AACjB,mCAekB;AAdhB,kGAAA,QAAQ,OAAA;AACR,qGAAA,WAAW,OAAA;AACX,0GAAA,gBAAgB,OAAA;AAChB,kGAAA,QAAQ,OAAA;AACR,uGAAA,aAAa,OAAA;AACb,sGAAA,YAAY,OAAA;AACZ,uGAAA,aAAa,OAAA;AACb,oGAAA,UAAU,OAAA;AACV,iGAAA,OAAO,OAAA;AACP,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AACb,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AAGjB,UAAU;AACV,mCAKkB;AAJhB,gGAAA,MAAM,OAAA;AACN,mGAAA,SAAS,OAAA;AACT,0GAAA,gBAAgB,OAAA;AAChB,0GAAA,gBAAgB,OAAA;AAIlB,aAAa;AACb,2CAcsB;AAbpB,+GAAA,iBAAiB,OAAA;AACjB,gHAAA,kBAAkB,OAAA;AAClB,oHAAA,sBAAsB,OAAA;AACtB,yGAAA,WAAW,OAAA;AACX,kHAAA,oBAAoB,OAAA;AACpB,gHAAA,kBAAkB,OAAA;AAClB,iHAAA,mBAAmB,OAAA;AACnB,uGAAA,SAAS,OAAA;AACT,8GAAA,gBAAgB,OAAA;AAChB,+GAAA,iBAAiB,OAAA;AACjB,kHAAA,oBAAoB,OAAA;AACpB,oGAAA,MAAM,OAAA;AACN,2GAAA,aAAa,OAAA"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Logging Utility
|
|
3
4
|
*
|
|
4
5
|
* Provides structured logging with levels and optional file output.
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
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");
|
|
8
14
|
const LOG_LEVEL_PRIORITY = {
|
|
9
15
|
debug: 0,
|
|
10
16
|
info: 1,
|
|
@@ -45,7 +51,7 @@ function formatLogEntry(entry, includeTimestamp) {
|
|
|
45
51
|
/**
|
|
46
52
|
* Logger class for structured logging
|
|
47
53
|
*/
|
|
48
|
-
|
|
54
|
+
class Logger {
|
|
49
55
|
options;
|
|
50
56
|
fileInitialized = false;
|
|
51
57
|
constructor(options) {
|
|
@@ -71,9 +77,9 @@ export class Logger {
|
|
|
71
77
|
return;
|
|
72
78
|
}
|
|
73
79
|
try {
|
|
74
|
-
const dir = dirname(this.options.filePath);
|
|
75
|
-
if (!existsSync(dir)) {
|
|
76
|
-
mkdirSync(dir, { recursive: true });
|
|
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 });
|
|
77
83
|
}
|
|
78
84
|
this.fileInitialized = true;
|
|
79
85
|
}
|
|
@@ -101,7 +107,7 @@ export class Logger {
|
|
|
101
107
|
if (this.options.filePath) {
|
|
102
108
|
this.initializeFile();
|
|
103
109
|
try {
|
|
104
|
-
appendFileSync(this.options.filePath, formatted + '\n');
|
|
110
|
+
(0, fs_1.appendFileSync)(this.options.filePath, formatted + '\n');
|
|
105
111
|
}
|
|
106
112
|
catch {
|
|
107
113
|
// Silently fail
|
|
@@ -181,12 +187,13 @@ export class Logger {
|
|
|
181
187
|
});
|
|
182
188
|
}
|
|
183
189
|
}
|
|
190
|
+
exports.Logger = Logger;
|
|
184
191
|
// Default logger instance (will be configured by the app)
|
|
185
192
|
let defaultLogger = null;
|
|
186
193
|
/**
|
|
187
194
|
* Get the default logger
|
|
188
195
|
*/
|
|
189
|
-
|
|
196
|
+
function getLogger() {
|
|
190
197
|
if (!defaultLogger) {
|
|
191
198
|
// Create a no-op logger if not initialized
|
|
192
199
|
defaultLogger = new Logger({
|
|
@@ -199,13 +206,13 @@ export function getLogger() {
|
|
|
199
206
|
/**
|
|
200
207
|
* Set the default logger
|
|
201
208
|
*/
|
|
202
|
-
|
|
209
|
+
function setDefaultLogger(logger) {
|
|
203
210
|
defaultLogger = logger;
|
|
204
211
|
}
|
|
205
212
|
/**
|
|
206
213
|
* Create and set the default logger with options
|
|
207
214
|
*/
|
|
208
|
-
|
|
215
|
+
function initializeLogger(options) {
|
|
209
216
|
defaultLogger = new Logger(options);
|
|
210
217
|
return defaultLogger;
|
|
211
218
|
}
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/string.js
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* String Manipulation Utilities
|
|
3
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;
|
|
4
16
|
/**
|
|
5
17
|
* Truncate a string to a maximum length, adding ellipsis if truncated
|
|
6
18
|
* @param str - String to truncate
|
|
@@ -8,7 +20,7 @@
|
|
|
8
20
|
* @param ellipsis - Ellipsis string (default: '…')
|
|
9
21
|
* @returns Truncated string
|
|
10
22
|
*/
|
|
11
|
-
|
|
23
|
+
function truncate(str, maxLength, ellipsis = '…') {
|
|
12
24
|
if (str.length <= maxLength) {
|
|
13
25
|
return str;
|
|
14
26
|
}
|
|
@@ -22,7 +34,7 @@ export function truncate(str, maxLength, ellipsis = '…') {
|
|
|
22
34
|
* @param direction - Pad direction (default: 'right')
|
|
23
35
|
* @returns Padded string
|
|
24
36
|
*/
|
|
25
|
-
|
|
37
|
+
function pad(str, length, char = ' ', direction = 'right') {
|
|
26
38
|
if (str.length >= length) {
|
|
27
39
|
return str;
|
|
28
40
|
}
|
|
@@ -45,7 +57,7 @@ export function pad(str, length, char = ' ', direction = 'right') {
|
|
|
45
57
|
* @param maxWidth - Maximum line width
|
|
46
58
|
* @returns Array of lines
|
|
47
59
|
*/
|
|
48
|
-
|
|
60
|
+
function wrap(text, maxWidth) {
|
|
49
61
|
if (text.length <= maxWidth) {
|
|
50
62
|
return [text];
|
|
51
63
|
}
|
|
@@ -84,7 +96,7 @@ export function wrap(text, maxWidth) {
|
|
|
84
96
|
* @param str - String to slugify
|
|
85
97
|
* @returns Slugified string
|
|
86
98
|
*/
|
|
87
|
-
|
|
99
|
+
function slugify(str) {
|
|
88
100
|
return str
|
|
89
101
|
.toLowerCase()
|
|
90
102
|
.trim()
|
|
@@ -97,7 +109,7 @@ export function slugify(str) {
|
|
|
97
109
|
* @param str - String with ANSI codes
|
|
98
110
|
* @returns Clean string without ANSI codes
|
|
99
111
|
*/
|
|
100
|
-
|
|
112
|
+
function stripAnsi(str) {
|
|
101
113
|
// eslint-disable-next-line no-control-regex
|
|
102
114
|
return str.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '');
|
|
103
115
|
}
|
|
@@ -106,7 +118,7 @@ export function stripAnsi(str) {
|
|
|
106
118
|
* @param str - String to measure
|
|
107
119
|
* @returns Visible width in characters
|
|
108
120
|
*/
|
|
109
|
-
|
|
121
|
+
function visibleWidth(str) {
|
|
110
122
|
return stripAnsi(str).length;
|
|
111
123
|
}
|
|
112
124
|
/**
|
|
@@ -115,7 +127,7 @@ export function visibleWidth(str) {
|
|
|
115
127
|
* @param spaces - Number of spaces to indent
|
|
116
128
|
* @returns Indented string
|
|
117
129
|
*/
|
|
118
|
-
|
|
130
|
+
function indent(str, spaces) {
|
|
119
131
|
const prefix = ' '.repeat(spaces);
|
|
120
132
|
return str
|
|
121
133
|
.split('\n')
|
|
@@ -127,7 +139,7 @@ export function indent(str, spaces) {
|
|
|
127
139
|
* @param str - String to dedent
|
|
128
140
|
* @returns Dedented string
|
|
129
141
|
*/
|
|
130
|
-
|
|
142
|
+
function dedent(str) {
|
|
131
143
|
const lines = str.split('\n');
|
|
132
144
|
const nonEmptyLines = lines.filter((line) => line.trim().length > 0);
|
|
133
145
|
if (nonEmptyLines.length === 0) {
|
|
@@ -144,7 +156,7 @@ export function dedent(str) {
|
|
|
144
156
|
* @param str - String to capitalize
|
|
145
157
|
* @returns Capitalized string
|
|
146
158
|
*/
|
|
147
|
-
|
|
159
|
+
function capitalize(str) {
|
|
148
160
|
if (!str)
|
|
149
161
|
return str;
|
|
150
162
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
@@ -154,7 +166,7 @@ export function capitalize(str) {
|
|
|
154
166
|
* @param str - String to convert
|
|
155
167
|
* @returns Title-cased string
|
|
156
168
|
*/
|
|
157
|
-
|
|
169
|
+
function titleCase(str) {
|
|
158
170
|
return str
|
|
159
171
|
.split(' ')
|
|
160
172
|
.map((word) => capitalize(word.toLowerCase()))
|
package/dist/utils/string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"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"}
|