lpgp 0.2.0
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/LICENSE +52 -0
- package/README.md +218 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +31 -0
- package/dist/config.js.map +1 -0
- package/dist/db.d.ts +80 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +284 -0
- package/dist/db.js.map +1 -0
- package/dist/decrypt.d.ts +2 -0
- package/dist/decrypt.d.ts.map +1 -0
- package/dist/decrypt.js +25 -0
- package/dist/decrypt.js.map +1 -0
- package/dist/encrypt.d.ts +2 -0
- package/dist/encrypt.d.ts.map +1 -0
- package/dist/encrypt.js +18 -0
- package/dist/encrypt.js.map +1 -0
- package/dist/key-manager.d.ts +119 -0
- package/dist/key-manager.d.ts.map +1 -0
- package/dist/key-manager.js +1235 -0
- package/dist/key-manager.js.map +1 -0
- package/dist/key-utils.d.ts +47 -0
- package/dist/key-utils.d.ts.map +1 -0
- package/dist/key-utils.js +199 -0
- package/dist/key-utils.js.map +1 -0
- package/dist/keychain.d.ts +22 -0
- package/dist/keychain.d.ts.map +1 -0
- package/dist/keychain.js +73 -0
- package/dist/keychain.js.map +1 -0
- package/dist/pgp-tool.d.ts +3 -0
- package/dist/pgp-tool.d.ts.map +1 -0
- package/dist/pgp-tool.js +1061 -0
- package/dist/pgp-tool.js.map +1 -0
- package/dist/prompts.d.ts +11 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +109 -0
- package/dist/prompts.js.map +1 -0
- package/dist/schema.sql +86 -0
- package/dist/system-keys.d.ts +32 -0
- package/dist/system-keys.d.ts.map +1 -0
- package/dist/system-keys.js +123 -0
- package/dist/system-keys.js.map +1 -0
- package/dist/ui.d.ts +94 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +175 -0
- package/dist/ui.js.map +1 -0
- package/package.json +56 -0
package/dist/ui.js
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Constants and Helpers
|
|
3
|
+
* Provides consistent styling across the CLI application
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Color Palette
|
|
8
|
+
// ============================================================================
|
|
9
|
+
export const colors = {
|
|
10
|
+
// Primary brand color for banners and headings
|
|
11
|
+
primary: chalk.cyan,
|
|
12
|
+
primaryBold: chalk.cyan.bold,
|
|
13
|
+
// Success states
|
|
14
|
+
success: chalk.green,
|
|
15
|
+
successBold: chalk.green.bold,
|
|
16
|
+
// Warning/prompt states
|
|
17
|
+
warning: chalk.yellow,
|
|
18
|
+
warningBold: chalk.yellow.bold,
|
|
19
|
+
// Error states
|
|
20
|
+
error: chalk.red,
|
|
21
|
+
errorBold: chalk.red.bold,
|
|
22
|
+
// Muted/secondary text
|
|
23
|
+
muted: chalk.gray,
|
|
24
|
+
mutedDim: chalk.dim,
|
|
25
|
+
// Accent colors for special elements
|
|
26
|
+
accent: chalk.magenta,
|
|
27
|
+
accentBold: chalk.magenta.bold,
|
|
28
|
+
info: chalk.blue,
|
|
29
|
+
infoBold: chalk.blue.bold,
|
|
30
|
+
};
|
|
31
|
+
// ============================================================================
|
|
32
|
+
// Icons with Colors
|
|
33
|
+
// ============================================================================
|
|
34
|
+
export const icons = {
|
|
35
|
+
// Actions
|
|
36
|
+
encrypt: chalk.cyan('→'),
|
|
37
|
+
decrypt: chalk.cyan('←'),
|
|
38
|
+
add: chalk.green('+'),
|
|
39
|
+
generate: chalk.green('+'),
|
|
40
|
+
import: chalk.green('↓'),
|
|
41
|
+
export: chalk.blue('↑'),
|
|
42
|
+
// Navigation
|
|
43
|
+
back: chalk.gray('←'),
|
|
44
|
+
home: chalk.gray('⌂'),
|
|
45
|
+
exit: chalk.red('×'),
|
|
46
|
+
// Items
|
|
47
|
+
key: chalk.yellow('★'),
|
|
48
|
+
contact: chalk.magenta('◆'),
|
|
49
|
+
clipboard: chalk.blue('▣'),
|
|
50
|
+
editor: chalk.blue('▤'),
|
|
51
|
+
inline: chalk.blue('▢'),
|
|
52
|
+
gpg: chalk.yellow('#'),
|
|
53
|
+
// Status
|
|
54
|
+
success: chalk.green('✓'),
|
|
55
|
+
error: chalk.red('✗'),
|
|
56
|
+
warning: chalk.yellow('!'),
|
|
57
|
+
info: chalk.cyan('ℹ'),
|
|
58
|
+
loading: chalk.blue('⏳'),
|
|
59
|
+
locked: chalk.yellow('◐'),
|
|
60
|
+
unlocked: chalk.green('○'),
|
|
61
|
+
// Selection markers
|
|
62
|
+
default: chalk.green('✓'),
|
|
63
|
+
selected: chalk.cyan('●'),
|
|
64
|
+
unselected: chalk.gray('○'),
|
|
65
|
+
// Misc
|
|
66
|
+
edit: chalk.cyan('~'),
|
|
67
|
+
notes: chalk.gray('>'),
|
|
68
|
+
trust: chalk.yellow('★'),
|
|
69
|
+
copy: chalk.blue('▪'),
|
|
70
|
+
view: chalk.gray('▫'),
|
|
71
|
+
multiple: chalk.magenta('+'),
|
|
72
|
+
loop: chalk.cyan('↻'),
|
|
73
|
+
};
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// Banner and Headers
|
|
76
|
+
// ============================================================================
|
|
77
|
+
const APP_NAME = 'lpgp';
|
|
78
|
+
const BANNER_WIDTH = 42;
|
|
79
|
+
export function printBanner() {
|
|
80
|
+
console.clear();
|
|
81
|
+
const title = APP_NAME.padStart((BANNER_WIDTH + APP_NAME.length) / 2).padEnd(BANNER_WIDTH);
|
|
82
|
+
console.log();
|
|
83
|
+
console.log(colors.primaryBold('╔' + '═'.repeat(BANNER_WIDTH) + '╗'));
|
|
84
|
+
console.log(colors.primaryBold('║') + colors.primary(title) + colors.primaryBold('║'));
|
|
85
|
+
console.log(colors.primaryBold('╚' + '═'.repeat(BANNER_WIDTH) + '╝'));
|
|
86
|
+
console.log();
|
|
87
|
+
}
|
|
88
|
+
export function printSectionHeader(title) {
|
|
89
|
+
const padded = ` ${title} `.padStart((BANNER_WIDTH + title.length + 2) / 2).padEnd(BANNER_WIDTH);
|
|
90
|
+
console.log();
|
|
91
|
+
console.log(colors.infoBold('┌' + '─'.repeat(BANNER_WIDTH) + '┐'));
|
|
92
|
+
console.log(colors.infoBold('│') + colors.info(padded) + colors.infoBold('│'));
|
|
93
|
+
console.log(colors.infoBold('└' + '─'.repeat(BANNER_WIDTH) + '┘'));
|
|
94
|
+
console.log();
|
|
95
|
+
}
|
|
96
|
+
export function printDivider() {
|
|
97
|
+
console.log(colors.muted('─'.repeat(50)));
|
|
98
|
+
}
|
|
99
|
+
// ============================================================================
|
|
100
|
+
// Status Messages
|
|
101
|
+
// ============================================================================
|
|
102
|
+
export function showSuccess(message) {
|
|
103
|
+
console.log(colors.success(`${icons.success} ${message}`));
|
|
104
|
+
}
|
|
105
|
+
export function showError(message) {
|
|
106
|
+
console.log(colors.error(`${icons.error} ${message}`));
|
|
107
|
+
}
|
|
108
|
+
export function showWarning(message) {
|
|
109
|
+
console.log(colors.warning(`${icons.warning} ${message}`));
|
|
110
|
+
}
|
|
111
|
+
export function showInfo(message) {
|
|
112
|
+
console.log(colors.info(`${icons.info} ${message}`));
|
|
113
|
+
}
|
|
114
|
+
export function showLoading(message) {
|
|
115
|
+
console.log(colors.info(`${icons.loading} ${message}`));
|
|
116
|
+
}
|
|
117
|
+
// ============================================================================
|
|
118
|
+
// Menu Formatting
|
|
119
|
+
// ============================================================================
|
|
120
|
+
/**
|
|
121
|
+
* Format a menu choice with icon and optional description
|
|
122
|
+
*/
|
|
123
|
+
export function menuChoice(icon, label, description) {
|
|
124
|
+
if (description) {
|
|
125
|
+
return `${icon} ${label} ${colors.muted(`(${description})`)}`;
|
|
126
|
+
}
|
|
127
|
+
return `${icon} ${label}`;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Standard navigation choices for menus
|
|
131
|
+
*/
|
|
132
|
+
export function backChoice(label = 'Back') {
|
|
133
|
+
return { name: `${icons.back} ${label}`, value: 'back' };
|
|
134
|
+
}
|
|
135
|
+
export function mainMenuChoice() {
|
|
136
|
+
return {
|
|
137
|
+
name: `${icons.home} Main menu ${colors.muted('(esc)')}`,
|
|
138
|
+
value: 'main-menu',
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
export function exitChoice() {
|
|
142
|
+
return { name: `${icons.exit} Exit`, value: 'exit' };
|
|
143
|
+
}
|
|
144
|
+
export function cancelChoice() {
|
|
145
|
+
return { name: `${icons.back} Cancel`, value: 'cancel' };
|
|
146
|
+
}
|
|
147
|
+
// ============================================================================
|
|
148
|
+
// Content Display
|
|
149
|
+
// ============================================================================
|
|
150
|
+
/**
|
|
151
|
+
* Display content in a bordered box
|
|
152
|
+
*/
|
|
153
|
+
export function showContentBox(title, content) {
|
|
154
|
+
console.log(colors.successBold(`${title}\n`));
|
|
155
|
+
printDivider();
|
|
156
|
+
console.log(content);
|
|
157
|
+
printDivider();
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Display a key-value pair
|
|
161
|
+
*/
|
|
162
|
+
export function showKeyValue(key, value) {
|
|
163
|
+
const displayValue = value === null ? colors.muted('(none)') : String(value);
|
|
164
|
+
console.log(`${colors.muted(key + ':')} ${displayValue}`);
|
|
165
|
+
}
|
|
166
|
+
// ============================================================================
|
|
167
|
+
// Prompt Helpers
|
|
168
|
+
// ============================================================================
|
|
169
|
+
/**
|
|
170
|
+
* Format a prompt message consistently
|
|
171
|
+
*/
|
|
172
|
+
export function promptMessage(message) {
|
|
173
|
+
return colors.primary(message);
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=ui.js.map
|
package/dist/ui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "lpgp",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Interactive CLI tool for PGP encryption/decryption with SQLite key management",
|
|
5
|
+
"author": "Bob Bass",
|
|
6
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"bin": {
|
|
9
|
+
"lpgp": "./dist/pgp-tool.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/robertjbass/lpgp.git"
|
|
17
|
+
},
|
|
18
|
+
"homepage": "https://github.com/robertjbass/lpgp#readme",
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/robertjbass/lpgp/issues"
|
|
21
|
+
},
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"pgp",
|
|
27
|
+
"gpg",
|
|
28
|
+
"encryption",
|
|
29
|
+
"decryption",
|
|
30
|
+
"openpgp",
|
|
31
|
+
"cli",
|
|
32
|
+
"security"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"dev": "tsx src/pgp-tool.ts",
|
|
36
|
+
"build": "tsc && cp src/schema.sql dist/schema.sql",
|
|
37
|
+
"start": "node dist/pgp-tool.js",
|
|
38
|
+
"format": "prettier --write ."
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"better-sqlite3": "^12.4.1",
|
|
42
|
+
"chalk": "^5.6.2",
|
|
43
|
+
"clipboardy": "^5.0.0",
|
|
44
|
+
"cross-keychain": "^1.1.0",
|
|
45
|
+
"inquirer": "^12.10.0",
|
|
46
|
+
"openpgp": "^6.2.2"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
50
|
+
"@types/inquirer": "^9.0.9",
|
|
51
|
+
"@types/node": "^24.9.2",
|
|
52
|
+
"prettier": "^3.6.2",
|
|
53
|
+
"tsx": "^4.20.6",
|
|
54
|
+
"typescript": "^5.9.3"
|
|
55
|
+
}
|
|
56
|
+
}
|