@protontech/drive-sdk 0.0.10 → 0.0.11

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 (215) hide show
  1. package/dist/crypto/driveCrypto.d.ts +11 -0
  2. package/dist/crypto/driveCrypto.js +16 -0
  3. package/dist/crypto/driveCrypto.js.map +1 -1
  4. package/dist/crypto/interface.d.ts +2 -0
  5. package/dist/crypto/openPGPCrypto.d.ts +2 -0
  6. package/dist/crypto/openPGPCrypto.js +8 -0
  7. package/dist/crypto/openPGPCrypto.js.map +1 -1
  8. package/dist/interface/index.d.ts +3 -3
  9. package/dist/interface/index.js +2 -2
  10. package/dist/interface/index.js.map +1 -1
  11. package/dist/interface/nodes.d.ts +9 -0
  12. package/dist/interface/nodes.js.map +1 -1
  13. package/dist/interface/sharing.d.ts +22 -2
  14. package/dist/interface/telemetry.d.ts +10 -8
  15. package/dist/interface/telemetry.js +7 -7
  16. package/dist/interface/telemetry.js.map +1 -1
  17. package/dist/internal/apiService/errors.js +1 -1
  18. package/dist/internal/apiService/errors.js.map +1 -1
  19. package/dist/internal/apiService/errors.test.js +7 -0
  20. package/dist/internal/apiService/errors.test.js.map +1 -1
  21. package/dist/internal/download/interface.d.ts +2 -2
  22. package/dist/internal/download/telemetry.js +7 -5
  23. package/dist/internal/download/telemetry.js.map +1 -1
  24. package/dist/internal/download/telemetry.test.js +10 -6
  25. package/dist/internal/download/telemetry.test.js.map +1 -1
  26. package/dist/internal/nodes/cache.js +25 -1
  27. package/dist/internal/nodes/cache.js.map +1 -1
  28. package/dist/internal/nodes/cache.test.js +33 -0
  29. package/dist/internal/nodes/cache.test.js.map +1 -1
  30. package/dist/internal/nodes/cryptoService.d.ts +8 -3
  31. package/dist/internal/nodes/cryptoService.js +11 -11
  32. package/dist/internal/nodes/cryptoService.js.map +1 -1
  33. package/dist/internal/nodes/cryptoService.test.js +2 -2
  34. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  35. package/dist/internal/nodes/index.d.ts +1 -1
  36. package/dist/internal/nodes/interface.d.ts +2 -2
  37. package/dist/internal/nodes/nodesManagement.js +1 -1
  38. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  39. package/dist/internal/nodes/nodesManagement.test.js +1 -1
  40. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  41. package/dist/internal/shares/cryptoService.js +4 -4
  42. package/dist/internal/shares/cryptoService.js.map +1 -1
  43. package/dist/internal/shares/cryptoService.test.js +2 -2
  44. package/dist/internal/shares/cryptoService.test.js.map +1 -1
  45. package/dist/internal/shares/manager.d.ts +2 -2
  46. package/dist/internal/shares/manager.js +2 -2
  47. package/dist/internal/shares/manager.js.map +1 -1
  48. package/dist/internal/sharing/apiService.d.ts +2 -2
  49. package/dist/internal/sharing/apiService.js +1 -1
  50. package/dist/internal/sharing/apiService.js.map +1 -1
  51. package/dist/internal/sharing/cryptoService.d.ts +12 -3
  52. package/dist/internal/sharing/cryptoService.js +110 -1
  53. package/dist/internal/sharing/cryptoService.js.map +1 -1
  54. package/dist/internal/sharing/cryptoService.test.js +132 -0
  55. package/dist/internal/sharing/cryptoService.test.js.map +1 -0
  56. package/dist/internal/sharing/index.js +1 -1
  57. package/dist/internal/sharing/index.js.map +1 -1
  58. package/dist/internal/sharing/interface.d.ts +4 -0
  59. package/dist/internal/sharing/sharingAccess.d.ts +3 -3
  60. package/dist/internal/sharing/sharingAccess.js +29 -4
  61. package/dist/internal/sharing/sharingAccess.js.map +1 -1
  62. package/dist/internal/sharing/sharingAccess.test.js +65 -0
  63. package/dist/internal/sharing/sharingAccess.test.js.map +1 -1
  64. package/dist/internal/sharing/sharingManagement.js +2 -2
  65. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  66. package/dist/internal/sharing/sharingManagement.test.js +3 -3
  67. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  68. package/dist/internal/upload/interface.d.ts +2 -2
  69. package/dist/internal/upload/telemetry.js +7 -5
  70. package/dist/internal/upload/telemetry.js.map +1 -1
  71. package/dist/internal/upload/telemetry.test.js +10 -6
  72. package/dist/internal/upload/telemetry.test.js.map +1 -1
  73. package/dist/protonDriveClient.d.ts +16 -1
  74. package/dist/protonDriveClient.js +23 -2
  75. package/dist/protonDriveClient.js.map +1 -1
  76. package/dist/transformers.d.ts +1 -1
  77. package/dist/transformers.js +16 -2
  78. package/dist/transformers.js.map +1 -1
  79. package/package.json +1 -1
  80. package/src/crypto/driveCrypto.ts +30 -0
  81. package/src/crypto/interface.ts +6 -0
  82. package/src/crypto/openPGPCrypto.ts +13 -0
  83. package/src/interface/index.ts +3 -3
  84. package/src/interface/nodes.ts +9 -0
  85. package/src/interface/sharing.ts +24 -2
  86. package/src/interface/telemetry.ts +8 -7
  87. package/src/internal/apiService/errors.test.ts +8 -0
  88. package/src/internal/apiService/errors.ts +1 -1
  89. package/src/internal/download/interface.ts +2 -2
  90. package/src/internal/download/telemetry.test.ts +18 -14
  91. package/src/internal/download/telemetry.ts +8 -5
  92. package/src/internal/nodes/cache.test.ts +41 -2
  93. package/src/internal/nodes/cache.ts +31 -3
  94. package/src/internal/nodes/cryptoService.test.ts +3 -3
  95. package/src/internal/nodes/cryptoService.ts +14 -13
  96. package/src/internal/nodes/index.ts +1 -1
  97. package/src/internal/nodes/interface.ts +2 -2
  98. package/src/internal/nodes/nodesManagement.test.ts +6 -6
  99. package/src/internal/nodes/nodesManagement.ts +2 -2
  100. package/src/internal/shares/cryptoService.test.ts +2 -2
  101. package/src/internal/shares/cryptoService.ts +7 -7
  102. package/src/internal/shares/manager.ts +4 -4
  103. package/src/internal/sharing/apiService.ts +10 -10
  104. package/src/internal/sharing/cryptoService.test.ts +148 -0
  105. package/src/internal/sharing/cryptoService.ts +137 -3
  106. package/src/internal/sharing/index.ts +1 -1
  107. package/src/internal/sharing/interface.ts +4 -0
  108. package/src/internal/sharing/sharingAccess.test.ts +74 -0
  109. package/src/internal/sharing/sharingAccess.ts +29 -5
  110. package/src/internal/sharing/sharingManagement.test.ts +3 -3
  111. package/src/internal/sharing/sharingManagement.ts +2 -2
  112. package/src/internal/upload/interface.ts +2 -2
  113. package/src/internal/upload/telemetry.test.ts +10 -6
  114. package/src/internal/upload/telemetry.ts +8 -5
  115. package/src/protonDriveClient.ts +27 -2
  116. package/src/transformers.ts +31 -5
  117. package/dist/cache/index.d.ts +0 -2
  118. package/dist/cache/index.js +0 -6
  119. package/dist/cache/index.js.map +0 -1
  120. package/dist/cache/interface.d.ts +0 -105
  121. package/dist/cache/interface.js +0 -3
  122. package/dist/cache/interface.js.map +0 -1
  123. package/dist/cache/memoryCache.d.ts +0 -18
  124. package/dist/cache/memoryCache.js +0 -78
  125. package/dist/cache/memoryCache.js.map +0 -1
  126. package/dist/cache/memoryCache.test.js +0 -121
  127. package/dist/cache/memoryCache.test.js.map +0 -1
  128. package/dist/crypto/hmac.d.ts +0 -22
  129. package/dist/crypto/hmac.js +0 -44
  130. package/dist/crypto/hmac.js.map +0 -1
  131. package/dist/crypto/utils.d.ts +0 -2
  132. package/dist/crypto/utils.js +0 -35
  133. package/dist/crypto/utils.js.map +0 -1
  134. package/dist/errors.d.ts +0 -138
  135. package/dist/errors.js +0 -163
  136. package/dist/errors.js.map +0 -1
  137. package/dist/interface/account.js +0 -3
  138. package/dist/interface/account.js.map +0 -1
  139. package/dist/interface/author.d.ts +0 -26
  140. package/dist/interface/author.js +0 -3
  141. package/dist/interface/author.js.map +0 -1
  142. package/dist/interface/download.d.ts +0 -29
  143. package/dist/interface/download.js +0 -3
  144. package/dist/interface/download.js.map +0 -1
  145. package/dist/interface/httpClient.d.ts +0 -38
  146. package/dist/interface/httpClient.js +0 -3
  147. package/dist/interface/httpClient.js.map +0 -1
  148. package/dist/interface/result.d.ts +0 -9
  149. package/dist/interface/result.js +0 -11
  150. package/dist/interface/result.js.map +0 -1
  151. package/dist/interface/thumbnail.d.ts +0 -17
  152. package/dist/interface/thumbnail.js +0 -9
  153. package/dist/interface/thumbnail.js.map +0 -1
  154. package/dist/interface/upload.d.ts +0 -16
  155. package/dist/interface/upload.js +0 -3
  156. package/dist/interface/upload.js.map +0 -1
  157. package/dist/internal/apiService/errorCodes.d.ts +0 -30
  158. package/dist/internal/apiService/errorCodes.js +0 -11
  159. package/dist/internal/apiService/errorCodes.js.map +0 -1
  160. package/dist/internal/apiService/observerStream.d.ts +0 -3
  161. package/dist/internal/apiService/observerStream.js +0 -15
  162. package/dist/internal/apiService/observerStream.js.map +0 -1
  163. package/dist/internal/batchLoading.d.ts +0 -34
  164. package/dist/internal/batchLoading.js +0 -68
  165. package/dist/internal/batchLoading.js.map +0 -1
  166. package/dist/internal/batchLoading.test.d.ts +0 -1
  167. package/dist/internal/batchLoading.test.js +0 -50
  168. package/dist/internal/batchLoading.test.js.map +0 -1
  169. package/dist/internal/download/controller.d.ts +0 -8
  170. package/dist/internal/download/controller.js +0 -22
  171. package/dist/internal/download/controller.js.map +0 -1
  172. package/dist/internal/download/queue.d.ts +0 -5
  173. package/dist/internal/download/queue.js +0 -31
  174. package/dist/internal/download/queue.js.map +0 -1
  175. package/dist/internal/errors.js +0 -28
  176. package/dist/internal/errors.js.map +0 -1
  177. package/dist/internal/errors.test.js +0 -22
  178. package/dist/internal/errors.test.js.map +0 -1
  179. package/dist/internal/events/interface.d.ts +0 -47
  180. package/dist/internal/events/interface.js +0 -12
  181. package/dist/internal/events/interface.js.map +0 -1
  182. package/dist/internal/nodes/mediaTypes.d.ts +0 -2
  183. package/dist/internal/nodes/mediaTypes.js +0 -13
  184. package/dist/internal/nodes/mediaTypes.js.map +0 -1
  185. package/dist/internal/nodes/validations.d.ts +0 -4
  186. package/dist/internal/nodes/validations.js +0 -21
  187. package/dist/internal/nodes/validations.js.map +0 -1
  188. package/dist/internal/uids.d.ts +0 -38
  189. package/dist/internal/uids.js +0 -85
  190. package/dist/internal/uids.js.map +0 -1
  191. package/dist/internal/upload/chunkStreamReader.d.ts +0 -13
  192. package/dist/internal/upload/chunkStreamReader.js +0 -46
  193. package/dist/internal/upload/chunkStreamReader.js.map +0 -1
  194. package/dist/internal/upload/chunkStreamReader.test.d.ts +0 -1
  195. package/dist/internal/upload/chunkStreamReader.test.js +0 -75
  196. package/dist/internal/upload/chunkStreamReader.test.js.map +0 -1
  197. package/dist/internal/upload/controller.d.ts +0 -8
  198. package/dist/internal/upload/controller.js +0 -25
  199. package/dist/internal/upload/controller.js.map +0 -1
  200. package/dist/internal/upload/digests.d.ts +0 -8
  201. package/dist/internal/upload/digests.js +0 -22
  202. package/dist/internal/upload/digests.js.map +0 -1
  203. package/dist/internal/upload/queue.d.ts +0 -5
  204. package/dist/internal/upload/queue.js +0 -32
  205. package/dist/internal/upload/queue.js.map +0 -1
  206. package/dist/internal/utils.d.ts +0 -1
  207. package/dist/internal/utils.js +0 -13
  208. package/dist/internal/utils.js.map +0 -1
  209. package/dist/internal/wait.d.ts +0 -3
  210. package/dist/internal/wait.js +0 -28
  211. package/dist/internal/wait.js.map +0 -1
  212. package/dist/internal/wait.test.d.ts +0 -1
  213. package/dist/internal/wait.test.js +0 -21
  214. package/dist/internal/wait.test.js.map +0 -1
  215. /package/dist/{cache/memoryCache.test.d.ts → internal/sharing/cryptoService.test.d.ts} +0 -0
@@ -344,7 +344,7 @@ class ProtonDriveClient {
344
344
  * @throws {@link Error} If another node with the same name already exists.
345
345
  */
346
346
  async renameNode(nodeUid, newName) {
347
- this.logger.info(`Renaming node ${nodeUid} to ${newName}`);
347
+ this.logger.info(`Renaming node ${(0, transformers_1.getUid)(nodeUid)}`);
348
348
  return (0, transformers_1.convertInternalNodePromise)(this.nodes.management.renameNode((0, transformers_1.getUid)(nodeUid), newName));
349
349
  }
350
350
  /**
@@ -439,7 +439,7 @@ class ProtonDriveClient {
439
439
  * @throws {@link Error} If another node with the same name already exists.
440
440
  */
441
441
  async createFolder(parentNodeUid, name, modificationTime) {
442
- this.logger.info(`Creating folder ${name} in ${(0, transformers_1.getUid)(parentNodeUid)}`);
442
+ this.logger.info(`Creating folder in ${(0, transformers_1.getUid)(parentNodeUid)}`);
443
443
  return (0, transformers_1.convertInternalNodePromise)(this.nodes.management.createFolder((0, transformers_1.getUid)(parentNodeUid), name, modificationTime));
444
444
  }
445
445
  /**
@@ -561,6 +561,27 @@ class ProtonDriveClient {
561
561
  this.logger.info(`Rejecting invitation ${invitationId}`);
562
562
  await this.sharing.access.rejectInvitation(invitationId);
563
563
  }
564
+ /**
565
+ * Iterates the shared bookmarks.
566
+ *
567
+ * The output is not sorted and the order of the bookmarks is not guaranteed.
568
+ *
569
+ * @param signal - Signal to abort the operation.
570
+ * @returns An async generator of the shared bookmarks.
571
+ */
572
+ async *iterateBookmarks(signal) {
573
+ this.logger.info('Iterating shared bookmarks');
574
+ yield* this.sharing.access.iterateBookmarks(signal);
575
+ }
576
+ /**
577
+ * Remove the shared bookmark.
578
+ *
579
+ * @param bookmarkOrUid - Bookmark entity or its UID string.
580
+ */
581
+ async removeBookmark(bookmarkOrUid) {
582
+ this.logger.info(`Removing bookmark ${(0, transformers_1.getUid)(bookmarkOrUid)}`);
583
+ await this.sharing.access.deleteBookmark((0, transformers_1.getUid)(bookmarkOrUid));
584
+ }
564
585
  /**
565
586
  * Get sharing info of the node.
566
587
  *
@@ -1 +1 @@
1
- {"version":3,"file":"protonDriveClient.js","sourceRoot":"","sources":["../src/protonDriveClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protonDriveClient.js","sourceRoot":"","sources":["../src/protonDriveClient.ts"],"names":[],"mappings":";;;AA4BA,qCAAmD;AACnD,sDAAwD;AACxD,8CAAqD;AACrD,4CAAmD;AACnD,gDAAuD;AACvD,kDAAyD;AACzD,8CAAqD;AACrD,8CAAuD;AACvD,oDAAiD;AACjD,qCAAqC;AACrC,iDAAmK;AACnK,2CAAwC;AACxC,gDAAuD;AACvD,0CAA4D;AAE5D;;;;;;GAMG;AACH,MAAa,iBAAiB;IAClB,MAAM,CAAS;IACf,SAAS,CAAY;IACrB,MAAM,CAAqB;IAC3B,MAAM,CAAsC;IAC5C,KAAK,CAAqC;IAC1C,OAAO,CAAuC;IAC9C,QAAQ,CAAwC;IAChD,MAAM,CAAsC;IAC5C,OAAO,CAAuC;IAE/C,YAAY,CAejB;IAEF,YAAY,EACR,UAAU,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,SAAS,GAC2B;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,oBAAW,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,4BAAe,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvH,IAAI,CAAC,MAAM,GAAG,IAAI,2BAAkB,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAA,yBAAgB,EAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACzG,IAAI,CAAC,KAAK,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjI,IAAI,CAAC,OAAO,GAAG,IAAA,2BAAiB,EAAC,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9J,IAAI,CAAC,QAAQ,GAAG,IAAA,6BAAkB,EAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACvI,IAAI,CAAC,MAAM,GAAG,IAAA,yBAAgB,EAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvH,IAAI,CAAC,OAAO,GAAG,IAAA,2BAAiB,EAAC,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7H,IAAI,CAAC,YAAY,GAAG;YAChB,UAAU,EAAE,KAAK,EAAE,OAAkB,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAkB,EAAE,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,IAAI,CAAC,0BAA0B,CAAC;YAC3C,CAAC;SACJ,CAAA;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CAAC,SAAmB,EAAE,QAAoB;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,4BAA4B;QAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,CAAC;QAEjD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,6DAA6D;IAC7D,kBAAkB,CAAC,QAA6B;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,iBAAiB,CAAC,aAAwB,EAAE,QAA2B;QACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,uBAAuB,CAAC,QAA2B;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,0BAA0B,CAAC,QAA2B;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,4BAA4B,CAAC,QAA2B;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO,IAAA,kBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACjD,OAAO,IAAA,yCAA0B,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAA,CAAE,qBAAqB,CAAC,aAAwB,EAAE,MAAoB;QACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnE,KAAK,CAAC,CAAC,IAAA,0CAA2B,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/G,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAA,CAAE,mBAAmB,CAAC,MAAoB;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,KAAK,CAAC,CAAC,IAAA,0CAA2B,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAA,CAAE,YAAY,CAAC,QAAqB,EAAE,MAAoB;QAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;QACvD,KAAK,CAAC,CAAC,IAAA,iDAAkC,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACzG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,OAAkB;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,IAAA,yCAA0B,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,OAAkB,EAAE,OAAe;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,IAAA,yCAA0B,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAA,CAAE,SAAS,CAAC,QAAqB,EAAE,gBAA2B,EAAE,MAAoB;QACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,aAAa,gBAAgB,EAAE,CAAC,CAAC;QAC3E,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,IAAA,qBAAM,EAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAA,CAAE,UAAU,CAAC,QAAqB,EAAE,MAAoB;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;QACtD,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAA,CAAE,YAAY,CAAC,QAAqB,EAAE,MAAoB;QAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;QACvD,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAA,CAAE,WAAW,CAAC,QAAqB,EAAE,MAAoB;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;QACtD,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,UAAU;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,YAAY,CAAC,aAAwB,EAAE,IAAY,EAAE,gBAAuB;QAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,IAAA,yCAA0B,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACzH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAA,CAAE,gBAAgB,CAAC,OAAkB,EAAE,MAAoB;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAA,CAAE,kBAAkB,CAAC,MAAoB;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACjD,KAAK,CAAC,CAAC,IAAA,0CAA2B,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAA,CAAE,wBAAwB,CAAC,MAAoB;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAEnD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAA,kCAAmB,EAAC,IAAI,CAAC,CAAC;YAChC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5C,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,OAAkB;QACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAA,CAAE,kBAAkB,CAAC,MAAoB;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAA,CAAE,gBAAgB,CAAC,MAAoB;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC/C,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,aAA4B;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAAC,OAAkB;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,SAAS,CAAC,OAAkB,EAAE,QAA2B;QAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,OAAkB,EAAE,QAA8B;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAkB,EAAE,aAA+D;QACtG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,IAAA,qBAAM,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,IAAA,qBAAM,EAAC,aAAa,CAAC,CAAC,CAAA;IAChG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAkB,EAAE,MAAoB;QAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,yBAAyB,CAAC,eAAuB,EAAE,MAAoB;QACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,IAAA,qBAAM,EAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;MAQE;IACF,KAAK,CAAC,CAAC,iBAAiB,CAAC,QAAqB,EAAE,aAA6B,EAAE,MAAoB;QAC/F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;QAC5D,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,eAAe,CAAC,eAA0B,EAAE,IAAY,EAAE,QAAwB,EAAE,MAAoB;QAC1G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,IAAA,qBAAM,EAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAA,qBAAM,EAAC,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,OAAkB,EAAE,QAAwB,EAAE,MAAoB;QAC5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,IAAA,qBAAM,EAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAA,CAAE,cAAc,CAAC,MAAoB;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,UAAsB;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,WAAwB,EAAE,IAAY;QACrD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAA,qBAAM,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAA,qBAAM,EAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,WAAwB;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAA,qBAAM,EAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAA,qBAAM,EAAC,WAAW,CAAC,CAAC,CAAC;IACzD,CAAC;CACJ;AAn0BD,8CAm0BC"}
@@ -1,6 +1,6 @@
1
1
  import { MaybeNode as PublicMaybeNode, MaybeMissingNode as PublicMaybeMissingNode, Result, MissingNode } from './interface';
2
2
  import { DecryptedNode as InternalNode } from './internal/nodes';
3
- type InternalPartialNode = Pick<InternalNode, 'uid' | 'parentUid' | 'name' | 'keyAuthor' | 'nameAuthor' | 'directMemberRole' | 'type' | 'mediaType' | 'isShared' | 'creationTime' | 'trashTime' | 'activeRevision' | 'folder' | 'totalStorageSize' | 'errors'>;
3
+ type InternalPartialNode = Pick<InternalNode, 'uid' | 'parentUid' | 'name' | 'keyAuthor' | 'nameAuthor' | 'directMemberRole' | 'type' | 'mediaType' | 'isShared' | 'creationTime' | 'trashTime' | 'activeRevision' | 'folder' | 'totalStorageSize' | 'errors' | 'shareId'>;
4
4
  type NodeUid = string | {
5
5
  uid: string;
6
6
  } | Result<{
@@ -57,6 +57,7 @@ function convertInternalNode(node) {
57
57
  trashTime: node.trashTime,
58
58
  totalStorageSize: node.totalStorageSize,
59
59
  folder: node.folder,
60
+ deprecatedShareId: node.shareId,
60
61
  };
61
62
  const name = node.name;
62
63
  const activeRevision = node.activeRevision;
@@ -64,14 +65,27 @@ function convertInternalNode(node) {
64
65
  return (0, interface_1.resultError)({
65
66
  ...baseNodeMetadata,
66
67
  name,
67
- activeRevision,
68
+ activeRevision: activeRevision?.ok ? (0, interface_1.resultOk)(convertInternalRevision(activeRevision.value)) : activeRevision,
68
69
  errors: node.errors,
69
70
  });
70
71
  }
71
72
  return (0, interface_1.resultOk)({
72
73
  ...baseNodeMetadata,
73
74
  name: name.value,
74
- activeRevision: activeRevision?.value,
75
+ activeRevision: activeRevision?.ok ? convertInternalRevision(activeRevision.value) : undefined,
75
76
  });
76
77
  }
78
+ function convertInternalRevision(revision) {
79
+ return {
80
+ uid: revision.uid,
81
+ state: revision.state,
82
+ creationTime: revision.creationTime,
83
+ contentAuthor: revision.contentAuthor,
84
+ storageSize: revision.storageSize,
85
+ claimedSize: revision.claimedSize,
86
+ claimedModificationTime: revision.claimedModificationTime,
87
+ claimedDigests: revision.claimedDigests,
88
+ claimedAdditionalMetadata: revision.claimedAdditionalMetadata,
89
+ };
90
+ }
77
91
  //# sourceMappingURL=transformers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":";;AAwBA,wBAaC;AAED,0BAEC;AAED,kEAIC;AAED,gFAQC;AAED,gEAGC;AAED,kDAiCC;AAjGD,2CAAuN;AAwBvN,SAAgB,MAAM,CAAC,OAAgB;IACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,oEAAoE;IACpE,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,GAAG,CAAC;IACvB,CAAC;IACD,2DAA2D;IAC3D,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;IAC7B,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,CAAC;AAED,SAAgB,OAAO,CAAC,QAAmB;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAEM,KAAK,SAAU,CAAC,CAAA,2BAA2B,CAAC,YAAiD;IAChG,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;AACL,CAAC;AAEM,KAAK,SAAU,CAAC,CAAA,kCAAkC,CAAC,YAA+D;IACrH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACpC,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAA,uBAAW,EAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAAC,WAAyC;IACtF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;IAC/B,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAyB;IACzD,MAAM,gBAAgB,GAAG;QACrB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;KACtB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAE3C,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAA,uBAAW,EAAC;YACf,GAAG,gBAAgB;YACnB,IAAI;YACJ,cAAc;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;SACA,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,IAAA,oBAAQ,EAAC;QACZ,GAAG,gBAAgB;QACnB,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,cAAc,EAAE,cAAc,EAAE,KAAK;KACpB,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"transformers.js","sourceRoot":"","sources":["../src/transformers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@protontech/drive-sdk",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "Proton Drive SDK",
5
5
  "license": "GPL-3.0",
6
6
  "main": "dist/index.js",
@@ -232,6 +232,36 @@ export class DriveCrypto {
232
232
  };
233
233
  }
234
234
 
235
+ /**
236
+ * It decrypts the key using the password via SRP protocol.
237
+ *
238
+ * The function follows the same functionality as `decryptKey` but uses SRP
239
+ * protocol to decrypt the passphrase of the key. It is used for saved
240
+ * public links where user saved the link with password and is not direct
241
+ * member of the share.
242
+ */
243
+ async decryptKeyWithSrpPassword(
244
+ password: string,
245
+ salt: string,
246
+ armoredKey: string,
247
+ armoredPassphrase: string,
248
+ ): Promise<{
249
+ key: PrivateKey,
250
+ }> {
251
+ const keyPassword = await this.srpModule.computeKeyPassword(password, salt);
252
+
253
+ const passphrase = await this.openPGPCrypto.decryptArmoredWithPassword(armoredPassphrase, keyPassword);
254
+
255
+ const key = await this.openPGPCrypto.decryptKey(
256
+ armoredKey,
257
+ new TextDecoder().decode(passphrase),
258
+ );
259
+
260
+ return {
261
+ key,
262
+ };
263
+ }
264
+
235
265
  /**
236
266
  * It decrypts session key from armored data.
237
267
  *
@@ -53,6 +53,7 @@ export enum VERIFICATION_STATUS {
53
53
 
54
54
  export interface SRPModule {
55
55
  getSrpVerifier: (password: string) => Promise<SRPVerifier>,
56
+ computeKeyPassword: (password: string, salt: string) => Promise<string>,
56
57
  }
57
58
 
58
59
  export type SRPVerifier = {
@@ -227,4 +228,9 @@ export interface OpenPGPCrypto {
227
228
  data: Uint8Array,
228
229
  verified: VERIFICATION_STATUS,
229
230
  }>,
231
+
232
+ decryptArmoredWithPassword(
233
+ armoredData: string,
234
+ password: string,
235
+ ): Promise<Uint8Array>,
230
236
  }
@@ -30,6 +30,7 @@ export interface OpenPGPCryptoProxy {
30
30
  armoredSignature?: string,
31
31
  binarySignature?: Uint8Array,
32
32
  sessionKeys?: SessionKey,
33
+ passwords?: string[],
33
34
  decryptionKeys?: PrivateKey | PrivateKey[],
34
35
  verificationKeys?: PublicKey | PublicKey[],
35
36
  }) => Promise<{
@@ -395,4 +396,16 @@ export class OpenPGPCryptoWithCryptoProxy implements OpenPGPCrypto {
395
396
  verified: verified || verificationStatus!,
396
397
  }
397
398
  }
399
+
400
+ async decryptArmoredWithPassword(
401
+ armoredData: string,
402
+ password: string,
403
+ ) {
404
+ const { data } = await this.cryptoProxy.decryptMessage({
405
+ armoredMessage: armoredData,
406
+ passwords: [password],
407
+ format: 'binary',
408
+ });
409
+ return data as Uint8Array;
410
+ }
398
411
  }
@@ -16,10 +16,10 @@ export { SDKEvent } from './events';
16
16
  export type { ProtonDriveHTTPClient, ProtonDriveHTTPClientJsonOptions, ProtonDriveHTTPClientBlobOptions, ProtonDriveConfig } from './httpClient';
17
17
  export type { MaybeNode, NodeEntity, DegradedNode, MaybeMissingNode, MissingNode, InvalidNameError, Revision, NodeOrUid, RevisionOrUid, NodeResult } from './nodes';
18
18
  export { NodeType, MemberRole, RevisionState } from './nodes';
19
- export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, Member, PublicLink, Bookmark, ProtonInvitationOrUid, NonProtonInvitationOrUid, BookmarkOrUid, ShareNodeSettings, UnshareNodeSettings, ShareMembersSettings, SharePublicLinkSettings, SharePublicLinkSettingsObject, ShareResult } from './sharing';
19
+ export type { ProtonInvitation, ProtonInvitationWithNode, NonProtonInvitation, Member, PublicLink, MaybeBookmark, Bookmark, DegradedBookmark, ProtonInvitationOrUid, NonProtonInvitationOrUid, BookmarkOrUid, ShareNodeSettings, UnshareNodeSettings, ShareMembersSettings, SharePublicLinkSettings, SharePublicLinkSettingsObject, ShareResult } from './sharing';
20
20
  export { NonProtonInvitationState } from './sharing';
21
- export type { Telemetry, Logger, MetricAPIRetrySucceededEvent, MetricUploadEvent, MetricsUploadErrorType, MetricDownloadEvent, MetricsDownloadErrorType, MetricDecryptionErrorEvent, MetricsDecryptionErrorField, MetricVerificationErrorEvent, MetricVerificationErrorField, MetricVolumeEventsSubscriptionsChangedEvent, MetricEvent } from './telemetry';
22
- export { MetricContext } from './telemetry';
21
+ export type { Telemetry, Logger, MetricAPIRetrySucceededEvent, MetricUploadEvent, MetricsUploadErrorType, MetricDownloadEvent, MetricsDownloadErrorType, MetricDecryptionErrorEvent, MetricsDecryptionErrorField, MetricVerificationErrorEvent, MetricVerificationErrorField, MetricBlockVerificationErrorEvent, MetricVolumeEventsSubscriptionsChangedEvent, MetricEvent } from './telemetry';
22
+ export { MetricVolumeType } from './telemetry';
23
23
  export type { Fileuploader, UploadController, UploadMetadata } from './upload';
24
24
  export type { Thumbnail, ThumbnailResult } from './thumbnail';
25
25
  export { ThumbnailType } from './thumbnail';
@@ -65,6 +65,15 @@ export type NodeEntity = {
65
65
  * one user, or via public link.
66
66
  */
67
67
  isShared: boolean,
68
+ /**
69
+ * Provides the ID of the share that the node is shared with.
70
+ *
71
+ * This is required only for the internal implementation to provide
72
+ * backward compatibility with the old Drive web setup.
73
+ *
74
+ * @deprecated This field is not part of the public API.
75
+ */
76
+ deprecatedShareId?: string,
68
77
  /**
69
78
  * Created on server date.
70
79
  */
@@ -38,16 +38,38 @@ export type PublicLink = {
38
38
  expirationTime?: Date,
39
39
  }
40
40
 
41
+ /**
42
+ * Bookmark representing a saved link to publicly shared node.
43
+ *
44
+ * This covers both happy path and degraded path.
45
+ */
46
+ export type MaybeBookmark = Result<Bookmark, DegradedBookmark>;
47
+
41
48
  export type Bookmark = {
42
49
  uid: string,
43
- bookmarkTime: Date,
50
+ creationTime: Date,
51
+ url: string,
44
52
  node: {
45
- name: Result<string, Error | InvalidNameError>,
53
+ name: string,
46
54
  type: NodeType,
47
55
  mediaType?: string,
48
56
  },
49
57
  }
50
58
 
59
+ /**
60
+ * Degraded bookmark representing a saved link to publicly shared node.
61
+ *
62
+ * This is a degraded path representation of the bookmark. It is used in the
63
+ * SDK to represent the bookmark in a way that is easy to work with. Whenever
64
+ * any field cannot be decrypted, it is returned as `DegradedBookmark` type.
65
+ */
66
+ export type DegradedBookmark = Omit<Bookmark, 'url' | 'node'> & {
67
+ url: Result<string, Error>,
68
+ node: Omit<Bookmark['node'], 'name'> & {
69
+ name: Result<string, Error | InvalidNameError>,
70
+ },
71
+ }
72
+
51
73
  export type ProtonInvitationOrUid = ProtonInvitation | string;
52
74
  export type NonProtonInvitationOrUid = NonProtonInvitation | string;
53
75
  export type BookmarkOrUid = Bookmark | string;
@@ -27,10 +27,11 @@ export interface MetricAPIRetrySucceededEvent {
27
27
 
28
28
  export interface MetricUploadEvent {
29
29
  eventName: 'upload',
30
- context?: MetricContext,
30
+ volumeType?: MetricVolumeType,
31
31
  uploadedSize: number,
32
32
  expectedSize: number,
33
33
  error?: MetricsUploadErrorType,
34
+ originalError?: unknown,
34
35
  };
35
36
  export type MetricsUploadErrorType =
36
37
  'server_error' |
@@ -38,15 +39,15 @@ export type MetricsUploadErrorType =
38
39
  'integrity_error' |
39
40
  'rate_limited' |
40
41
  '4xx' |
41
- '5xx' |
42
42
  'unknown';
43
43
 
44
44
  export interface MetricDownloadEvent {
45
45
  eventName: 'download',
46
- context?: MetricContext,
46
+ volumeType?: MetricVolumeType,
47
47
  downloadedSize: number,
48
48
  claimedFileSize?: number,
49
49
  error?: MetricsDownloadErrorType,
50
+ originalError?: unknown,
50
51
  };
51
52
  export type MetricsDownloadErrorType =
52
53
  'server_error' |
@@ -55,18 +56,18 @@ export type MetricsDownloadErrorType =
55
56
  'integrity_error' |
56
57
  'rate_limited' |
57
58
  '4xx' |
58
- '5xx' |
59
59
  'unknown';
60
60
 
61
61
  export interface MetricDecryptionErrorEvent {
62
62
  eventName: 'decryptionError',
63
- context?: MetricContext,
63
+ volumeType?: MetricVolumeType,
64
64
  field: MetricsDecryptionErrorField,
65
65
  fromBefore2024?: boolean,
66
66
  error?: unknown,
67
67
  };
68
68
  export type MetricsDecryptionErrorField =
69
69
  'shareKey' |
70
+ 'shareUrlPassword' |
70
71
  'nodeKey' |
71
72
  'nodeName' |
72
73
  'nodeHashKey' |
@@ -76,7 +77,7 @@ export type MetricsDecryptionErrorField =
76
77
 
77
78
  export interface MetricVerificationErrorEvent {
78
79
  eventName: 'verificationError',
79
- context?: MetricContext,
80
+ volumeType?: MetricVolumeType,
80
81
  field: MetricVerificationErrorField,
81
82
  addressMatchingDefaultShare?: boolean,
82
83
  fromBefore2024?: boolean,
@@ -100,7 +101,7 @@ export interface MetricVolumeEventsSubscriptionsChangedEvent {
100
101
  numberOfVolumeSubscriptions: number,
101
102
  };
102
103
 
103
- export enum MetricContext {
104
+ export enum MetricVolumeType {
104
105
  OwnVolume = 'own_volume',
105
106
  Shared = 'shared',
106
107
  SharedPublic = 'shared_public',
@@ -30,6 +30,14 @@ describe("apiErrorFactory should return", () => {
30
30
  expect((error as errors.APIHTTPError).statusCode).toBe(404);
31
31
  });
32
32
 
33
+ it("generic APIHTTPError with generic message when there is no specifc statusText", () => {
34
+ const response = new Response('', { status: 404, statusText: '' });
35
+ const error = apiErrorFactory({ response });
36
+ expect(error).toBeInstanceOf(errors.APIHTTPError);
37
+ expect(error.message).toBe("Unknown error");
38
+ expect((error as errors.APIHTTPError).statusCode).toBe(404);
39
+ });
40
+
33
41
  it("generic APIHTTPError when there 404 both in status code and body code", () => {
34
42
  const error = apiErrorFactory(mockAPIResponseAndResult({ httpStatusCode: 404, httpStatusText: 'Path not found', code: 404, message: 'Not found' }));
35
43
  expect(error).toBeInstanceOf(errors.APIHTTPError);
@@ -8,7 +8,7 @@ export function apiErrorFactory({ response, result }: { response: Response, resu
8
8
  // In such a case we want to stick to APIHTTPError to be very clear
9
9
  // it is not NotFoundAPIError.
10
10
  if (response.status === HTTPErrorCode.NOT_FOUND || !result) {
11
- return new APIHTTPError(response.statusText, response.status);
11
+ return new APIHTTPError(response.statusText || c('Error').t`Unknown error`, response.status);
12
12
  }
13
13
 
14
14
  const typedResult = result as {
@@ -1,5 +1,5 @@
1
1
  import { PrivateKey, PublicKey, SessionKey } from "../../crypto";
2
- import { NodeType, Result, Revision, MissingNode, MetricContext } from "../../interface";
2
+ import { NodeType, Result, Revision, MissingNode, MetricVolumeType } from "../../interface";
3
3
  import { DecryptedNode } from "../nodes";
4
4
 
5
5
  export type BlockMetadata = {
@@ -18,7 +18,7 @@ export type RevisionKeys = {
18
18
  }
19
19
 
20
20
  export interface SharesService {
21
- getVolumeMetricContext(volumeId: string): Promise<MetricContext>,
21
+ getVolumeMetricContext(volumeId: string): Promise<MetricVolumeType>,
22
22
  }
23
23
 
24
24
  export interface NodesService {
@@ -31,25 +31,29 @@ describe('DownloadTelemetry', () => {
31
31
  });
32
32
 
33
33
  it('should log failure during init (excludes file size)', async () => {
34
- await downloadTelemetry.downloadInitFailed(nodeUid, new Error('Failed'));
34
+ const error = new Error('Failed');
35
+ await downloadTelemetry.downloadInitFailed(nodeUid, error);
35
36
 
36
37
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
37
38
  eventName: "download",
38
- context: "own_volume",
39
+ volumeType: "own_volume",
39
40
  downloadedSize: 0,
40
41
  error: "unknown",
42
+ originalError: error,
41
43
  });
42
44
  });
43
45
 
44
46
  it('should log failure download', async () => {
45
- await downloadTelemetry.downloadFailed(revisionUid, new Error('Failed'), 123, 456);
47
+ const error = new Error('Failed');
48
+ await downloadTelemetry.downloadFailed(revisionUid, error, 123, 456);
46
49
 
47
50
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
48
51
  eventName: "download",
49
- context: "own_volume",
52
+ volumeType: "own_volume",
50
53
  downloadedSize: 123,
51
54
  claimedFileSize: 456,
52
55
  error: "unknown",
56
+ originalError: error,
53
57
  });
54
58
  });
55
59
 
@@ -58,7 +62,7 @@ describe('DownloadTelemetry', () => {
58
62
 
59
63
  expect(mockTelemetry.logEvent).toHaveBeenCalledWith({
60
64
  eventName: "download",
61
- context: "own_volume",
65
+ volumeType: "own_volume",
62
66
  downloadedSize: 500,
63
67
  claimedFileSize: 500,
64
68
  });
@@ -78,12 +82,12 @@ describe('DownloadTelemetry', () => {
78
82
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
79
83
  expect(mockTelemetry.logEvent).not.toHaveBeenCalled();
80
84
  });
81
-
85
+
82
86
  it('should ignore AbortError', async () => {
83
87
  const error = new Error('Aborted');
84
88
  error.name = 'AbortError';
85
89
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
86
-
90
+
87
91
  expect(mockTelemetry.logEvent).not.toHaveBeenCalled();
88
92
  });
89
93
 
@@ -92,38 +96,38 @@ describe('DownloadTelemetry', () => {
92
96
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
93
97
  verifyErrorCategory('rate_limited');
94
98
  });
95
-
99
+
96
100
  it('should detect "decryption_error" for DecryptionError', async () => {
97
101
  const error = new DecryptionError('Decryption failed');
98
102
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
99
103
  verifyErrorCategory('decryption_error');
100
104
  });
101
-
105
+
102
106
  it('should detect "integrity_error" for IntegrityError', async () => {
103
107
  const error = new IntegrityError('Integrity check failed');
104
108
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
105
109
  verifyErrorCategory('integrity_error');
106
110
  });
107
-
111
+
108
112
  it('should detect "4xx" error for APIHTTPError with 4xx status code', async () => {
109
113
  const error = new APIHTTPError('Client error', 404);
110
114
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
111
115
  verifyErrorCategory('4xx');
112
116
  });
113
-
117
+
114
118
  it('should detect "5xx" error for APIHTTPError with 5xx status code', async () => {
115
119
  const error = new APIHTTPError('Server error', 500);
116
120
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
117
- verifyErrorCategory('5xx');
121
+ verifyErrorCategory('server_error');
118
122
  });
119
-
123
+
120
124
  it('should detect "server_error" for TimeoutError', async () => {
121
125
  const error = new Error('Timeout');
122
126
  error.name = 'TimeoutError';
123
127
  await downloadTelemetry.downloadFailed(revisionUid, error, 100, 200);
124
128
  verifyErrorCategory('server_error');
125
129
  });
126
-
130
+
127
131
  it('should detect "network_error" for NetworkError', async () => {
128
132
  const error = new Error('Network error');
129
133
  error.name = 'NetworkError';
@@ -31,6 +31,7 @@ export class DownloadTelemetry {
31
31
  await this.sendTelemetry(volumeId, {
32
32
  downloadedSize: 0,
33
33
  error: errorCategory,
34
+ originalError: error,
34
35
  });
35
36
  }
36
37
 
@@ -48,6 +49,7 @@ export class DownloadTelemetry {
48
49
  downloadedSize,
49
50
  claimedFileSize,
50
51
  error: errorCategory,
52
+ originalError: error,
51
53
  });
52
54
  }
53
55
 
@@ -63,17 +65,18 @@ export class DownloadTelemetry {
63
65
  downloadedSize: number,
64
66
  claimedFileSize?: number,
65
67
  error?: MetricsDownloadErrorType,
68
+ originalError?: unknown,
66
69
  }) {
67
- let context;
70
+ let volumeType;
68
71
  try {
69
- context = await this.sharesService.getVolumeMetricContext(volumeId);
72
+ volumeType = await this.sharesService.getVolumeMetricContext(volumeId);
70
73
  } catch (error: unknown) {
71
- this.logger.error('Failed to get metric context', error);
74
+ this.logger.error('Failed to get metric volume type', error);
72
75
  }
73
76
 
74
77
  this.telemetry.logEvent({
75
78
  eventName: 'download',
76
- context,
79
+ volumeType,
77
80
  ...options,
78
81
  });
79
82
  }
@@ -97,7 +100,7 @@ function getErrorCategory(error: unknown): MetricsDownloadErrorType | undefined
97
100
  return '4xx';
98
101
  }
99
102
  if (error.statusCode >= 500) {
100
- return '5xx';
103
+ return 'server_error';
101
104
  }
102
105
  }
103
106
  if (error instanceof Error) {