@protontech/drive-sdk 0.1.1 → 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 (193) 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/telemetry.d.ts +5 -2
  17. package/dist/interface/telemetry.js.map +1 -1
  18. package/dist/internal/apiService/apiService.js +1 -1
  19. package/dist/internal/apiService/apiService.js.map +1 -1
  20. package/dist/internal/apiService/driveTypes.d.ts +78 -165
  21. package/dist/internal/apiService/index.d.ts +1 -1
  22. package/dist/internal/apiService/index.js +2 -2
  23. package/dist/internal/apiService/index.js.map +1 -1
  24. package/dist/internal/apiService/transformers.d.ts +1 -1
  25. package/dist/internal/apiService/transformers.js +2 -2
  26. package/dist/internal/apiService/transformers.js.map +1 -1
  27. package/dist/internal/download/blockIndex.d.ts +11 -0
  28. package/dist/internal/download/blockIndex.js +35 -0
  29. package/dist/internal/download/blockIndex.js.map +1 -0
  30. package/dist/internal/download/blockIndex.test.d.ts +1 -0
  31. package/dist/internal/download/blockIndex.test.js +147 -0
  32. package/dist/internal/download/blockIndex.test.js.map +1 -0
  33. package/dist/internal/download/fileDownloader.d.ts +6 -2
  34. package/dist/internal/download/fileDownloader.js +83 -6
  35. package/dist/internal/download/fileDownloader.js.map +1 -1
  36. package/dist/internal/download/fileDownloader.test.js +69 -4
  37. package/dist/internal/download/fileDownloader.test.js.map +1 -1
  38. package/dist/internal/download/interface.d.ts +4 -4
  39. package/dist/internal/download/seekableStream.d.ts +80 -0
  40. package/dist/internal/download/seekableStream.js +163 -0
  41. package/dist/internal/download/seekableStream.js.map +1 -0
  42. package/dist/internal/download/seekableStream.test.d.ts +1 -0
  43. package/dist/internal/download/seekableStream.test.js +149 -0
  44. package/dist/internal/download/seekableStream.test.js.map +1 -0
  45. package/dist/internal/download/telemetry.js +1 -1
  46. package/dist/internal/download/telemetry.js.map +1 -1
  47. package/dist/internal/download/telemetry.test.js +7 -7
  48. package/dist/internal/download/telemetry.test.js.map +1 -1
  49. package/dist/internal/errors.d.ts +1 -1
  50. package/dist/internal/errors.js +7 -1
  51. package/dist/internal/errors.js.map +1 -1
  52. package/dist/internal/errors.test.js +44 -10
  53. package/dist/internal/errors.test.js.map +1 -1
  54. package/dist/internal/events/eventManager.d.ts +1 -0
  55. package/dist/internal/events/eventManager.js +9 -0
  56. package/dist/internal/events/eventManager.js.map +1 -1
  57. package/dist/internal/events/eventManager.test.js +53 -38
  58. package/dist/internal/events/eventManager.test.js.map +1 -1
  59. package/dist/internal/events/index.d.ts +4 -3
  60. package/dist/internal/events/index.js +38 -32
  61. package/dist/internal/events/index.js.map +1 -1
  62. package/dist/internal/nodes/apiService.js +16 -3
  63. package/dist/internal/nodes/apiService.js.map +1 -1
  64. package/dist/internal/nodes/apiService.test.js +43 -7
  65. package/dist/internal/nodes/apiService.test.js.map +1 -1
  66. package/dist/internal/nodes/cache.js +9 -2
  67. package/dist/internal/nodes/cache.js.map +1 -1
  68. package/dist/internal/nodes/cache.test.js +6 -1
  69. package/dist/internal/nodes/cache.test.js.map +1 -1
  70. package/dist/internal/nodes/cryptoService.d.ts +4 -1
  71. package/dist/internal/nodes/cryptoService.js +66 -16
  72. package/dist/internal/nodes/cryptoService.js.map +1 -1
  73. package/dist/internal/nodes/cryptoService.test.js +129 -46
  74. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  75. package/dist/internal/nodes/events.js +7 -7
  76. package/dist/internal/nodes/events.js.map +1 -1
  77. package/dist/internal/nodes/extendedAttributes.d.ts +2 -1
  78. package/dist/internal/nodes/extendedAttributes.js +27 -1
  79. package/dist/internal/nodes/extendedAttributes.js.map +1 -1
  80. package/dist/internal/nodes/extendedAttributes.test.js +59 -6
  81. package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
  82. package/dist/internal/nodes/index.test.js +1 -1
  83. package/dist/internal/nodes/index.test.js.map +1 -1
  84. package/dist/internal/nodes/interface.d.ts +18 -2
  85. package/dist/internal/nodes/nodesAccess.js +11 -1
  86. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  87. package/dist/internal/nodes/nodesManagement.js +1 -1
  88. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  89. package/dist/internal/nodes/nodesRevisions.d.ts +4 -3
  90. package/dist/internal/nodes/nodesRevisions.js +2 -2
  91. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  92. package/dist/internal/shares/cryptoService.js +7 -4
  93. package/dist/internal/shares/cryptoService.js.map +1 -1
  94. package/dist/internal/shares/cryptoService.test.js +5 -3
  95. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  96. package/dist/internal/sharing/apiService.js +5 -5
  97. package/dist/internal/sharing/apiService.js.map +1 -1
  98. package/dist/internal/sharing/cache.d.ts +1 -0
  99. package/dist/internal/sharing/cache.js +9 -0
  100. package/dist/internal/sharing/cache.js.map +1 -1
  101. package/dist/internal/sharing/cryptoService.js +8 -5
  102. package/dist/internal/sharing/cryptoService.js.map +1 -1
  103. package/dist/internal/sharing/cryptoService.test.js +7 -4
  104. package/dist/internal/sharing/cryptoService.test.js.map +1 -1
  105. package/dist/internal/sharing/events.d.ts +1 -0
  106. package/dist/internal/sharing/events.js +28 -18
  107. package/dist/internal/sharing/events.js.map +1 -1
  108. package/dist/internal/sharing/events.test.js +98 -84
  109. package/dist/internal/sharing/events.test.js.map +1 -1
  110. package/dist/internal/upload/interface.d.ts +1 -0
  111. package/dist/internal/upload/manager.d.ts +1 -1
  112. package/dist/internal/upload/manager.js +8 -4
  113. package/dist/internal/upload/manager.js.map +1 -1
  114. package/dist/internal/upload/manager.test.js +7 -10
  115. package/dist/internal/upload/manager.test.js.map +1 -1
  116. package/dist/internal/upload/streamUploader.js +1 -1
  117. package/dist/internal/upload/streamUploader.js.map +1 -1
  118. package/dist/internal/upload/streamUploader.test.js +1 -1
  119. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  120. package/dist/internal/upload/telemetry.js +2 -2
  121. package/dist/internal/upload/telemetry.js.map +1 -1
  122. package/dist/internal/upload/telemetry.test.js +7 -7
  123. package/dist/internal/upload/telemetry.test.js.map +1 -1
  124. package/dist/protonDriveClient.js +2 -2
  125. package/dist/protonDriveClient.js.map +1 -1
  126. package/dist/telemetry.d.ts +2 -2
  127. package/dist/telemetry.js +2 -2
  128. package/dist/telemetry.js.map +1 -1
  129. package/dist/tests/telemetry.js +1 -1
  130. package/dist/tests/telemetry.js.map +1 -1
  131. package/dist/transformers.d.ts +1 -1
  132. package/dist/transformers.js +3 -1
  133. package/dist/transformers.js.map +1 -1
  134. package/package.json +1 -1
  135. package/src/crypto/driveCrypto.ts +70 -25
  136. package/src/crypto/interface.ts +15 -0
  137. package/src/crypto/openPGPCrypto.ts +37 -5
  138. package/src/diagnostic/telemetry.ts +1 -1
  139. package/src/interface/download.ts +46 -0
  140. package/src/interface/index.ts +2 -1
  141. package/src/interface/nodes.ts +28 -1
  142. package/src/interface/telemetry.ts +6 -1
  143. package/src/internal/apiService/apiService.ts +1 -1
  144. package/src/internal/apiService/driveTypes.ts +78 -165
  145. package/src/internal/apiService/index.ts +1 -1
  146. package/src/internal/apiService/transformers.ts +1 -1
  147. package/src/internal/download/blockIndex.test.ts +158 -0
  148. package/src/internal/download/blockIndex.ts +36 -0
  149. package/src/internal/download/fileDownloader.test.ts +100 -7
  150. package/src/internal/download/fileDownloader.ts +109 -9
  151. package/src/internal/download/interface.ts +4 -4
  152. package/src/internal/download/seekableStream.test.ts +187 -0
  153. package/src/internal/download/seekableStream.ts +182 -0
  154. package/src/internal/download/telemetry.test.ts +7 -7
  155. package/src/internal/download/telemetry.ts +1 -1
  156. package/src/internal/errors.test.ts +45 -11
  157. package/src/internal/errors.ts +8 -0
  158. package/src/internal/events/eventManager.test.ts +61 -40
  159. package/src/internal/events/eventManager.ts +10 -0
  160. package/src/internal/events/index.ts +53 -35
  161. package/src/internal/nodes/apiService.test.ts +59 -15
  162. package/src/internal/nodes/apiService.ts +21 -4
  163. package/src/internal/nodes/cache.test.ts +6 -1
  164. package/src/internal/nodes/cache.ts +9 -2
  165. package/src/internal/nodes/cryptoService.test.ts +139 -47
  166. package/src/internal/nodes/cryptoService.ts +94 -9
  167. package/src/internal/nodes/events.ts +6 -7
  168. package/src/internal/nodes/extendedAttributes.test.ts +60 -7
  169. package/src/internal/nodes/extendedAttributes.ts +37 -1
  170. package/src/internal/nodes/index.test.ts +1 -1
  171. package/src/internal/nodes/interface.ts +19 -2
  172. package/src/internal/nodes/nodesAccess.ts +15 -1
  173. package/src/internal/nodes/nodesManagement.ts +1 -1
  174. package/src/internal/nodes/nodesRevisions.ts +14 -5
  175. package/src/internal/shares/cryptoService.test.ts +5 -3
  176. package/src/internal/shares/cryptoService.ts +7 -4
  177. package/src/internal/sharing/apiService.ts +6 -6
  178. package/src/internal/sharing/cache.ts +9 -0
  179. package/src/internal/sharing/cryptoService.test.ts +7 -4
  180. package/src/internal/sharing/cryptoService.ts +8 -5
  181. package/src/internal/sharing/events.test.ts +104 -89
  182. package/src/internal/sharing/events.ts +33 -18
  183. package/src/internal/upload/interface.ts +1 -0
  184. package/src/internal/upload/manager.test.ts +7 -10
  185. package/src/internal/upload/manager.ts +7 -4
  186. package/src/internal/upload/streamUploader.test.ts +1 -1
  187. package/src/internal/upload/streamUploader.ts +1 -1
  188. package/src/internal/upload/telemetry.test.ts +7 -7
  189. package/src/internal/upload/telemetry.ts +2 -2
  190. package/src/protonDriveClient.ts +2 -2
  191. package/src/telemetry.ts +2 -2
  192. package/src/tests/telemetry.ts +1 -1
  193. package/src/transformers.ts +6 -2
@@ -35,11 +35,14 @@ describe('nodesCryptoService', () => {
35
35
  encryptNodeName: jest.fn(async () => Promise.resolve({
36
36
  armoredNodeName: 'armoredName',
37
37
  })),
38
- // @ts-expect-error No need to implement all methods for mocking
38
+ // @ts-expect-error Faking sessionKey as string.
39
39
  decryptAndVerifySessionKey: jest.fn(async () => Promise.resolve({
40
40
  sessionKey: 'contentKeyPacketSessionKey',
41
41
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_VALID,
42
42
  })),
43
+ verifyInvitation: jest.fn(async () => Promise.resolve({
44
+ verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_VALID,
45
+ })),
43
46
  };
44
47
  account = {
45
48
  // @ts-expect-error No need to implement all methods for mocking
@@ -57,40 +60,55 @@ describe('nodesCryptoService', () => {
57
60
  });
58
61
  const parentKey = 'parentKey';
59
62
  function verifyLogEventVerificationError(options = {}) {
60
- expect(telemetry.logEvent).toHaveBeenCalledTimes(1);
61
- expect(telemetry.logEvent).toHaveBeenCalledWith({
63
+ expect(telemetry.recordMetric).toHaveBeenCalledTimes(1);
64
+ expect(telemetry.recordMetric).toHaveBeenCalledWith({
62
65
  eventName: 'verificationError',
63
66
  volumeType: 'own_volume',
64
67
  fromBefore2024: false,
65
68
  addressMatchingDefaultShare: false,
69
+ uid: 'volumeId~nodeId',
66
70
  ...options,
67
71
  });
68
72
  }
69
73
  function verifyLogEventDecryptionError(options = {}) {
70
- expect(telemetry.logEvent).toHaveBeenCalledTimes(1);
71
- expect(telemetry.logEvent).toHaveBeenCalledWith({
74
+ expect(telemetry.recordMetric).toHaveBeenCalledTimes(1);
75
+ expect(telemetry.recordMetric).toHaveBeenCalledWith({
72
76
  eventName: 'decryptionError',
73
77
  volumeType: 'own_volume',
74
78
  fromBefore2024: false,
79
+ uid: 'volumeId~nodeId',
75
80
  ...options,
76
81
  });
77
82
  }
78
83
  describe('folder node', () => {
79
- const encryptedNode = {
80
- uid: 'volumeId~nodeId',
81
- parentUid: 'volumeId~parentId',
82
- encryptedCrypto: {
83
- signatureEmail: 'signatureEmail',
84
- nameSignatureEmail: 'nameSignatureEmail',
85
- armoredKey: 'armoredKey',
86
- armoredNodePassphrase: 'armoredNodePassphrase',
87
- armoredNodePassphraseSignature: 'armoredNodePassphraseSignature',
88
- folder: {
89
- armoredHashKey: 'armoredHashKey',
90
- armoredExtendedAttributes: 'folderArmoredExtendedAttributes',
84
+ let encryptedNode;
85
+ beforeEach(() => {
86
+ encryptedNode = {
87
+ uid: 'volumeId~nodeId',
88
+ parentUid: 'volumeId~parentId',
89
+ membership: {
90
+ role: interface_1.MemberRole.Admin,
91
+ inviteTime: new Date(1234567890000),
91
92
  },
92
- },
93
- };
93
+ encryptedCrypto: {
94
+ signatureEmail: 'signatureEmail',
95
+ nameSignatureEmail: 'nameSignatureEmail',
96
+ armoredKey: 'armoredKey',
97
+ armoredNodePassphrase: 'armoredNodePassphrase',
98
+ armoredNodePassphraseSignature: 'armoredNodePassphraseSignature',
99
+ folder: {
100
+ armoredHashKey: 'armoredHashKey',
101
+ armoredExtendedAttributes: 'folderArmoredExtendedAttributes',
102
+ },
103
+ membership: {
104
+ inviterEmail: 'inviterEmail',
105
+ base64MemberSharePassphraseKeyPacket: 'base64MemberSharePassphraseKeyPacket',
106
+ armoredInviterSharePassphraseKeyPacketSignature: 'armoredInviterSharePassphraseKeyPacketSignature',
107
+ armoredInviteeSharePassphraseSessionKeySignature: 'armoredInviteeSharePassphraseSessionKeySignature',
108
+ },
109
+ },
110
+ };
111
+ });
94
112
  function verifyResult(result, expectedNode = {}, expectedKeys = {}) {
95
113
  expect(result).toMatchObject({
96
114
  node: {
@@ -100,6 +118,11 @@ describe('nodesCryptoService', () => {
100
118
  folder: {
101
119
  extendedAttributes: '{}',
102
120
  },
121
+ membership: {
122
+ role: interface_1.MemberRole.Admin,
123
+ inviteTime: new Date(1234567890000),
124
+ sharedBy: { ok: true, value: 'inviterEmail' },
125
+ },
103
126
  activeRevision: undefined,
104
127
  errors: undefined,
105
128
  ...expectedNode,
@@ -119,35 +142,25 @@ describe('nodesCryptoService', () => {
119
142
  }
120
143
  describe('should decrypt successfuly', () => {
121
144
  it('same author everywhere', async () => {
122
- const encryptedNode = {
123
- encryptedCrypto: {
124
- signatureEmail: 'signatureEmail',
125
- nameSignatureEmail: 'signatureEmail',
126
- armoredKey: 'armoredKey',
127
- armoredNodePassphrase: 'armoredNodePassphrase',
128
- armoredNodePassphraseSignature: 'armoredNodePassphraseSignature',
129
- folder: {
130
- armoredHashKey: 'armoredHashKey',
131
- armoredExtendedAttributes: 'folderArmoredExtendedAttributes',
132
- },
133
- },
134
- };
145
+ encryptedNode.encryptedCrypto.nameSignatureEmail = 'signatureEmail';
135
146
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
136
147
  verifyResult(result, {
137
148
  keyAuthor: { ok: true, value: 'signatureEmail' },
138
149
  nameAuthor: { ok: true, value: 'signatureEmail' },
139
150
  });
140
- expect(account.getPublicKeys).toHaveBeenCalledTimes(1);
151
+ expect(account.getPublicKeys).toHaveBeenCalledTimes(2); // signatureEmail (for both key and name) and inviterEmail
141
152
  expect(account.getPublicKeys).toHaveBeenCalledWith('signatureEmail');
142
- expect(telemetry.logEvent).not.toHaveBeenCalled();
153
+ expect(account.getPublicKeys).toHaveBeenCalledWith('inviterEmail');
154
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
143
155
  });
144
156
  it('different authors on key and name', async () => {
145
157
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
146
158
  verifyResult(result);
147
- expect(account.getPublicKeys).toHaveBeenCalledTimes(2);
159
+ expect(account.getPublicKeys).toHaveBeenCalledTimes(3); // signatureEmail, nameSignatureEmail, inviterEmail
148
160
  expect(account.getPublicKeys).toHaveBeenCalledWith('signatureEmail');
149
161
  expect(account.getPublicKeys).toHaveBeenCalledWith('nameSignatureEmail');
150
- expect(telemetry.logEvent).not.toHaveBeenCalled();
162
+ expect(account.getPublicKeys).toHaveBeenCalledWith('inviterEmail');
163
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
151
164
  });
152
165
  });
153
166
  describe('should decrypt with verification issues', () => {
@@ -157,6 +170,7 @@ describe('nodesCryptoService', () => {
157
170
  key: 'decryptedKey',
158
171
  passphraseSessionKey: 'passphraseSessionKey',
159
172
  verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
173
+ verificationErrors: [new Error('verification error')],
160
174
  }));
161
175
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
162
176
  verifyResult(result, {
@@ -167,38 +181,49 @@ describe('nodesCryptoService', () => {
167
181
  });
168
182
  verifyLogEventVerificationError({
169
183
  field: 'nodeKey',
184
+ error: 'verification error',
170
185
  });
171
186
  });
172
187
  it('on node name', async () => {
173
188
  driveCrypto.decryptNodeName = jest.fn(async () => Promise.resolve({
174
189
  name: 'name',
175
190
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
191
+ verificationErrors: [new Error('verification error')],
176
192
  }));
177
193
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
178
194
  verifyResult(result, {
179
195
  nameAuthor: {
180
196
  ok: false,
181
- error: { claimedAuthor: 'nameSignatureEmail', error: 'Signature verification for name failed' },
197
+ error: {
198
+ claimedAuthor: 'nameSignatureEmail',
199
+ error: 'Signature verification for name failed: verification error',
200
+ },
182
201
  },
183
202
  });
184
203
  verifyLogEventVerificationError({
185
204
  field: 'nodeName',
205
+ error: 'verification error',
186
206
  });
187
207
  });
188
208
  it('on hash key', async () => {
189
209
  driveCrypto.decryptNodeHashKey = jest.fn(async () => Promise.resolve({
190
210
  hashKey: new Uint8Array(),
191
211
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
212
+ verificationErrors: [new Error('verification error')],
192
213
  }));
193
214
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
194
215
  verifyResult(result, {
195
216
  keyAuthor: {
196
217
  ok: false,
197
- error: { claimedAuthor: 'signatureEmail', error: 'Signature verification for hash key failed' },
218
+ error: {
219
+ claimedAuthor: 'signatureEmail',
220
+ error: 'Signature verification for hash key failed: verification error',
221
+ },
198
222
  },
199
223
  });
200
224
  verifyLogEventVerificationError({
201
225
  field: 'nodeHashKey',
226
+ error: 'verification error',
202
227
  });
203
228
  });
204
229
  it('on node key and hash key reports error from node key', async () => {
@@ -207,6 +232,7 @@ describe('nodesCryptoService', () => {
207
232
  key: 'decryptedKey',
208
233
  passphraseSessionKey: 'passphraseSessionKey',
209
234
  verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
235
+ verificationErrors: [new Error('verification error')],
210
236
  }));
211
237
  driveCrypto.decryptNodeHashKey = jest.fn(async () => Promise.resolve({
212
238
  hashKey: new Uint8Array(),
@@ -221,12 +247,14 @@ describe('nodesCryptoService', () => {
221
247
  });
222
248
  verifyLogEventVerificationError({
223
249
  field: 'nodeKey',
250
+ error: 'verification error',
224
251
  });
225
252
  });
226
253
  it('on folder extended attributes', async () => {
227
254
  driveCrypto.decryptExtendedAttributes = jest.fn(async () => Promise.resolve({
228
255
  extendedAttributes: '{}',
229
256
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
257
+ verificationErrors: [new Error('verification error')],
230
258
  }));
231
259
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
232
260
  verifyResult(result, {
@@ -234,12 +262,37 @@ describe('nodesCryptoService', () => {
234
262
  ok: false,
235
263
  error: {
236
264
  claimedAuthor: 'signatureEmail',
237
- error: 'Signature verification for attributes failed',
265
+ error: 'Signature verification for attributes failed: verification error',
238
266
  },
239
267
  },
240
268
  });
241
269
  verifyLogEventVerificationError({
242
270
  field: 'nodeExtendedAttributes',
271
+ error: 'verification error',
272
+ });
273
+ });
274
+ it('on membership', async () => {
275
+ driveCrypto.verifyInvitation = jest.fn().mockResolvedValue({
276
+ verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
277
+ verificationErrors: [new Error('verification error')],
278
+ });
279
+ const result = await cryptoService.decryptNode(encryptedNode, parentKey);
280
+ verifyResult(result, {
281
+ membership: {
282
+ role: interface_1.MemberRole.Admin,
283
+ inviteTime: new Date(1234567890000),
284
+ sharedBy: {
285
+ ok: false,
286
+ error: {
287
+ claimedAuthor: 'inviterEmail',
288
+ error: 'Signature verification for membership failed: verification error',
289
+ },
290
+ },
291
+ },
292
+ });
293
+ verifyLogEventVerificationError({
294
+ field: 'membershipInviter',
295
+ error: 'verification error',
243
296
  });
244
297
  });
245
298
  });
@@ -305,6 +358,25 @@ describe('nodesCryptoService', () => {
305
358
  error,
306
359
  });
307
360
  });
361
+ it('on membership', async () => {
362
+ const error = new Error('Decryption error');
363
+ driveCrypto.verifyInvitation = jest.fn(async () => Promise.reject(error));
364
+ const result = await cryptoService.decryptNode(encryptedNode, parentKey);
365
+ verifyResult(result, {
366
+ membership: {
367
+ role: interface_1.MemberRole.Admin,
368
+ inviteTime: new Date(1234567890000),
369
+ sharedBy: {
370
+ ok: false,
371
+ error: { claimedAuthor: 'inviterEmail', error: 'Failed to verify invitation' },
372
+ },
373
+ },
374
+ });
375
+ verifyLogEventVerificationError({
376
+ field: 'membershipInviter',
377
+ addressMatchingDefaultShare: undefined,
378
+ });
379
+ });
308
380
  });
309
381
  it('should fail when keys cannot be loaded', async () => {
310
382
  account.getPublicKeys = jest.fn().mockRejectedValue(new Error('Failed to load keys'));
@@ -405,7 +477,7 @@ describe('nodesCryptoService', () => {
405
477
  });
406
478
  expect(account.getPublicKeys).toHaveBeenCalledTimes(2); // node + revision
407
479
  expect(account.getPublicKeys).toHaveBeenCalledWith('signatureEmail');
408
- expect(telemetry.logEvent).not.toHaveBeenCalled();
480
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
409
481
  });
410
482
  it('different authors on key and name', async () => {
411
483
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
@@ -414,7 +486,7 @@ describe('nodesCryptoService', () => {
414
486
  expect(account.getPublicKeys).toHaveBeenCalledWith('signatureEmail');
415
487
  expect(account.getPublicKeys).toHaveBeenCalledWith('nameSignatureEmail');
416
488
  expect(account.getPublicKeys).toHaveBeenCalledWith('revisionSignatureEmail');
417
- expect(telemetry.logEvent).not.toHaveBeenCalled();
489
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
418
490
  });
419
491
  });
420
492
  describe('should decrypt with verification issues', () => {
@@ -424,6 +496,7 @@ describe('nodesCryptoService', () => {
424
496
  key: 'decryptedKey',
425
497
  passphraseSessionKey: 'passphraseSessionKey',
426
498
  verified: crypto_1.VERIFICATION_STATUS.NOT_SIGNED,
499
+ verificationErrors: [new Error('verification error')],
427
500
  }));
428
501
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
429
502
  verifyResult(result, {
@@ -434,28 +507,35 @@ describe('nodesCryptoService', () => {
434
507
  });
435
508
  verifyLogEventVerificationError({
436
509
  field: 'nodeKey',
510
+ error: 'verification error',
437
511
  });
438
512
  });
439
513
  it('on node name', async () => {
440
514
  driveCrypto.decryptNodeName = jest.fn(async () => Promise.resolve({
441
515
  name: 'name',
442
516
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
517
+ verificationErrors: [new Error('verification error')],
443
518
  }));
444
519
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
445
520
  verifyResult(result, {
446
521
  nameAuthor: {
447
522
  ok: false,
448
- error: { claimedAuthor: 'nameSignatureEmail', error: 'Signature verification for name failed' },
523
+ error: {
524
+ claimedAuthor: 'nameSignatureEmail',
525
+ error: 'Signature verification for name failed: verification error',
526
+ },
449
527
  },
450
528
  });
451
529
  verifyLogEventVerificationError({
452
530
  field: 'nodeName',
531
+ error: 'verification error',
453
532
  });
454
533
  });
455
534
  it('on folder extended attributes', async () => {
456
535
  driveCrypto.decryptExtendedAttributes = jest.fn(async () => Promise.resolve({
457
536
  extendedAttributes: '{}',
458
537
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
538
+ verificationErrors: [new Error('verification error')],
459
539
  }));
460
540
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
461
541
  verifyResult(result, {
@@ -471,7 +551,7 @@ describe('nodesCryptoService', () => {
471
551
  ok: false,
472
552
  error: {
473
553
  claimedAuthor: 'revisionSignatureEmail',
474
- error: 'Signature verification for attributes failed',
554
+ error: 'Signature verification for attributes failed: verification error',
475
555
  },
476
556
  },
477
557
  },
@@ -479,12 +559,14 @@ describe('nodesCryptoService', () => {
479
559
  });
480
560
  verifyLogEventVerificationError({
481
561
  field: 'nodeExtendedAttributes',
562
+ error: 'verification error',
482
563
  });
483
564
  });
484
565
  it('on content key packet', async () => {
485
566
  driveCrypto.decryptAndVerifySessionKey = jest.fn(async () => Promise.resolve({
486
567
  sessionKey: 'contentKeyPacketSessionKey',
487
568
  verified: crypto_1.VERIFICATION_STATUS.SIGNED_AND_INVALID,
569
+ verificationErrors: [new Error('verification error')],
488
570
  }));
489
571
  const result = await cryptoService.decryptNode(encryptedNode, parentKey);
490
572
  verifyResult(result, {
@@ -492,12 +574,13 @@ describe('nodesCryptoService', () => {
492
574
  ok: false,
493
575
  error: {
494
576
  claimedAuthor: 'signatureEmail',
495
- error: 'Signature verification for content key failed',
577
+ error: 'Signature verification for content key failed: verification error',
496
578
  },
497
579
  },
498
580
  });
499
581
  verifyLogEventVerificationError({
500
582
  field: 'nodeContentKey',
583
+ error: 'verification error',
501
584
  });
502
585
  });
503
586
  });
@@ -613,7 +696,7 @@ describe('nodesCryptoService', () => {
613
696
  },
614
697
  });
615
698
  expect(account.getPublicKeys).toHaveBeenCalledTimes(2);
616
- expect(telemetry.logEvent).not.toHaveBeenCalled();
699
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
617
700
  });
618
701
  });
619
702
  describe('anonymous node', () => {
@@ -723,7 +806,7 @@ describe('nodesCryptoService', () => {
723
806
  keyAuthor: { ok: true, value: null },
724
807
  nameAuthor: { ok: true, value: null },
725
808
  });
726
- expect(telemetry.logEvent).not.toHaveBeenCalled();
809
+ expect(telemetry.recordMetric).not.toHaveBeenCalled();
727
810
  expect(driveCrypto.decryptKey).toHaveBeenCalledWith(encryptedNode.encryptedCrypto.armoredKey, encryptedNode.encryptedCrypto.armoredNodePassphrase, encryptedNode.encryptedCrypto.armoredNodePassphraseSignature, [parentKey], []);
728
811
  expect(driveCrypto.decryptNodeName).toHaveBeenCalledWith(encryptedNode.encryptedName, parentKey, []);
729
812
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cryptoService.test.js","sourceRoot":"","sources":["../../../src/internal/nodes/cryptoService.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cryptoService.test.js","sourceRoot":"","sources":["../../../src/internal/nodes/cryptoService.test.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,13 @@ class NodesEventsHandler {
41
41
  return;
42
42
  }
43
43
  if (event.type === events_1.DriveEventType.NodeUpdated) {
44
- const node = await this.cache.getNode(event.nodeUid);
44
+ let node;
45
+ try {
46
+ node = await this.cache.getNode(event.nodeUid);
47
+ }
48
+ catch {
49
+ return;
50
+ }
45
51
  node.isStale = true;
46
52
  node.parentUid = event.parentNodeUid;
47
53
  node.isShared = event.isShared;
@@ -55,12 +61,6 @@ class NodesEventsHandler {
55
61
  }
56
62
  }
57
63
  catch (error) {
58
- if (error instanceof Error) {
59
- // FIXME throw CacheMissException error and catch it
60
- if (error.message === 'Entity not found') {
61
- return;
62
- }
63
- }
64
64
  this.logger.error(`Failed to update node cache for event: ${event.eventId}`, error);
65
65
  }
66
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/nodes/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAGvD;;;;;GAKG;AACH,MAAa,kBAAkB;IAEf;IACA;IAFZ,YACY,MAAc,EACd,KAAiB;QADjB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAY;IAC1B,CAAC;IAEJ,KAAK,CAAC,uBAAuB,CAAC,KAAiB;QAC3C,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACtD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,6DAA6D;gBAC7D,6CAA6C;gBAE7C,yDAAyD;gBACzD,yDAAyD;gBACzD,wDAAwD;gBACxD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBACzB,oDAAoD;gBACpD,IAAI,KAAK,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;oBACvC,OAAO;gBACX,CAAC;YACL,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;CACJ;AAtDD,gDAsDC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/internal/nodes/events.ts"],"names":[],"mappings":";;;AACA,sCAAuD;AAGvD;;;;;GAKG;AACH,MAAa,kBAAkB;IAEf;IACA;IAFZ,YACY,MAAc,EACd,KAAiB;QADjB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAY;IAC1B,CAAC;IAEJ,KAAK,CAAC,uBAAuB,CAAC,KAAiB;QAC3C,IAAI,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACtD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9C,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,6DAA6D;gBAC7D,6CAA6C;gBAE7C,yDAAyD;gBACzD,yDAAyD;gBACzD,wDAAwD;gBACxD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACtB,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO;YACX,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAc,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC;oBACD,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBACL,OAAO;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC/B,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACL,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;CACJ;AArDD,gDAqDC"}
@@ -9,6 +9,7 @@ export interface FileExtendedAttributesParsed {
9
9
  sha1?: string;
10
10
  };
11
11
  claimedAdditionalMetadata?: object;
12
+ claimedBlockSizes?: number[];
12
13
  }
13
14
  export declare function generateFolderExtendedAttributes(claimedModificationTime?: Date): string | undefined;
14
15
  export declare function parseFolderExtendedAttributes(logger: Logger, extendedAttributes?: string): FolderExtendedAttributes;
@@ -20,4 +21,4 @@ export declare function generateFileExtendedAttributes(options: {
20
21
  sha1?: string;
21
22
  };
22
23
  }): string | undefined;
23
- export declare function parseFileExtendedAttributes(logger: Logger, extendedAttributes?: string): FileExtendedAttributesParsed;
24
+ export declare function parseFileExtendedAttributes(logger: Logger, creationTime: Date, extendedAttributes?: string): FileExtendedAttributesParsed;
@@ -56,7 +56,7 @@ function generateFileExtendedAttributes(options) {
56
56
  Common: commonAttributes,
57
57
  });
58
58
  }
59
- function parseFileExtendedAttributes(logger, extendedAttributes) {
59
+ function parseFileExtendedAttributes(logger, creationTime, extendedAttributes) {
60
60
  if (!extendedAttributes) {
61
61
  return {};
62
62
  }
@@ -71,6 +71,7 @@ function parseFileExtendedAttributes(logger, extendedAttributes) {
71
71
  claimedAdditionalMetadata: Object.keys(claimedAdditionalMetadata).length
72
72
  ? claimedAdditionalMetadata
73
73
  : undefined,
74
+ claimedBlockSizes: parseBlockSizes(logger, creationTime, parsed),
74
75
  };
75
76
  }
76
77
  catch (error) {
@@ -116,4 +117,29 @@ function parseDigests(logger, xattr) {
116
117
  sha1,
117
118
  };
118
119
  }
120
+ function parseBlockSizes(logger, creationTime, xattr) {
121
+ const blockSizes = xattr?.Common?.BlockSizes;
122
+ if (blockSizes === undefined) {
123
+ return undefined;
124
+ }
125
+ if (!Array.isArray(blockSizes)) {
126
+ logger.warn(`XAttr block sizes "${blockSizes}" is not valid`);
127
+ return undefined;
128
+ }
129
+ if (blockSizes.some((size) => typeof size !== 'number' || size <= 0)) {
130
+ logger.warn(`XAttr block sizes "${blockSizes}" is not valid`);
131
+ return undefined;
132
+ }
133
+ if (blockSizes.length === 0) {
134
+ return undefined;
135
+ }
136
+ // Before 2025, there was a bug on the Windows client that didn't sort
137
+ // the block sizes in correct order. Because the sizes were all the same
138
+ // except the last one, which was always smaller, the block sizes must be
139
+ // sorted in descending order.
140
+ if (creationTime < new Date('2025-01-01')) {
141
+ return blockSizes.sort((a, b) => b - a);
142
+ }
143
+ return blockSizes;
144
+ }
119
145
  //# sourceMappingURL=extendedAttributes.js.map