@protontech/drive-sdk 0.1.2 → 0.2.1

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 (167) hide show
  1. package/dist/crypto/driveCrypto.d.ts +11 -0
  2. package/dist/crypto/driveCrypto.js +20 -7
  3. package/dist/crypto/driveCrypto.js.map +1 -1
  4. package/dist/crypto/interface.d.ts +10 -1
  5. package/dist/crypto/openPGPCrypto.d.ts +18 -2
  6. package/dist/crypto/openPGPCrypto.js +25 -6
  7. package/dist/crypto/openPGPCrypto.js.map +1 -1
  8. package/dist/diagnostic/telemetry.d.ts +1 -1
  9. package/dist/diagnostic/telemetry.js +1 -1
  10. package/dist/diagnostic/telemetry.js.map +1 -1
  11. package/dist/interface/download.d.ts +46 -0
  12. package/dist/interface/index.d.ts +2 -2
  13. package/dist/interface/index.js.map +1 -1
  14. package/dist/interface/nodes.d.ts +26 -1
  15. package/dist/interface/nodes.js.map +1 -1
  16. package/dist/interface/sharing.d.ts +3 -1
  17. package/dist/interface/telemetry.d.ts +5 -2
  18. package/dist/interface/telemetry.js.map +1 -1
  19. package/dist/internal/apiService/apiService.js +1 -1
  20. package/dist/internal/apiService/apiService.js.map +1 -1
  21. package/dist/internal/apiService/driveTypes.d.ts +78 -165
  22. package/dist/internal/apiService/errorCodes.d.ts +1 -0
  23. package/dist/internal/apiService/errors.js +1 -0
  24. package/dist/internal/apiService/errors.js.map +1 -1
  25. package/dist/internal/apiService/index.d.ts +1 -1
  26. package/dist/internal/apiService/index.js +2 -2
  27. package/dist/internal/apiService/index.js.map +1 -1
  28. package/dist/internal/apiService/transformers.d.ts +1 -1
  29. package/dist/internal/apiService/transformers.js +2 -2
  30. package/dist/internal/apiService/transformers.js.map +1 -1
  31. package/dist/internal/download/blockIndex.d.ts +11 -0
  32. package/dist/internal/download/blockIndex.js +35 -0
  33. package/dist/internal/download/blockIndex.js.map +1 -0
  34. package/dist/internal/download/blockIndex.test.d.ts +1 -0
  35. package/dist/internal/download/blockIndex.test.js +147 -0
  36. package/dist/internal/download/blockIndex.test.js.map +1 -0
  37. package/dist/internal/download/fileDownloader.d.ts +6 -2
  38. package/dist/internal/download/fileDownloader.js +83 -6
  39. package/dist/internal/download/fileDownloader.js.map +1 -1
  40. package/dist/internal/download/fileDownloader.test.js +69 -4
  41. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  42. package/dist/internal/download/interface.d.ts +4 -4
  43. package/dist/internal/download/seekableStream.d.ts +80 -0
  44. package/dist/internal/download/seekableStream.js +163 -0
  45. package/dist/internal/download/seekableStream.js.map +1 -0
  46. package/dist/internal/download/seekableStream.test.d.ts +1 -0
  47. package/dist/internal/download/seekableStream.test.js +149 -0
  48. package/dist/internal/download/seekableStream.test.js.map +1 -0
  49. package/dist/internal/download/telemetry.js +1 -1
  50. package/dist/internal/download/telemetry.js.map +1 -1
  51. package/dist/internal/download/telemetry.test.js +7 -7
  52. package/dist/internal/download/telemetry.test.js.map +1 -1
  53. package/dist/internal/errors.d.ts +1 -1
  54. package/dist/internal/errors.js +7 -1
  55. package/dist/internal/errors.js.map +1 -1
  56. package/dist/internal/errors.test.js +44 -10
  57. package/dist/internal/errors.test.js.map +1 -1
  58. package/dist/internal/events/index.js +1 -1
  59. package/dist/internal/events/index.js.map +1 -1
  60. package/dist/internal/nodes/apiService.js +16 -3
  61. package/dist/internal/nodes/apiService.js.map +1 -1
  62. package/dist/internal/nodes/apiService.test.js +43 -7
  63. package/dist/internal/nodes/apiService.test.js.map +1 -1
  64. package/dist/internal/nodes/cache.js +12 -3
  65. package/dist/internal/nodes/cache.js.map +1 -1
  66. package/dist/internal/nodes/cache.test.js +31 -1
  67. package/dist/internal/nodes/cache.test.js.map +1 -1
  68. package/dist/internal/nodes/cryptoService.d.ts +4 -1
  69. package/dist/internal/nodes/cryptoService.js +66 -16
  70. package/dist/internal/nodes/cryptoService.js.map +1 -1
  71. package/dist/internal/nodes/cryptoService.test.js +129 -46
  72. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  73. package/dist/internal/nodes/extendedAttributes.d.ts +2 -1
  74. package/dist/internal/nodes/extendedAttributes.js +27 -1
  75. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  76. package/dist/internal/nodes/extendedAttributes.test.js +59 -6
  77. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  78. package/dist/internal/nodes/index.test.js +1 -1
  79. package/dist/internal/nodes/index.test.js.map +1 -1
  80. package/dist/internal/nodes/interface.d.ts +18 -2
  81. package/dist/internal/nodes/nodesAccess.js +11 -1
  82. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  83. package/dist/internal/nodes/nodesManagement.js +1 -1
  84. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  85. package/dist/internal/nodes/nodesRevisions.d.ts +4 -3
  86. package/dist/internal/nodes/nodesRevisions.js +2 -2
  87. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  88. package/dist/internal/shares/cryptoService.js +7 -4
  89. package/dist/internal/shares/cryptoService.js.map +1 -1
  90. package/dist/internal/shares/cryptoService.test.js +5 -3
  91. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  92. package/dist/internal/sharing/apiService.js +5 -5
  93. package/dist/internal/sharing/apiService.js.map +1 -1
  94. package/dist/internal/sharing/cryptoService.d.ts +1 -0
  95. package/dist/internal/sharing/cryptoService.js +22 -10
  96. package/dist/internal/sharing/cryptoService.js.map +1 -1
  97. package/dist/internal/sharing/cryptoService.test.js +7 -4
  98. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  99. package/dist/internal/sharing/sharingAccess.js +4 -2
  100. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  101. package/dist/internal/sharing/sharingAccess.test.js +6 -0
  102. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  103. package/dist/internal/upload/telemetry.js +2 -2
  104. package/dist/internal/upload/telemetry.js.map +1 -1
  105. package/dist/internal/upload/telemetry.test.js +7 -7
  106. package/dist/internal/upload/telemetry.test.js.map +1 -1
  107. package/dist/telemetry.d.ts +2 -2
  108. package/dist/telemetry.js +2 -2
  109. package/dist/telemetry.js.map +1 -1
  110. package/dist/tests/telemetry.js +1 -1
  111. package/dist/tests/telemetry.js.map +1 -1
  112. package/dist/transformers.d.ts +1 -1
  113. package/dist/transformers.js +2 -1
  114. package/dist/transformers.js.map +1 -1
  115. package/package.json +1 -1
  116. package/src/crypto/driveCrypto.ts +70 -25
  117. package/src/crypto/interface.ts +15 -0
  118. package/src/crypto/openPGPCrypto.ts +37 -5
  119. package/src/diagnostic/telemetry.ts +1 -1
  120. package/src/interface/download.ts +46 -0
  121. package/src/interface/index.ts +2 -1
  122. package/src/interface/nodes.ts +28 -1
  123. package/src/interface/sharing.ts +3 -1
  124. package/src/interface/telemetry.ts +6 -1
  125. package/src/internal/apiService/apiService.ts +1 -1
  126. package/src/internal/apiService/driveTypes.ts +78 -165
  127. package/src/internal/apiService/errorCodes.ts +1 -0
  128. package/src/internal/apiService/errors.ts +1 -0
  129. package/src/internal/apiService/index.ts +1 -1
  130. package/src/internal/apiService/transformers.ts +1 -1
  131. package/src/internal/download/blockIndex.test.ts +158 -0
  132. package/src/internal/download/blockIndex.ts +36 -0
  133. package/src/internal/download/fileDownloader.test.ts +100 -7
  134. package/src/internal/download/fileDownloader.ts +109 -9
  135. package/src/internal/download/interface.ts +4 -4
  136. package/src/internal/download/seekableStream.test.ts +187 -0
  137. package/src/internal/download/seekableStream.ts +182 -0
  138. package/src/internal/download/telemetry.test.ts +7 -7
  139. package/src/internal/download/telemetry.ts +1 -1
  140. package/src/internal/errors.test.ts +45 -11
  141. package/src/internal/errors.ts +8 -0
  142. package/src/internal/events/index.ts +1 -1
  143. package/src/internal/nodes/apiService.test.ts +59 -15
  144. package/src/internal/nodes/apiService.ts +21 -4
  145. package/src/internal/nodes/cache.test.ts +34 -1
  146. package/src/internal/nodes/cache.ts +12 -3
  147. package/src/internal/nodes/cryptoService.test.ts +139 -47
  148. package/src/internal/nodes/cryptoService.ts +94 -9
  149. package/src/internal/nodes/extendedAttributes.test.ts +60 -7
  150. package/src/internal/nodes/extendedAttributes.ts +37 -1
  151. package/src/internal/nodes/index.test.ts +1 -1
  152. package/src/internal/nodes/interface.ts +19 -2
  153. package/src/internal/nodes/nodesAccess.ts +15 -1
  154. package/src/internal/nodes/nodesManagement.ts +1 -1
  155. package/src/internal/nodes/nodesRevisions.ts +14 -5
  156. package/src/internal/shares/cryptoService.test.ts +5 -3
  157. package/src/internal/shares/cryptoService.ts +7 -4
  158. package/src/internal/sharing/apiService.ts +6 -6
  159. package/src/internal/sharing/cryptoService.test.ts +7 -4
  160. package/src/internal/sharing/cryptoService.ts +27 -10
  161. package/src/internal/sharing/sharingAccess.test.ts +6 -0
  162. package/src/internal/sharing/sharingAccess.ts +4 -2
  163. package/src/internal/upload/telemetry.test.ts +7 -7
  164. package/src/internal/upload/telemetry.ts +2 -2
  165. package/src/telemetry.ts +2 -2
  166. package/src/tests/telemetry.ts +1 -1
  167. package/src/transformers.ts +4 -2
@@ -82,6 +82,7 @@ export declare class DriveCrypto {
82
82
  key: PrivateKey;
83
83
  passphraseSessionKey: SessionKey;
84
84
  verified: VERIFICATION_STATUS;
85
+ verificationErrors?: Error[];
85
86
  }>;
86
87
  /**
87
88
  * It encrypts session key with provided encryption key.
@@ -119,6 +120,7 @@ export declare class DriveCrypto {
119
120
  decryptAndVerifySessionKey(base64data: string, armoredSignature: string | undefined, decryptionKeys: PrivateKey | PrivateKey[], verificationKeys: PublicKey[]): Promise<{
120
121
  sessionKey: SessionKey;
121
122
  verified?: VERIFICATION_STATUS;
123
+ verificationErrors?: Error[];
122
124
  }>;
123
125
  /**
124
126
  * It decrypts key similarly like `decryptKey`, but without signature
@@ -160,6 +162,7 @@ export declare class DriveCrypto {
160
162
  decryptNodeName(armoredNodeName: string, decryptionKey: PrivateKey, verificationKeys: PublicKey[]): Promise<{
161
163
  name: string;
162
164
  verified: VERIFICATION_STATUS;
165
+ verificationErrors?: Error[];
163
166
  }>;
164
167
  /**
165
168
  * It decrypts armored node hash key and verifies embeded signature.
@@ -170,6 +173,7 @@ export declare class DriveCrypto {
170
173
  decryptNodeHashKey(armoredHashKey: string, decryptionAndVerificationKey: PrivateKey, extraVerificationKeys: PublicKey[]): Promise<{
171
174
  hashKey: Uint8Array;
172
175
  verified: VERIFICATION_STATUS;
176
+ verificationErrors?: Error[];
173
177
  }>;
174
178
  encryptExtendedAttributes(extendedAttributes: string, encryptionKey: PrivateKey, signingKey: PrivateKey): Promise<{
175
179
  armoredExtendedAttributes: string;
@@ -177,11 +181,16 @@ export declare class DriveCrypto {
177
181
  decryptExtendedAttributes(armoreExtendedAttributes: string, decryptionKey: PrivateKey, verificationKeys: PublicKey[]): Promise<{
178
182
  extendedAttributes: string;
179
183
  verified: VERIFICATION_STATUS;
184
+ verificationErrors?: Error[];
180
185
  }>;
181
186
  encryptInvitation(shareSessionKey: SessionKey, encryptionKey: PublicKey, signingKey: PrivateKey): Promise<{
182
187
  base64KeyPacket: string;
183
188
  base64KeyPacketSignature: string;
184
189
  }>;
190
+ verifyInvitation(base64KeyPacket: string, armoredKeyPacketSignature: string, verificationKeys: PublicKey[]): Promise<{
191
+ verified: VERIFICATION_STATUS;
192
+ verificationErrors?: Error[];
193
+ }>;
185
194
  acceptInvitation(base64KeyPacket: string, signingKey: PrivateKey): Promise<{
186
195
  base64SessionKeySignature: string;
187
196
  }>;
@@ -194,6 +203,7 @@ export declare class DriveCrypto {
194
203
  decryptThumbnailBlock(encryptedThumbnail: Uint8Array, sessionKey: SessionKey, verificationKeys: PublicKey[]): Promise<{
195
204
  decryptedThumbnail: Uint8Array;
196
205
  verified: VERIFICATION_STATUS;
206
+ verificationErrors?: Error[];
197
207
  }>;
198
208
  encryptBlock(blockData: Uint8Array, encryptionKey: PrivateKey, sessionKey: SessionKey, signingKey: PrivateKey): Promise<{
199
209
  encryptedData: Uint8Array;
@@ -205,6 +215,7 @@ export declare class DriveCrypto {
205
215
  }>;
206
216
  verifyManifest(manifest: Uint8Array, armoredSignature: string, verificationKeys: PublicKey | PublicKey[]): Promise<{
207
217
  verified: VERIFICATION_STATUS;
218
+ verificationErrors?: Error[];
208
219
  }>;
209
220
  decryptShareUrlPassword(armoredPassword: string, decryptionKeys: PrivateKey[]): Promise<string>;
210
221
  }
@@ -112,7 +112,7 @@ class DriveCrypto {
112
112
  */
113
113
  async decryptKey(armoredKey, armoredPassphrase, armoredPassphraseSignature, decryptionKeys, verificationKeys) {
114
114
  const passphraseSessionKey = await this.openPGPCrypto.decryptArmoredSessionKey(armoredPassphrase, decryptionKeys);
115
- const { data: decryptedPassphrase, verified } = await this.openPGPCrypto.decryptArmoredAndVerifyDetached(armoredPassphrase, armoredPassphraseSignature, passphraseSessionKey, verificationKeys);
115
+ const { data: decryptedPassphrase, verified, verificationErrors, } = await this.openPGPCrypto.decryptArmoredAndVerifyDetached(armoredPassphrase, armoredPassphraseSignature, passphraseSessionKey, verificationKeys);
116
116
  const passphrase = uint8ArrayToUtf8(decryptedPassphrase);
117
117
  const key = await this.openPGPCrypto.decryptKey(armoredKey, passphrase);
118
118
  return {
@@ -120,6 +120,7 @@ class DriveCrypto {
120
120
  key,
121
121
  passphraseSessionKey,
122
122
  verified,
123
+ verificationErrors,
123
124
  };
124
125
  }
125
126
  /**
@@ -177,13 +178,16 @@ class DriveCrypto {
177
178
  const data = (0, utils_1.base64StringToUint8Array)(base64data);
178
179
  const sessionKey = await this.openPGPCrypto.decryptSessionKey(data, decryptionKeys);
179
180
  let verified;
181
+ let verificationErrors;
180
182
  if (armoredSignature) {
181
- const result = await this.openPGPCrypto.verify(sessionKey.data, armoredSignature, verificationKeys);
183
+ const result = await this.openPGPCrypto.verifyArmored(sessionKey.data, armoredSignature, verificationKeys);
182
184
  verified = result.verified;
185
+ verificationErrors = result.verificationErrors;
183
186
  }
184
187
  return {
185
188
  sessionKey,
186
189
  verified,
190
+ verificationErrors,
187
191
  };
188
192
  }
189
193
  /**
@@ -250,10 +254,11 @@ class DriveCrypto {
250
254
  * You have to read `verified` result and act based on that.
251
255
  */
252
256
  async decryptNodeName(armoredNodeName, decryptionKey, verificationKeys) {
253
- const { data: name, verified } = await this.openPGPCrypto.decryptArmoredAndVerify(armoredNodeName, [decryptionKey], verificationKeys);
257
+ const { data: name, verified, verificationErrors, } = await this.openPGPCrypto.decryptArmoredAndVerify(armoredNodeName, [decryptionKey], verificationKeys);
254
258
  return {
255
259
  name: uint8ArrayToUtf8(name),
256
260
  verified,
261
+ verificationErrors,
257
262
  };
258
263
  }
259
264
  /**
@@ -269,10 +274,11 @@ class DriveCrypto {
269
274
  // Similarly, iOS or Android used address key for all nodes. Latest
270
275
  // versions should use node key in all cases, but we accept also
271
276
  // address key. Its still signed with a valid key.
272
- const { data: hashKey, verified } = await this.openPGPCrypto.decryptArmoredAndVerify(armoredHashKey, [decryptionAndVerificationKey], [decryptionAndVerificationKey, ...extraVerificationKeys]);
277
+ const { data: hashKey, verified, verificationErrors, } = await this.openPGPCrypto.decryptArmoredAndVerify(armoredHashKey, [decryptionAndVerificationKey], [decryptionAndVerificationKey, ...extraVerificationKeys]);
273
278
  return {
274
279
  hashKey,
275
280
  verified,
281
+ verificationErrors,
276
282
  };
277
283
  }
278
284
  async encryptExtendedAttributes(extendedAttributes, encryptionKey, signingKey) {
@@ -282,10 +288,11 @@ class DriveCrypto {
282
288
  };
283
289
  }
284
290
  async decryptExtendedAttributes(armoreExtendedAttributes, decryptionKey, verificationKeys) {
285
- const { data: decryptedExtendedAttributes, verified } = await this.openPGPCrypto.decryptArmoredAndVerify(armoreExtendedAttributes, [decryptionKey], verificationKeys);
291
+ const { data: decryptedExtendedAttributes, verified, verificationErrors, } = await this.openPGPCrypto.decryptArmoredAndVerify(armoreExtendedAttributes, [decryptionKey], verificationKeys);
286
292
  return {
287
293
  extendedAttributes: uint8ArrayToUtf8(decryptedExtendedAttributes),
288
294
  verified,
295
+ verificationErrors,
289
296
  };
290
297
  }
291
298
  async encryptInvitation(shareSessionKey, encryptionKey, signingKey) {
@@ -296,6 +303,10 @@ class DriveCrypto {
296
303
  base64KeyPacketSignature: (0, utils_1.uint8ArrayToBase64String)(keyPacketSignature),
297
304
  };
298
305
  }
306
+ async verifyInvitation(base64KeyPacket, armoredKeyPacketSignature, verificationKeys) {
307
+ const { verified, verificationErrors } = await this.openPGPCrypto.verifyArmored((0, utils_1.base64StringToUint8Array)(base64KeyPacket), armoredKeyPacketSignature, verificationKeys, SIGNING_CONTEXTS.SHARING_INVITER);
308
+ return { verified, verificationErrors };
309
+ }
299
310
  async acceptInvitation(base64KeyPacket, signingKey) {
300
311
  const sessionKey = await this.openPGPCrypto.decryptSessionKey((0, utils_1.base64StringToUint8Array)(base64KeyPacket), signingKey);
301
312
  const { signature } = await this.openPGPCrypto.sign(sessionKey.data, signingKey, SIGNING_CONTEXTS.SHARING_MEMBER);
@@ -318,10 +329,11 @@ class DriveCrypto {
318
329
  };
319
330
  }
320
331
  async decryptThumbnailBlock(encryptedThumbnail, sessionKey, verificationKeys) {
321
- const { data: decryptedThumbnail, verified } = await this.openPGPCrypto.decryptAndVerify(encryptedThumbnail, sessionKey, verificationKeys);
332
+ const { data: decryptedThumbnail, verified, verificationErrors, } = await this.openPGPCrypto.decryptAndVerify(encryptedThumbnail, sessionKey, verificationKeys);
322
333
  return {
323
334
  decryptedThumbnail,
324
335
  verified,
336
+ verificationErrors,
325
337
  };
326
338
  }
327
339
  async encryptBlock(blockData, encryptionKey, sessionKey, signingKey) {
@@ -344,9 +356,10 @@ class DriveCrypto {
344
356
  };
345
357
  }
346
358
  async verifyManifest(manifest, armoredSignature, verificationKeys) {
347
- const { verified } = await this.openPGPCrypto.verify(manifest, armoredSignature, verificationKeys);
359
+ const { verified, verificationErrors } = await this.openPGPCrypto.verifyArmored(manifest, armoredSignature, verificationKeys);
348
360
  return {
349
361
  verified,
362
+ verificationErrors,
350
363
  };
351
364
  }
352
365
  async decryptShareUrlPassword(armoredPassword, decryptionKeys) {
@@ -1 +1 @@
1
- {"version":3,"file":"driveCrypto.js","sourceRoot":"","sources":["../../src/crypto/driveCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driveCrypto.js","sourceRoot":"","sources":["../../src/crypto/driveCrypto.ts"],"names":[],"mappings":"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"}
@@ -100,8 +100,13 @@ export interface OpenPGPCrypto {
100
100
  signArmored: (data: Uint8Array, signingKey: PrivateKey | PrivateKey[]) => Promise<{
101
101
  signature: string;
102
102
  }>;
103
- verify: (data: Uint8Array, armoredSignature: string, verificationKeys: PublicKey | PublicKey[]) => Promise<{
103
+ verify: (data: Uint8Array, signature: Uint8Array, verificationKeys: PublicKey | PublicKey[]) => Promise<{
104
104
  verified: VERIFICATION_STATUS;
105
+ verificationErrors?: Error[];
106
+ }>;
107
+ verifyArmored: (data: Uint8Array, armoredSignature: string, verificationKeys: PublicKey | PublicKey[], signatureContext?: string) => Promise<{
108
+ verified: VERIFICATION_STATUS;
109
+ verificationErrors?: Error[];
105
110
  }>;
106
111
  decryptSessionKey: (data: Uint8Array, decryptionKeys: PrivateKey | PrivateKey[]) => Promise<SessionKey>;
107
112
  decryptArmoredSessionKey: (armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]) => Promise<SessionKey>;
@@ -109,19 +114,23 @@ export interface OpenPGPCrypto {
109
114
  decryptAndVerify(data: Uint8Array, sessionKey: SessionKey, verificationKeys: PublicKey | PublicKey[]): Promise<{
110
115
  data: Uint8Array;
111
116
  verified: VERIFICATION_STATUS;
117
+ verificationErrors?: Error[];
112
118
  }>;
113
119
  decryptAndVerifyDetached(data: Uint8Array, signature: Uint8Array | undefined, sessionKey: SessionKey, verificationKeys?: PublicKey | PublicKey[]): Promise<{
114
120
  data: Uint8Array;
115
121
  verified: VERIFICATION_STATUS;
122
+ verificationErrors?: Error[];
116
123
  }>;
117
124
  decryptArmored(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]): Promise<Uint8Array>;
118
125
  decryptArmoredAndVerify: (armoredData: string, decryptionKeys: PrivateKey | PrivateKey[], verificationKeys: PublicKey | PublicKey[]) => Promise<{
119
126
  data: Uint8Array;
120
127
  verified: VERIFICATION_STATUS;
128
+ verificationErrors?: Error[];
121
129
  }>;
122
130
  decryptArmoredAndVerifyDetached: (armoredData: string, armoredSignature: string, sessionKey: SessionKey, verificationKeys: PublicKey | PublicKey[]) => Promise<{
123
131
  data: Uint8Array;
124
132
  verified: VERIFICATION_STATUS;
133
+ verificationErrors?: Error[];
125
134
  }>;
126
135
  decryptArmoredWithPassword(armoredData: string, password: string): Promise<Uint8Array>;
127
136
  }
@@ -57,6 +57,7 @@ export interface OpenPGPCryptoProxy {
57
57
  data: Uint8Array | string;
58
58
  verified?: VERIFICATION_STATUS;
59
59
  verificationStatus?: VERIFICATION_STATUS;
60
+ verificationErrors?: Error[];
60
61
  }>;
61
62
  signMessage: (options: {
62
63
  format: 'binary' | 'armored';
@@ -70,11 +71,17 @@ export interface OpenPGPCryptoProxy {
70
71
  }) => Promise<Uint8Array | string>;
71
72
  verifyMessage: (options: {
72
73
  binaryData: Uint8Array;
73
- armoredSignature: string;
74
+ armoredSignature?: string;
75
+ binarySignature?: Uint8Array;
74
76
  verificationKeys: PublicKey | PublicKey[];
77
+ signatureContext?: {
78
+ critical: boolean;
79
+ value: string;
80
+ };
75
81
  }) => Promise<{
76
82
  verified?: VERIFICATION_STATUS;
77
83
  verificationStatus?: VERIFICATION_STATUS;
84
+ errors?: Error[];
78
85
  }>;
79
86
  }
80
87
  /**
@@ -120,8 +127,13 @@ export declare class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
120
127
  signArmored(data: Uint8Array, signingKeys: PrivateKey | PrivateKey[]): Promise<{
121
128
  signature: string;
122
129
  }>;
123
- verify(data: Uint8Array, armoredSignature: string, verificationKeys: PublicKey | PublicKey[]): Promise<{
130
+ verify(data: Uint8Array, signature: Uint8Array, verificationKeys: PublicKey | PublicKey[]): Promise<{
131
+ verified: VERIFICATION_STATUS;
132
+ verificationErrors: Error[] | undefined;
133
+ }>;
134
+ verifyArmored(data: Uint8Array, armoredSignature: string, verificationKeys: PublicKey | PublicKey[], signatureContext?: string): Promise<{
124
135
  verified: VERIFICATION_STATUS;
136
+ verificationErrors: Error[] | undefined;
125
137
  }>;
126
138
  decryptSessionKey(data: Uint8Array, decryptionKeys: PrivateKey | PrivateKey[]): Promise<SessionKey>;
127
139
  decryptArmoredSessionKey(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]): Promise<SessionKey>;
@@ -129,19 +141,23 @@ export declare class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
129
141
  decryptAndVerify(data: Uint8Array, sessionKey: SessionKey, verificationKeys: PublicKey[]): Promise<{
130
142
  data: Uint8Array;
131
143
  verified: VERIFICATION_STATUS;
144
+ verificationErrors: Error[] | undefined;
132
145
  }>;
133
146
  decryptAndVerifyDetached(data: Uint8Array, signature: Uint8Array | undefined, sessionKey: SessionKey, verificationKeys?: PublicKey[]): Promise<{
134
147
  data: Uint8Array;
135
148
  verified: VERIFICATION_STATUS;
149
+ verificationErrors: Error[] | undefined;
136
150
  }>;
137
151
  decryptArmored(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[]): Promise<Uint8Array>;
138
152
  decryptArmoredAndVerify(armoredData: string, decryptionKeys: PrivateKey | PrivateKey[], verificationKeys: PublicKey | PublicKey[]): Promise<{
139
153
  data: Uint8Array;
140
154
  verified: VERIFICATION_STATUS;
155
+ verificationErrors: Error[] | undefined;
141
156
  }>;
142
157
  decryptArmoredAndVerifyDetached(armoredData: string, armoredSignature: string, sessionKey: SessionKey, verificationKeys: PublicKey | PublicKey[]): Promise<{
143
158
  data: Uint8Array;
144
159
  verified: VERIFICATION_STATUS;
160
+ verificationErrors: Error[] | undefined;
145
161
  }>;
146
162
  decryptArmoredWithPassword(armoredData: string, password: string): Promise<Uint8Array>;
147
163
  }
@@ -142,16 +142,31 @@ class OpenPGPCryptoWithCryptoProxy {
142
142
  signature: signature,
143
143
  };
144
144
  }
145
- async verify(data, armoredSignature, verificationKeys) {
146
- const { verified, verificationStatus } = await this.cryptoProxy.verifyMessage({
145
+ async verify(data, signature, verificationKeys) {
146
+ const { verified, verificationStatus, errors } = await this.cryptoProxy.verifyMessage({
147
+ binaryData: data,
148
+ binarySignature: signature,
149
+ verificationKeys,
150
+ });
151
+ return {
152
+ // pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
153
+ // Proper typing is too complex, it will be removed to support only newer pmcrypto.
154
+ verified: verified || verificationStatus,
155
+ verificationErrors: errors,
156
+ };
157
+ }
158
+ async verifyArmored(data, armoredSignature, verificationKeys, signatureContext) {
159
+ const { verified, verificationStatus, errors } = await this.cryptoProxy.verifyMessage({
147
160
  binaryData: data,
148
161
  armoredSignature,
149
162
  verificationKeys,
163
+ signatureContext: signatureContext ? { critical: true, value: signatureContext } : undefined,
150
164
  });
151
165
  return {
152
166
  // pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
153
167
  // Proper typing is too complex, it will be removed to support only newer pmcrypto.
154
168
  verified: verified || verificationStatus,
169
+ verificationErrors: errors,
155
170
  };
156
171
  }
157
172
  async decryptSessionKey(data, decryptionKeys) {
@@ -182,7 +197,7 @@ class OpenPGPCryptoWithCryptoProxy {
182
197
  return key;
183
198
  }
184
199
  async decryptAndVerify(data, sessionKey, verificationKeys) {
185
- const { data: decryptedData, verified, verificationStatus, } = await this.cryptoProxy.decryptMessage({
200
+ const { data: decryptedData, verified, verificationStatus, verificationErrors, } = await this.cryptoProxy.decryptMessage({
186
201
  binaryMessage: data,
187
202
  sessionKeys: sessionKey,
188
203
  verificationKeys,
@@ -193,10 +208,11 @@ class OpenPGPCryptoWithCryptoProxy {
193
208
  // pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
194
209
  // Proper typing is too complex, it will be removed to support only newer pmcrypto.
195
210
  verified: verified || verificationStatus,
211
+ verificationErrors,
196
212
  };
197
213
  }
198
214
  async decryptAndVerifyDetached(data, signature, sessionKey, verificationKeys) {
199
- const { data: decryptedData, verified, verificationStatus, } = await this.cryptoProxy.decryptMessage({
215
+ const { data: decryptedData, verified, verificationStatus, verificationErrors, } = await this.cryptoProxy.decryptMessage({
200
216
  binaryMessage: data,
201
217
  binarySignature: signature,
202
218
  sessionKeys: sessionKey,
@@ -208,6 +224,7 @@ class OpenPGPCryptoWithCryptoProxy {
208
224
  // pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
209
225
  // Proper typing is too complex, it will be removed to support only newer pmcrypto.
210
226
  verified: verified || verificationStatus,
227
+ verificationErrors,
211
228
  };
212
229
  }
213
230
  async decryptArmored(armoredData, decryptionKeys) {
@@ -219,7 +236,7 @@ class OpenPGPCryptoWithCryptoProxy {
219
236
  return data;
220
237
  }
221
238
  async decryptArmoredAndVerify(armoredData, decryptionKeys, verificationKeys) {
222
- const { data, verified, verificationStatus } = await this.cryptoProxy.decryptMessage({
239
+ const { data, verified, verificationStatus, verificationErrors } = await this.cryptoProxy.decryptMessage({
223
240
  armoredMessage: armoredData,
224
241
  decryptionKeys,
225
242
  verificationKeys,
@@ -230,10 +247,11 @@ class OpenPGPCryptoWithCryptoProxy {
230
247
  // pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
231
248
  // Proper typing is too complex, it will be removed to support only newer pmcrypto.
232
249
  verified: verified || verificationStatus,
250
+ verificationErrors,
233
251
  };
234
252
  }
235
253
  async decryptArmoredAndVerifyDetached(armoredData, armoredSignature, sessionKey, verificationKeys) {
236
- const { data, verified, verificationStatus } = await this.cryptoProxy.decryptMessage({
254
+ const { data, verified, verificationStatus, verificationErrors } = await this.cryptoProxy.decryptMessage({
237
255
  armoredMessage: armoredData,
238
256
  armoredSignature,
239
257
  sessionKeys: sessionKey,
@@ -245,6 +263,7 @@ class OpenPGPCryptoWithCryptoProxy {
245
263
  // pmcrypto 8.3.0 changes `verified` to `verificationStatus`.
246
264
  // Proper typing is too complex, it will be removed to support only newer pmcrypto.
247
265
  verified: verified || verificationStatus,
266
+ verificationErrors,
248
267
  };
249
268
  }
250
269
  async decryptArmoredWithPassword(armoredData, password) {
@@ -1 +1 @@
1
- {"version":3,"file":"openPGPCrypto.js","sourceRoot":"","sources":["../../src/crypto/openPGPCrypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openPGPCrypto.js","sourceRoot":"","sources":["../../src/crypto/openPGPCrypto.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { EventsGenerator } from './eventsGenerator';
11
11
  */
12
12
  export declare class DiagnosticTelemetry extends EventsGenerator {
13
13
  getLogger(name: string): Logger;
14
- logEvent(event: MetricEvent): void;
14
+ recordMetric(event: MetricEvent): void;
15
15
  }
16
16
  declare class Logger {
17
17
  private name;
@@ -20,7 +20,7 @@ class DiagnosticTelemetry extends eventsGenerator_1.EventsGenerator {
20
20
  });
21
21
  });
22
22
  }
23
- logEvent(event) {
23
+ recordMetric(event) {
24
24
  if (event.eventName === 'download' && !event.error) {
25
25
  return;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/diagnostic/telemetry.ts"],"names":[],"mappings":";;;AACA,4CAAmD;AACnD,uDAAoD;AAEpD;;;;;;;GAOG;AACH,MAAa,mBAAoB,SAAQ,iCAAe;IACpD,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,oBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;gBAChE,GAAG;aACN,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,KAAkB;QACvB,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO;QACX,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,kCAAkC,EAAE,CAAC;YACzD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,KAAK;SACR,CAAC,CAAC;IACP,CAAC;CACJ;AAvBD,kDAuBC;AAED,MAAM,MAAM;IAEI;IACA;IAFZ,YACY,IAAY,EACZ,QAAmC;QADnC,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAA2B;QAE3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,uDAAuD;IACvD,yDAAyD;IAEzD,6DAA6D;IAC7D,KAAK,CAAC,OAAe,IAAG,CAAC;IAEzB,6DAA6D;IAC7D,IAAI,CAAC,OAAe,IAAG,CAAC;IAExB,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,KAAK,EAAE,oBAAQ,CAAC,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAe;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,OAAO;YACP,KAAK;SACR,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/diagnostic/telemetry.ts"],"names":[],"mappings":";;;AACA,4CAAmD;AACnD,uDAAoD;AAEpD;;;;;;;GAOG;AACH,MAAa,mBAAoB,SAAQ,iCAAe;IACpD,SAAS,CAAC,IAAY;QAClB,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,oBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;gBAChE,GAAG;aACN,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,KAAkB;QAC3B,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO;QACX,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,kCAAkC,EAAE,CAAC;YACzD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,YAAY,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,KAAK;SACR,CAAC,CAAC;IACP,CAAC;CACJ;AAvBD,kDAuBC;AAED,MAAM,MAAM;IAEI;IACA;IAFZ,YACY,IAAY,EACZ,QAAmC;QADnC,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAA2B;QAE3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,uDAAuD;IACvD,yDAAyD;IAEzD,6DAA6D;IAC7D,KAAK,CAAC,OAAe,IAAG,CAAC;IAEzB,6DAA6D;IAC7D,IAAI,CAAC,OAAe,IAAG,CAAC;IAExB,IAAI,CAAC,OAAe;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,KAAK,EAAE,oBAAQ,CAAC,OAAO;YACvB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,KAAe;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,KAAK,EAAE,oBAAQ,CAAC,KAAK;YACrB,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,OAAO;YACP,KAAK;SACR,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -21,9 +21,55 @@ export interface FileDownloader {
21
21
  * Use this only for debugging purposes.
22
22
  */
23
23
  unsafeWriteToStream(streamFactory: WritableStream, onProgress?: (downloadedBytes: number) => void): DownloadController;
24
+ /**
25
+ * Get a seekable stream that can be used to download specific range of
26
+ * data from the file. This is useful for video players to download the
27
+ * next several bytes of the video, or skip to the middle without the
28
+ * need to download the entire file.
29
+ *
30
+ * Stream doesn't verify data integrity. For the full integrity of
31
+ * the file, use `writeToStream` instead.
32
+ *
33
+ * The stream is not opportunitistically downloading the data ahead of
34
+ * the time. It will only download the data when it is requested. To
35
+ * provide smooth experience, pre-buffer the data based on the expected
36
+ * playback speed.
37
+ *
38
+ * The file is chunked into blocks that must be fully downloaded to provide
39
+ * given range of data within the block. To avoid downloading the same
40
+ * block multiple times, a few blocks can be cached. The size of the cache
41
+ * might change in the future to improve performance.
42
+ *
43
+ * Example:
44
+ *
45
+ * ```ts
46
+ * const seekableStream = fileDownloader.getSeekableStream();
47
+ * await seekableStream.seek(1000);
48
+ * const { value, done } = await seekableStream.read(100);
49
+ * ```
50
+ */
51
+ getSeekableStream(): SeekableReadableStream;
24
52
  }
25
53
  export interface DownloadController {
26
54
  pause(): void;
27
55
  resume(): void;
28
56
  completion(): Promise<void>;
29
57
  }
58
+ export interface SeekableReadableStream extends ReadableStream<Uint8Array> {
59
+ /**
60
+ * Read a specific number of bytes from the stream at the current position.
61
+ *
62
+ * @param numBytes - The number of bytes to read.
63
+ * @returns A promise that resolves to the read bytes.
64
+ */
65
+ read(numBytes: number): Promise<{
66
+ value: Uint8Array;
67
+ done: boolean;
68
+ }>;
69
+ /**
70
+ * Seek to the given position in the stream from the beginning of the stream.
71
+ *
72
+ * @param position - The position to seek to in bytes.
73
+ */
74
+ seek(position: number): void | Promise<void>;
75
+ }
@@ -12,11 +12,11 @@ export type { Author, UnverifiedAuthorError, AnonymousUser } from './author';
12
12
  export type { ProtonDriveConfig } from './config';
13
13
  export type { Device, DeviceOrUid } from './devices';
14
14
  export { DeviceType } from './devices';
15
- export type { FileDownloader, DownloadController } from './download';
15
+ export type { FileDownloader, DownloadController, SeekableReadableStream } from './download';
16
16
  export type { DriveListener, LatestEventIdProvider, DriveEvent, NodeEvent, FastForwardEvent, TreeRefreshEvent, TreeRemovalEvent, SharedWithMeUpdated, } from './events';
17
17
  export { DriveEventType, SDKEvent } from './events';
18
18
  export type { ProtonDriveHTTPClient, ProtonDriveHTTPClientJsonOptions, ProtonDriveHTTPClientBlobOptions, } from './httpClient';
19
- export type { MaybeNode, NodeEntity, DegradedNode, MaybeMissingNode, MissingNode, InvalidNameError, Revision, NodeOrUid, RevisionOrUid, NodeResult, } from './nodes';
19
+ export type { MaybeNode, NodeEntity, DegradedNode, MaybeMissingNode, MissingNode, InvalidNameError, Revision, NodeOrUid, RevisionOrUid, NodeResult, Membership, } from './nodes';
20
20
  export { NodeType, MemberRole, RevisionState } from './nodes';
21
21
  export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, Member, PublicLink, MaybeBookmark, Bookmark, DegradedBookmark, ProtonInvitationOrUid, NonProtonInvitationOrUid, BookmarkOrUid, ShareNodeSettings, UnshareNodeSettings, ShareMembersSettings, SharePublicLinkSettings, SharePublicLinkSettingsObject, ShareResult, } from './sharing';
22
22
  export { NonProtonInvitationState } from './sharing';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interface/index.ts"],"names":[],"mappings":";;;AASA,mCAAiD;AAAxC,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAK9B,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAYnB,mCAAoD;AAA3C,wGAAA,cAAc,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAkBjC,iCAA8D;AAArD,iGAAA,QAAQ,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAoB5C,qCAAqD;AAA5C,mHAAA,wBAAwB,OAAA;AAiBjC,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAGzB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interface/index.ts"],"names":[],"mappings":";;;AASA,mCAAiD;AAAxC,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAK9B,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAYnB,mCAAoD;AAA3C,wGAAA,cAAc,OAAA;AAAE,kGAAA,QAAQ,OAAA;AAmBjC,iCAA8D;AAArD,iGAAA,QAAQ,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAoB5C,qCAAqD;AAA5C,mHAAA,wBAAwB,OAAA;AAiBjC,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAGzB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA"}
@@ -53,7 +53,17 @@ export type NodeEntity = {
53
53
  * the file, key and content author is user A, while name author is user B.
54
54
  */
55
55
  nameAuthor: Author;
56
- directMemberRole: MemberRole;
56
+ /**
57
+ * Role set directly on the node. If not set, the role is inherited from
58
+ * the parent node. Client must traverse the tree to get the actual role.
59
+ * Actual role should be the highest role available in the tree.
60
+ */
61
+ directRole: MemberRole;
62
+ /**
63
+ * Membership information set directly on the node. If not set, the
64
+ * membership is inherited from the parent node.
65
+ */
66
+ membership?: Membership;
57
67
  type: NodeType;
58
68
  mediaType?: string;
59
69
  /**
@@ -149,6 +159,21 @@ export declare enum NodeType {
149
159
  */
150
160
  Album = "album"
151
161
  }
162
+ export type Membership = {
163
+ role: MemberRole;
164
+ /**
165
+ * Date when the node was shared with the user.
166
+ */
167
+ inviteTime: Date;
168
+ /**
169
+ * Author who shared the node with the user.
170
+ *
171
+ * If the author cannot be verified, it means that the invitation could
172
+ * be forged by bad actor. User should be warned before accepting
173
+ * the invitation or opening the shared content.
174
+ */
175
+ sharedBy: Author;
176
+ };
152
177
  export declare enum MemberRole {
153
178
  Viewer = "viewer",
154
179
  Editor = "editor",
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/interface/nodes.ts"],"names":[],"mappings":";;;AA+IA,IAAY,QAcX;AAdD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB;;;;;;;;;OASG;IACH,2BAAe,CAAA;AACnB,CAAC,EAdW,QAAQ,wBAAR,QAAQ,QAcnB;AAED,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,qCAAuB,CAAA;AAC3B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAsBD,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;AAC7B,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/interface/nodes.ts"],"names":[],"mappings":";;;AAyJA,IAAY,QAcX;AAdD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,6BAAiB,CAAA;IACjB;;;;;;;;;OASG;IACH,2BAAe,CAAA;AACnB,CAAC,EAdW,QAAQ,wBAAR,QAAQ,QAcnB;AAmBD,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,qCAAuB,CAAA;AAC3B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AAsBD,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,0CAAyB,CAAA;AAC7B,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
@@ -43,6 +43,7 @@ export type Bookmark = {
43
43
  uid: string;
44
44
  creationTime: Date;
45
45
  url: string;
46
+ customPassword?: string;
46
47
  node: {
47
48
  name: string;
48
49
  type: NodeType;
@@ -56,8 +57,9 @@ export type Bookmark = {
56
57
  * SDK to represent the bookmark in a way that is easy to work with. Whenever
57
58
  * any field cannot be decrypted, it is returned as `DegradedBookmark` type.
58
59
  */
59
- export type DegradedBookmark = Omit<Bookmark, 'url' | 'node'> & {
60
+ export type DegradedBookmark = Omit<Bookmark, 'url' | 'customPassword' | 'node'> & {
60
61
  url: Result<string, Error>;
62
+ customPassword: Result<string | undefined, Error>;
61
63
  node: Omit<Bookmark['node'], 'name'> & {
62
64
  name: Result<string, Error | InvalidNameError>;
63
65
  };