@protontech/drive-sdk 0.0.13 → 0.1.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 (234) hide show
  1. package/dist/cache/index.d.ts +1 -0
  2. package/dist/cache/index.js +3 -1
  3. package/dist/cache/index.js.map +1 -1
  4. package/dist/cache/memoryCache.d.ts +1 -1
  5. package/dist/cache/nullCache.d.ts +14 -0
  6. package/dist/cache/nullCache.js +37 -0
  7. package/dist/cache/nullCache.js.map +1 -0
  8. package/dist/config.d.ts +16 -1
  9. package/dist/config.js +1 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/crypto/openPGPCrypto.js +2 -0
  12. package/dist/crypto/openPGPCrypto.js.map +1 -1
  13. package/dist/diagnostic/eventsGenerator.d.ts +14 -0
  14. package/dist/diagnostic/eventsGenerator.js +49 -0
  15. package/dist/diagnostic/eventsGenerator.js.map +1 -0
  16. package/dist/diagnostic/httpClient.d.ts +16 -0
  17. package/dist/diagnostic/httpClient.js +81 -0
  18. package/dist/diagnostic/httpClient.js.map +1 -0
  19. package/dist/diagnostic/index.d.ts +10 -0
  20. package/dist/diagnostic/index.js +35 -0
  21. package/dist/diagnostic/index.js.map +1 -0
  22. package/dist/diagnostic/integrityVerificationStream.d.ts +21 -0
  23. package/dist/diagnostic/integrityVerificationStream.js +56 -0
  24. package/dist/diagnostic/integrityVerificationStream.js.map +1 -0
  25. package/dist/diagnostic/interface.d.ts +102 -0
  26. package/dist/diagnostic/interface.js +3 -0
  27. package/dist/diagnostic/interface.js.map +1 -0
  28. package/dist/diagnostic/sdkDiagnostic.d.ts +22 -0
  29. package/dist/diagnostic/sdkDiagnostic.js +216 -0
  30. package/dist/diagnostic/sdkDiagnostic.js.map +1 -0
  31. package/dist/diagnostic/sdkDiagnosticFull.d.ts +18 -0
  32. package/dist/diagnostic/sdkDiagnosticFull.js +35 -0
  33. package/dist/diagnostic/sdkDiagnosticFull.js.map +1 -0
  34. package/dist/diagnostic/telemetry.d.ts +25 -0
  35. package/dist/diagnostic/telemetry.js +70 -0
  36. package/dist/diagnostic/telemetry.js.map +1 -0
  37. package/dist/diagnostic/zipGenerators.d.ts +9 -0
  38. package/dist/diagnostic/zipGenerators.js +64 -0
  39. package/dist/diagnostic/zipGenerators.js.map +1 -0
  40. package/dist/diagnostic/zipGenerators.test.js +144 -0
  41. package/dist/diagnostic/zipGenerators.test.js.map +1 -0
  42. package/dist/errors.d.ts +2 -1
  43. package/dist/errors.js +3 -1
  44. package/dist/errors.js.map +1 -1
  45. package/dist/interface/config.d.ts +26 -0
  46. package/dist/interface/config.js +3 -0
  47. package/dist/interface/config.js.map +1 -0
  48. package/dist/interface/download.d.ts +2 -2
  49. package/dist/interface/events.d.ts +60 -20
  50. package/dist/interface/events.js +11 -1
  51. package/dist/interface/events.js.map +1 -1
  52. package/dist/interface/httpClient.d.ts +0 -14
  53. package/dist/interface/index.d.ts +8 -4
  54. package/dist/interface/index.js +2 -1
  55. package/dist/interface/index.js.map +1 -1
  56. package/dist/interface/nodes.d.ts +9 -0
  57. package/dist/interface/nodes.js.map +1 -1
  58. package/dist/interface/sharing.d.ts +1 -0
  59. package/dist/interface/upload.d.ts +6 -0
  60. package/dist/internal/download/apiService.js +32 -31
  61. package/dist/internal/download/apiService.js.map +1 -1
  62. package/dist/internal/download/fileDownloader.d.ts +2 -2
  63. package/dist/internal/download/fileDownloader.js.map +1 -1
  64. package/dist/internal/events/apiService.d.ts +4 -6
  65. package/dist/internal/events/apiService.js +15 -22
  66. package/dist/internal/events/apiService.js.map +1 -1
  67. package/dist/internal/events/coreEventManager.d.ts +7 -10
  68. package/dist/internal/events/coreEventManager.js +19 -36
  69. package/dist/internal/events/coreEventManager.js.map +1 -1
  70. package/dist/internal/events/coreEventManager.test.js +87 -0
  71. package/dist/internal/events/coreEventManager.test.js.map +1 -0
  72. package/dist/internal/events/eventManager.d.ts +11 -36
  73. package/dist/internal/events/eventManager.js +59 -105
  74. package/dist/internal/events/eventManager.js.map +1 -1
  75. package/dist/internal/events/eventManager.test.js +167 -82
  76. package/dist/internal/events/eventManager.test.js.map +1 -1
  77. package/dist/internal/events/index.d.ts +13 -33
  78. package/dist/internal/events/index.js +56 -72
  79. package/dist/internal/events/index.js.map +1 -1
  80. package/dist/internal/events/interface.d.ts +59 -14
  81. package/dist/internal/events/interface.js +13 -3
  82. package/dist/internal/events/interface.js.map +1 -1
  83. package/dist/internal/events/volumeEventManager.d.ts +7 -17
  84. package/dist/internal/events/volumeEventManager.js +58 -45
  85. package/dist/internal/events/volumeEventManager.js.map +1 -1
  86. package/dist/internal/events/volumeEventManager.test.d.ts +1 -0
  87. package/dist/internal/events/volumeEventManager.test.js +203 -0
  88. package/dist/internal/events/volumeEventManager.test.js.map +1 -0
  89. package/dist/internal/nodes/cache.d.ts +10 -1
  90. package/dist/internal/nodes/cache.js +17 -0
  91. package/dist/internal/nodes/cache.js.map +1 -1
  92. package/dist/internal/nodes/cryptoService.d.ts +1 -1
  93. package/dist/internal/nodes/cryptoService.js.map +1 -1
  94. package/dist/internal/nodes/events.d.ts +7 -83
  95. package/dist/internal/nodes/events.js +43 -217
  96. package/dist/internal/nodes/events.js.map +1 -1
  97. package/dist/internal/nodes/events.test.js +27 -277
  98. package/dist/internal/nodes/events.test.js.map +1 -1
  99. package/dist/internal/nodes/index.d.ts +3 -4
  100. package/dist/internal/nodes/index.js +5 -5
  101. package/dist/internal/nodes/index.js.map +1 -1
  102. package/dist/internal/nodes/nodesAccess.d.ts +15 -0
  103. package/dist/internal/nodes/nodesAccess.js +37 -0
  104. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  105. package/dist/internal/nodes/nodesAccess.test.js +131 -93
  106. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  107. package/dist/internal/nodes/nodesManagement.d.ts +1 -3
  108. package/dist/internal/nodes/nodesManagement.js +12 -26
  109. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  110. package/dist/internal/nodes/nodesManagement.test.js +35 -14
  111. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  112. package/dist/internal/shares/cache.d.ts +2 -0
  113. package/dist/internal/shares/cache.js +2 -0
  114. package/dist/internal/shares/cache.js.map +1 -1
  115. package/dist/internal/shares/manager.d.ts +1 -0
  116. package/dist/internal/shares/manager.js +3 -0
  117. package/dist/internal/shares/manager.js.map +1 -1
  118. package/dist/internal/sharing/apiService.js +1 -0
  119. package/dist/internal/sharing/apiService.js.map +1 -1
  120. package/dist/internal/sharing/cryptoService.js +1 -0
  121. package/dist/internal/sharing/cryptoService.js.map +1 -1
  122. package/dist/internal/sharing/events.d.ts +23 -55
  123. package/dist/internal/sharing/events.js +46 -138
  124. package/dist/internal/sharing/events.js.map +1 -1
  125. package/dist/internal/sharing/events.test.js +77 -180
  126. package/dist/internal/sharing/events.test.js.map +1 -1
  127. package/dist/internal/sharing/index.d.ts +4 -5
  128. package/dist/internal/sharing/index.js +5 -5
  129. package/dist/internal/sharing/index.js.map +1 -1
  130. package/dist/internal/sharing/interface.d.ts +3 -0
  131. package/dist/internal/sharing/sharingManagement.d.ts +2 -3
  132. package/dist/internal/sharing/sharingManagement.js +7 -9
  133. package/dist/internal/sharing/sharingManagement.js.map +1 -1
  134. package/dist/internal/sharing/sharingManagement.test.js +9 -39
  135. package/dist/internal/sharing/sharingManagement.test.js.map +1 -1
  136. package/dist/internal/upload/apiService.d.ts +2 -3
  137. package/dist/internal/upload/apiService.js +7 -4
  138. package/dist/internal/upload/apiService.js.map +1 -1
  139. package/dist/internal/upload/index.d.ts +2 -2
  140. package/dist/internal/upload/index.js +3 -3
  141. package/dist/internal/upload/index.js.map +1 -1
  142. package/dist/internal/upload/interface.d.ts +2 -0
  143. package/dist/internal/upload/manager.d.ts +5 -5
  144. package/dist/internal/upload/manager.js +19 -50
  145. package/dist/internal/upload/manager.js.map +1 -1
  146. package/dist/internal/upload/manager.test.js +68 -44
  147. package/dist/internal/upload/manager.test.js.map +1 -1
  148. package/dist/internal/upload/streamUploader.js +1 -2
  149. package/dist/internal/upload/streamUploader.js.map +1 -1
  150. package/dist/internal/upload/streamUploader.test.js +1 -1
  151. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  152. package/dist/protonDriveClient.d.ts +19 -162
  153. package/dist/protonDriveClient.js +26 -190
  154. package/dist/protonDriveClient.js.map +1 -1
  155. package/dist/protonDrivePhotosClient.js +3 -2
  156. package/dist/protonDrivePhotosClient.js.map +1 -1
  157. package/package.json +3 -3
  158. package/src/cache/index.ts +1 -0
  159. package/src/cache/memoryCache.ts +1 -1
  160. package/src/cache/nullCache.ts +38 -0
  161. package/src/config.ts +17 -2
  162. package/src/crypto/openPGPCrypto.ts +2 -0
  163. package/src/diagnostic/eventsGenerator.ts +48 -0
  164. package/src/diagnostic/httpClient.ts +80 -0
  165. package/src/diagnostic/index.ts +38 -0
  166. package/src/diagnostic/integrityVerificationStream.ts +56 -0
  167. package/src/diagnostic/interface.ts +158 -0
  168. package/src/diagnostic/sdkDiagnostic.ts +238 -0
  169. package/src/diagnostic/sdkDiagnosticFull.ts +40 -0
  170. package/src/diagnostic/telemetry.ts +71 -0
  171. package/src/diagnostic/zipGenerators.test.ts +177 -0
  172. package/src/diagnostic/zipGenerators.ts +70 -0
  173. package/src/errors.ts +4 -1
  174. package/src/interface/config.ts +28 -0
  175. package/src/interface/download.ts +2 -2
  176. package/src/interface/events.ts +66 -21
  177. package/src/interface/httpClient.ts +0 -16
  178. package/src/interface/index.ts +8 -4
  179. package/src/interface/nodes.ts +21 -12
  180. package/src/interface/sharing.ts +1 -0
  181. package/src/interface/upload.ts +6 -0
  182. package/src/internal/download/apiService.ts +11 -8
  183. package/src/internal/download/fileDownloader.ts +2 -2
  184. package/src/internal/events/apiService.ts +25 -28
  185. package/src/internal/events/coreEventManager.test.ts +101 -0
  186. package/src/internal/events/coreEventManager.ts +20 -45
  187. package/src/internal/events/eventManager.test.ts +201 -88
  188. package/src/internal/events/eventManager.ts +69 -115
  189. package/src/internal/events/index.ts +54 -84
  190. package/src/internal/events/interface.ts +70 -15
  191. package/src/internal/events/volumeEventManager.test.ts +243 -0
  192. package/src/internal/events/volumeEventManager.ts +55 -53
  193. package/src/internal/nodes/cache.ts +20 -2
  194. package/src/internal/nodes/cryptoService.ts +1 -1
  195. package/src/internal/nodes/events.test.ts +29 -335
  196. package/src/internal/nodes/events.ts +45 -253
  197. package/src/internal/nodes/index.ts +6 -8
  198. package/src/internal/nodes/interface.ts +2 -2
  199. package/src/internal/nodes/nodesAccess.test.ts +132 -91
  200. package/src/internal/nodes/nodesAccess.ts +40 -1
  201. package/src/internal/nodes/nodesManagement.test.ts +39 -15
  202. package/src/internal/nodes/nodesManagement.ts +12 -30
  203. package/src/internal/shares/cache.ts +4 -2
  204. package/src/internal/shares/manager.ts +9 -5
  205. package/src/internal/sharing/apiService.ts +1 -0
  206. package/src/internal/sharing/cache.ts +1 -1
  207. package/src/internal/sharing/cryptoService.ts +1 -0
  208. package/src/internal/sharing/events.test.ts +89 -195
  209. package/src/internal/sharing/events.ts +42 -156
  210. package/src/internal/sharing/index.ts +6 -9
  211. package/src/internal/sharing/interface.ts +6 -2
  212. package/src/internal/sharing/sharingManagement.test.ts +10 -40
  213. package/src/internal/sharing/sharingManagement.ts +7 -11
  214. package/src/internal/upload/apiService.ts +5 -6
  215. package/src/internal/upload/index.ts +5 -5
  216. package/src/internal/upload/interface.ts +2 -0
  217. package/src/internal/upload/manager.test.ts +75 -45
  218. package/src/internal/upload/manager.ts +24 -54
  219. package/src/internal/upload/streamUploader.test.ts +0 -1
  220. package/src/internal/upload/streamUploader.ts +0 -2
  221. package/src/protonDriveClient.ts +75 -244
  222. package/src/protonDrivePhotosClient.ts +4 -3
  223. package/dist/internal/events/cache.d.ts +0 -28
  224. package/dist/internal/events/cache.js +0 -67
  225. package/dist/internal/events/cache.js.map +0 -1
  226. package/dist/internal/events/cache.test.js +0 -43
  227. package/dist/internal/events/cache.test.js.map +0 -1
  228. package/dist/internal/nodes/index.test.js +0 -114
  229. package/dist/internal/nodes/index.test.js.map +0 -1
  230. package/src/internal/events/cache.test.ts +0 -47
  231. package/src/internal/events/cache.ts +0 -80
  232. package/src/internal/nodes/index.test.ts +0 -137
  233. /package/dist/{internal/events/cache.test.d.ts → diagnostic/zipGenerators.test.d.ts} +0 -0
  234. /package/dist/internal/{nodes/index.test.d.ts → events/coreEventManager.test.d.ts} +0 -0
@@ -1,2 +1,3 @@
1
1
  export type { ProtonDriveCache, EntityResult } from './interface';
2
2
  export { MemoryCache } from './memoryCache';
3
+ export { NullCache } from './nullCache';
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MemoryCache = void 0;
3
+ exports.NullCache = exports.MemoryCache = void 0;
4
4
  var memoryCache_1 = require("./memoryCache");
5
5
  Object.defineProperty(exports, "MemoryCache", { enumerable: true, get: function () { return memoryCache_1.MemoryCache; } });
6
+ var nullCache_1 = require("./nullCache");
7
+ Object.defineProperty(exports, "NullCache", { enumerable: true, get: function () { return nullCache_1.NullCache; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA"}
@@ -11,7 +11,7 @@ export declare class MemoryCache<T> implements ProtonDriveCache<T> {
11
11
  private entitiesByTag;
12
12
  clear(): Promise<void>;
13
13
  setEntity(key: string, value: T, tags?: string[]): Promise<void>;
14
- getEntity(key: string): Promise<NonNullable<T>>;
14
+ getEntity(key: string): Promise<T>;
15
15
  iterateEntities(keys: string[]): AsyncGenerator<EntityResult<T>>;
16
16
  iterateEntitiesByTag(tag: string): AsyncGenerator<EntityResult<T>>;
17
17
  removeEntities(keys: string[]): Promise<void>;
@@ -0,0 +1,14 @@
1
+ import type { ProtonDriveCache, EntityResult } from './interface';
2
+ /**
3
+ * Null cache implementation for Proton Drive SDK.
4
+ *
5
+ * This cache is not caching anything. It can be used to disable the cache.
6
+ */
7
+ export declare class NullCache<T> implements ProtonDriveCache<T> {
8
+ clear(): Promise<void>;
9
+ setEntity(key: string, value: T, tags?: string[]): Promise<void>;
10
+ getEntity(key: string): Promise<T>;
11
+ iterateEntities(keys: string[]): AsyncGenerator<EntityResult<T>>;
12
+ iterateEntitiesByTag(tag: string): AsyncGenerator<EntityResult<T>>;
13
+ removeEntities(keys: string[]): Promise<void>;
14
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NullCache = void 0;
4
+ /**
5
+ * Null cache implementation for Proton Drive SDK.
6
+ *
7
+ * This cache is not caching anything. It can be used to disable the cache.
8
+ */
9
+ class NullCache {
10
+ async clear() {
11
+ // No-op.
12
+ }
13
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+ async setEntity(key, value, tags) {
15
+ // No-op.
16
+ }
17
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
+ async getEntity(key) {
19
+ throw Error('Entity not found');
20
+ }
21
+ async *iterateEntities(keys) {
22
+ for (const key of keys) {
23
+ yield { key, ok: false, error: 'Entity not found' };
24
+ }
25
+ }
26
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
+ async *iterateEntitiesByTag(tag) {
28
+ // No-op.
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
+ async removeEntities(keys) {
32
+ // No-op.
33
+ }
34
+ }
35
+ exports.NullCache = NullCache;
36
+ ;
37
+ //# sourceMappingURL=nullCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullCache.js","sourceRoot":"","sources":["../../src/cache/nullCache.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,SAAS;IAClB,KAAK,CAAC,KAAK;QACP,SAAS;IACb,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,KAAQ,EAAE,IAAe;QAClD,SAAS;IACb,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,SAAS,CAAC,GAAW;QACvB,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,CAAC,eAAe,CAAC,IAAc;QACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QACxD,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,CAAC,oBAAoB,CAAC,GAAW;QACnC,SAAS;IACb,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,cAAc,CAAC,IAAc;QAC/B,SAAS;IACb,CAAC;CACJ;AA9BD,8BA8BC;AAAA,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,2 +1,17 @@
1
1
  import { ProtonDriveConfig } from './interface';
2
- export declare function getConfig(config?: ProtonDriveConfig): Required<ProtonDriveConfig>;
2
+ /**
3
+ * Parsed configuration of `ProtonDriveConfig`.
4
+ *
5
+ * The object should be almost identical to the original config, but making
6
+ * some fields required (setting reasonable defaults for the missing fields),
7
+ * or changed for easier usage inside of the SDK.
8
+ *
9
+ * For more property details, see the original config declaration.
10
+ */
11
+ type ParsedProtonDriveConfig = {
12
+ baseUrl: string;
13
+ language: string;
14
+ clientUid?: string;
15
+ };
16
+ export declare function getConfig(config?: ProtonDriveConfig): ParsedProtonDriveConfig;
17
+ export {};
package/dist/config.js CHANGED
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getConfig = getConfig;
4
4
  function getConfig(config) {
5
5
  return {
6
- ...config,
7
6
  baseUrl: config?.baseUrl ? `https://${config.baseUrl}` : 'https://drive-api.proton.me',
8
7
  language: config?.language || 'en',
8
+ clientUid: config?.clientUid,
9
9
  };
10
10
  }
11
11
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAEA,8BAMC;AAND,SAAgB,SAAS,CAAC,MAA0B;IAChD,OAAO;QACH,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,6BAA6B;QACtF,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;KACrC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAiBA,8BAMC;AAND,SAAgB,SAAS,CAAC,MAA0B;IAChD,OAAO;QACH,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,6BAA6B;QACtF,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,IAAI;QAClC,SAAS,EAAE,MAAM,EAAE,SAAS;KAC/B,CAAC;AACN,CAAC"}
@@ -15,6 +15,8 @@ class OpenPGPCryptoWithCryptoProxy {
15
15
  }
16
16
  generatePassphrase() {
17
17
  const value = crypto.getRandomValues(new Uint8Array(32));
18
+ // TODO: Once all clients can use non-ascii bytes, switch to simple
19
+ // generating of random bytes without encoding it into base64.
18
20
  return (0, utils_1.uint8ArrayToBase64String)(value);
19
21
  }
20
22
  async generateSessionKey(encryptionKeys) {
@@ -1 +1 @@
1
- {"version":3,"file":"openPGPCrypto.js","sourceRoot":"","sources":["../../src/crypto/openPGPCrypto.ts"],"names":[],"mappings":";;;AACA,mCAAmD;AA4DnD;;;;GAIG;AACH,MAAa,4BAA4B;IACjB;IAApB,YAAoB,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,kBAAkB;QACd,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,IAAA,gCAAwB,EAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAA4B;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,UAAsB,EAAE,cAAuC;QACnF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;YACvD,GAAG,UAAU;YACb,MAAM,EAAE,QAAQ;YAChB,cAAc;SACjB,CAAC,CAAC;QACH,OAAO;YACH,SAAS;SACZ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,UAAsB,EAAE,QAAgB;QACxE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;YACvD,GAAG,UAAU;YACb,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,CAAC,QAAQ,CAAC;SACxB,CAAC,CAAC;QACH,OAAO;YACH,SAAS;SACZ,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB;QAChC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YAClD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAChC,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,eAAe;SACzB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACvD,UAAU;YACV,UAAU;SACb,CAAC,CAAC;QAEH,OAAO;YACH,UAAU;YACV,UAAU;SACb,CAAC;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,IAAgB,EAChB,cAA4B,EAC5B,UAAuB;QAEvB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACnE,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,cAAc;SACjB,CAAC,CAAC;QACH,OAAO;YACH,WAAW,EAAE,WAAqB;SACrC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,IAAgB,EAChB,UAAsB,EACtB,cAA4B,EAC5B,UAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACrE,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,cAAc;YACd,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,OAAO;YACH,aAAa,EAAE,aAA2B;SAC7C,CAAC;IACN,CAAC;IAED,KAAK,CAAC,qBAAqB,CACvB,IAAgB,EAChB,UAAkC,EAClC,cAA4B,EAC5B,UAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACnE,UAAU,EAAE,IAAI;YAChB,cAAc;YACd,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,OAAO;YACH,WAAW,EAAE,WAAqB;SACrC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,IAAgB,EAChB,UAAsB,EACtB,cAA4B,EAC5B,UAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YAChF,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,cAAc;YACd,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,OAAO;YACH,aAAa,EAAE,aAA2B;YAC1C,SAAS,EAAE,SAAuB;SACrC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,6BAA6B,CAC/B,IAAgB,EAChB,UAAsB,EACtB,cAA4B,EAC5B,UAAsB;QAEtB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YAChG,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,cAAc;YACd,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,OAAO;YACH,WAAW,EAAE,WAAqB;YAClC,gBAAgB,EAAE,gBAA0B;SAC/C,CAAA;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CACN,IAAgB,EAChB,WAAsC,EACtC,gBAAwB;QAExB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YACjD,UAAU,EAAE,IAAI;YAChB,WAAW;YACX,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE;SAChE,CAAC,CAAC;QACH,OAAO;YACH,SAAS,EAAE,SAAuB;SACrC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CACb,IAAgB,EAChB,WAAsC;QAEtC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;YACjD,UAAU,EAAE,IAAI;YAChB,WAAW;YACX,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QACH,OAAO;YACH,SAAS,EAAE,SAAmB;SACjC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,IAAgB,EAChB,gBAAwB,EACxB,gBAAyC;QAEzC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YAC1E,UAAU,EAAE,IAAI;YAChB,gBAAgB;YAChB,gBAAgB;SACnB,CAAC,CAAC;QACH,OAAO;YACH,6DAA6D;YAC7D,mFAAmF;YACnF,QAAQ,EAAE,QAAQ,IAAI,kBAAmB;SAC5C,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CACnB,IAAgB,EAChB,cAAyC;QAEzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;YACxD,aAAa,EAAE,IAAI;YACnB,cAAc;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC1B,WAAmB,EACnB,cAAyC;QAEzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;YACxD,cAAc,EAAE,WAAW;YAC3B,cAAc;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,UAAkB,EAClB,UAAkB;QAElB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YAChD,UAAU;YACV,UAAU;SACb,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAClB,IAAgB,EAChB,UAAsB,EACtB,gBAA6B;QAE7B,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YAChG,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,UAAU;YACvB,gBAAgB;YAChB,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,EAAE,aAA2B;YACjC,6DAA6D;YAC7D,mFAAmF;YACnF,QAAQ,EAAE,QAAQ,IAAI,kBAAmB;SAC5C,CAAA;IACL,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC1B,IAAgB,EAChB,SAAiC,EACjC,UAAsB,EACtB,gBAA8B;QAE9B,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YAChG,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,SAAS;YAC1B,WAAW,EAAE,UAAU;YACvB,gBAAgB;YAChB,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,EAAE,aAA2B;YACjC,6DAA6D;YAC7D,mFAAmF;YACnF,QAAQ,EAAE,QAAQ,IAAI,kBAAmB;SAC5C,CAAA;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAChB,WAAmB,EACnB,cAAyC;QAEzC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACnD,cAAc,EAAE,WAAW;YAC3B,cAAc;YACd,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO,IAAkB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,uBAAuB,CACzB,WAAmB,EACnB,cAAyC,EACzC,gBAAyC;QAEzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACjF,cAAc,EAAE,WAAW;YAC3B,cAAc;YACd,gBAAgB;YAChB,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,EAAE,IAAkB;YACxB,6DAA6D;YAC7D,mFAAmF;YACnF,QAAQ,EAAE,QAAQ,IAAI,kBAAmB;SAC5C,CAAA;IACL,CAAC;IAED,KAAK,CAAC,+BAA+B,CACjC,WAAmB,EACnB,gBAAwB,EACxB,UAAsB,EACtB,gBAAyC;QAEzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACjF,cAAc,EAAE,WAAW;YAC3B,gBAAgB;YAChB,WAAW,EAAE,UAAU;YACvB,gBAAgB;YAChB,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,EAAE,IAAkB;YACxB,6DAA6D;YAC7D,mFAAmF;YACnF,QAAQ,EAAE,QAAQ,IAAI,kBAAmB;SAC5C,CAAA;IACL,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC5B,WAAmB,EACnB,QAAgB;QAEhB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACnD,cAAc,EAAE,WAAW;YAC3B,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,OAAO,IAAkB,CAAC;IAC9B,CAAC;CACJ;AAxVD,oEAwVC"}
1
+ {"version":3,"file":"openPGPCrypto.js","sourceRoot":"","sources":["../../src/crypto/openPGPCrypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { DiagnosticResult } from './interface';
2
+ /**
3
+ * A base class for class that should provide diagnostic events
4
+ * as a separate generator. Simply inherit from this class and use
5
+ * `enqueueEvent` to enqueue the observed events. The events will be
6
+ * available via `iterateEvents` generator.
7
+ */
8
+ export declare class EventsGenerator {
9
+ private eventQueue;
10
+ private waitingResolvers;
11
+ protected enqueueEvent(event: DiagnosticResult): void;
12
+ iterateEvents(): AsyncGenerator<DiagnosticResult>;
13
+ private waitForEvent;
14
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventsGenerator = void 0;
4
+ /**
5
+ * A base class for class that should provide diagnostic events
6
+ * as a separate generator. Simply inherit from this class and use
7
+ * `enqueueEvent` to enqueue the observed events. The events will be
8
+ * available via `iterateEvents` generator.
9
+ */
10
+ class EventsGenerator {
11
+ eventQueue = [];
12
+ waitingResolvers = [];
13
+ enqueueEvent(event) {
14
+ this.eventQueue.push(event);
15
+ // Notify all waiting generators
16
+ const resolvers = this.waitingResolvers.splice(0);
17
+ resolvers.forEach(resolve => resolve());
18
+ }
19
+ async *iterateEvents() {
20
+ try {
21
+ while (true) {
22
+ if (this.eventQueue.length === 0) {
23
+ await this.waitForEvent();
24
+ }
25
+ while (this.eventQueue.length > 0) {
26
+ const event = this.eventQueue.shift();
27
+ if (event) {
28
+ yield event;
29
+ }
30
+ }
31
+ }
32
+ }
33
+ finally {
34
+ this.waitingResolvers.splice(0);
35
+ }
36
+ }
37
+ waitForEvent() {
38
+ return new Promise((resolve) => {
39
+ if (this.eventQueue.length > 0) {
40
+ resolve();
41
+ }
42
+ else {
43
+ this.waitingResolvers.push(resolve);
44
+ }
45
+ });
46
+ }
47
+ }
48
+ exports.EventsGenerator = EventsGenerator;
49
+ //# sourceMappingURL=eventsGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventsGenerator.js","sourceRoot":"","sources":["../../src/diagnostic/eventsGenerator.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAa,eAAe;IAChB,UAAU,GAAuB,EAAE,CAAC;IACpC,gBAAgB,GAAsB,EAAE,CAAC;IAEvC,YAAY,CAAC,KAAuB;QAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,gCAAgC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAA,CAAE,aAAa;QAChB,IAAI,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;gBACV,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC9B,CAAC;gBAED,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACtC,IAAI,KAAK,EAAE,CAAC;wBACR,MAAM,KAAK,CAAC;oBAChB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAEO,YAAY;QAChB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAvCD,0CAuCC"}
@@ -0,0 +1,16 @@
1
+ import { ProtonDriveHTTPClient, ProtonDriveHTTPClientBlobOptions, ProtonDriveHTTPClientJsonOptions } from "../interface";
2
+ import { EventsGenerator } from './eventsGenerator';
3
+ /**
4
+ * Special HTTP client that is compatible with the SDK.
5
+ *
6
+ * It is a probe into SDK to observe whats going on and report any suspicious
7
+ * behavior.
8
+ *
9
+ * It should be used only for diagnostic purposes.
10
+ */
11
+ export declare class DiagnosticHTTPClient extends EventsGenerator implements ProtonDriveHTTPClient {
12
+ private httpClient;
13
+ constructor(httpClient: ProtonDriveHTTPClient);
14
+ fetchJson(options: ProtonDriveHTTPClientJsonOptions): Promise<Response>;
15
+ fetchBlob(options: ProtonDriveHTTPClientBlobOptions): Promise<Response>;
16
+ }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiagnosticHTTPClient = void 0;
4
+ const eventsGenerator_1 = require("./eventsGenerator");
5
+ /**
6
+ * Special HTTP client that is compatible with the SDK.
7
+ *
8
+ * It is a probe into SDK to observe whats going on and report any suspicious
9
+ * behavior.
10
+ *
11
+ * It should be used only for diagnostic purposes.
12
+ */
13
+ class DiagnosticHTTPClient extends eventsGenerator_1.EventsGenerator {
14
+ httpClient;
15
+ constructor(httpClient) {
16
+ super();
17
+ this.httpClient = httpClient;
18
+ this.httpClient = httpClient;
19
+ }
20
+ async fetchJson(options) {
21
+ try {
22
+ const response = await this.httpClient.fetchJson(options);
23
+ if (response.status >= 400 && response.status !== 429) {
24
+ try {
25
+ const json = await response.json();
26
+ this.enqueueEvent({
27
+ type: 'http_error',
28
+ request: {
29
+ url: options.url,
30
+ method: options.method,
31
+ json: options.json,
32
+ },
33
+ response: {
34
+ status: response.status,
35
+ statusText: response.statusText,
36
+ json,
37
+ },
38
+ });
39
+ return new Response(JSON.stringify(json), {
40
+ status: response.status,
41
+ statusText: response.statusText,
42
+ headers: response.headers,
43
+ });
44
+ }
45
+ catch (jsonError) {
46
+ this.enqueueEvent({
47
+ type: 'http_error',
48
+ request: {
49
+ url: options.url,
50
+ method: options.method,
51
+ json: options.json,
52
+ },
53
+ response: {
54
+ status: response.status,
55
+ statusText: response.statusText,
56
+ jsonError,
57
+ },
58
+ });
59
+ }
60
+ }
61
+ return response;
62
+ }
63
+ catch (error) {
64
+ this.enqueueEvent({
65
+ type: 'http_error',
66
+ request: {
67
+ url: options.url,
68
+ method: options.method,
69
+ json: options.json,
70
+ },
71
+ error,
72
+ });
73
+ throw error;
74
+ }
75
+ }
76
+ fetchBlob(options) {
77
+ return this.httpClient.fetchBlob(options);
78
+ }
79
+ }
80
+ exports.DiagnosticHTTPClient = DiagnosticHTTPClient;
81
+ //# sourceMappingURL=httpClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpClient.js","sourceRoot":"","sources":["../../src/diagnostic/httpClient.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD;;;;;;;GAOG;AACH,MAAa,oBAAqB,SAAQ,iCAAe;IACjC;IAApB,YAAoB,UAAiC;QACjD,KAAK,EAAE,CAAC;QADQ,eAAU,GAAV,UAAU,CAAuB;QAEjD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAyC;QACrD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE1D,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACpD,IAAI,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAEnC,IAAI,CAAC,YAAY,CAAC;wBACd,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE;4BACL,GAAG,EAAE,OAAO,CAAC,GAAG;4BAChB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,IAAI,EAAE,OAAO,CAAC,IAAI;yBACrB;wBACD,QAAQ,EAAE;4BACN,MAAM,EAAE,QAAQ,CAAC,MAAM;4BACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,IAAI;yBACP;qBACJ,CAAC,CAAC;oBAEH,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;wBACtC,MAAM,EAAE,QAAQ,CAAC,MAAM;wBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC5B,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,SAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC,YAAY,CAAC;wBACd,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE;4BACL,GAAG,EAAE,OAAO,CAAC,GAAG;4BAChB,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,IAAI,EAAE,OAAO,CAAC,IAAI;yBACrB;wBACD,QAAQ,EAAE;4BACN,MAAM,EAAE,QAAQ,CAAC,MAAM;4BACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,SAAS;yBACZ;qBACJ,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC;gBACd,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE;oBACL,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;iBACrB;gBACD,KAAK;aACR,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAyC;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ;AApED,oDAoEC"}
@@ -0,0 +1,10 @@
1
+ import { ProtonDriveClientContructorParameters } from "../interface";
2
+ import { Diagnostic } from "./interface";
3
+ export type { Diagnostic, DiagnosticResult } from "./interface";
4
+ /**
5
+ * Initializes the diagnostic tool. It creates the instance of
6
+ * ProtonDriveClient with the special probes to observe the logs,
7
+ * metrics and HTTP calls; and enforced null/empty cache to always
8
+ * start from scratch.
9
+ */
10
+ export declare function initDiagnostic(options: Omit<ProtonDriveClientContructorParameters, 'entitiesCache' | 'cryptoCache' | 'telemetry'>): Diagnostic;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initDiagnostic = initDiagnostic;
4
+ const cache_1 = require("../cache");
5
+ const protonDriveClient_1 = require("../protonDriveClient");
6
+ const httpClient_1 = require("./httpClient");
7
+ const sdkDiagnostic_1 = require("./sdkDiagnostic");
8
+ const sdkDiagnosticFull_1 = require("./sdkDiagnosticFull");
9
+ const telemetry_1 = require("./telemetry");
10
+ /**
11
+ * Initializes the diagnostic tool. It creates the instance of
12
+ * ProtonDriveClient with the special probes to observe the logs,
13
+ * metrics and HTTP calls; and enforced null/empty cache to always
14
+ * start from scratch.
15
+ */
16
+ function initDiagnostic(options) {
17
+ const httpClient = new httpClient_1.DiagnosticHTTPClient(options.httpClient);
18
+ const telemetry = new telemetry_1.DiagnosticTelemetry();
19
+ const protonDriveClient = new protonDriveClient_1.ProtonDriveClient({
20
+ ...options,
21
+ httpClient,
22
+ // Ensure we always start with a clean state.
23
+ // Do not use memory cache as diagnostic should visit each node
24
+ // only once and we don't want to grow memory usage.
25
+ entitiesCache: new cache_1.NullCache(),
26
+ // However, we need to use memory cache for crypto cache to avoid
27
+ // re-fetching the same key for all the children.
28
+ cryptoCache: new cache_1.MemoryCache(),
29
+ // Special telemetry that observes the logs and metrics.
30
+ telemetry,
31
+ });
32
+ const diagnostic = new sdkDiagnostic_1.SDKDiagnostic(protonDriveClient);
33
+ return new sdkDiagnosticFull_1.FullSDKDiagnostic(diagnostic, telemetry, httpClient);
34
+ }
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diagnostic/index.ts"],"names":[],"mappings":";;AAiBA,wCAoBC;AArCD,oCAAkD;AAElD,4DAAyD;AACzD,6CAAoD;AAEpD,mDAAgD;AAChD,2DAAwD;AACxD,2CAAkD;AAIlD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,OAAmG;IAC9H,MAAM,UAAU,GAAG,IAAI,iCAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,+BAAmB,EAAE,CAAC;IAE5C,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,CAAC;QAC5C,GAAG,OAAO;QACV,UAAU;QACV,6CAA6C;QAC7C,+DAA+D;QAC/D,oDAAoD;QACpD,aAAa,EAAE,IAAI,iBAAS,EAAE;QAC9B,iEAAiE;QACjE,iDAAiD;QACjD,WAAW,EAAE,IAAI,mBAAW,EAAE;QAC9B,wDAAwD;QACxD,SAAS;KACZ,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,6BAAa,CAAC,iBAAiB,CAAC,CAAC;IACxD,OAAO,IAAI,qCAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A WritableStream that computes SHA1 hash on the fly.
3
+ * The computed SHA1 hash is available after the stream is closed.
4
+ */
5
+ export declare class IntegrityVerificationStream extends WritableStream<Uint8Array> {
6
+ private sha1Hash;
7
+ private _computedSha1;
8
+ private _computedSizeInBytes;
9
+ private _isClosed;
10
+ constructor();
11
+ /**
12
+ * Get the computed SHA1 hash. Only available after the stream is closed.
13
+ * @returns The SHA1 hash as a hex string, or null if not yet computed or stream was aborted
14
+ */
15
+ get computedSha1(): string | undefined;
16
+ /**
17
+ * Get the computed size in bytes. Only available after the stream is closed.
18
+ * @returns The size in bytes, or 0 if not yet computed or stream was aborted
19
+ */
20
+ get computedSizeInBytes(): number | undefined;
21
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntegrityVerificationStream = void 0;
4
+ const legacy_1 = require("@noble/hashes/legacy");
5
+ const utils_1 = require("@noble/hashes/utils");
6
+ /**
7
+ * A WritableStream that computes SHA1 hash on the fly.
8
+ * The computed SHA1 hash is available after the stream is closed.
9
+ */
10
+ class IntegrityVerificationStream extends WritableStream {
11
+ sha1Hash = legacy_1.sha1.create();
12
+ _computedSha1 = undefined;
13
+ _computedSizeInBytes = 0;
14
+ _isClosed = false;
15
+ constructor() {
16
+ super({
17
+ start: () => { },
18
+ write: (chunk) => {
19
+ if (this._isClosed) {
20
+ throw new Error('Cannot write to a closed stream');
21
+ }
22
+ this.sha1Hash.update(chunk);
23
+ this._computedSizeInBytes += chunk.length;
24
+ },
25
+ close: () => {
26
+ if (!this._isClosed) {
27
+ this._computedSha1 = (0, utils_1.bytesToHex)(this.sha1Hash.digest());
28
+ this._isClosed = true;
29
+ }
30
+ },
31
+ abort: () => {
32
+ this._isClosed = true;
33
+ this._computedSha1 = undefined;
34
+ }
35
+ });
36
+ }
37
+ /**
38
+ * Get the computed SHA1 hash. Only available after the stream is closed.
39
+ * @returns The SHA1 hash as a hex string, or null if not yet computed or stream was aborted
40
+ */
41
+ get computedSha1() {
42
+ return this._computedSha1;
43
+ }
44
+ /**
45
+ * Get the computed size in bytes. Only available after the stream is closed.
46
+ * @returns The size in bytes, or 0 if not yet computed or stream was aborted
47
+ */
48
+ get computedSizeInBytes() {
49
+ if (!this._isClosed) {
50
+ return undefined;
51
+ }
52
+ return this._computedSizeInBytes;
53
+ }
54
+ }
55
+ exports.IntegrityVerificationStream = IntegrityVerificationStream;
56
+ //# sourceMappingURL=integrityVerificationStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrityVerificationStream.js","sourceRoot":"","sources":["../../src/diagnostic/integrityVerificationStream.ts"],"names":[],"mappings":";;;AAAA,iDAA4C;AAC5C,+CAAiD;AAEjD;;;GAGG;AACH,MAAa,2BAA4B,SAAQ,cAA0B;IAC/D,QAAQ,GAAG,aAAI,CAAC,MAAM,EAAE,CAAC;IACzB,aAAa,GAAuB,SAAS,CAAC;IAC9C,oBAAoB,GAAW,CAAC,CAAC;IACjC,SAAS,GAAG,KAAK,CAAC;IAE1B;QACI,KAAK,CAAC;YACF,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;YACf,KAAK,EAAE,CAAC,KAAiB,EAAE,EAAE;gBACzB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACvD,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,oBAAoB,IAAI,KAAK,CAAC,MAAM,CAAC;YAC9C,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,aAAa,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC1B,CAAC;YACL,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YACnC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,IAAI,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;CAEJ;AAhDD,kEAgDC"}
@@ -0,0 +1,102 @@
1
+ import { DegradedNode, MaybeNode, MetricEvent } from "../interface";
2
+ import { LogRecord } from "../telemetry";
3
+ export interface Diagnostic {
4
+ verifyMyFiles(options?: DiagnosticOptions): AsyncGenerator<DiagnosticResult>;
5
+ verifyNodeTree(node: MaybeNode, options?: DiagnosticOptions): AsyncGenerator<DiagnosticResult>;
6
+ }
7
+ export type DiagnosticOptions = {
8
+ verifyContent?: boolean;
9
+ verifyThumbnails?: boolean;
10
+ };
11
+ export type DiagnosticResult = FatalErrorResult | SdkErrorResult | HttpErrorResult | DegradedNodeResult | UnverifiedAuthorResult | ExtendedAttributesErrorResult | ExtendedAttributesMissingFieldResult | ContentFileMissingRevisionResult | ContentIntegrityErrorResult | ContentDownloadErrorResult | ThumbnailsErrorResult | LogErrorResult | LogWarningResult | MetricResult;
12
+ export type FatalErrorResult = {
13
+ type: 'fatal_error';
14
+ message: string;
15
+ error?: unknown;
16
+ };
17
+ export type SdkErrorResult = {
18
+ type: 'sdk_error';
19
+ call: string;
20
+ error?: unknown;
21
+ };
22
+ export type HttpErrorResult = {
23
+ type: 'http_error';
24
+ request: {
25
+ url: string;
26
+ method: string;
27
+ json: unknown;
28
+ };
29
+ error?: unknown;
30
+ response?: {
31
+ status: number;
32
+ statusText: string;
33
+ json?: object;
34
+ jsonError?: unknown;
35
+ };
36
+ };
37
+ export type DegradedNodeResult = {
38
+ type: 'degraded_node';
39
+ nodeUid: string;
40
+ node: DegradedNode;
41
+ };
42
+ export type UnverifiedAuthorResult = {
43
+ type: 'unverified_author';
44
+ nodeUid: string;
45
+ revisionUid?: string;
46
+ authorType: string;
47
+ claimedAuthor?: string;
48
+ error: string;
49
+ node: MaybeNode;
50
+ };
51
+ export type ExtendedAttributesErrorResult = {
52
+ type: 'extended_attributes_error';
53
+ nodeUid: string;
54
+ revisionUid?: string;
55
+ field: 'sha1';
56
+ value: string;
57
+ };
58
+ export type ExtendedAttributesMissingFieldResult = {
59
+ type: 'extended_attributes_missing_field';
60
+ nodeUid: string;
61
+ revisionUid?: string;
62
+ missingField: 'sha1';
63
+ };
64
+ export type ContentFileMissingRevisionResult = {
65
+ type: 'content_file_missing_revision';
66
+ nodeUid: string;
67
+ revisionUid?: string;
68
+ };
69
+ export type ContentIntegrityErrorResult = {
70
+ type: 'content_integrity_error';
71
+ nodeUid: string;
72
+ revisionUid?: string;
73
+ claimedSha1?: string;
74
+ computedSha1?: string;
75
+ claimedSizeInBytes?: number;
76
+ computedSizeInBytes?: number;
77
+ };
78
+ export type ContentDownloadErrorResult = {
79
+ type: 'content_download_error';
80
+ nodeUid: string;
81
+ revisionUid?: string;
82
+ error: unknown;
83
+ };
84
+ export type ThumbnailsErrorResult = {
85
+ type: 'thumbnails_error';
86
+ nodeUid: string;
87
+ revisionUid?: string;
88
+ message?: string;
89
+ error?: unknown;
90
+ };
91
+ export type LogErrorResult = {
92
+ type: 'log_error';
93
+ log: LogRecord;
94
+ };
95
+ export type LogWarningResult = {
96
+ type: 'log_warning';
97
+ log: LogRecord;
98
+ };
99
+ export type MetricResult = {
100
+ type: 'metric';
101
+ event: MetricEvent;
102
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/diagnostic/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { MaybeNode } from "../interface";
2
+ import { ProtonDriveClient } from "../protonDriveClient";
3
+ import { Diagnostic, DiagnosticOptions, DiagnosticResult } from "./interface";
4
+ /**
5
+ * Diagnostic tool that uses SDK to traverse the node tree and verify
6
+ * the integrity of the node tree.
7
+ *
8
+ * It produces only events that can be read by direct SDK invocation.
9
+ * To get the full diagnostic, use {@link FullSDKDiagnostic}.
10
+ */
11
+ export declare class SDKDiagnostic implements Diagnostic {
12
+ private protonDriveClient;
13
+ constructor(protonDriveClient: ProtonDriveClient);
14
+ verifyMyFiles(options?: DiagnosticOptions): AsyncGenerator<DiagnosticResult>;
15
+ verifyNodeTree(node: MaybeNode, options?: DiagnosticOptions): AsyncGenerator<DiagnosticResult>;
16
+ private verifyNode;
17
+ private verifyAuthor;
18
+ private verifyFileExtendedAttributes;
19
+ private verifyContent;
20
+ private verifyThumbnails;
21
+ private verifyNodeChildren;
22
+ }