orgnote-api 0.10.3 → 0.10.4
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/encryption/__tests__/__snapshots__/note-encryption.spec.ts.snap +45 -0
- package/encryption/__tests__/note-encryption.spec.ts +50 -0
- package/encryption/note-encryption.ts +2 -1
- package/package.json +1 -1
- package/tools/__tests__/is-gpg-encrypted.spec.ts +44 -0
- package/tools/index.ts +1 -0
- package/tools/is-gpg-encrypted.ts +3 -0
|
@@ -138,3 +138,48 @@ exports[`Should not encrypt public note 1`] = `
|
|
|
138
138
|
},
|
|
139
139
|
}
|
|
140
140
|
`;
|
|
141
|
+
|
|
142
|
+
exports[`Should set not encrypted status when params type does not provided 1`] = `
|
|
143
|
+
{
|
|
144
|
+
"content": "-----BEGIN PGP MESSAGE-----
|
|
145
|
+
|
|
146
|
+
wcFMA/vryg+TTn0rAQ//TBFRjKmjRQoLhSrgeH+NbsZXbxvo7Ey4k+BQ9XA5
|
|
147
|
+
+CMpXH9uFUxsSaI5+McUSEt32VI17HRpXQDCL9nwaWqWOanMaRe0tXXhtox2
|
|
148
|
+
gfe2f/6zsge9ux+mXF2BG4z+V5T8XIOrfzxosVprdJHZHM3x7cW5USQ0t2i2
|
|
149
|
+
FiOUWxSZO1899J3yICpMvhDXvTLVZuKpSNQho5PyXSeZa83eN+uYkhgt9lsk
|
|
150
|
+
0KW88Nr435S6n6mVw/zpitXIgEKpkqh46mhG+1W3aC0lYx6j9lHm3bjtdb4r
|
|
151
|
+
2mtZbWKwfdBggEy8qEeiUeslvKd6uWtEccomzFgJkaqWVGknLmrBdHfztRIV
|
|
152
|
+
fbZhxHz+J3GFOIgXf/5+fv+zg0nTazgz1mDUfnTHw3+qcAyEJ0ADdyg9EZc+
|
|
153
|
+
bKbK0GwzMDPQeM+cCRDWUTiIa1ruyEETiwMdhWUDztF8XxY2o8jXPerZ0NhG
|
|
154
|
+
R8l+SvAdYQQXPfxEh9lA3thkyz/Vp72pW46lUeJHGSq/fS6KIdLHLP9Z2e1J
|
|
155
|
+
aCFpNMgyAN+BaXwnbLZfz6k5hV8awbRScSWQLEg69D9b287SFDPOYW7OZikn
|
|
156
|
+
CKXL7xyQ5LrWJZN9Z/UPGjy+PdEw1SBhyluW6DQ+Sz1j4K8USTLqY89EInDl
|
|
157
|
+
G7AxHGujR9UkUGyUvvc71XW7jEOogiDgn1ZMoj9Y58LSweUB8vfkY3VF84Fy
|
|
158
|
+
zGVvLFWnFbtnWuoQC4OOXv1F6ETdmEsSMEMWKzRLDGPyqNX7FhG3cejlEuiK
|
|
159
|
+
EsT5oQhz00RECmnR8mJkGmJhzWmmeoQvaucFqhTOZjvYl9ivuEMBZ2jtkdHn
|
|
160
|
+
R6UNcNZRpCbfnl7YoikqbGBgqDFYydFGHXKHDpYhcQYWJsMDUayzUiPtzmaE
|
|
161
|
+
tgfTgNNqgPxkLnWA99KYNU8DH+FwgaYBuw9dwdqwcjxSbZjHhCFGUfsqM+ik
|
|
162
|
+
O9gcoAwVO1usODlESU7OWuSF2tIv5DBG5rhlSyxBp4d4aWmaumTswAdojy2O
|
|
163
|
+
sM70ETbg0mC8niW9lNsgJp55oFmlksvzjUIit5rBEr55rtPcJSgakPpR2yvd
|
|
164
|
+
Q4XjybUmV0IdONMhk/OlqaBPtnA0RG+qTcm7oP1qH/m5zRA0ZplVQ5ylkQwr
|
|
165
|
+
LwGq5JQpJkgxxgLIrUbbtzYBShXSr5c1XXR0LIRiNgtb6s1s4mt+fbyExdJF
|
|
166
|
+
+ceuu+/xYrW/YTuEJpHxLiZ+aNPW5g5Y7Hbqu3hp3UL/kD44cc8JjZh18spX
|
|
167
|
+
p/ncojDhF2r2vhR+CndYcMkpGMV+t1pGKC8wlcFc7lb9GJASnqMGvhQmvIaG
|
|
168
|
+
gO/x7UjuTZSBW+kITHHZJDqYryKUv1j0CkHxIn9tWsYOpa1giOFtXX5v0AAM
|
|
169
|
+
AJR/s/beLlqwCsUdYnw1TkP/0u0ZK3RPio1nJ7S6ckPfsM7DqCWD8ILD8Cdr
|
|
170
|
+
cuzQrWaE30t5PXx53xBPO+6t5wKfDL35WHWG1Irmvz9UuT7tDS3IzwtF4ijF
|
|
171
|
+
PX6alTbxGnoHgZ4bG4J1wfpTNPppP1gJeVg67VqOypzdZi+SjofMWnFgRFmD
|
|
172
|
+
yEN8xpFUs7A9xryVZOosp9Sfe3IbBkO99sAQ7jV4EoMYk3/GKA==
|
|
173
|
+
=LjkG
|
|
174
|
+
-----END PGP MESSAGE-----",
|
|
175
|
+
"encrypted": true,
|
|
176
|
+
"encryptionType": "gpgKeys",
|
|
177
|
+
"id": "id",
|
|
178
|
+
"meta": {
|
|
179
|
+
"description": "Awesome description",
|
|
180
|
+
"images": [],
|
|
181
|
+
"published": false,
|
|
182
|
+
"title": "My note title for decryption via keys",
|
|
183
|
+
},
|
|
184
|
+
}
|
|
185
|
+
`;
|
|
@@ -294,3 +294,53 @@ Hello world`,
|
|
|
294
294
|
|
|
295
295
|
expect(meta).toEqual(decryptedNote.meta);
|
|
296
296
|
});
|
|
297
|
+
|
|
298
|
+
test('Should set not encrypted status when params type does not provided', async () => {
|
|
299
|
+
const note: Note = {
|
|
300
|
+
id: 'id',
|
|
301
|
+
encryptionType: 'gpgKeys',
|
|
302
|
+
meta: {
|
|
303
|
+
title: 'My note title for decryption via keys',
|
|
304
|
+
images: [],
|
|
305
|
+
published: false,
|
|
306
|
+
description: 'Awesome description',
|
|
307
|
+
},
|
|
308
|
+
content: `-----BEGIN PGP MESSAGE-----
|
|
309
|
+
|
|
310
|
+
wcFMA/vryg+TTn0rAQ//TBFRjKmjRQoLhSrgeH+NbsZXbxvo7Ey4k+BQ9XA5
|
|
311
|
+
+CMpXH9uFUxsSaI5+McUSEt32VI17HRpXQDCL9nwaWqWOanMaRe0tXXhtox2
|
|
312
|
+
gfe2f/6zsge9ux+mXF2BG4z+V5T8XIOrfzxosVprdJHZHM3x7cW5USQ0t2i2
|
|
313
|
+
FiOUWxSZO1899J3yICpMvhDXvTLVZuKpSNQho5PyXSeZa83eN+uYkhgt9lsk
|
|
314
|
+
0KW88Nr435S6n6mVw/zpitXIgEKpkqh46mhG+1W3aC0lYx6j9lHm3bjtdb4r
|
|
315
|
+
2mtZbWKwfdBggEy8qEeiUeslvKd6uWtEccomzFgJkaqWVGknLmrBdHfztRIV
|
|
316
|
+
fbZhxHz+J3GFOIgXf/5+fv+zg0nTazgz1mDUfnTHw3+qcAyEJ0ADdyg9EZc+
|
|
317
|
+
bKbK0GwzMDPQeM+cCRDWUTiIa1ruyEETiwMdhWUDztF8XxY2o8jXPerZ0NhG
|
|
318
|
+
R8l+SvAdYQQXPfxEh9lA3thkyz/Vp72pW46lUeJHGSq/fS6KIdLHLP9Z2e1J
|
|
319
|
+
aCFpNMgyAN+BaXwnbLZfz6k5hV8awbRScSWQLEg69D9b287SFDPOYW7OZikn
|
|
320
|
+
CKXL7xyQ5LrWJZN9Z/UPGjy+PdEw1SBhyluW6DQ+Sz1j4K8USTLqY89EInDl
|
|
321
|
+
G7AxHGujR9UkUGyUvvc71XW7jEOogiDgn1ZMoj9Y58LSweUB8vfkY3VF84Fy
|
|
322
|
+
zGVvLFWnFbtnWuoQC4OOXv1F6ETdmEsSMEMWKzRLDGPyqNX7FhG3cejlEuiK
|
|
323
|
+
EsT5oQhz00RECmnR8mJkGmJhzWmmeoQvaucFqhTOZjvYl9ivuEMBZ2jtkdHn
|
|
324
|
+
R6UNcNZRpCbfnl7YoikqbGBgqDFYydFGHXKHDpYhcQYWJsMDUayzUiPtzmaE
|
|
325
|
+
tgfTgNNqgPxkLnWA99KYNU8DH+FwgaYBuw9dwdqwcjxSbZjHhCFGUfsqM+ik
|
|
326
|
+
O9gcoAwVO1usODlESU7OWuSF2tIv5DBG5rhlSyxBp4d4aWmaumTswAdojy2O
|
|
327
|
+
sM70ETbg0mC8niW9lNsgJp55oFmlksvzjUIit5rBEr55rtPcJSgakPpR2yvd
|
|
328
|
+
Q4XjybUmV0IdONMhk/OlqaBPtnA0RG+qTcm7oP1qH/m5zRA0ZplVQ5ylkQwr
|
|
329
|
+
LwGq5JQpJkgxxgLIrUbbtzYBShXSr5c1XXR0LIRiNgtb6s1s4mt+fbyExdJF
|
|
330
|
+
+ceuu+/xYrW/YTuEJpHxLiZ+aNPW5g5Y7Hbqu3hp3UL/kD44cc8JjZh18spX
|
|
331
|
+
p/ncojDhF2r2vhR+CndYcMkpGMV+t1pGKC8wlcFc7lb9GJASnqMGvhQmvIaG
|
|
332
|
+
gO/x7UjuTZSBW+kITHHZJDqYryKUv1j0CkHxIn9tWsYOpa1giOFtXX5v0AAM
|
|
333
|
+
AJR/s/beLlqwCsUdYnw1TkP/0u0ZK3RPio1nJ7S6ckPfsM7DqCWD8ILD8Cdr
|
|
334
|
+
cuzQrWaE30t5PXx53xBPO+6t5wKfDL35WHWG1Irmvz9UuT7tDS3IzwtF4ijF
|
|
335
|
+
PX6alTbxGnoHgZ4bG4J1wfpTNPppP1gJeVg67VqOypzdZi+SjofMWnFgRFmD
|
|
336
|
+
yEN8xpFUs7A9xryVZOosp9Sfe3IbBkO99sAQ7jV4EoMYk3/GKA==
|
|
337
|
+
=LjkG
|
|
338
|
+
-----END PGP MESSAGE-----`,
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
const decryptedNote = await decryptNote(note, {
|
|
342
|
+
type: 'disabled',
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
expect(decryptedNote).toMatchSnapshot();
|
|
346
|
+
});
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
} from './encryption';
|
|
12
12
|
import { OrgNoteEncryption } from '../models/encryption';
|
|
13
13
|
import { parse, withMetaInfo } from 'org-mode-ast';
|
|
14
|
+
import { isGpgEncrypted } from '..';
|
|
14
15
|
|
|
15
16
|
export type NoteEncryptionType = `${ModelsPublicNote['encryptionType']}`;
|
|
16
17
|
|
|
@@ -93,7 +94,7 @@ export async function decryptNote<T extends AbstractEncryptedNote>(
|
|
|
93
94
|
!encryptionParams.type ||
|
|
94
95
|
encryptionParams.type === ModelsPublicNoteEncryptionTypeEnum.Disabled
|
|
95
96
|
) {
|
|
96
|
-
note.encrypted =
|
|
97
|
+
note.encrypted = isGpgEncrypted(note.content);
|
|
97
98
|
return note;
|
|
98
99
|
}
|
|
99
100
|
note.encrypted = true;
|
package/package.json
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { expect, test } from 'vitest';
|
|
2
|
+
import { isGpgEncrypted } from '../is-gpg-encrypted';
|
|
3
|
+
|
|
4
|
+
test('Should return true if the content is gpg encrypted', () => {
|
|
5
|
+
const content = `-----BEGIN PGP MESSAGE-----
|
|
6
|
+
|
|
7
|
+
wcFMA/vryg+TTn0rAQ//TBFRjKmjRQoLhSrgeH+NbsZXbxvo7Ey4k+BQ9XA5
|
|
8
|
+
+CMpXH9uFUxsSaI5+McUSEt32VI17HRpXQDCL9nwaWqWOanMaRe0tXXhtox2
|
|
9
|
+
gfe2f/6zsge9ux+mXF2BG4z+V5T8XIOrfzxosVprdJHZHM3x7cW5USQ0t2i2
|
|
10
|
+
FiOUWxSZO1899J3yICpMvhDXvTLVZuKpSNQho5PyXSeZa83eN+uYkhgt9lsk
|
|
11
|
+
0KW88Nr435S6n6mVw/zpitXIgEKpkqh46mhG+1W3aC0lYx6j9lHm3bjtdb4r
|
|
12
|
+
2mtZbWKwfdBggEy8qEeiUeslvKd6uWtEccomzFgJkaqWVGknLmrBdHfztRIV
|
|
13
|
+
fbZhxHz+J3GFOIgXf/5+fv+zg0nTazgz1mDUfnTHw3+qcAyEJ0ADdyg9EZc+
|
|
14
|
+
bKbK0GwzMDPQeM+cCRDWUTiIa1ruyEETiwMdhWUDztF8XxY2o8jXPerZ0NhG
|
|
15
|
+
R8l+SvAdYQQXPfxEh9lA3thkyz/Vp72pW46lUeJHGSq/fS6KIdLHLP9Z2e1J
|
|
16
|
+
aCFpNMgyAN+BaXwnbLZfz6k5hV8awbRScSWQLEg69D9b287SFDPOYW7OZikn
|
|
17
|
+
CKXL7xyQ5LrWJZN9Z/UPGjy+PdEw1SBhyluW6DQ+Sz1j4K8USTLqY89EInDl
|
|
18
|
+
G7AxHGujR9UkUGyUvvc71XW7jEOogiDgn1ZMoj9Y58LSweUB8vfkY3VF84Fy
|
|
19
|
+
zGVvLFWnFbtnWuoQC4OOXv1F6ETdmEsSMEMWKzRLDGPyqNX7FhG3cejlEuiK
|
|
20
|
+
EsT5oQhz00RECmnR8mJkGmJhzWmmeoQvaucFqhTOZjvYl9ivuEMBZ2jtkdHn
|
|
21
|
+
R6UNcNZRpCbfnl7YoikqbGBgqDFYydFGHXKHDpYhcQYWJsMDUayzUiPtzmaE
|
|
22
|
+
tgfTgNNqgPxkLnWA99KYNU8DH+FwgaYBuw9dwdqwcjxSbZjHhCFGUfsqM+ik
|
|
23
|
+
O9gcoAwVO1usODlESU7OWuSF2tIv5DBG5rhlSyxBp4d4aWmaumTswAdojy2O
|
|
24
|
+
sM70ETbg0mC8niW9lNsgJp55oFmlksvzjUIit5rBEr55rtPcJSgakPpR2yvd
|
|
25
|
+
Q4XjybUmV0IdONMhk/OlqaBPtnA0RG+qTcm7oP1qH/m5zRA0ZplVQ5ylkQwr
|
|
26
|
+
LwGq5JQpJkgxxgLIrUbbtzYBShXSr5c1XXR0LIRiNgtb6s1s4mt+fbyExdJF
|
|
27
|
+
+ceuu+/xYrW/YTuEJpHxLiZ+aNPW5g5Y7Hbqu3hp3UL/kD44cc8JjZh18spX
|
|
28
|
+
p/ncojDhF2r2vhR+CndYcMkpGMV+t1pGKC8wlcFc7lb9GJASnqMGvhQmvIaG
|
|
29
|
+
gO/x7UjuTZSBW+kITHHZJDqYryKUv1j0CkHxIn9tWsYOpa1giOFtXX5v0AAM
|
|
30
|
+
AJR/s/beLlqwCsUdYnw1TkP/0u0ZK3RPio1nJ7S6ckPfsM7DqCWD8ILD8Cdr
|
|
31
|
+
cuzQrWaE30t5PXx53xBPO+6t5wKfDL35WHWG1Irmvz9UuT7tDS3IzwtF4ijF
|
|
32
|
+
PX6alTbxGnoHgZ4bG4J1wfpTNPppP1gJeVg67VqOypzdZi+SjofMWnFgRFmD
|
|
33
|
+
yEN8xpFUs7A9xryVZOosp9Sfe3IbBkO99sAQ7jV4EoMYk3/GKA==
|
|
34
|
+
=LjkG
|
|
35
|
+
-----END PGP MESSAGE-----`;
|
|
36
|
+
|
|
37
|
+
expect(isGpgEncrypted(content)).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('Should return false if the content is not gpg encrypted', () => {
|
|
41
|
+
const content = `Hello World!`;
|
|
42
|
+
|
|
43
|
+
expect(isGpgEncrypted(content)).toBe(false);
|
|
44
|
+
});
|
package/tools/index.ts
CHANGED