mirror of
https://github.com/moonD4rk/HackBrowserData.git
synced 2026-05-19 18:58:03 +02:00
00ad0e0bd4
* docs: add RFC-004 for CLI (cobra) and output design * feat: add output package with Formatter interface and BrowserData.Each * fix: golangci config array syntax + add output package tests * refactor: encapsulated Output as Writer, collect-then-write pattern * refactor: unified row type with reflection-based CSV/JSON output * fix: ProfileName empty guard, writeFile close error check, sync RFC-004
79 lines
2.9 KiB
Go
79 lines
2.9 KiB
Go
package types
|
|
|
|
import "time"
|
|
|
|
// LoginEntry represents a single saved login credential.
|
|
type LoginEntry struct {
|
|
URL string `json:"url" csv:"url"`
|
|
Username string `json:"username" csv:"username"`
|
|
Password string `json:"password" csv:"password"`
|
|
CreatedAt time.Time `json:"created_at" csv:"created_at"`
|
|
}
|
|
|
|
// CookieEntry represents a single browser cookie.
|
|
type CookieEntry struct {
|
|
Host string `json:"host" csv:"host"`
|
|
Path string `json:"path" csv:"path"`
|
|
Name string `json:"name" csv:"name"`
|
|
Value string `json:"value" csv:"value"`
|
|
IsSecure bool `json:"is_secure" csv:"is_secure"`
|
|
IsHTTPOnly bool `json:"is_http_only" csv:"is_http_only"`
|
|
HasExpire bool `json:"has_expire" csv:"has_expire"`
|
|
IsPersistent bool `json:"is_persistent" csv:"is_persistent"`
|
|
ExpireAt time.Time `json:"expire_at" csv:"expire_at"`
|
|
CreatedAt time.Time `json:"created_at" csv:"created_at"`
|
|
}
|
|
|
|
// BookmarkEntry represents a single browser bookmark.
|
|
type BookmarkEntry struct {
|
|
Name string `json:"name" csv:"name"`
|
|
URL string `json:"url" csv:"url"`
|
|
Folder string `json:"folder" csv:"folder"`
|
|
CreatedAt time.Time `json:"created_at" csv:"created_at"`
|
|
}
|
|
|
|
// HistoryEntry represents a single browser history record.
|
|
type HistoryEntry struct {
|
|
URL string `json:"url" csv:"url"`
|
|
Title string `json:"title" csv:"title"`
|
|
VisitCount int `json:"visit_count" csv:"visit_count"`
|
|
LastVisit time.Time `json:"last_visit" csv:"last_visit"`
|
|
}
|
|
|
|
// DownloadEntry represents a single browser download record.
|
|
type DownloadEntry struct {
|
|
URL string `json:"url" csv:"url"`
|
|
TargetPath string `json:"target_path" csv:"target_path"`
|
|
MimeType string `json:"mime_type" csv:"mime_type"`
|
|
TotalBytes int64 `json:"total_bytes" csv:"total_bytes"`
|
|
StartTime time.Time `json:"start_time" csv:"start_time"`
|
|
EndTime time.Time `json:"end_time" csv:"end_time"`
|
|
}
|
|
|
|
// CreditCardEntry represents a single saved credit card.
|
|
type CreditCardEntry struct {
|
|
Name string `json:"name" csv:"name"`
|
|
Number string `json:"number" csv:"number"`
|
|
ExpMonth string `json:"exp_month" csv:"exp_month"`
|
|
ExpYear string `json:"exp_year" csv:"exp_year"`
|
|
NickName string `json:"nick_name" csv:"nick_name"`
|
|
Address string `json:"address" csv:"address"`
|
|
}
|
|
|
|
// StorageEntry represents a single key-value pair from local or session storage.
|
|
type StorageEntry struct {
|
|
URL string `json:"url" csv:"url"`
|
|
Key string `json:"key" csv:"key"`
|
|
Value string `json:"value" csv:"value"`
|
|
}
|
|
|
|
// ExtensionEntry represents a single browser extension.
|
|
type ExtensionEntry struct {
|
|
Name string `json:"name" csv:"name"`
|
|
ID string `json:"id" csv:"id"`
|
|
Description string `json:"description" csv:"description"`
|
|
Version string `json:"version" csv:"version"`
|
|
HomepageURL string `json:"homepage_url" csv:"homepage_url"`
|
|
Enabled bool `json:"enabled" csv:"enabled"`
|
|
}
|