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.
Files changed (48) hide show
  1. package/LICENSE +52 -0
  2. package/README.md +218 -0
  3. package/dist/config.d.ts +17 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +31 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/db.d.ts +80 -0
  8. package/dist/db.d.ts.map +1 -0
  9. package/dist/db.js +284 -0
  10. package/dist/db.js.map +1 -0
  11. package/dist/decrypt.d.ts +2 -0
  12. package/dist/decrypt.d.ts.map +1 -0
  13. package/dist/decrypt.js +25 -0
  14. package/dist/decrypt.js.map +1 -0
  15. package/dist/encrypt.d.ts +2 -0
  16. package/dist/encrypt.d.ts.map +1 -0
  17. package/dist/encrypt.js +18 -0
  18. package/dist/encrypt.js.map +1 -0
  19. package/dist/key-manager.d.ts +119 -0
  20. package/dist/key-manager.d.ts.map +1 -0
  21. package/dist/key-manager.js +1235 -0
  22. package/dist/key-manager.js.map +1 -0
  23. package/dist/key-utils.d.ts +47 -0
  24. package/dist/key-utils.d.ts.map +1 -0
  25. package/dist/key-utils.js +199 -0
  26. package/dist/key-utils.js.map +1 -0
  27. package/dist/keychain.d.ts +22 -0
  28. package/dist/keychain.d.ts.map +1 -0
  29. package/dist/keychain.js +73 -0
  30. package/dist/keychain.js.map +1 -0
  31. package/dist/pgp-tool.d.ts +3 -0
  32. package/dist/pgp-tool.d.ts.map +1 -0
  33. package/dist/pgp-tool.js +1061 -0
  34. package/dist/pgp-tool.js.map +1 -0
  35. package/dist/prompts.d.ts +11 -0
  36. package/dist/prompts.d.ts.map +1 -0
  37. package/dist/prompts.js +109 -0
  38. package/dist/prompts.js.map +1 -0
  39. package/dist/schema.sql +86 -0
  40. package/dist/system-keys.d.ts +32 -0
  41. package/dist/system-keys.d.ts.map +1 -0
  42. package/dist/system-keys.js +123 -0
  43. package/dist/system-keys.js.map +1 -0
  44. package/dist/ui.d.ts +94 -0
  45. package/dist/ui.d.ts.map +1 -0
  46. package/dist/ui.js +175 -0
  47. package/dist/ui.js.map +1 -0
  48. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-manager.js","sourceRoot":"","sources":["../src/key-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { Keypair } from './db.js';
2
+ /**
3
+ * Obfuscate an email address for privacy
4
+ * Example: "kevinlong@protonmail.com" -> "ke******ng@p*********.com"
5
+ */
6
+ export declare function obfuscateEmail(email: string): string;
7
+ export declare function extractPublicKeyInfo(armoredKey: string): Promise<{
8
+ fingerprint: string;
9
+ email: string;
10
+ name: string;
11
+ algorithm: string;
12
+ keySize: string;
13
+ expiresAt: string | null;
14
+ canSign: boolean;
15
+ canEncrypt: boolean;
16
+ canCertify: boolean;
17
+ canAuthenticate: boolean;
18
+ }>;
19
+ /**
20
+ * Extract key information from a PGP private key
21
+ */
22
+ export declare function extractPrivateKeyInfo(armoredKey: string, passphrase?: string): Promise<{
23
+ fingerprint: string;
24
+ email: string;
25
+ name: string;
26
+ algorithm: string;
27
+ keySize: string;
28
+ expiresAt: string | null;
29
+ canSign: boolean;
30
+ canEncrypt: boolean;
31
+ canCertify: boolean;
32
+ canAuthenticate: boolean;
33
+ passphraseProtected: boolean;
34
+ }>;
35
+ /**
36
+ * Verify that a private key matches a public key
37
+ */
38
+ export declare function verifyKeyPair(publicKeyArmored: string, privateKeyArmored: string): Promise<boolean>;
39
+ /**
40
+ * Validate passphrase for a private key
41
+ */
42
+ export declare function validatePassphrase(privateKeyArmored: string, passphrase: string): Promise<boolean>;
43
+ /**
44
+ * Format a keypair for display
45
+ */
46
+ export declare function formatKeypairInfo(keypair: Keypair): string;
47
+ //# sourceMappingURL=key-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-utils.d.ts","sourceRoot":"","sources":["../src/key-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmCpD;AAaD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;CACzB,CAAC,CAyCD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;CAC7B,CAAC,CAuDD;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,gBAAgB,EAAE,MAAM,EACxB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoB1D"}
@@ -0,0 +1,199 @@
1
+ import * as openpgp from 'openpgp';
2
+ /**
3
+ * Obfuscate an email address for privacy
4
+ * Example: "kevinlong@protonmail.com" -> "ke******ng@p*********.com"
5
+ */
6
+ export function obfuscateEmail(email) {
7
+ if (!email || !email.includes('@'))
8
+ return email;
9
+ const [localPart, domain] = email.split('@');
10
+ if (!localPart || !domain)
11
+ return email;
12
+ // Obfuscate local part: show first 2 and last 2 chars
13
+ let obfuscatedLocal;
14
+ if (localPart.length <= 4) {
15
+ obfuscatedLocal = localPart[0] + '*'.repeat(localPart.length - 1);
16
+ }
17
+ else {
18
+ const showChars = 2;
19
+ obfuscatedLocal =
20
+ localPart.slice(0, showChars) +
21
+ '*'.repeat(localPart.length - showChars * 2) +
22
+ localPart.slice(-showChars);
23
+ }
24
+ // Obfuscate domain: show first char, obfuscate until TLD
25
+ const lastDot = domain.lastIndexOf('.');
26
+ if (lastDot === -1) {
27
+ return `${obfuscatedLocal}@${domain}`;
28
+ }
29
+ const domainName = domain.slice(0, lastDot);
30
+ const tld = domain.slice(lastDot);
31
+ let obfuscatedDomain;
32
+ if (domainName.length <= 2) {
33
+ obfuscatedDomain = domainName[0] + '*'.repeat(domainName.length - 1);
34
+ }
35
+ else {
36
+ obfuscatedDomain = domainName[0] + '*'.repeat(domainName.length - 1);
37
+ }
38
+ return `${obfuscatedLocal}@${obfuscatedDomain}${tld}`;
39
+ }
40
+ /**
41
+ * Extract key information from a PGP public key
42
+ */
43
+ // Config to allow weak keys like DSA (not recommended for production)
44
+ const weakKeyConfig = {
45
+ rejectPublicKeyAlgorithms: new Set(),
46
+ rejectHashAlgorithms: new Set(),
47
+ rejectMessageHashAlgorithms: new Set(),
48
+ rejectCurves: new Set(),
49
+ };
50
+ export async function extractPublicKeyInfo(armoredKey) {
51
+ const publicKey = await openpgp.readKey({ armoredKey, config: weakKeyConfig });
52
+ const user = publicKey.users[0];
53
+ const userID = user?.userID;
54
+ // Extract primary key info
55
+ const primaryKey = publicKey.keyPacket;
56
+ const algorithm = primaryKey.getAlgorithmInfo().algorithm;
57
+ const bits = primaryKey.getAlgorithmInfo().bits;
58
+ // Get key capabilities
59
+ try {
60
+ await publicKey.verifyPrimaryKey(undefined, undefined, weakKeyConfig);
61
+ // If verification doesn't throw, the key is valid
62
+ }
63
+ catch (e) {
64
+ // Key verification failed
65
+ }
66
+ const canSign = true; // Assume true for generated keys
67
+ const canEncrypt = (await publicKey.getEncryptionKey(undefined, undefined, undefined, weakKeyConfig)) !== null;
68
+ const canCertify = true; // Primary keys can typically certify
69
+ const canAuthenticate = false; // Not common for primary keys
70
+ // Get expiration
71
+ let expiresAt = null;
72
+ const expirationTime = await publicKey.getExpirationTime(undefined, weakKeyConfig);
73
+ if (expirationTime && expirationTime !== Infinity) {
74
+ expiresAt = new Date(expirationTime).toISOString();
75
+ }
76
+ return {
77
+ fingerprint: publicKey.getFingerprint().toUpperCase(),
78
+ email: userID?.email || 'unknown@example.com',
79
+ name: userID?.name || 'Unknown',
80
+ algorithm,
81
+ keySize: bits?.toString() || 'unknown',
82
+ expiresAt,
83
+ canSign,
84
+ canEncrypt,
85
+ canCertify,
86
+ canAuthenticate,
87
+ };
88
+ }
89
+ /**
90
+ * Extract key information from a PGP private key
91
+ */
92
+ export async function extractPrivateKeyInfo(armoredKey, passphrase) {
93
+ let privateKey = await openpgp.readPrivateKey({ armoredKey, config: weakKeyConfig });
94
+ // Check if passphrase protected
95
+ const isEncrypted = privateKey.isDecrypted() === false;
96
+ // If encrypted and passphrase provided, decrypt it
97
+ if (isEncrypted && passphrase) {
98
+ privateKey = await openpgp.decryptKey({
99
+ privateKey,
100
+ passphrase,
101
+ config: weakKeyConfig,
102
+ });
103
+ }
104
+ const user = privateKey.users[0];
105
+ const userID = user?.userID;
106
+ // Extract primary key info
107
+ const primaryKey = privateKey.keyPacket;
108
+ const algorithm = primaryKey.getAlgorithmInfo().algorithm;
109
+ const bits = primaryKey.getAlgorithmInfo().bits;
110
+ // Get key capabilities
111
+ try {
112
+ await privateKey.verifyPrimaryKey(undefined, undefined, weakKeyConfig);
113
+ // If verification doesn't throw, the key is valid
114
+ }
115
+ catch (e) {
116
+ // Key verification failed
117
+ }
118
+ const canSign = true; // Assume true for generated keys
119
+ const canEncrypt = (await privateKey.getEncryptionKey(undefined, undefined, undefined, weakKeyConfig)) !== null;
120
+ const canCertify = true;
121
+ const canAuthenticate = false;
122
+ // Get expiration
123
+ let expiresAt = null;
124
+ const expirationTime = await privateKey.getExpirationTime(undefined, weakKeyConfig);
125
+ if (expirationTime && expirationTime !== Infinity) {
126
+ expiresAt = new Date(expirationTime).toISOString();
127
+ }
128
+ return {
129
+ fingerprint: privateKey.getFingerprint().toUpperCase(),
130
+ email: userID?.email || 'unknown@example.com',
131
+ name: userID?.name || 'Unknown',
132
+ algorithm,
133
+ keySize: bits?.toString() || 'unknown',
134
+ expiresAt,
135
+ canSign,
136
+ canEncrypt,
137
+ canCertify,
138
+ canAuthenticate,
139
+ passphraseProtected: isEncrypted,
140
+ };
141
+ }
142
+ /**
143
+ * Verify that a private key matches a public key
144
+ */
145
+ export async function verifyKeyPair(publicKeyArmored, privateKeyArmored) {
146
+ try {
147
+ const publicKey = await openpgp.readKey({ armoredKey: publicKeyArmored, config: weakKeyConfig });
148
+ const privateKey = await openpgp.readPrivateKey({ armoredKey: privateKeyArmored, config: weakKeyConfig });
149
+ const publicFingerprint = publicKey.getFingerprint();
150
+ const privateFingerprint = privateKey.getFingerprint();
151
+ return publicFingerprint === privateFingerprint;
152
+ }
153
+ catch (error) {
154
+ return false;
155
+ }
156
+ }
157
+ /**
158
+ * Validate passphrase for a private key
159
+ */
160
+ export async function validatePassphrase(privateKeyArmored, passphrase) {
161
+ try {
162
+ const privateKey = await openpgp.readPrivateKey({ armoredKey: privateKeyArmored, config: weakKeyConfig });
163
+ if (!privateKey.isDecrypted()) {
164
+ await openpgp.decryptKey({
165
+ privateKey,
166
+ passphrase,
167
+ config: weakKeyConfig,
168
+ });
169
+ }
170
+ return true;
171
+ }
172
+ catch (error) {
173
+ return false;
174
+ }
175
+ }
176
+ /**
177
+ * Format a keypair for display
178
+ */
179
+ export function formatKeypairInfo(keypair) {
180
+ const lines = [
181
+ `Name: ${keypair.name}`,
182
+ `Email: ${obfuscateEmail(keypair.email)}`,
183
+ `Fingerprint: ${keypair.fingerprint}`,
184
+ `Algorithm: ${keypair.algorithm} (${keypair.key_size})`,
185
+ keypair.expires_at ? `Expires: ${new Date(keypair.expires_at).toLocaleDateString()}` : 'Expires: Never',
186
+ `Capabilities: ${[
187
+ keypair.can_sign && 'Sign',
188
+ keypair.can_encrypt && 'Encrypt',
189
+ keypair.can_certify && 'Certify',
190
+ keypair.can_authenticate && 'Authenticate',
191
+ ]
192
+ .filter(Boolean)
193
+ .join(', ')}`,
194
+ keypair.revoked ? '! REVOKED' : '',
195
+ keypair.is_default ? '✓ Default keypair' : '',
196
+ ];
197
+ return lines.filter(Boolean).join('\n');
198
+ }
199
+ //# sourceMappingURL=key-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-utils.js","sourceRoot":"","sources":["../src/key-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Store a passphrase for a keypair in the system keychain.
3
+ */
4
+ export declare function storePassphrase(keypairFingerprint: string, passphrase: string): Promise<boolean>;
5
+ /**
6
+ * Retrieve a stored passphrase for a keypair from the system keychain.
7
+ * Returns null if not found or keychain is unavailable.
8
+ */
9
+ export declare function getStoredPassphrase(keypairFingerprint: string): Promise<string | null>;
10
+ /**
11
+ * Delete a stored passphrase for a keypair from the system keychain.
12
+ */
13
+ export declare function deleteStoredPassphrase(keypairFingerprint: string): Promise<boolean>;
14
+ /**
15
+ * Check if a passphrase is stored for a keypair.
16
+ */
17
+ export declare function hasStoredPassphrase(keypairFingerprint: string): Promise<boolean>;
18
+ /**
19
+ * Check if the system keychain is available.
20
+ */
21
+ export declare function isKeychainAvailable(): Promise<boolean>;
22
+ //# sourceMappingURL=keychain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../src/keychain.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAsB,eAAe,CACnC,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAW5D"}
@@ -0,0 +1,73 @@
1
+ import { getPassword, setPassword, deletePassword, } from 'cross-keychain';
2
+ const SERVICE_NAME = 'lpgp';
3
+ /**
4
+ * Get the account name for a keypair's passphrase.
5
+ * Uses the fingerprint as a unique identifier.
6
+ */
7
+ function getAccountName(keypairFingerprint) {
8
+ return `passphrase:${keypairFingerprint}`;
9
+ }
10
+ /**
11
+ * Store a passphrase for a keypair in the system keychain.
12
+ */
13
+ export async function storePassphrase(keypairFingerprint, passphrase) {
14
+ try {
15
+ await setPassword(SERVICE_NAME, getAccountName(keypairFingerprint), passphrase);
16
+ return true;
17
+ }
18
+ catch (error) {
19
+ // Keychain may not be available on all systems
20
+ return false;
21
+ }
22
+ }
23
+ /**
24
+ * Retrieve a stored passphrase for a keypair from the system keychain.
25
+ * Returns null if not found or keychain is unavailable.
26
+ */
27
+ export async function getStoredPassphrase(keypairFingerprint) {
28
+ try {
29
+ const passphrase = await getPassword(SERVICE_NAME, getAccountName(keypairFingerprint));
30
+ return passphrase ?? null;
31
+ }
32
+ catch (error) {
33
+ // Keychain may not be available or password not found
34
+ return null;
35
+ }
36
+ }
37
+ /**
38
+ * Delete a stored passphrase for a keypair from the system keychain.
39
+ */
40
+ export async function deleteStoredPassphrase(keypairFingerprint) {
41
+ try {
42
+ await deletePassword(SERVICE_NAME, getAccountName(keypairFingerprint));
43
+ return true;
44
+ }
45
+ catch (error) {
46
+ // Keychain may not be available or password not found
47
+ return false;
48
+ }
49
+ }
50
+ /**
51
+ * Check if a passphrase is stored for a keypair.
52
+ */
53
+ export async function hasStoredPassphrase(keypairFingerprint) {
54
+ const passphrase = await getStoredPassphrase(keypairFingerprint);
55
+ return passphrase !== null;
56
+ }
57
+ /**
58
+ * Check if the system keychain is available.
59
+ */
60
+ export async function isKeychainAvailable() {
61
+ try {
62
+ // Try to access the keychain with a test operation
63
+ // We use a unique test key that won't conflict with real data
64
+ const testAccount = '__lpgp_keychain_test__';
65
+ await setPassword(SERVICE_NAME, testAccount, 'test');
66
+ await deletePassword(SERVICE_NAME, testAccount);
67
+ return true;
68
+ }
69
+ catch (error) {
70
+ return false;
71
+ }
72
+ }
73
+ //# sourceMappingURL=keychain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../src/keychain.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAA;AAEvB,MAAM,YAAY,GAAG,MAAM,CAAA;AAE3B;;;GAGG;AACH,SAAS,cAAc,CAAC,kBAA0B;IAChD,OAAO,cAAc,kBAAkB,EAAE,CAAA;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,kBAA0B,EAC1B,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,CAAA;QAC/E,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+CAA+C;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,kBAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAA;QACtF,OAAO,UAAU,IAAI,IAAI,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,kBAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sDAAsD;QACtD,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,kBAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,CAAC,CAAA;IAChE,OAAO,UAAU,KAAK,IAAI,CAAA;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,mDAAmD;QACnD,8DAA8D;QAC9D,MAAM,WAAW,GAAG,wBAAwB,CAAA;QAC5C,MAAM,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACpD,MAAM,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=pgp-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pgp-tool.d.ts","sourceRoot":"","sources":["../src/pgp-tool.ts"],"names":[],"mappings":""}