@protontech/drive-sdk 0.9.9 → 0.10.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/dist/crypto/driveCrypto.d.ts +15 -15
- package/dist/crypto/driveCrypto.js.map +1 -1
- package/dist/crypto/hmac.d.ts +3 -3
- package/dist/crypto/hmac.js.map +1 -1
- package/dist/crypto/interface.d.ts +45 -25
- package/dist/crypto/interface.js.map +1 -1
- package/dist/crypto/openPGPCrypto.d.ts +37 -37
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/crypto/utils.d.ts +1 -1
- package/dist/interface/index.d.ts +3 -3
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/nodes.d.ts +8 -0
- package/dist/interface/photos.d.ts +18 -1
- package/dist/interface/sharing.d.ts +2 -0
- package/dist/interface/telemetry.d.ts +1 -0
- package/dist/interface/telemetry.js.map +1 -1
- package/dist/interface/thumbnail.d.ts +2 -2
- package/dist/internal/apiService/apiService.js +25 -12
- package/dist/internal/apiService/apiService.js.map +1 -1
- package/dist/internal/apiService/apiService.test.js +33 -5
- package/dist/internal/apiService/apiService.test.js.map +1 -1
- package/dist/internal/apiService/driveTypes.d.ts +2942 -3187
- package/dist/internal/apiService/errors.test.js +17 -7
- package/dist/internal/apiService/errors.test.js.map +1 -1
- package/dist/internal/devices/manager.d.ts +1 -0
- package/dist/internal/devices/manager.js +11 -0
- package/dist/internal/devices/manager.js.map +1 -1
- package/dist/internal/download/apiService.d.ts +1 -1
- package/dist/internal/download/cryptoService.d.ts +4 -4
- package/dist/internal/download/cryptoService.js.map +1 -1
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/download/fileDownloader.test.js.map +1 -1
- package/dist/internal/download/thumbnailDownloader.js.map +1 -1
- package/dist/internal/nodes/cryptoService.d.ts +4 -4
- package/dist/internal/nodes/cryptoService.js +5 -3
- package/dist/internal/nodes/cryptoService.js.map +1 -1
- package/dist/internal/nodes/cryptoService.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +1 -1
- package/dist/internal/nodes/nodesManagement.js +0 -1
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/photos/addToAlbum.d.ts +46 -0
- package/dist/internal/photos/addToAlbum.js +257 -0
- package/dist/internal/photos/addToAlbum.js.map +1 -0
- package/dist/internal/photos/addToAlbum.test.d.ts +1 -0
- package/dist/internal/photos/addToAlbum.test.js +409 -0
- package/dist/internal/photos/addToAlbum.test.js.map +1 -0
- package/dist/internal/photos/albums.d.ts +5 -3
- package/dist/internal/photos/albums.js +13 -1
- package/dist/internal/photos/albums.js.map +1 -1
- package/dist/internal/photos/albums.test.js +2 -1
- package/dist/internal/photos/albums.test.js.map +1 -1
- package/dist/internal/photos/albumsCrypto.d.ts +20 -3
- package/dist/internal/photos/albumsCrypto.js +27 -0
- package/dist/internal/photos/albumsCrypto.js.map +1 -1
- package/dist/internal/photos/apiService.d.ts +19 -3
- package/dist/internal/photos/apiService.js +104 -5
- package/dist/internal/photos/apiService.js.map +1 -1
- package/dist/internal/photos/apiService.test.d.ts +1 -0
- package/dist/internal/photos/apiService.test.js +199 -0
- package/dist/internal/photos/apiService.test.js.map +1 -0
- package/dist/internal/photos/errors.d.ts +4 -0
- package/dist/internal/photos/errors.js +17 -0
- package/dist/internal/photos/errors.js.map +1 -0
- package/dist/internal/photos/index.js +1 -1
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/interface.d.ts +15 -1
- package/dist/internal/photos/interface.js.map +1 -1
- package/dist/internal/photos/nodes.js +32 -2
- package/dist/internal/photos/nodes.js.map +1 -1
- package/dist/internal/photos/nodes.test.js +25 -5
- package/dist/internal/photos/nodes.test.js.map +1 -1
- package/dist/internal/photos/upload.d.ts +2 -2
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/shares/apiService.js +1 -0
- package/dist/internal/shares/apiService.js.map +1 -1
- package/dist/internal/shares/interface.d.ts +1 -0
- package/dist/internal/sharing/apiService.d.ts +8 -1
- package/dist/internal/sharing/apiService.js +23 -1
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/cryptoService.js +8 -4
- package/dist/internal/sharing/cryptoService.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.d.ts +1 -0
- package/dist/internal/sharing/sharingManagement.js +15 -2
- package/dist/internal/sharing/sharingManagement.js.map +1 -1
- package/dist/internal/sharing/sharingManagement.test.js +30 -5
- package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
- package/dist/internal/sharingPublic/nodes.d.ts +2 -2
- package/dist/internal/sharingPublic/nodes.js.map +1 -1
- package/dist/internal/upload/apiService.d.ts +5 -5
- package/dist/internal/upload/apiService.js.map +1 -1
- package/dist/internal/upload/blockVerifier.d.ts +2 -2
- package/dist/internal/upload/blockVerifier.js.map +1 -1
- package/dist/internal/upload/chunkStreamReader.d.ts +2 -2
- package/dist/internal/upload/chunkStreamReader.js.map +1 -1
- package/dist/internal/upload/chunkStreamReader.test.js.map +1 -1
- package/dist/internal/upload/cryptoService.d.ts +7 -7
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/interface.d.ts +6 -6
- package/dist/internal/upload/manager.d.ts +1 -1
- package/dist/internal/upload/manager.js.map +1 -1
- package/dist/internal/upload/streamUploader.d.ts +1 -1
- package/dist/internal/utils.d.ts +1 -1
- package/dist/protonDriveClient.d.ts +8 -0
- package/dist/protonDriveClient.js +11 -0
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.d.ts +17 -2
- package/dist/protonDrivePhotosClient.js +21 -1
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/transformers.js +2 -0
- package/dist/transformers.js.map +1 -1
- package/package.json +4 -4
- package/src/crypto/driveCrypto.ts +15 -15
- package/src/crypto/hmac.ts +4 -4
- package/src/crypto/interface.ts +58 -27
- package/src/crypto/openPGPCrypto.ts +26 -26
- package/src/interface/index.ts +10 -2
- package/src/interface/nodes.ts +1 -0
- package/src/interface/photos.ts +19 -1
- package/src/interface/sharing.ts +2 -0
- package/src/interface/telemetry.ts +1 -0
- package/src/interface/thumbnail.ts +2 -2
- package/src/internal/apiService/apiService.test.ts +38 -6
- package/src/internal/apiService/apiService.ts +33 -12
- package/src/internal/apiService/driveTypes.ts +2942 -3187
- package/src/internal/devices/manager.ts +14 -0
- package/src/internal/download/apiService.ts +1 -1
- package/src/internal/download/cryptoService.ts +4 -4
- package/src/internal/download/fileDownloader.test.ts +4 -4
- package/src/internal/download/fileDownloader.ts +6 -6
- package/src/internal/download/thumbnailDownloader.ts +4 -4
- package/src/internal/nodes/cryptoService.test.ts +2 -2
- package/src/internal/nodes/cryptoService.ts +11 -8
- package/src/internal/nodes/interface.ts +1 -1
- package/src/internal/nodes/nodesManagement.ts +0 -1
- package/src/internal/photos/addToAlbum.test.ts +515 -0
- package/src/internal/photos/addToAlbum.ts +341 -0
- package/src/internal/photos/albums.test.ts +20 -23
- package/src/internal/photos/albums.ts +31 -2
- package/src/internal/photos/albumsCrypto.ts +54 -3
- package/src/internal/photos/apiService.test.ts +233 -0
- package/src/internal/photos/apiService.ts +172 -27
- package/src/internal/photos/errors.ts +11 -0
- package/src/internal/photos/index.ts +1 -1
- package/src/internal/photos/interface.ts +18 -3
- package/src/internal/photos/nodes.test.ts +27 -6
- package/src/internal/photos/nodes.ts +34 -2
- package/src/internal/photos/upload.ts +2 -2
- package/src/internal/shares/apiService.ts +1 -0
- package/src/internal/shares/interface.ts +1 -0
- package/src/internal/sharing/apiService.ts +49 -5
- package/src/internal/sharing/cryptoService.ts +10 -4
- package/src/internal/sharing/sharingManagement.test.ts +33 -5
- package/src/internal/sharing/sharingManagement.ts +28 -6
- package/src/internal/sharingPublic/nodes.ts +1 -1
- package/src/internal/upload/apiService.ts +5 -5
- package/src/internal/upload/blockVerifier.ts +3 -3
- package/src/internal/upload/chunkStreamReader.test.ts +7 -7
- package/src/internal/upload/chunkStreamReader.ts +3 -3
- package/src/internal/upload/cryptoService.ts +9 -9
- package/src/internal/upload/interface.ts +6 -6
- package/src/internal/upload/manager.ts +2 -2
- package/src/internal/upload/streamUploader.ts +1 -1
- package/src/protonDriveClient.ts +15 -3
- package/src/protonDrivePhotosClient.ts +39 -15
- package/src/transformers.ts +2 -0
package/src/crypto/interface.ts
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
export interface PublicKey {
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
4
|
readonly _idx: any;
|
|
5
|
+
readonly _keyContentHash: [string, string];
|
|
6
|
+
|
|
7
|
+
getVersion(): number;
|
|
8
|
+
getFingerprint(): string;
|
|
9
|
+
getSHA256Fingerprints(): string[];
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
getKeyID(): any;
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
getKeyIDs(): any[];
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
getAlgorithmInfo(): any;
|
|
16
|
+
getCreationTime(): Date;
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
isPrivate: any;
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
isPrivateKeyV4: any;
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
isPrivateKeyV6: any;
|
|
23
|
+
getExpirationTime(): Date | number | null;
|
|
24
|
+
getUserIDs(): string[];
|
|
25
|
+
isWeak(): boolean;
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
equals(otherKey: any, ignoreOtherCerts?: boolean): boolean;
|
|
28
|
+
subkeys: {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
+
getAlgorithmInfo(): any;
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
+
getKeyID(): any;
|
|
33
|
+
}[];
|
|
5
34
|
}
|
|
6
35
|
|
|
7
36
|
export interface PrivateKey extends PublicKey {
|
|
@@ -9,7 +38,9 @@ export interface PrivateKey extends PublicKey {
|
|
|
9
38
|
}
|
|
10
39
|
|
|
11
40
|
export interface SessionKey {
|
|
12
|
-
data: Uint8Array
|
|
41
|
+
data: Uint8Array<ArrayBuffer>;
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
+
algorithm: any;
|
|
13
44
|
}
|
|
14
45
|
|
|
15
46
|
export enum VERIFICATION_STATUS {
|
|
@@ -66,14 +97,14 @@ export interface OpenPGPCrypto {
|
|
|
66
97
|
sessionKey: SessionKey,
|
|
67
98
|
encryptionKeys: PublicKey | PublicKey[],
|
|
68
99
|
) => Promise<{
|
|
69
|
-
keyPacket: Uint8Array
|
|
100
|
+
keyPacket: Uint8Array<ArrayBuffer>;
|
|
70
101
|
}>;
|
|
71
102
|
|
|
72
103
|
encryptSessionKeyWithPassword: (
|
|
73
104
|
sessionKey: SessionKey,
|
|
74
105
|
password: string,
|
|
75
106
|
) => Promise<{
|
|
76
|
-
keyPacket: Uint8Array
|
|
107
|
+
keyPacket: Uint8Array<ArrayBuffer>;
|
|
77
108
|
}>;
|
|
78
109
|
|
|
79
110
|
/**
|
|
@@ -87,7 +118,7 @@ export interface OpenPGPCrypto {
|
|
|
87
118
|
}>;
|
|
88
119
|
|
|
89
120
|
encryptArmored: (
|
|
90
|
-
data: Uint8Array
|
|
121
|
+
data: Uint8Array<ArrayBuffer>,
|
|
91
122
|
encryptionKeys: PublicKey[],
|
|
92
123
|
sessionKey?: SessionKey,
|
|
93
124
|
) => Promise<{
|
|
@@ -95,16 +126,16 @@ export interface OpenPGPCrypto {
|
|
|
95
126
|
}>;
|
|
96
127
|
|
|
97
128
|
encryptAndSign: (
|
|
98
|
-
data: Uint8Array
|
|
129
|
+
data: Uint8Array<ArrayBuffer>,
|
|
99
130
|
sessionKey: SessionKey,
|
|
100
131
|
encryptionKeys: PublicKey[],
|
|
101
132
|
signingKey: PrivateKey,
|
|
102
133
|
) => Promise<{
|
|
103
|
-
encryptedData: Uint8Array
|
|
134
|
+
encryptedData: Uint8Array<ArrayBuffer>;
|
|
104
135
|
}>;
|
|
105
136
|
|
|
106
137
|
encryptAndSignArmored: (
|
|
107
|
-
data: Uint8Array
|
|
138
|
+
data: Uint8Array<ArrayBuffer>,
|
|
108
139
|
sessionKey: SessionKey | undefined,
|
|
109
140
|
encryptionKeys: PublicKey[],
|
|
110
141
|
signingKey: PrivateKey,
|
|
@@ -114,17 +145,17 @@ export interface OpenPGPCrypto {
|
|
|
114
145
|
}>;
|
|
115
146
|
|
|
116
147
|
encryptAndSignDetached: (
|
|
117
|
-
data: Uint8Array
|
|
148
|
+
data: Uint8Array<ArrayBuffer>,
|
|
118
149
|
sessionKey: SessionKey,
|
|
119
150
|
encryptionKeys: PublicKey[],
|
|
120
151
|
signingKey: PrivateKey,
|
|
121
152
|
) => Promise<{
|
|
122
|
-
encryptedData: Uint8Array
|
|
123
|
-
signature: Uint8Array
|
|
153
|
+
encryptedData: Uint8Array<ArrayBuffer>;
|
|
154
|
+
signature: Uint8Array<ArrayBuffer>;
|
|
124
155
|
}>;
|
|
125
156
|
|
|
126
157
|
encryptAndSignDetachedArmored: (
|
|
127
|
-
data: Uint8Array
|
|
158
|
+
data: Uint8Array<ArrayBuffer>,
|
|
128
159
|
sessionKey: SessionKey,
|
|
129
160
|
encryptionKeys: PublicKey[],
|
|
130
161
|
signingKey: PrivateKey,
|
|
@@ -134,23 +165,23 @@ export interface OpenPGPCrypto {
|
|
|
134
165
|
}>;
|
|
135
166
|
|
|
136
167
|
sign: (
|
|
137
|
-
data: Uint8Array
|
|
168
|
+
data: Uint8Array<ArrayBuffer>,
|
|
138
169
|
signingKey: PrivateKey,
|
|
139
170
|
signatureContext: string,
|
|
140
171
|
) => Promise<{
|
|
141
|
-
signature: Uint8Array
|
|
172
|
+
signature: Uint8Array<ArrayBuffer>;
|
|
142
173
|
}>;
|
|
143
174
|
|
|
144
175
|
signArmored: (
|
|
145
|
-
data: Uint8Array
|
|
176
|
+
data: Uint8Array<ArrayBuffer>,
|
|
146
177
|
signingKey: PrivateKey | PrivateKey[],
|
|
147
178
|
) => Promise<{
|
|
148
179
|
signature: string;
|
|
149
180
|
}>;
|
|
150
181
|
|
|
151
182
|
verify: (
|
|
152
|
-
data: Uint8Array
|
|
153
|
-
signature: Uint8Array
|
|
183
|
+
data: Uint8Array<ArrayBuffer>,
|
|
184
|
+
signature: Uint8Array<ArrayBuffer>,
|
|
154
185
|
verificationKeys: PublicKey | PublicKey[],
|
|
155
186
|
) => Promise<{
|
|
156
187
|
verified: VERIFICATION_STATUS;
|
|
@@ -158,7 +189,7 @@ export interface OpenPGPCrypto {
|
|
|
158
189
|
}>;
|
|
159
190
|
|
|
160
191
|
verifyArmored: (
|
|
161
|
-
data: Uint8Array
|
|
192
|
+
data: Uint8Array<ArrayBuffer>,
|
|
162
193
|
armoredSignature: string,
|
|
163
194
|
verificationKeys: PublicKey | PublicKey[],
|
|
164
195
|
signatureContext?: string,
|
|
@@ -167,41 +198,41 @@ export interface OpenPGPCrypto {
|
|
|
167
198
|
verificationErrors?: Error[];
|
|
168
199
|
}>;
|
|
169
200
|
|
|
170
|
-
decryptSessionKey: (data: Uint8Array
|
|
201
|
+
decryptSessionKey: (data: Uint8Array<ArrayBuffer>, decryptionKeys: PrivateKey | PrivateKey[]) => Promise<SessionKey>;
|
|
171
202
|
|
|
172
203
|
decryptArmoredSessionKey: (armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]) => Promise<SessionKey>;
|
|
173
204
|
|
|
174
205
|
decryptKey: (armoredKey: string, passphrase: string) => Promise<PrivateKey>;
|
|
175
206
|
|
|
176
207
|
decryptAndVerify(
|
|
177
|
-
data: Uint8Array
|
|
208
|
+
data: Uint8Array<ArrayBuffer>,
|
|
178
209
|
sessionKey: SessionKey,
|
|
179
210
|
verificationKeys: PublicKey | PublicKey[],
|
|
180
211
|
): Promise<{
|
|
181
|
-
data: Uint8Array
|
|
212
|
+
data: Uint8Array<ArrayBuffer>;
|
|
182
213
|
verified: VERIFICATION_STATUS;
|
|
183
214
|
verificationErrors?: Error[];
|
|
184
215
|
}>;
|
|
185
216
|
|
|
186
217
|
decryptAndVerifyDetached(
|
|
187
|
-
data: Uint8Array
|
|
188
|
-
signature: Uint8Array | undefined,
|
|
218
|
+
data: Uint8Array<ArrayBuffer>,
|
|
219
|
+
signature: Uint8Array<ArrayBuffer> | undefined,
|
|
189
220
|
sessionKey: SessionKey,
|
|
190
221
|
verificationKeys?: PublicKey | PublicKey[],
|
|
191
222
|
): Promise<{
|
|
192
|
-
data: Uint8Array
|
|
223
|
+
data: Uint8Array<ArrayBuffer>;
|
|
193
224
|
verified: VERIFICATION_STATUS;
|
|
194
225
|
verificationErrors?: Error[];
|
|
195
226
|
}>;
|
|
196
227
|
|
|
197
|
-
decryptArmored(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]): Promise<Uint8Array
|
|
228
|
+
decryptArmored(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]): Promise<Uint8Array<ArrayBuffer>>;
|
|
198
229
|
|
|
199
230
|
decryptArmoredAndVerify: (
|
|
200
231
|
armoredData: string,
|
|
201
232
|
decryptionKeys: PrivateKey | PrivateKey[],
|
|
202
233
|
verificationKeys: PublicKey | PublicKey[],
|
|
203
234
|
) => Promise<{
|
|
204
|
-
data: Uint8Array
|
|
235
|
+
data: Uint8Array<ArrayBuffer>;
|
|
205
236
|
verified: VERIFICATION_STATUS;
|
|
206
237
|
verificationErrors?: Error[];
|
|
207
238
|
}>;
|
|
@@ -212,10 +243,10 @@ export interface OpenPGPCrypto {
|
|
|
212
243
|
sessionKey: SessionKey,
|
|
213
244
|
verificationKeys: PublicKey | PublicKey[],
|
|
214
245
|
) => Promise<{
|
|
215
|
-
data: Uint8Array
|
|
246
|
+
data: Uint8Array<ArrayBuffer>;
|
|
216
247
|
verified: VERIFICATION_STATUS;
|
|
217
248
|
verificationErrors?: Error[];
|
|
218
249
|
}>;
|
|
219
250
|
|
|
220
|
-
decryptArmoredWithPassword(armoredData: string, password: string): Promise<Uint8Array
|
|
251
|
+
decryptArmoredWithPassword(armoredData: string, password: string): Promise<Uint8Array<ArrayBuffer>>;
|
|
221
252
|
}
|
|
@@ -18,15 +18,15 @@ export interface OpenPGPCryptoProxy {
|
|
|
18
18
|
encryptionKeys?: PublicKey | PublicKey[];
|
|
19
19
|
passwords?: string[];
|
|
20
20
|
},
|
|
21
|
-
) => Promise<Uint8Array
|
|
21
|
+
) => Promise<Uint8Array<ArrayBuffer>>;
|
|
22
22
|
decryptSessionKey: (options: {
|
|
23
23
|
armoredMessage?: string;
|
|
24
|
-
binaryMessage?: Uint8Array
|
|
24
|
+
binaryMessage?: Uint8Array<ArrayBuffer>;
|
|
25
25
|
decryptionKeys: PrivateKey | PrivateKey[];
|
|
26
26
|
}) => Promise<SessionKey | undefined>;
|
|
27
27
|
encryptMessage: <Format extends 'armored' | 'binary' = 'armored', Detached extends boolean = false>(options: {
|
|
28
28
|
format?: Format;
|
|
29
|
-
binaryData: Uint8Array
|
|
29
|
+
binaryData: Uint8Array<ArrayBuffer>;
|
|
30
30
|
sessionKey?: SessionKey;
|
|
31
31
|
encryptionKeys: PublicKey[];
|
|
32
32
|
signingKeys?: PrivateKey;
|
|
@@ -35,39 +35,39 @@ export interface OpenPGPCryptoProxy {
|
|
|
35
35
|
}) => Promise<
|
|
36
36
|
Detached extends true
|
|
37
37
|
? {
|
|
38
|
-
message: Format extends 'binary' ? Uint8Array : string;
|
|
39
|
-
signature: Format extends 'binary' ? Uint8Array : string;
|
|
38
|
+
message: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
|
|
39
|
+
signature: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
|
|
40
40
|
}
|
|
41
41
|
: {
|
|
42
|
-
message: Format extends 'binary' ? Uint8Array : string;
|
|
42
|
+
message: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
|
|
43
43
|
}
|
|
44
44
|
>;
|
|
45
45
|
decryptMessage: <Format extends 'utf8' | 'binary' = 'utf8'>(options: {
|
|
46
46
|
format: Format;
|
|
47
47
|
armoredMessage?: string;
|
|
48
|
-
binaryMessage?: Uint8Array
|
|
48
|
+
binaryMessage?: Uint8Array<ArrayBuffer>;
|
|
49
49
|
armoredSignature?: string;
|
|
50
|
-
binarySignature?: Uint8Array
|
|
50
|
+
binarySignature?: Uint8Array<ArrayBuffer>;
|
|
51
51
|
sessionKeys?: SessionKey;
|
|
52
52
|
passwords?: string[];
|
|
53
53
|
decryptionKeys?: PrivateKey | PrivateKey[];
|
|
54
54
|
verificationKeys?: PublicKey | PublicKey[];
|
|
55
55
|
}) => Promise<{
|
|
56
|
-
data: Format extends 'binary' ? Uint8Array : string;
|
|
56
|
+
data: Format extends 'binary' ? Uint8Array<ArrayBuffer> : string;
|
|
57
57
|
verificationStatus: VERIFICATION_STATUS;
|
|
58
58
|
verificationErrors?: Error[];
|
|
59
59
|
}>;
|
|
60
60
|
signMessage: <Format extends 'binary' | 'armored' = 'armored'>(options: {
|
|
61
61
|
format: Format;
|
|
62
|
-
binaryData: Uint8Array
|
|
62
|
+
binaryData: Uint8Array<ArrayBuffer>;
|
|
63
63
|
signingKeys: PrivateKey | PrivateKey[];
|
|
64
64
|
detached: boolean;
|
|
65
65
|
signatureContext?: { critical: boolean; value: string };
|
|
66
|
-
}) => Promise<Format extends 'binary' ? Uint8Array : string>;
|
|
66
|
+
}) => Promise<Format extends 'binary' ? Uint8Array<ArrayBuffer> : string>;
|
|
67
67
|
verifyMessage: (options: {
|
|
68
|
-
binaryData: Uint8Array
|
|
68
|
+
binaryData: Uint8Array<ArrayBuffer>;
|
|
69
69
|
armoredSignature?: string;
|
|
70
|
-
binarySignature?: Uint8Array
|
|
70
|
+
binarySignature?: Uint8Array<ArrayBuffer>;
|
|
71
71
|
verificationKeys: PublicKey | PublicKey[];
|
|
72
72
|
signatureContext?: { critical: boolean; value: string };
|
|
73
73
|
}) => Promise<{
|
|
@@ -137,7 +137,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
137
137
|
};
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
async encryptArmored(data: Uint8Array
|
|
140
|
+
async encryptArmored(data: Uint8Array<ArrayBuffer>, encryptionKeys: PublicKey[], sessionKey?: SessionKey) {
|
|
141
141
|
const { message: armoredData } = await this.cryptoProxy.encryptMessage({
|
|
142
142
|
binaryData: data,
|
|
143
143
|
sessionKey,
|
|
@@ -149,7 +149,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
async encryptAndSign(
|
|
152
|
-
data: Uint8Array
|
|
152
|
+
data: Uint8Array<ArrayBuffer>,
|
|
153
153
|
sessionKey: SessionKey,
|
|
154
154
|
encryptionKeys: PublicKey[],
|
|
155
155
|
signingKey: PrivateKey,
|
|
@@ -168,7 +168,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
async encryptAndSignArmored(
|
|
171
|
-
data: Uint8Array
|
|
171
|
+
data: Uint8Array<ArrayBuffer>,
|
|
172
172
|
sessionKey: SessionKey | undefined,
|
|
173
173
|
encryptionKeys: PublicKey[],
|
|
174
174
|
signingKey: PrivateKey,
|
|
@@ -188,7 +188,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
async encryptAndSignDetached(
|
|
191
|
-
data: Uint8Array
|
|
191
|
+
data: Uint8Array<ArrayBuffer>,
|
|
192
192
|
sessionKey: SessionKey,
|
|
193
193
|
encryptionKeys: PublicKey[],
|
|
194
194
|
signingKey: PrivateKey,
|
|
@@ -208,7 +208,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
async encryptAndSignDetachedArmored(
|
|
211
|
-
data: Uint8Array
|
|
211
|
+
data: Uint8Array<ArrayBuffer>,
|
|
212
212
|
sessionKey: SessionKey,
|
|
213
213
|
encryptionKeys: PublicKey[],
|
|
214
214
|
signingKey: PrivateKey,
|
|
@@ -226,7 +226,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
226
226
|
};
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
async sign(data: Uint8Array
|
|
229
|
+
async sign(data: Uint8Array<ArrayBuffer>, signingKeys: PrivateKey | PrivateKey[], signatureContext: string) {
|
|
230
230
|
const signature = await this.cryptoProxy.signMessage({
|
|
231
231
|
binaryData: data,
|
|
232
232
|
signingKeys,
|
|
@@ -239,7 +239,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
239
239
|
};
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
async signArmored(data: Uint8Array
|
|
242
|
+
async signArmored(data: Uint8Array<ArrayBuffer>, signingKeys: PrivateKey | PrivateKey[]) {
|
|
243
243
|
const signature = await this.cryptoProxy.signMessage({
|
|
244
244
|
binaryData: data,
|
|
245
245
|
signingKeys,
|
|
@@ -251,7 +251,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
251
251
|
};
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
async verify(data: Uint8Array
|
|
254
|
+
async verify(data: Uint8Array<ArrayBuffer>, signature: Uint8Array<ArrayBuffer>, verificationKeys: PublicKey | PublicKey[]) {
|
|
255
255
|
const { verificationStatus, errors } = await this.cryptoProxy.verifyMessage({
|
|
256
256
|
binaryData: data,
|
|
257
257
|
binarySignature: signature,
|
|
@@ -264,7 +264,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
264
264
|
}
|
|
265
265
|
|
|
266
266
|
async verifyArmored(
|
|
267
|
-
data: Uint8Array
|
|
267
|
+
data: Uint8Array<ArrayBuffer>,
|
|
268
268
|
armoredSignature: string,
|
|
269
269
|
verificationKeys: PublicKey | PublicKey[],
|
|
270
270
|
signatureContext?: string,
|
|
@@ -282,7 +282,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
282
282
|
};
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
-
async decryptSessionKey(data: Uint8Array
|
|
285
|
+
async decryptSessionKey(data: Uint8Array<ArrayBuffer>, decryptionKeys: PrivateKey | PrivateKey[]) {
|
|
286
286
|
const sessionKey = await this.cryptoProxy.decryptSessionKey({
|
|
287
287
|
binaryMessage: data,
|
|
288
288
|
decryptionKeys,
|
|
@@ -316,7 +316,7 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
316
316
|
return key;
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
async decryptAndVerify(data: Uint8Array
|
|
319
|
+
async decryptAndVerify(data: Uint8Array<ArrayBuffer>, sessionKey: SessionKey, verificationKeys: PublicKey[]) {
|
|
320
320
|
const {
|
|
321
321
|
data: decryptedData,
|
|
322
322
|
verificationStatus,
|
|
@@ -336,8 +336,8 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
|
|
|
336
336
|
}
|
|
337
337
|
|
|
338
338
|
async decryptAndVerifyDetached(
|
|
339
|
-
data: Uint8Array
|
|
340
|
-
signature: Uint8Array | undefined,
|
|
339
|
+
data: Uint8Array<ArrayBuffer>,
|
|
340
|
+
signature: Uint8Array<ArrayBuffer> | undefined,
|
|
341
341
|
sessionKey: SessionKey,
|
|
342
342
|
verificationKeys?: PublicKey[],
|
|
343
343
|
) {
|
package/src/interface/index.ts
CHANGED
|
@@ -43,11 +43,19 @@ export type {
|
|
|
43
43
|
NodeOrUid,
|
|
44
44
|
RevisionOrUid,
|
|
45
45
|
NodeResult,
|
|
46
|
+
NodeResultWithError,
|
|
46
47
|
NodeResultWithNewUid,
|
|
47
48
|
Membership,
|
|
48
49
|
} from './nodes';
|
|
49
50
|
export { NodeType, MemberRole, RevisionState } from './nodes';
|
|
50
|
-
export type {
|
|
51
|
+
export type {
|
|
52
|
+
MaybePhotoNode,
|
|
53
|
+
MaybeMissingPhotoNode,
|
|
54
|
+
PhotoNode,
|
|
55
|
+
DegradedPhotoNode,
|
|
56
|
+
PhotoAttributes,
|
|
57
|
+
AlbumAttributes,
|
|
58
|
+
} from './photos';
|
|
51
59
|
export type {
|
|
52
60
|
ProtonInvitation,
|
|
53
61
|
ProtonInvitationWithNode,
|
|
@@ -100,7 +108,7 @@ export type CachedCryptoMaterial = {
|
|
|
100
108
|
key: PrivateKey;
|
|
101
109
|
passphraseSessionKey: SessionKey;
|
|
102
110
|
contentKeyPacketSessionKey?: SessionKey;
|
|
103
|
-
hashKey?: Uint8Array
|
|
111
|
+
hashKey?: Uint8Array<ArrayBuffer>;
|
|
104
112
|
};
|
|
105
113
|
shareKey?: {
|
|
106
114
|
key: PrivateKey;
|
package/src/interface/nodes.ts
CHANGED
|
@@ -229,4 +229,5 @@ export type RevisionOrUid = Revision | string;
|
|
|
229
229
|
|
|
230
230
|
// TODO: Remove string from the result and use Error instead to be compatible with the NodeResultWithNewUid.
|
|
231
231
|
export type NodeResult = { uid: string; ok: true } | { uid: string; ok: false; error: string };
|
|
232
|
+
export type NodeResultWithError = { uid: string; ok: true } | { uid: string; ok: false; error: Error };
|
|
232
233
|
export type NodeResultWithNewUid = { uid: string; newUid: string; ok: true } | { uid: string; ok: false; error: Error };
|
package/src/interface/photos.ts
CHANGED
|
@@ -21,8 +21,9 @@ export type MaybeMissingPhotoNode = Result<PhotoNode, DegradedPhotoNode | Missin
|
|
|
21
21
|
* See `NodeEntity` for more information.
|
|
22
22
|
*/
|
|
23
23
|
export type PhotoNode = NodeEntity & {
|
|
24
|
-
type: NodeType.Photo;
|
|
24
|
+
type: NodeType.Photo | NodeType.Album;
|
|
25
25
|
photo?: PhotoAttributes;
|
|
26
|
+
album?: AlbumAttributes;
|
|
26
27
|
};
|
|
27
28
|
|
|
28
29
|
/**
|
|
@@ -32,6 +33,7 @@ export type PhotoNode = NodeEntity & {
|
|
|
32
33
|
*/
|
|
33
34
|
export type DegradedPhotoNode = DegradedNode & {
|
|
34
35
|
photo?: PhotoAttributes;
|
|
36
|
+
album?: AlbumAttributes;
|
|
35
37
|
};
|
|
36
38
|
|
|
37
39
|
/**
|
|
@@ -65,3 +67,19 @@ export type PhotoAttributes = {
|
|
|
65
67
|
*/
|
|
66
68
|
tags: number[]; // TODO: enum
|
|
67
69
|
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Attributes of an album.
|
|
73
|
+
*
|
|
74
|
+
* Only nodes of type `NodeType.Album` have property of this type.
|
|
75
|
+
*/
|
|
76
|
+
export type AlbumAttributes = {
|
|
77
|
+
/**
|
|
78
|
+
* Number of photos in the album.
|
|
79
|
+
*/
|
|
80
|
+
photoCount: number;
|
|
81
|
+
/**
|
|
82
|
+
* UID of the cover photo node of the album.
|
|
83
|
+
*/
|
|
84
|
+
coverPhotoNodeUid?: string;
|
|
85
|
+
}
|
package/src/interface/sharing.ts
CHANGED
|
@@ -85,6 +85,7 @@ export type ShareNodeSettings = {
|
|
|
85
85
|
message?: string;
|
|
86
86
|
includeNodeName?: boolean;
|
|
87
87
|
};
|
|
88
|
+
editorsCanShare?: boolean;
|
|
88
89
|
};
|
|
89
90
|
|
|
90
91
|
export type ShareMembersSettings =
|
|
@@ -107,6 +108,7 @@ export type ShareResult = {
|
|
|
107
108
|
nonProtonInvitations: NonProtonInvitation[];
|
|
108
109
|
members: Member[];
|
|
109
110
|
publicLink?: PublicLink;
|
|
111
|
+
editorsCanShare: boolean;
|
|
110
112
|
};
|
|
111
113
|
|
|
112
114
|
export type UnshareNodeSettings = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type Thumbnail = {
|
|
2
2
|
type: ThumbnailType;
|
|
3
|
-
thumbnail: Uint8Array
|
|
3
|
+
thumbnail: Uint8Array<ArrayBuffer>;
|
|
4
4
|
};
|
|
5
5
|
|
|
6
6
|
export enum ThumbnailType {
|
|
@@ -9,5 +9,5 @@ export enum ThumbnailType {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export type ThumbnailResult =
|
|
12
|
-
| { nodeUid: string; ok: true; thumbnail: Uint8Array }
|
|
12
|
+
| { nodeUid: string; ok: true; thumbnail: Uint8Array<ArrayBuffer> }
|
|
13
13
|
| { nodeUid: string; ok: false; error: string };
|