diff --git a/.goreleaser.yml b/.goreleaser.yml index eadc980f..59a338a4 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -17,9 +17,9 @@ builds: # Version information injected at build time ldflags: - -s -w - - -X pass-cli/cmd.version={{.Version}} - - -X pass-cli/cmd.commit={{.ShortCommit}} - - -X pass-cli/cmd.date={{.Date}} + - -X github.com/arimxyer/pass-cli/cmd.version={{.Version}} + - -X github.com/arimxyer/pass-cli/cmd.commit={{.ShortCommit}} + - -X github.com/arimxyer/pass-cli/cmd.date={{.Date}} # Target platforms goos: diff --git a/cmd/add.go b/cmd/add.go index 2bf3703f..215683de 100644 --- a/cmd/add.go +++ b/cmd/add.go @@ -10,7 +10,7 @@ import ( "github.com/atotto/clipboard" "github.com/spf13/cobra" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/change_password.go b/cmd/change_password.go index 0acd8e98..d127b1bc 100644 --- a/cmd/change_password.go +++ b/cmd/change_password.go @@ -7,10 +7,10 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/crypto" - "pass-cli/internal/recovery" - "pass-cli/internal/security" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/config.go b/cmd/config.go index d6017056..c7775464 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // configCmd represents the config command diff --git a/cmd/delete.go b/cmd/delete.go index b6494c57..cf50a58b 100644 --- a/cmd/delete.go +++ b/cmd/delete.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/doctor.go b/cmd/doctor.go index 4da431a3..73de2c22 100644 --- a/cmd/doctor.go +++ b/cmd/doctor.go @@ -7,8 +7,8 @@ import ( "os" "path/filepath" - "pass-cli/internal/config" - "pass-cli/internal/health" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/health" "github.com/fatih/color" "github.com/spf13/cobra" diff --git a/cmd/get.go b/cmd/get.go index d473baef..6ef4c576 100644 --- a/cmd/get.go +++ b/cmd/get.go @@ -9,7 +9,7 @@ import ( "github.com/atotto/clipboard" "github.com/spf13/cobra" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/helpers.go b/cmd/helpers.go index 4105ed27..ee2d5837 100644 --- a/cmd/helpers.go +++ b/cmd/helpers.go @@ -3,9 +3,9 @@ package cmd import ( "bufio" "fmt" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/vault" "os" - "pass-cli/internal/recovery" - "pass-cli/internal/vault" "path/filepath" "runtime" "sort" @@ -26,7 +26,6 @@ var ( scannerOnce sync.Once ) - // readLine reads a line from stdin in test mode using the shared scanner // This prevents multiple readers from conflicting when reading piped stdin func readLine() (string, error) { diff --git a/cmd/init.go b/cmd/init.go index 75d04130..6b915f4b 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -10,11 +10,11 @@ import ( "github.com/spf13/cobra" "gopkg.in/yaml.v3" - "pass-cli/internal/config" - "pass-cli/internal/crypto" - "pass-cli/internal/recovery" - "pass-cli/internal/security" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/keychain_enable.go b/cmd/keychain_enable.go index 4c75c50e..7a9459d7 100644 --- a/cmd/keychain_enable.go +++ b/cmd/keychain_enable.go @@ -6,9 +6,9 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/crypto" - "pass-cli/internal/keychain" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/keychain" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/keychain_status.go b/cmd/keychain_status.go index 9668ff5a..aaab8874 100644 --- a/cmd/keychain_status.go +++ b/cmd/keychain_status.go @@ -8,8 +8,8 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/security" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/vault" ) var keychainStatusCmd = &cobra.Command{ diff --git a/cmd/list.go b/cmd/list.go index c670cdd1..cb1ba1f2 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -12,7 +12,7 @@ import ( "github.com/olekukonko/tablewriter" "github.com/spf13/cobra" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/root.go b/cmd/root.go index 6ec8b758..065501e8 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -6,11 +6,11 @@ import ( "path/filepath" "strings" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/spf13/cobra" "github.com/spf13/viper" "golang.org/x/term" - "pass-cli/internal/config" - "pass-cli/internal/vault" ) var ( diff --git a/cmd/sync_enable.go b/cmd/sync_enable.go index 991dd7f2..918df7b7 100644 --- a/cmd/sync_enable.go +++ b/cmd/sync_enable.go @@ -6,8 +6,8 @@ import ( "os/exec" "strings" - "pass-cli/internal/config" - intsync "pass-cli/internal/sync" + "github.com/arimxyer/pass-cli/internal/config" + intsync "github.com/arimxyer/pass-cli/internal/sync" "github.com/spf13/cobra" ) diff --git a/cmd/tui.go b/cmd/tui.go index 9bc2f9bc..f0e9e0b7 100644 --- a/cmd/tui.go +++ b/cmd/tui.go @@ -8,13 +8,13 @@ import ( "github.com/rivo/tview" "github.com/spf13/cobra" - "pass-cli/cmd/tui/components" - "pass-cli/cmd/tui/events" - "pass-cli/cmd/tui/layout" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/config" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/cmd/tui/components" + "github.com/arimxyer/pass-cli/cmd/tui/events" + "github.com/arimxyer/pass-cli/cmd/tui/layout" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/vault" ) var tuiCmd = &cobra.Command{ diff --git a/cmd/tui/components/detail.go b/cmd/tui/components/detail.go index 7a5b6096..fcd54679 100644 --- a/cmd/tui/components/detail.go +++ b/cmd/tui/components/detail.go @@ -7,9 +7,9 @@ import ( "strings" "time" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/atotto/clipboard" "github.com/rivo/tview" diff --git a/cmd/tui/components/detail_test.go b/cmd/tui/components/detail_test.go index 7ca79b9f..9dac2d89 100644 --- a/cmd/tui/components/detail_test.go +++ b/cmd/tui/components/detail_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "pass-cli/cmd/tui/models" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/internal/vault" ) // TestDetailView_Refresh_CachesCredentialService verifies that Refresh() caches the last credential service diff --git a/cmd/tui/components/forms.go b/cmd/tui/components/forms.go index 14ccfce5..2ec4511a 100644 --- a/cmd/tui/components/forms.go +++ b/cmd/tui/components/forms.go @@ -8,13 +8,13 @@ import ( "math/big" "strings" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/atotto/clipboard" "github.com/gdamore/tcell/v2" "github.com/rivo/tview" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/security" - "pass-cli/internal/vault" ) // normalizeCategory converts the "Uncategorized" UI label to empty string for storage. diff --git a/cmd/tui/components/forms_password_toggle_test.go b/cmd/tui/components/forms_password_toggle_test.go index 84e0b449..3f8b452a 100644 --- a/cmd/tui/components/forms_password_toggle_test.go +++ b/cmd/tui/components/forms_password_toggle_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "pass-cli/cmd/tui/models" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/gdamore/tcell/v2" "github.com/rivo/tview" diff --git a/cmd/tui/components/sidebar.go b/cmd/tui/components/sidebar.go index 94baa17b..b5cf8abd 100644 --- a/cmd/tui/components/sidebar.go +++ b/cmd/tui/components/sidebar.go @@ -3,11 +3,11 @@ package components import ( "sort" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/gdamore/tcell/v2" "github.com/rivo/tview" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/vault" ) // NodeReference identifies the type and value of a tree node. diff --git a/cmd/tui/components/sidebar_test.go b/cmd/tui/components/sidebar_test.go index 2a0108bd..4c40fa71 100644 --- a/cmd/tui/components/sidebar_test.go +++ b/cmd/tui/components/sidebar_test.go @@ -8,8 +8,8 @@ import ( "github.com/stretchr/testify/require" - "pass-cli/cmd/tui/models" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/internal/vault" ) // MockVaultService for component tests diff --git a/cmd/tui/components/statusbar.go b/cmd/tui/components/statusbar.go index 18231b4d..10f20961 100644 --- a/cmd/tui/components/statusbar.go +++ b/cmd/tui/components/statusbar.go @@ -6,9 +6,9 @@ import ( "github.com/rivo/tview" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/config" ) // FocusContext represents the current focus context for determining which shortcuts to display. diff --git a/cmd/tui/components/table.go b/cmd/tui/components/table.go index 86df5a4b..36b0d763 100644 --- a/cmd/tui/components/table.go +++ b/cmd/tui/components/table.go @@ -4,10 +4,10 @@ import ( "fmt" "time" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/rivo/tview" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/vault" ) // CredentialTable wraps tview.Table to display credentials in tabular format. diff --git a/cmd/tui/components/table_test.go b/cmd/tui/components/table_test.go index 4e6bd664..f85b2f50 100644 --- a/cmd/tui/components/table_test.go +++ b/cmd/tui/components/table_test.go @@ -6,8 +6,8 @@ import ( "github.com/stretchr/testify/require" - "pass-cli/cmd/tui/models" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/internal/vault" ) // TestNewCredentialTable verifies CredentialTable creation. diff --git a/cmd/tui/events/focus.go b/cmd/tui/events/focus.go index 5305048a..06857c49 100644 --- a/cmd/tui/events/focus.go +++ b/cmd/tui/events/focus.go @@ -3,9 +3,9 @@ package events import ( "fmt" - "pass-cli/cmd/tui/components" - "pass-cli/cmd/tui/layout" - "pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/components" + "github.com/arimxyer/pass-cli/cmd/tui/layout" + "github.com/arimxyer/pass-cli/cmd/tui/models" ) // IsComponentVisible checks if a component is visible in the current layout mode. diff --git a/cmd/tui/events/handlers.go b/cmd/tui/events/handlers.go index f5473558..2f86ad58 100644 --- a/cmd/tui/events/handlers.go +++ b/cmd/tui/events/handlers.go @@ -6,10 +6,10 @@ import ( "github.com/gdamore/tcell/v2" "github.com/rivo/tview" - "pass-cli/cmd/tui/components" - "pass-cli/cmd/tui/layout" - "pass-cli/cmd/tui/models" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/cmd/tui/components" + "github.com/arimxyer/pass-cli/cmd/tui/layout" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/internal/config" ) // EventHandler manages global keyboard shortcuts with focus-aware input protection. diff --git a/cmd/tui/layout/manager.go b/cmd/tui/layout/manager.go index 2758b06c..0ba570f7 100644 --- a/cmd/tui/layout/manager.go +++ b/cmd/tui/layout/manager.go @@ -2,9 +2,9 @@ package layout import ( + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/internal/config" "github.com/rivo/tview" - "pass-cli/cmd/tui/models" - "pass-cli/internal/config" ) // MinTerminalWidth is the minimum terminal width (columns) required for usable interface. @@ -216,8 +216,8 @@ func (lm *LayoutManager) HandleResize(width, height int) { // - Small: Table only (full width) // - Medium: Sidebar (20 cols) + Table (flex) // - Large: Sidebar + Table + Detail (position determined by determineDetailPosition) -// - Horizontal (detail on right): Sidebar (20 cols) + Table (flex) + Detail (40 cols) -// - Vertical (detail on bottom): Sidebar (20 cols) + (Table above Detail stacked vertically) +// - Horizontal (detail on right): Sidebar (20 cols) + Table (flex) + Detail (40 cols) +// - Vertical (detail on bottom): Sidebar (20 cols) + (Table above Detail stacked vertically) // // Manual overrides (detailPanelOverride) take precedence over responsive breakpoints. func (lm *LayoutManager) RebuildLayout() { @@ -304,8 +304,8 @@ func (lm *LayoutManager) RebuildLayout() { // Create right area with table and detail stacked vertically rightArea := tview.NewFlex(). SetDirection(tview.FlexRow). - AddItem(tableArea, 0, 2, true). // Table gets 2/3 height - AddItem(lm.detailView, 0, 1, false) // Detail gets 1/3 height + AddItem(tableArea, 0, 2, true). // Table gets 2/3 height + AddItem(lm.detailView, 0, 1, false) // Detail gets 1/3 height if showSidebar { // Sidebar + (Table above Detail) diff --git a/cmd/tui/layout/manager_test.go b/cmd/tui/layout/manager_test.go index af08fcec..6e8e2269 100644 --- a/cmd/tui/layout/manager_test.go +++ b/cmd/tui/layout/manager_test.go @@ -3,7 +3,7 @@ package layout import ( "testing" - "pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/models" "github.com/gdamore/tcell/v2" "github.com/rivo/tview" diff --git a/cmd/tui/main.go b/cmd/tui/main.go index 8bad8dae..28d9af24 100644 --- a/cmd/tui/main.go +++ b/cmd/tui/main.go @@ -5,15 +5,15 @@ import ( "os" "path/filepath" + "github.com/arimxyer/pass-cli/cmd/tui/components" + "github.com/arimxyer/pass-cli/cmd/tui/events" + "github.com/arimxyer/pass-cli/cmd/tui/layout" + "github.com/arimxyer/pass-cli/cmd/tui/models" + "github.com/arimxyer/pass-cli/cmd/tui/styles" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/gdamore/tcell/v2" "github.com/howeyc/gopass" - "pass-cli/cmd/tui/components" - "pass-cli/cmd/tui/events" - "pass-cli/cmd/tui/layout" - "pass-cli/cmd/tui/models" - "pass-cli/cmd/tui/styles" - "pass-cli/internal/config" - "pass-cli/internal/vault" ) const maxPasswordAttempts = 3 diff --git a/cmd/tui/models/navigation.go b/cmd/tui/models/navigation.go index 47ed467f..e17ecbeb 100644 --- a/cmd/tui/models/navigation.go +++ b/cmd/tui/models/navigation.go @@ -1,8 +1,8 @@ package models import ( + "github.com/arimxyer/pass-cli/cmd/tui/styles" "github.com/rivo/tview" - "pass-cli/cmd/tui/styles" ) // FocusableComponent represents components that can receive focus. diff --git a/cmd/tui/models/search.go b/cmd/tui/models/search.go index 72dc7fc4..49aa6afa 100644 --- a/cmd/tui/models/search.go +++ b/cmd/tui/models/search.go @@ -3,7 +3,7 @@ package models import ( "strings" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/rivo/tview" ) diff --git a/cmd/tui/models/search_test.go b/cmd/tui/models/search_test.go index d50aa70a..34d20e0a 100644 --- a/cmd/tui/models/search_test.go +++ b/cmd/tui/models/search_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) // Test helper - createTestCredentialMetadata creates test credential metadata diff --git a/cmd/tui/models/state.go b/cmd/tui/models/state.go index 2c596d9f..8f71b6ea 100644 --- a/cmd/tui/models/state.go +++ b/cmd/tui/models/state.go @@ -8,7 +8,7 @@ import ( "sort" "sync" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/rivo/tview" ) diff --git a/cmd/tui/models/state_test.go b/cmd/tui/models/state_test.go index decb3208..7e5e790c 100644 --- a/cmd/tui/models/state_test.go +++ b/cmd/tui/models/state_test.go @@ -9,7 +9,7 @@ import ( "github.com/rivo/tview" "github.com/stretchr/testify/require" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) // MockVaultService is a mock implementation of VaultService for testing. diff --git a/cmd/tui/styles/theme.go b/cmd/tui/styles/theme.go index 772053c6..2623b8e5 100644 --- a/cmd/tui/styles/theme.go +++ b/cmd/tui/styles/theme.go @@ -74,9 +74,9 @@ var DraculaTheme = ColorScheme{ // NordTheme provides a Nord-inspired color scheme (cool blues and grays). var NordTheme = ColorScheme{ // Backgrounds - Background: tcell.NewRGBColor(46, 52, 64), // #2e3440 - BackgroundLight: tcell.NewRGBColor(59, 66, 82), // #3b4252 - BackgroundDark: tcell.NewRGBColor(36, 42, 54), // #242a36 + Background: tcell.NewRGBColor(46, 52, 64), // #2e3440 + BackgroundLight: tcell.NewRGBColor(59, 66, 82), // #3b4252 + BackgroundDark: tcell.NewRGBColor(36, 42, 54), // #242a36 // Borders BorderColor: tcell.NewRGBColor(136, 192, 208), // #88c0d0 (frost cyan) @@ -106,9 +106,9 @@ var NordTheme = ColorScheme{ // GruvboxTheme provides a Gruvbox dark color scheme (warm retro vibes). var GruvboxTheme = ColorScheme{ // Backgrounds - Background: tcell.NewRGBColor(40, 40, 40), // #282828 - BackgroundLight: tcell.NewRGBColor(60, 56, 54), // #3c3836 - BackgroundDark: tcell.NewRGBColor(29, 32, 33), // #1d2021 + Background: tcell.NewRGBColor(40, 40, 40), // #282828 + BackgroundLight: tcell.NewRGBColor(60, 56, 54), // #3c3836 + BackgroundDark: tcell.NewRGBColor(29, 32, 33), // #1d2021 // Borders BorderColor: tcell.NewRGBColor(142, 192, 124), // #8ec07c (aqua) @@ -138,9 +138,9 @@ var GruvboxTheme = ColorScheme{ // MonokaiTheme provides a Monokai-inspired color scheme (vibrant and colorful). var MonokaiTheme = ColorScheme{ // Backgrounds - Background: tcell.NewRGBColor(39, 40, 34), // #272822 - BackgroundLight: tcell.NewRGBColor(49, 51, 45), // #31332d - BackgroundDark: tcell.NewRGBColor(29, 30, 24), // #1d1e18 + Background: tcell.NewRGBColor(39, 40, 34), // #272822 + BackgroundLight: tcell.NewRGBColor(49, 51, 45), // #31332d + BackgroundDark: tcell.NewRGBColor(29, 30, 24), // #1d1e18 // Borders BorderColor: tcell.NewRGBColor(102, 217, 239), // #66d9ef (cyan) diff --git a/cmd/update.go b/cmd/update.go index f0ea2b16..3cf7c67d 100644 --- a/cmd/update.go +++ b/cmd/update.go @@ -11,7 +11,7 @@ import ( "github.com/atotto/clipboard" "github.com/spf13/cobra" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/usage.go b/cmd/usage.go index 936217c3..8ec437c1 100644 --- a/cmd/usage.go +++ b/cmd/usage.go @@ -3,8 +3,8 @@ package cmd import ( "encoding/json" "fmt" + "github.com/arimxyer/pass-cli/internal/vault" "os" - "pass-cli/internal/vault" "sort" "github.com/spf13/cobra" diff --git a/cmd/vault_backup_create.go b/cmd/vault_backup_create.go index c3f40c5f..6d7f0ba7 100644 --- a/cmd/vault_backup_create.go +++ b/cmd/vault_backup_create.go @@ -8,7 +8,7 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/security" ) var ( @@ -86,8 +86,8 @@ func runVaultBackupCreate(cmd *cobra.Command, args []string) error { // Check both the error string and common patterns errStr := err.Error() if strings.Contains(errStr, "no space left on device") || - strings.Contains(errStr, "insufficient disk space") || - strings.Contains(errStr, "disk full") { + strings.Contains(errStr, "insufficient disk space") || + strings.Contains(errStr, "disk full") { return fmt.Errorf("insufficient disk space for backup\n\nFree up disk space and try again") } return fmt.Errorf("failed to create backup: %w", err) diff --git a/cmd/vault_backup_info.go b/cmd/vault_backup_info.go index 06e64248..e2a4ec84 100644 --- a/cmd/vault_backup_info.go +++ b/cmd/vault_backup_info.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/internal/storage" ) var ( diff --git a/cmd/vault_backup_preview.go b/cmd/vault_backup_preview.go index fdeae5f0..eef71317 100644 --- a/cmd/vault_backup_preview.go +++ b/cmd/vault_backup_preview.go @@ -10,9 +10,9 @@ import ( "github.com/olekukonko/tablewriter" "github.com/spf13/cobra" - "pass-cli/internal/crypto" - "pass-cli/internal/storage" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/vault_backup_restore.go b/cmd/vault_backup_restore.go index b8fe8b50..2e42724e 100644 --- a/cmd/vault_backup_restore.go +++ b/cmd/vault_backup_restore.go @@ -11,8 +11,8 @@ import ( "github.com/olekukonko/tablewriter" "github.com/spf13/cobra" - "pass-cli/internal/security" - "pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/storage" ) var ( diff --git a/cmd/vault_migrate.go b/cmd/vault_migrate.go index ef1549c3..4f08ddcf 100644 --- a/cmd/vault_migrate.go +++ b/cmd/vault_migrate.go @@ -5,9 +5,9 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/crypto" - "pass-cli/internal/recovery" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/vault" ) var vaultMigrateCmd = &cobra.Command{ diff --git a/cmd/vault_remove.go b/cmd/vault_remove.go index e89c5b6a..67b5c4ec 100644 --- a/cmd/vault_remove.go +++ b/cmd/vault_remove.go @@ -9,7 +9,7 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) var ( diff --git a/cmd/verify_audit.go b/cmd/verify_audit.go index fb28584c..e9dd6a74 100644 --- a/cmd/verify_audit.go +++ b/cmd/verify_audit.go @@ -8,7 +8,7 @@ import ( "github.com/spf13/cobra" - "pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/security" ) var verifyAuditCmd = &cobra.Command{ diff --git a/docs/01-getting-started/manual-install.md b/docs/01-getting-started/manual-install.md index f48a33c7..a92e5d60 100644 --- a/docs/01-getting-started/manual-install.md +++ b/docs/01-getting-started/manual-install.md @@ -221,9 +221,9 @@ DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") # Build with ldflags go build -ldflags="-s -w \ - -X pass-cli/cmd.version=${VERSION} \ - -X pass-cli/cmd.commit=${COMMIT} \ - -X pass-cli/cmd.date=${DATE}" \ + -X github.com/arimxyer/pass-cli/cmd.version=${VERSION} \ + -X github.com/arimxyer/pass-cli/cmd.commit=${COMMIT} \ + -X github.com/arimxyer/pass-cli/cmd.date=${DATE}" \ -o pass-cli . # Verify version info diff --git a/docs/06-development/release.md b/docs/06-development/release.md index 509fff34..b787bbd7 100644 --- a/docs/06-development/release.md +++ b/docs/06-development/release.md @@ -98,9 +98,9 @@ GoReleaser injects version information at build time via ldflags: ```yaml ldflags: - -s -w # Strip debug info (reduces binary size) - - -X pass-cli/cmd.version={{.Version}} - - -X pass-cli/cmd.commit={{.ShortCommit}} - - -X pass-cli/cmd.date={{.Date}} + - -X github.com/arimxyer/pass-cli/cmd.version={{.Version}} + - -X github.com/arimxyer/pass-cli/cmd.commit={{.ShortCommit}} + - -X github.com/arimxyer/pass-cli/cmd.date={{.Date}} ``` ### Supported Platforms diff --git a/go.mod b/go.mod index e93717fb..41d07c25 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module pass-cli +module github.com/arimxyer/pass-cli go 1.25.1 diff --git a/internal/config/config.go b/internal/config/config.go index abd6de96..2f657398 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -27,11 +27,11 @@ type Config struct { // TerminalConfig represents terminal size warning configuration type TerminalConfig struct { - WarningEnabled bool `mapstructure:"warning_enabled"` - MinWidth int `mapstructure:"min_width"` - MinHeight int `mapstructure:"min_height"` - DetailPosition string `mapstructure:"detail_position"` - DetailAutoThreshold int `mapstructure:"detail_auto_threshold"` + WarningEnabled bool `mapstructure:"warning_enabled"` + MinWidth int `mapstructure:"min_width"` + MinHeight int `mapstructure:"min_height"` + DetailPosition string `mapstructure:"detail_position"` + DetailAutoThreshold int `mapstructure:"detail_auto_threshold"` } // SyncConfig represents rclone sync configuration for cross-device vault synchronization diff --git a/internal/health/checker.go b/internal/health/checker.go index 0d60273c..fd3f6379 100644 --- a/internal/health/checker.go +++ b/internal/health/checker.go @@ -4,7 +4,7 @@ import ( "context" "time" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // Exit codes for doctor command diff --git a/internal/health/sync.go b/internal/health/sync.go index f013133a..5f3f9b41 100644 --- a/internal/health/sync.go +++ b/internal/health/sync.go @@ -5,7 +5,7 @@ import ( "os/exec" "strings" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // SyncChecker verifies cloud sync configuration and rclone availability diff --git a/internal/health/sync_test.go b/internal/health/sync_test.go index 4e42da4e..eb250ec0 100644 --- a/internal/health/sync_test.go +++ b/internal/health/sync_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // ARI-53: Tests for SyncChecker diff --git a/internal/recovery/constants.go b/internal/recovery/constants.go index 215ec44f..0c279c0f 100644 --- a/internal/recovery/constants.go +++ b/internal/recovery/constants.go @@ -2,18 +2,18 @@ package recovery // Default KDF Parameters (Argon2id) const ( - DefaultTime uint32 = 1 // Single pass (memory cost primary defense) - DefaultMemory uint32 = 65536 // 64 MB (RFC 9106 recommended default) - DefaultThreads uint8 = 4 // Matches existing vault KDF, utilizes modern CPUs - DefaultKeyLen uint32 = 32 // AES-256 - DefaultSaltLen int = 32 // 256 bits + DefaultTime uint32 = 1 // Single pass (memory cost primary defense) + DefaultMemory uint32 = 65536 // 64 MB (RFC 9106 recommended default) + DefaultThreads uint8 = 4 // Matches existing vault KDF, utilizes modern CPUs + DefaultKeyLen uint32 = 32 // AES-256 + DefaultSaltLen int = 32 // 256 bits ) // BIP39 Constants const ( - EntropyBits int = 256 // 24-word mnemonic - MnemonicWords int = 24 // Fixed word count - WordlistSize int = 2048 // Standard BIP39 wordlist size + EntropyBits int = 256 // 24-word mnemonic + MnemonicWords int = 24 // Fixed word count + WordlistSize int = 2048 // Standard BIP39 wordlist size ChallengeCount int = 6 // Fixed: 6-word challenge VerifyCount int = 3 // Default: 3-word verification ) diff --git a/internal/recovery/crypto.go b/internal/recovery/crypto.go index 55fb206e..d4a0bc68 100644 --- a/internal/recovery/crypto.go +++ b/internal/recovery/crypto.go @@ -7,7 +7,7 @@ import ( "encoding/json" "strings" - "pass-cli/internal/shared" + "github.com/arimxyer/pass-cli/internal/shared" "golang.org/x/crypto/argon2" ) diff --git a/internal/recovery/mnemonic.go b/internal/recovery/mnemonic.go index ce76e668..bf9b27f4 100644 --- a/internal/recovery/mnemonic.go +++ b/internal/recovery/mnemonic.go @@ -3,7 +3,7 @@ package recovery import ( "strings" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" "github.com/tyler-smith/go-bip39" ) diff --git a/internal/recovery/recovery.go b/internal/recovery/recovery.go index e8db209f..d7c56fb1 100644 --- a/internal/recovery/recovery.go +++ b/internal/recovery/recovery.go @@ -6,8 +6,8 @@ import ( "crypto/rand" "strings" - "pass-cli/internal/crypto" - "pass-cli/internal/shared" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/shared" "github.com/tyler-smith/go-bip39" ) diff --git a/internal/storage/atomic_save_unit_test.go b/internal/storage/atomic_save_unit_test.go index 2da17b10..701a3a19 100644 --- a/internal/storage/atomic_save_unit_test.go +++ b/internal/storage/atomic_save_unit_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestRandomHexSuffix tests hex suffix generation diff --git a/internal/storage/backup.go b/internal/storage/backup.go index 30706043..c638f8d6 100644 --- a/internal/storage/backup.go +++ b/internal/storage/backup.go @@ -29,6 +29,7 @@ const ( // - Nonce: 12 bytes (for AES-GCM) // - Auth tag: 16 bytes (for AES-GCM authentication) // - Encrypted data: minimal JSON structure +// // Total: ~100 bytes minimum for a structurally valid (but potentially empty) vault const minValidVaultSize = 100 diff --git a/internal/storage/backup_test.go b/internal/storage/backup_test.go index b316bbee..c8cd01bb 100644 --- a/internal/storage/backup_test.go +++ b/internal/storage/backup_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // mockFileSystem is a test double for FileSystem that allows error injection @@ -34,7 +34,6 @@ func (m *mockFileSystem) OpenFile(name string, flag int, perm os.FileMode) (*os. return m.osFileSystem.OpenFile(name, flag, perm) } - func TestGenerateManualBackupPath(t *testing.T) { cryptoService := crypto.NewCryptoService() tempDir := t.TempDir() @@ -504,7 +503,7 @@ func TestListBackups(t *testing.T) { func contains(s, substr string) bool { return len(s) >= len(substr) && (s == substr || len(s) > len(substr) && (s[:len(substr)] == substr || s[len(s)-len(substr):] == substr || - len(s) > len(substr)+1 && findSubstring(s, substr))) + len(s) > len(substr)+1 && findSubstring(s, substr))) } func findSubstring(s, substr string) bool { diff --git a/internal/storage/coverage_push_test.go b/internal/storage/coverage_push_test.go index 9cc8d649..11cf6e78 100644 --- a/internal/storage/coverage_push_test.go +++ b/internal/storage/coverage_push_test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestSaveVaultWithIterations_RestoreOnFailure tests backup restoration when save fails diff --git a/internal/storage/iterations_integrity_test.go b/internal/storage/iterations_integrity_test.go index 4a17f430..a6935e6d 100644 --- a/internal/storage/iterations_integrity_test.go +++ b/internal/storage/iterations_integrity_test.go @@ -4,7 +4,7 @@ import ( "bytes" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestSaveVaultWithIterations_NoOpChange tests SaveVaultWithIterations with current iterations (no-op) diff --git a/internal/storage/iterations_test.go b/internal/storage/iterations_test.go index 85d2e8f9..586ee408 100644 --- a/internal/storage/iterations_test.go +++ b/internal/storage/iterations_test.go @@ -3,7 +3,7 @@ package storage import ( "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestGetIterations_NewVault tests getting iterations from newly initialized vault diff --git a/internal/storage/rollback_critical_test.go b/internal/storage/rollback_critical_test.go index ef5f4bc7..616b91c0 100644 --- a/internal/storage/rollback_critical_test.go +++ b/internal/storage/rollback_critical_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestSaveVault_RollbackFailure tests the CRITICAL scenario where both diff --git a/internal/storage/rollback_test.go b/internal/storage/rollback_test.go index 162c16b0..6438f28a 100644 --- a/internal/storage/rollback_test.go +++ b/internal/storage/rollback_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestSaveVault_RollbackOnSecondRenameFail tests the critical rollback path diff --git a/internal/storage/savevault_error_test.go b/internal/storage/savevault_error_test.go index 1fecaf12..222fe74c 100644 --- a/internal/storage/savevault_error_test.go +++ b/internal/storage/savevault_error_test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestSaveVault_DifferentPassword tests SaveVault succeeds with different password (password change scenario) diff --git a/internal/storage/storage.go b/internal/storage/storage.go index a04da18a..409d4aa3 100644 --- a/internal/storage/storage.go +++ b/internal/storage/storage.go @@ -9,7 +9,7 @@ import ( "path/filepath" "time" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) const ( diff --git a/internal/storage/storage_errors_test.go b/internal/storage/storage_errors_test.go index 67f66ffc..8c593b45 100644 --- a/internal/storage/storage_errors_test.go +++ b/internal/storage/storage_errors_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestSaveVault_ErrorMessage_VerificationFailed verifies FR-011 compliance diff --git a/internal/storage/storage_test.go b/internal/storage/storage_test.go index 4270025a..2f1f8154 100644 --- a/internal/storage/storage_test.go +++ b/internal/storage/storage_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) func TestNewStorageService(t *testing.T) { diff --git a/internal/sync/sync.go b/internal/sync/sync.go index efa2a62e..fc3f877c 100644 --- a/internal/sync/sync.go +++ b/internal/sync/sync.go @@ -10,7 +10,7 @@ import ( "path/filepath" "time" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // ErrSyncConflict indicates both local and remote have changed since last sync. diff --git a/internal/sync/sync_integration_test.go b/internal/sync/sync_integration_test.go index 11e8afdb..6eae7b9d 100644 --- a/internal/sync/sync_integration_test.go +++ b/internal/sync/sync_integration_test.go @@ -11,7 +11,7 @@ import ( "testing" "time" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // setupMockRclone creates a mock rclone script in a temp directory and returns diff --git a/internal/sync/sync_test.go b/internal/sync/sync_test.go index 31800c79..05afdcee 100644 --- a/internal/sync/sync_test.go +++ b/internal/sync/sync_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // mockExecutor records calls and returns configured responses. diff --git a/internal/vault/firstrun.go b/internal/vault/firstrun.go index 6ae9ea60..bb939658 100644 --- a/internal/vault/firstrun.go +++ b/internal/vault/firstrun.go @@ -10,10 +10,10 @@ import ( "strings" "unicode" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/security" "golang.org/x/term" - "pass-cli/internal/crypto" - "pass-cli/internal/recovery" - "pass-cli/internal/security" ) // Errors for first-run detection and guided initialization diff --git a/internal/vault/metadata.go b/internal/vault/metadata.go index 88dcb0ce..157d4613 100644 --- a/internal/vault/metadata.go +++ b/internal/vault/metadata.go @@ -6,7 +6,7 @@ import ( "os" "time" - "pass-cli/internal/shared" + "github.com/arimxyer/pass-cli/internal/shared" ) // Metadata represents vault configuration stored in .meta.json diff --git a/internal/vault/metadata_test.go b/internal/vault/metadata_test.go index b207f144..37b0f39e 100644 --- a/internal/vault/metadata_test.go +++ b/internal/vault/metadata_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/internal/vault/vault.go b/internal/vault/vault.go index b5b75d13..4db36547 100644 --- a/internal/vault/vault.go +++ b/internal/vault/vault.go @@ -10,13 +10,13 @@ import ( "strings" "time" - "pass-cli/internal/config" - "pass-cli/internal/crypto" - "pass-cli/internal/keychain" - "pass-cli/internal/recovery" - "pass-cli/internal/security" - "pass-cli/internal/storage" - intsync "pass-cli/internal/sync" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/keychain" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/storage" + intsync "github.com/arimxyer/pass-cli/internal/sync" "github.com/tyler-smith/go-bip39" "golang.org/x/crypto/argon2" diff --git a/internal/vault/vault_audit_save_test.go b/internal/vault/vault_audit_save_test.go index 435b47c9..f5991a3b 100644 --- a/internal/vault/vault_audit_save_test.go +++ b/internal/vault/vault_audit_save_test.go @@ -6,8 +6,8 @@ import ( "path/filepath" "testing" + "github.com/arimxyer/pass-cli/internal/security" "github.com/zalando/go-keyring" - "pass-cli/internal/security" ) // cleanupTestKeychain removes keychain entries created during tests diff --git a/internal/vault/vault_sync_test.go b/internal/vault/vault_sync_test.go index d4eb8c10..dff664e3 100644 --- a/internal/vault/vault_sync_test.go +++ b/internal/vault/vault_sync_test.go @@ -9,8 +9,8 @@ import ( "testing" "time" - "pass-cli/internal/config" - intsync "pass-cli/internal/sync" + "github.com/arimxyer/pass-cli/internal/config" + intsync "github.com/arimxyer/pass-cli/internal/sync" ) // mockSyncService wraps a real sync.Service but tracks calls via a mock executor. @@ -19,9 +19,9 @@ type syncTestRecorder struct { // lsjsonCalled tracks whether Run was called with "lsjson" (used by both SmartPull and SmartPush) lsjsonCalled bool // syncCalled tracks whether RunNoOutput was called with "sync" (the actual rclone sync) - syncCalled bool - lsjsonErr error - syncErr error + syncCalled bool + lsjsonErr error + syncErr error } func (r *syncTestRecorder) recordLsjson() { diff --git a/internal/vault/vault_test.go b/internal/vault/vault_test.go index 6ee35fed..614010be 100644 --- a/internal/vault/vault_test.go +++ b/internal/vault/vault_test.go @@ -9,8 +9,8 @@ import ( "testing" "time" + "github.com/arimxyer/pass-cli/internal/storage" "github.com/zalando/go-keyring" - "pass-cli/internal/storage" ) const ( diff --git a/main.go b/main.go index 2e9c84e4..c0ceba25 100644 --- a/main.go +++ b/main.go @@ -4,8 +4,8 @@ import ( "fmt" "os" - "pass-cli/cmd" - "pass-cli/cmd/tui" + "github.com/arimxyer/pass-cli/cmd" + "github.com/arimxyer/pass-cli/cmd/tui" ) func main() { diff --git a/test/README.md b/test/README.md index d8c6b819..7f912d05 100644 --- a/test/README.md +++ b/test/README.md @@ -164,7 +164,7 @@ Each test: The `test/helpers` package provides utilities for integration tests: ```go -import "pass-cli/test/helpers" +import "github.com/arimxyer/pass-cli/test/helpers" // SetupTestVault creates a vault with automatic cleanup // VaultID will be "test-vault" diff --git a/test/integration/config_flag_test.go b/test/integration/config_flag_test.go index 6d3eec69..940c513f 100644 --- a/test/integration/config_flag_test.go +++ b/test/integration/config_flag_test.go @@ -9,7 +9,7 @@ import ( "strings" "testing" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/test/helpers" ) // TestIntegration_ConfigFlagWithoutDefaultVault tests issue #65: diff --git a/test/integration/core_test.go b/test/integration/core_test.go index c79de032..12a5edf1 100644 --- a/test/integration/core_test.go +++ b/test/integration/core_test.go @@ -5,9 +5,9 @@ package integration import ( "bytes" "fmt" + "github.com/arimxyer/pass-cli/test/helpers" "os" "os/exec" - "pass-cli/test/helpers" "path/filepath" "runtime" "strings" diff --git a/test/integration/init_test.go b/test/integration/init_test.go index 4920752e..3d96a00f 100644 --- a/test/integration/init_test.go +++ b/test/integration/init_test.go @@ -1,4 +1,5 @@ //go:build integration + package integration import ( @@ -10,11 +11,11 @@ import ( "strings" "testing" - "pass-cli/internal/crypto" - "pass-cli/internal/keychain" - "pass-cli/internal/storage" - "pass-cli/internal/vault" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/keychain" + "github.com/arimxyer/pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/test/helpers" ) // TestCLI_InitCreatesV2VaultByDefault verifies that `pass-cli init` creates diff --git a/test/integration/keychain_test.go b/test/integration/keychain_test.go index 3181dd30..b86366d9 100644 --- a/test/integration/keychain_test.go +++ b/test/integration/keychain_test.go @@ -10,9 +10,9 @@ import ( "testing" "time" - "pass-cli/internal/keychain" - "pass-cli/internal/vault" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/internal/keychain" + "github.com/arimxyer/pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/test/helpers" ) // TestKeychain_FullWorkflow tests the complete keychain integration workflow diff --git a/test/integration/list_test.go b/test/integration/list_test.go index 90a8203b..ea60ea30 100644 --- a/test/integration/list_test.go +++ b/test/integration/list_test.go @@ -9,7 +9,7 @@ import ( "strings" "testing" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/test/helpers" ) // T024-T028: Integration tests for list --by-project command (User Story 2) diff --git a/test/integration/metadata_test.go b/test/integration/metadata_test.go index 15c0d030..56cb8012 100644 --- a/test/integration/metadata_test.go +++ b/test/integration/metadata_test.go @@ -11,9 +11,9 @@ import ( "strings" "testing" - "pass-cli/internal/keychain" - "pass-cli/internal/vault" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/internal/keychain" + "github.com/arimxyer/pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/test/helpers" ) // T014: Integration test for corrupted metadata fallback diff --git a/test/integration/migration_test.go b/test/integration/migration_test.go index ee982d3d..70f3cd23 100644 --- a/test/integration/migration_test.go +++ b/test/integration/migration_test.go @@ -6,9 +6,9 @@ import ( "path/filepath" "testing" - "pass-cli/internal/crypto" - "pass-cli/internal/storage" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/internal/vault" ) // T046: Integration test: v1 vault triggers migration prompt diff --git a/test/integration/recovery_test.go b/test/integration/recovery_test.go index 9e6ee4b8..88ad5c0f 100644 --- a/test/integration/recovery_test.go +++ b/test/integration/recovery_test.go @@ -10,10 +10,10 @@ import ( "strings" "testing" - "pass-cli/internal/crypto" - "pass-cli/internal/storage" - "pass-cli/internal/vault" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/test/helpers" ) // ======================================== diff --git a/test/integration/sync_enable_test.go b/test/integration/sync_enable_test.go index 158d02c2..adf284c1 100644 --- a/test/integration/sync_enable_test.go +++ b/test/integration/sync_enable_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/test/helpers" ) // TestSyncEnable tests the sync enable command diff --git a/test/integration/tui_test.go b/test/integration/tui_test.go index de97e75f..cd4d5878 100644 --- a/test/integration/tui_test.go +++ b/test/integration/tui_test.go @@ -14,7 +14,7 @@ import ( "github.com/zalando/go-keyring" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/test/helpers" ) // TestIntegration_TUILaunchDetection verifies TUI launches with no args @@ -138,7 +138,6 @@ func TestIntegration_TUIVaultPath(t *testing.T) { t.Fatalf("Failed to initialize custom vault: %v", err) } - // Verify vault was created at custom path if _, err := os.Stat(customVaultPath); os.IsNotExist(err) { t.Fatal("Vault was not created at custom path") diff --git a/test/integration/usage_test.go b/test/integration/usage_test.go index 4fc6c868..b3bb0b74 100644 --- a/test/integration/usage_test.go +++ b/test/integration/usage_test.go @@ -12,7 +12,7 @@ import ( "testing" "time" - "pass-cli/test/helpers" + "github.com/arimxyer/pass-cli/test/helpers" ) // T005-T014: Integration tests for usage command (User Story 1) diff --git a/test/integration/vault_ops_test.go b/test/integration/vault_ops_test.go index e336a7cb..916bd752 100644 --- a/test/integration/vault_ops_test.go +++ b/test/integration/vault_ops_test.go @@ -5,11 +5,11 @@ package integration import ( "bytes" "fmt" + "github.com/arimxyer/pass-cli/internal/keychain" + "github.com/arimxyer/pass-cli/internal/storage" + "github.com/arimxyer/pass-cli/test/helpers" "os" "os/exec" - "pass-cli/internal/keychain" - "pass-cli/internal/storage" - "pass-cli/test/helpers" "path/filepath" "runtime" "strings" diff --git a/test/unit/config/cli_test.go b/test/unit/config/cli_test.go index c05d92e7..2a1ef386 100644 --- a/test/unit/config/cli_test.go +++ b/test/unit/config/cli_test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "testing" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // T017: Integration test for loading terminal config from YAML diff --git a/test/unit/config/validation_test.go b/test/unit/config/validation_test.go index 603cdb1b..7c870dec 100644 --- a/test/unit/config/validation_test.go +++ b/test/unit/config/validation_test.go @@ -3,7 +3,7 @@ package config_test import ( "testing" - "pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/config" ) // T028: Integration test for custom keybindings in TUI event handling diff --git a/test/unit/keywrap_test.go b/test/unit/keywrap_test.go index aaa85a0a..0e94ab7c 100644 --- a/test/unit/keywrap_test.go +++ b/test/unit/keywrap_test.go @@ -4,7 +4,7 @@ import ( "bytes" "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // T003: Unit test for GenerateDEK() diff --git a/test/unit/recovery/audit_test.go b/test/unit/recovery/audit_test.go index bb4ee52d..bd0f4b09 100644 --- a/test/unit/recovery/audit_test.go +++ b/test/unit/recovery/audit_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/recovery" ) // T057: Audit Logging Tests diff --git a/test/unit/recovery/bip39_compat_test.go b/test/unit/recovery/bip39_compat_test.go index ea4bdc25..9e3500e8 100644 --- a/test/unit/recovery/bip39_compat_test.go +++ b/test/unit/recovery/bip39_compat_test.go @@ -7,7 +7,7 @@ import ( "github.com/tyler-smith/go-bip39" - "pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/recovery" ) // T058: BIP39 Compatibility Test diff --git a/test/unit/recovery/challenge_test.go b/test/unit/recovery/challenge_test.go index 6103d523..f0f00a14 100644 --- a/test/unit/recovery/challenge_test.go +++ b/test/unit/recovery/challenge_test.go @@ -3,7 +3,7 @@ package recovery_test import ( "testing" - "pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/recovery" ) // T014: Unit test for SelectVerifyPositions() diff --git a/test/unit/recovery/memory_test.go b/test/unit/recovery/memory_test.go index 42b151dd..6770d8e6 100644 --- a/test/unit/recovery/memory_test.go +++ b/test/unit/recovery/memory_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/recovery" ) // T056: Memory Clearing Verification Tests diff --git a/test/unit/recovery/metadata_size_test.go b/test/unit/recovery/metadata_size_test.go index 8bfb3fe1..c84ccf52 100644 --- a/test/unit/recovery/metadata_size_test.go +++ b/test/unit/recovery/metadata_size_test.go @@ -4,7 +4,7 @@ import ( "encoding/json" "testing" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/vault" ) // T071: Validate SC-007 metadata size constraint @@ -39,7 +39,7 @@ func TestMetadataSize(t *testing.T) { } actualSize := len(jsonBytes) - const specLimit = 520 // SC-007 original constraint + const specLimit = 520 // SC-007 original constraint const practicalLimit = 1024 // Realistic limit for metadata // Log actual size for monitoring diff --git a/test/unit/recovery/mnemonic_test.go b/test/unit/recovery/mnemonic_test.go index 90a1f915..1f95467e 100644 --- a/test/unit/recovery/mnemonic_test.go +++ b/test/unit/recovery/mnemonic_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/recovery" "github.com/tyler-smith/go-bip39" ) diff --git a/test/unit/recovery/recovery_test.go b/test/unit/recovery/recovery_test.go index b7d3d6a0..e2baa65c 100644 --- a/test/unit/recovery/recovery_test.go +++ b/test/unit/recovery/recovery_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/require" "github.com/tyler-smith/go-bip39" - "pass-cli/internal/recovery" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/recovery" + "github.com/arimxyer/pass-cli/internal/vault" ) // T015: Unit test for VerifyBackup() diff --git a/test/unit/security/memory_test.go b/test/unit/security/memory_test.go index 39ade02f..b7f4bce9 100644 --- a/test/unit/security/memory_test.go +++ b/test/unit/security/memory_test.go @@ -3,7 +3,7 @@ package security_test import ( "testing" - "pass-cli/internal/crypto" + "github.com/arimxyer/pass-cli/internal/crypto" ) // TestMemoryClearing verifies that password bytes are cleared after vault operations. diff --git a/test/unit/sync/sync_integration_test.go b/test/unit/sync/sync_integration_test.go index 0194c479..4d88ef8e 100644 --- a/test/unit/sync/sync_integration_test.go +++ b/test/unit/sync/sync_integration_test.go @@ -5,10 +5,10 @@ import ( "path/filepath" "testing" - "pass-cli/internal/config" - "pass-cli/internal/security" - "pass-cli/internal/sync" - "pass-cli/internal/vault" + "github.com/arimxyer/pass-cli/internal/config" + "github.com/arimxyer/pass-cli/internal/security" + "github.com/arimxyer/pass-cli/internal/sync" + "github.com/arimxyer/pass-cli/internal/vault" ) // TestSyncConfigValidation tests that sync configuration is properly validated