@protontech/drive-sdk 0.6.2 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/interface/index.d.ts +1 -0
  2. package/dist/interface/index.js.map +1 -1
  3. package/dist/interface/nodes.d.ts +14 -10
  4. package/dist/interface/nodes.js +5 -8
  5. package/dist/interface/nodes.js.map +1 -1
  6. package/dist/interface/photos.d.ts +62 -0
  7. package/dist/interface/photos.js +3 -0
  8. package/dist/interface/photos.js.map +1 -0
  9. package/dist/internal/apiService/apiService.d.ts +2 -2
  10. package/dist/internal/apiService/apiService.js.map +1 -1
  11. package/dist/internal/apiService/driveTypes.d.ts +1294 -517
  12. package/dist/internal/apiService/errors.js +4 -3
  13. package/dist/internal/apiService/errors.js.map +1 -1
  14. package/dist/internal/download/cryptoService.js +8 -6
  15. package/dist/internal/download/cryptoService.js.map +1 -1
  16. package/dist/internal/download/fileDownloader.d.ts +2 -1
  17. package/dist/internal/download/fileDownloader.js +6 -3
  18. package/dist/internal/download/fileDownloader.js.map +1 -1
  19. package/dist/internal/download/index.d.ts +1 -1
  20. package/dist/internal/download/index.js +3 -3
  21. package/dist/internal/download/index.js.map +1 -1
  22. package/dist/internal/errors.d.ts +1 -0
  23. package/dist/internal/errors.js +4 -0
  24. package/dist/internal/errors.js.map +1 -1
  25. package/dist/internal/nodes/apiService.d.ts +68 -16
  26. package/dist/internal/nodes/apiService.js +138 -85
  27. package/dist/internal/nodes/apiService.js.map +1 -1
  28. package/dist/internal/nodes/apiService.test.js +7 -5
  29. package/dist/internal/nodes/apiService.test.js.map +1 -1
  30. package/dist/internal/nodes/cache.d.ts +16 -8
  31. package/dist/internal/nodes/cache.js +19 -5
  32. package/dist/internal/nodes/cache.js.map +1 -1
  33. package/dist/internal/nodes/cache.test.js +1 -0
  34. package/dist/internal/nodes/cache.test.js.map +1 -1
  35. package/dist/internal/nodes/cryptoReporter.d.ts +3 -3
  36. package/dist/internal/nodes/cryptoReporter.js.map +1 -1
  37. package/dist/internal/nodes/cryptoService.d.ts +13 -22
  38. package/dist/internal/nodes/cryptoService.js +47 -16
  39. package/dist/internal/nodes/cryptoService.js.map +1 -1
  40. package/dist/internal/nodes/cryptoService.test.js +262 -17
  41. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  42. package/dist/internal/nodes/events.d.ts +2 -2
  43. package/dist/internal/nodes/events.js.map +1 -1
  44. package/dist/internal/nodes/index.test.js +1 -0
  45. package/dist/internal/nodes/index.test.js.map +1 -1
  46. package/dist/internal/nodes/interface.d.ts +14 -3
  47. package/dist/internal/nodes/nodesAccess.d.ts +36 -20
  48. package/dist/internal/nodes/nodesAccess.js +54 -29
  49. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  50. package/dist/internal/nodes/nodesManagement.d.ts +34 -14
  51. package/dist/internal/nodes/nodesManagement.js +44 -31
  52. package/dist/internal/nodes/nodesManagement.js.map +1 -1
  53. package/dist/internal/nodes/nodesManagement.test.js +60 -14
  54. package/dist/internal/nodes/nodesManagement.test.js.map +1 -1
  55. package/dist/internal/nodes/nodesRevisions.d.ts +2 -2
  56. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  57. package/dist/internal/photos/albums.d.ts +2 -2
  58. package/dist/internal/photos/albums.js.map +1 -1
  59. package/dist/internal/photos/index.d.ts +19 -3
  60. package/dist/internal/photos/index.js +38 -8
  61. package/dist/internal/photos/index.js.map +1 -1
  62. package/dist/internal/photos/interface.d.ts +18 -9
  63. package/dist/internal/photos/nodes.d.ts +57 -0
  64. package/dist/internal/photos/nodes.js +165 -0
  65. package/dist/internal/photos/nodes.js.map +1 -0
  66. package/dist/internal/photos/timeline.d.ts +2 -2
  67. package/dist/internal/photos/timeline.js.map +1 -1
  68. package/dist/internal/photos/timeline.test.js.map +1 -1
  69. package/dist/internal/photos/upload.d.ts +2 -2
  70. package/dist/internal/photos/upload.js.map +1 -1
  71. package/dist/internal/sharingPublic/index.d.ts +6 -6
  72. package/dist/internal/sharingPublic/index.js +8 -7
  73. package/dist/internal/sharingPublic/index.js.map +1 -1
  74. package/dist/internal/sharingPublic/nodes.d.ts +16 -3
  75. package/dist/internal/sharingPublic/nodes.js +34 -2
  76. package/dist/internal/sharingPublic/nodes.js.map +1 -1
  77. package/dist/internal/sharingPublic/unauthApiService.d.ts +17 -0
  78. package/dist/internal/sharingPublic/unauthApiService.js +31 -0
  79. package/dist/internal/sharingPublic/unauthApiService.js.map +1 -0
  80. package/dist/internal/sharingPublic/unauthApiService.test.d.ts +1 -0
  81. package/dist/internal/sharingPublic/unauthApiService.test.js +27 -0
  82. package/dist/internal/sharingPublic/unauthApiService.test.js.map +1 -0
  83. package/dist/internal/upload/apiService.d.ts +4 -3
  84. package/dist/internal/upload/apiService.js.map +1 -1
  85. package/dist/internal/upload/cryptoService.d.ts +8 -3
  86. package/dist/internal/upload/cryptoService.js +45 -9
  87. package/dist/internal/upload/cryptoService.js.map +1 -1
  88. package/dist/internal/upload/fileUploader.test.js +1 -1
  89. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  90. package/dist/internal/upload/interface.d.ts +25 -13
  91. package/dist/internal/upload/manager.js +7 -4
  92. package/dist/internal/upload/manager.js.map +1 -1
  93. package/dist/internal/upload/manager.test.js +5 -4
  94. package/dist/internal/upload/manager.test.js.map +1 -1
  95. package/dist/internal/upload/streamUploader.js +9 -4
  96. package/dist/internal/upload/streamUploader.js.map +1 -1
  97. package/dist/internal/upload/streamUploader.test.js +8 -5
  98. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  99. package/dist/protonDriveClient.d.ts +11 -2
  100. package/dist/protonDriveClient.js +20 -4
  101. package/dist/protonDriveClient.js.map +1 -1
  102. package/dist/protonDrivePhotosClient.d.ts +8 -8
  103. package/dist/protonDrivePhotosClient.js +8 -9
  104. package/dist/protonDrivePhotosClient.js.map +1 -1
  105. package/dist/protonDrivePublicLinkClient.d.ts +9 -2
  106. package/dist/protonDrivePublicLinkClient.js +16 -5
  107. package/dist/protonDrivePublicLinkClient.js.map +1 -1
  108. package/dist/transformers.d.ts +7 -2
  109. package/dist/transformers.js +37 -0
  110. package/dist/transformers.js.map +1 -1
  111. package/package.json +1 -1
  112. package/src/interface/index.ts +1 -0
  113. package/src/interface/nodes.ts +14 -11
  114. package/src/interface/photos.ts +67 -0
  115. package/src/internal/apiService/apiService.ts +2 -2
  116. package/src/internal/apiService/driveTypes.ts +1294 -517
  117. package/src/internal/apiService/errors.ts +5 -4
  118. package/src/internal/download/cryptoService.ts +13 -6
  119. package/src/internal/download/fileDownloader.ts +4 -2
  120. package/src/internal/download/index.ts +3 -0
  121. package/src/internal/errors.ts +4 -0
  122. package/src/internal/nodes/apiService.test.ts +7 -5
  123. package/src/internal/nodes/apiService.ts +210 -124
  124. package/src/internal/nodes/cache.test.ts +1 -0
  125. package/src/internal/nodes/cache.ts +32 -13
  126. package/src/internal/nodes/cryptoReporter.ts +3 -3
  127. package/src/internal/nodes/cryptoService.test.ts +380 -18
  128. package/src/internal/nodes/cryptoService.ts +77 -36
  129. package/src/internal/nodes/events.ts +2 -2
  130. package/src/internal/nodes/index.test.ts +1 -0
  131. package/src/internal/nodes/interface.ts +17 -2
  132. package/src/internal/nodes/nodesAccess.ts +99 -54
  133. package/src/internal/nodes/nodesManagement.test.ts +69 -14
  134. package/src/internal/nodes/nodesManagement.ts +94 -48
  135. package/src/internal/nodes/nodesRevisions.ts +3 -3
  136. package/src/internal/photos/albums.ts +2 -2
  137. package/src/internal/photos/index.ts +45 -3
  138. package/src/internal/photos/interface.ts +21 -9
  139. package/src/internal/photos/nodes.ts +233 -0
  140. package/src/internal/photos/timeline.test.ts +2 -2
  141. package/src/internal/photos/timeline.ts +2 -2
  142. package/src/internal/photos/upload.ts +3 -3
  143. package/src/internal/sharingPublic/index.ts +7 -3
  144. package/src/internal/sharingPublic/nodes.ts +43 -2
  145. package/src/internal/sharingPublic/unauthApiService.test.ts +29 -0
  146. package/src/internal/sharingPublic/unauthApiService.ts +32 -0
  147. package/src/internal/upload/apiService.ts +4 -3
  148. package/src/internal/upload/cryptoService.ts +73 -12
  149. package/src/internal/upload/fileUploader.test.ts +1 -1
  150. package/src/internal/upload/interface.ts +24 -13
  151. package/src/internal/upload/manager.test.ts +5 -4
  152. package/src/internal/upload/manager.ts +7 -4
  153. package/src/internal/upload/streamUploader.test.ts +8 -5
  154. package/src/internal/upload/streamUploader.ts +10 -4
  155. package/src/protonDriveClient.ts +27 -5
  156. package/src/protonDrivePhotosClient.ts +23 -23
  157. package/src/protonDrivePublicLinkClient.ts +19 -3
  158. package/src/transformers.ts +49 -2
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PhotosNodesManagement = exports.PhotosNodesCryptoService = exports.PhotosNodesAccess = exports.PhotosNodesCache = exports.PhotosNodesAPIService = void 0;
4
+ const interface_1 = require("../../interface");
5
+ const apiService_1 = require("../nodes/apiService");
6
+ const cache_1 = require("../nodes/cache");
7
+ const cryptoService_1 = require("../nodes/cryptoService");
8
+ const nodesAccess_1 = require("../nodes/nodesAccess");
9
+ const nodesManagement_1 = require("../nodes/nodesManagement");
10
+ const uids_1 = require("../uids");
11
+ class PhotosNodesAPIService extends apiService_1.NodeAPIServiceBase {
12
+ async fetchNodeMetadata(volumeId, linkIds, signal) {
13
+ const response = await this.apiService.post(`drive/photos/volumes/${volumeId}/links`, {
14
+ LinkIDs: linkIds,
15
+ }, signal);
16
+ return response.Links;
17
+ }
18
+ linkToEncryptedNode(volumeId, link, isOwnVolumeId) {
19
+ const { baseNodeMetadata, baseCryptoNodeMetadata } = (0, apiService_1.linkToEncryptedNodeBaseMetadata)(this.logger, volumeId, link, isOwnVolumeId);
20
+ if (link.Link.Type === 2 && link.Photo && link.Photo.ActiveRevision) {
21
+ const node = (0, apiService_1.linkToEncryptedNode)(this.logger, volumeId, { ...link, File: link.Photo, Folder: null }, isOwnVolumeId);
22
+ return {
23
+ ...node,
24
+ type: interface_1.NodeType.Photo,
25
+ photo: {
26
+ captureTime: new Date(link.Photo.CaptureTime * 1000),
27
+ mainPhotoNodeUid: link.Photo.MainPhotoLinkID
28
+ ? (0, uids_1.makeNodeUid)(volumeId, link.Photo.MainPhotoLinkID)
29
+ : undefined,
30
+ relatedPhotoNodeUids: link.Photo.RelatedPhotosLinkIDs.map((relatedLinkId) => (0, uids_1.makeNodeUid)(volumeId, relatedLinkId)),
31
+ contentHash: link.Photo.ContentHash || undefined,
32
+ tags: link.Photo.Tags,
33
+ albums: link.Photo.Albums.map((album) => ({
34
+ nodeUid: (0, uids_1.makeNodeUid)(volumeId, album.AlbumLinkID),
35
+ additionTime: new Date(album.AddedTime * 1000),
36
+ nameHash: album.Hash,
37
+ contentHash: album.ContentHash,
38
+ })),
39
+ },
40
+ };
41
+ }
42
+ if (link.Link.Type === 3) {
43
+ return {
44
+ ...baseNodeMetadata,
45
+ encryptedCrypto: {
46
+ ...baseCryptoNodeMetadata,
47
+ },
48
+ };
49
+ }
50
+ const baseLink = {
51
+ Link: link.Link,
52
+ Membership: link.Membership,
53
+ Sharing: link.Sharing,
54
+ // @ts-expect-error The photo link can have a folder type, but not always. If not set, it will use other paths.
55
+ Folder: link.Folder,
56
+ File: null, // The photo link metadata never returns a file type.
57
+ };
58
+ return (0, apiService_1.linkToEncryptedNode)(this.logger, volumeId, baseLink, isOwnVolumeId);
59
+ }
60
+ }
61
+ exports.PhotosNodesAPIService = PhotosNodesAPIService;
62
+ class PhotosNodesCache extends cache_1.NodesCacheBase {
63
+ serialiseNode(node) {
64
+ return (0, cache_1.serialiseNode)(node);
65
+ }
66
+ // TODO: use better deserialisation with validation
67
+ deserialiseNode(nodeData) {
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
+ const node = (0, cache_1.deserialiseNode)(nodeData);
70
+ if (!node ||
71
+ typeof node !== 'object' ||
72
+ (typeof node.photo !== 'object' && node.photo !== undefined) ||
73
+ (typeof node.photo?.captureTime !== 'string' && node.folder?.captureTime !== undefined) ||
74
+ (typeof node.photo?.albums !== 'object' && node.photo?.albums !== undefined)) {
75
+ throw new Error(`Invalid node data: ${nodeData}`);
76
+ }
77
+ return {
78
+ ...node,
79
+ photo: !node.photo
80
+ ? undefined
81
+ : {
82
+ captureTime: new Date(node.photo.captureTime),
83
+ mainPhotoNodeUid: node.photo.mainPhotoNodeUid,
84
+ relatedPhotoNodeUids: node.photo.relatedPhotoNodeUids,
85
+ contentHash: node.photo.contentHash,
86
+ tags: node.photo.tags,
87
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
+ albums: node.photo.albums?.map((album) => ({
89
+ nodeUid: album.nodeUid,
90
+ additionTime: new Date(album.additionTime),
91
+ })),
92
+ },
93
+ };
94
+ }
95
+ }
96
+ exports.PhotosNodesCache = PhotosNodesCache;
97
+ class PhotosNodesAccess extends nodesAccess_1.NodesAccessBase {
98
+ async getParentKeys(node) {
99
+ if (node.parentUid || node.shareId) {
100
+ return super.getParentKeys(node);
101
+ }
102
+ if (node.photo?.albums.length) {
103
+ // If photo is in multiple albums, we just need to get keys for one of them.
104
+ // Prefer to find a cached key first.
105
+ for (const album of node.photo.albums) {
106
+ try {
107
+ const keys = await this.cryptoCache.getNodeKeys(album.nodeUid);
108
+ return {
109
+ key: keys.key,
110
+ hashKey: keys.hashKey,
111
+ };
112
+ }
113
+ catch {
114
+ // We ignore missing or invalid keys here, its just optimization.
115
+ // If it cannot be fixed, it will bubble up later when requesting
116
+ // the node keys for one of the albums.
117
+ }
118
+ }
119
+ const albumNodeUid = node.photo.albums[0].nodeUid;
120
+ return this.getNodeKeys(albumNodeUid);
121
+ }
122
+ // This is bug that should not happen.
123
+ // API cannot provide node without parent or share or album.
124
+ throw new Error('Node has neither parent node nor share nor album');
125
+ }
126
+ getDegradedUndecryptableNode(encryptedNode, error) {
127
+ return this.getDegradedUndecryptableNodeBase(encryptedNode, error);
128
+ }
129
+ parseNode(unparsedNode) {
130
+ if (unparsedNode.type === interface_1.NodeType.Photo) {
131
+ const node = (0, nodesAccess_1.parseNode)(this.logger, {
132
+ ...unparsedNode,
133
+ type: interface_1.NodeType.File,
134
+ });
135
+ return {
136
+ ...node,
137
+ photo: unparsedNode.photo,
138
+ };
139
+ }
140
+ return (0, nodesAccess_1.parseNode)(this.logger, unparsedNode);
141
+ }
142
+ }
143
+ exports.PhotosNodesAccess = PhotosNodesAccess;
144
+ class PhotosNodesCryptoService extends cryptoService_1.NodesCryptoService {
145
+ async decryptNode(encryptedNode, parentKey) {
146
+ const decryptedNode = await super.decryptNode(encryptedNode, parentKey);
147
+ if (decryptedNode.node.type === interface_1.NodeType.Photo) {
148
+ return {
149
+ node: {
150
+ ...decryptedNode.node,
151
+ photo: encryptedNode.photo,
152
+ },
153
+ };
154
+ }
155
+ return decryptedNode;
156
+ }
157
+ }
158
+ exports.PhotosNodesCryptoService = PhotosNodesCryptoService;
159
+ class PhotosNodesManagement extends nodesManagement_1.NodesManagementBase {
160
+ generateNodeFolder(nodeUid, parentNodeUid, name, encryptedCrypto) {
161
+ return this.generateNodeFolderBase(nodeUid, parentNodeUid, name, encryptedCrypto);
162
+ }
163
+ }
164
+ exports.PhotosNodesManagement = PhotosNodesManagement;
165
+ //# sourceMappingURL=nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/internal/photos/nodes.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { DriveCrypto } from '../../crypto';
2
2
  import { Logger } from '../../interface';
3
3
  import { PhotosAPIService } from './apiService';
4
- import { NodesService } from './interface';
4
+ import { PhotosNodesAccess } from './nodes';
5
5
  import { PhotoSharesManager } from './shares';
6
6
  /**
7
7
  * Provides access to the photo timeline.
@@ -12,7 +12,7 @@ export declare class PhotosTimeline {
12
12
  private driveCrypto;
13
13
  private photoShares;
14
14
  private nodesService;
15
- constructor(logger: Logger, apiService: PhotosAPIService, driveCrypto: DriveCrypto, photoShares: PhotoSharesManager, nodesService: NodesService);
15
+ constructor(logger: Logger, apiService: PhotosAPIService, driveCrypto: DriveCrypto, photoShares: PhotoSharesManager, nodesService: PhotosNodesAccess);
16
16
  iterateTimeline(signal?: AbortSignal): AsyncGenerator<{
17
17
  nodeUid: string;
18
18
  captureTime: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../../src/internal/photos/timeline.ts"],"names":[],"mappings":";;;AAEA,kCAAsC;AAKtC;;GAEG;AACH,MAAa,cAAc;IAEX;IACA;IACA;IACA;IACA;IALZ,YACY,MAAc,EACd,UAA4B,EAC5B,WAAwB,EACxB,WAA+B,EAC/B,YAA0B;QAJ1B,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAkB;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAoB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAElC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,CAAC,eAAe,CAAC,MAAoB;QAKvC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACzD,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,YAAmC,EAAE,MAAoB;QAC1F,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAE5F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7E,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CACxC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW,CAC1F,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,qCAAqC,QAAQ,mBAAmB,WAAW,gBAAgB,QAAQ,EAAE,CACxG,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA1DD,wCA0DC"}
1
+ {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../../src/internal/photos/timeline.ts"],"names":[],"mappings":";;;AAEA,kCAAsC;AAKtC;;GAEG;AACH,MAAa,cAAc;IAEX;IACA;IACA;IACA;IACA;IALZ,YACY,MAAc,EACd,UAA4B,EAC5B,WAAwB,EACxB,WAA+B,EAC/B,YAA+B;QAJ/B,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAkB;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,gBAAW,GAAX,WAAW,CAAoB;QAC/B,iBAAY,GAAZ,YAAY,CAAmB;QAEvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,CAAC,eAAe,CAAC,MAAoB;QAKvC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACzD,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,YAAmC,EAAE,MAAoB;QAC1F,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAE5F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7E,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CACxC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,WAAW,KAAK,WAAW,CAC1F,CAAC;QAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,qCAAqC,QAAQ,mBAAmB,WAAW,gBAAgB,QAAQ,EAAE,CACxG,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AA1DD,wCA0DC"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.test.js","sourceRoot":"","sources":["../../../src/internal/photos/timeline.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline.test.js","sourceRoot":"","sources":["../../../src/internal/photos/timeline.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DriveCrypto } from '../../crypto';
2
- import { ProtonDriveTelemetry, UploadMetadata, Thumbnail } from '../../interface';
2
+ import { ProtonDriveTelemetry, UploadMetadata, Thumbnail, AnonymousUser } from '../../interface';
3
3
  import { DriveAPIService } from '../apiService';
4
4
  import { UploadAPIService } from '../upload/apiService';
5
5
  import { BlockVerifier } from '../upload/blockVerifier';
@@ -49,7 +49,7 @@ export declare class PhotoUploadAPIService extends UploadAPIService {
49
49
  constructor(apiService: DriveAPIService, clientUid: string | undefined);
50
50
  commitDraftPhoto(draftNodeRevisionUid: string, options: {
51
51
  armoredManifestSignature: string;
52
- signatureEmail: string;
52
+ signatureEmail: string | AnonymousUser;
53
53
  armoredExtendedAttributes?: string;
54
54
  }, photo: {
55
55
  contentHash: string;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/internal/photos/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/internal/photos/upload.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { DriveCrypto, PrivateKey } from '../../crypto';
2
2
  import { ProtonDriveCryptoCache, ProtonDriveTelemetry, ProtonDriveAccount, ProtonDriveEntitiesCache } from '../../interface';
3
3
  import { DriveAPIService } from '../apiService';
4
- import { NodesManagement } from '../nodes/nodesManagement';
5
4
  import { NodesRevisons } from '../nodes/nodesRevisions';
6
- import { SharingPublicNodesAccess } from './nodes';
5
+ import { SharingPublicNodesAccess, SharingPublicNodesManagement } from './nodes';
7
6
  import { SharingPublicSharesManager } from './shares';
8
7
  export { SharingPublicSessionManager } from './session/manager';
8
+ export { UnauthDriveAPIService } from './unauthApiService';
9
9
  /**
10
10
  * Provides facade for the whole sharing public module.
11
11
  *
@@ -15,11 +15,11 @@ export { SharingPublicSessionManager } from './session/manager';
15
15
  * This facade provides internal interface that other modules can use to
16
16
  * interact with the public links.
17
17
  */
18
- export declare function initSharingPublicModule(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, driveEntitiesCache: ProtonDriveEntitiesCache, driveCryptoCache: ProtonDriveCryptoCache, driveCrypto: DriveCrypto, account: ProtonDriveAccount, url: string, token: string, publicShareKey: PrivateKey, publicRootNodeUid: string): {
18
+ export declare function initSharingPublicModule(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, driveEntitiesCache: ProtonDriveEntitiesCache, driveCryptoCache: ProtonDriveCryptoCache, driveCrypto: DriveCrypto, account: ProtonDriveAccount, url: string, token: string, publicShareKey: PrivateKey, publicRootNodeUid: string, isAnonymousContext: boolean): {
19
19
  shares: SharingPublicSharesManager;
20
20
  nodes: {
21
21
  access: SharingPublicNodesAccess;
22
- management: NodesManagement;
22
+ management: SharingPublicNodesManagement;
23
23
  revisions: NodesRevisons;
24
24
  };
25
25
  };
@@ -29,8 +29,8 @@ export declare function initSharingPublicModule(telemetry: ProtonDriveTelemetry,
29
29
  * The public link nodes initializes the core nodes module, but uses public
30
30
  * link shares or crypto reporter instead.
31
31
  */
32
- export declare function initSharingPublicNodesModule(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, driveEntitiesCache: ProtonDriveEntitiesCache, driveCryptoCache: ProtonDriveCryptoCache, driveCrypto: DriveCrypto, account: ProtonDriveAccount, sharesService: SharingPublicSharesManager, url: string, token: string, publicShareKey: PrivateKey, publicRootNodeUid: string): {
32
+ export declare function initSharingPublicNodesModule(telemetry: ProtonDriveTelemetry, apiService: DriveAPIService, driveEntitiesCache: ProtonDriveEntitiesCache, driveCryptoCache: ProtonDriveCryptoCache, driveCrypto: DriveCrypto, account: ProtonDriveAccount, sharesService: SharingPublicSharesManager, url: string, token: string, publicShareKey: PrivateKey, publicRootNodeUid: string, isAnonymousContext: boolean): {
33
33
  access: SharingPublicNodesAccess;
34
- management: NodesManagement;
34
+ management: SharingPublicNodesManagement;
35
35
  revisions: NodesRevisons;
36
36
  };
@@ -1,19 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SharingPublicSessionManager = void 0;
3
+ exports.UnauthDriveAPIService = exports.SharingPublicSessionManager = void 0;
4
4
  exports.initSharingPublicModule = initSharingPublicModule;
5
5
  exports.initSharingPublicNodesModule = initSharingPublicNodesModule;
6
6
  const apiService_1 = require("../nodes/apiService");
7
7
  const cache_1 = require("../nodes/cache");
8
8
  const cryptoCache_1 = require("../nodes/cryptoCache");
9
9
  const cryptoService_1 = require("../nodes/cryptoService");
10
- const nodesManagement_1 = require("../nodes/nodesManagement");
11
10
  const nodesRevisions_1 = require("../nodes/nodesRevisions");
12
11
  const cryptoReporter_1 = require("./cryptoReporter");
13
12
  const nodes_1 = require("./nodes");
14
13
  const shares_1 = require("./shares");
15
14
  var manager_1 = require("./session/manager");
16
15
  Object.defineProperty(exports, "SharingPublicSessionManager", { enumerable: true, get: function () { return manager_1.SharingPublicSessionManager; } });
16
+ var unauthApiService_1 = require("./unauthApiService");
17
+ Object.defineProperty(exports, "UnauthDriveAPIService", { enumerable: true, get: function () { return unauthApiService_1.UnauthDriveAPIService; } });
17
18
  /**
18
19
  * Provides facade for the whole sharing public module.
19
20
  *
@@ -23,9 +24,9 @@ Object.defineProperty(exports, "SharingPublicSessionManager", { enumerable: true
23
24
  * This facade provides internal interface that other modules can use to
24
25
  * interact with the public links.
25
26
  */
26
- function initSharingPublicModule(telemetry, apiService, driveEntitiesCache, driveCryptoCache, driveCrypto, account, url, token, publicShareKey, publicRootNodeUid) {
27
+ function initSharingPublicModule(telemetry, apiService, driveEntitiesCache, driveCryptoCache, driveCrypto, account, url, token, publicShareKey, publicRootNodeUid, isAnonymousContext) {
27
28
  const shares = new shares_1.SharingPublicSharesManager(account, publicShareKey, publicRootNodeUid);
28
- const nodes = initSharingPublicNodesModule(telemetry, apiService, driveEntitiesCache, driveCryptoCache, driveCrypto, account, shares, url, token, publicShareKey, publicRootNodeUid);
29
+ const nodes = initSharingPublicNodesModule(telemetry, apiService, driveEntitiesCache, driveCryptoCache, driveCrypto, account, shares, url, token, publicShareKey, publicRootNodeUid, isAnonymousContext);
29
30
  return {
30
31
  shares,
31
32
  nodes,
@@ -37,15 +38,15 @@ function initSharingPublicModule(telemetry, apiService, driveEntitiesCache, driv
37
38
  * The public link nodes initializes the core nodes module, but uses public
38
39
  * link shares or crypto reporter instead.
39
40
  */
40
- function initSharingPublicNodesModule(telemetry, apiService, driveEntitiesCache, driveCryptoCache, driveCrypto, account, sharesService, url, token, publicShareKey, publicRootNodeUid) {
41
+ function initSharingPublicNodesModule(telemetry, apiService, driveEntitiesCache, driveCryptoCache, driveCrypto, account, sharesService, url, token, publicShareKey, publicRootNodeUid, isAnonymousContext) {
41
42
  const clientUid = undefined; // No client UID for public context yet.
42
43
  const api = new apiService_1.NodeAPIService(telemetry.getLogger('nodes-api'), apiService, clientUid);
43
44
  const cache = new cache_1.NodesCache(telemetry.getLogger('nodes-cache'), driveEntitiesCache);
44
45
  const cryptoCache = new cryptoCache_1.NodesCryptoCache(telemetry.getLogger('nodes-cache'), driveCryptoCache);
45
46
  const cryptoReporter = new cryptoReporter_1.SharingPublicCryptoReporter(telemetry);
46
47
  const cryptoService = new cryptoService_1.NodesCryptoService(telemetry, driveCrypto, account, cryptoReporter);
47
- const nodesAccess = new nodes_1.SharingPublicNodesAccess(telemetry, api, cache, cryptoCache, cryptoService, sharesService, url, token, publicShareKey, publicRootNodeUid);
48
- const nodesManagement = new nodesManagement_1.NodesManagement(api, cryptoCache, cryptoService, nodesAccess);
48
+ const nodesAccess = new nodes_1.SharingPublicNodesAccess(telemetry, api, cache, cryptoCache, cryptoService, sharesService, url, token, publicShareKey, publicRootNodeUid, isAnonymousContext);
49
+ const nodesManagement = new nodes_1.SharingPublicNodesManagement(api, cryptoCache, cryptoService, nodesAccess);
49
50
  const nodesRevisions = new nodesRevisions_1.NodesRevisons(telemetry.getLogger('nodes'), api, cryptoService, nodesAccess);
50
51
  return {
51
52
  access: nodesAccess,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/index.ts"],"names":[],"mappings":";;;AA6BA,0DA+BC;AAQD,oEAuCC;AAnGD,oDAAqD;AACrD,0CAA4C;AAC5C,sDAAwD;AACxD,0DAA4D;AAC5D,8DAA2D;AAC3D,4DAAwD;AACxD,qDAA+D;AAC/D,mCAAmD;AACnD,qCAAsD;AAEtD,6CAAgE;AAAvD,sHAAA,2BAA2B,OAAA;AAEpC;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CACnC,SAA+B,EAC/B,UAA2B,EAC3B,kBAA4C,EAC5C,gBAAwC,EACxC,WAAwB,EACxB,OAA2B,EAC3B,GAAW,EACX,KAAa,EACb,cAA0B,EAC1B,iBAAyB;IAEzB,MAAM,MAAM,GAAG,IAAI,mCAA0B,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,4BAA4B,CACtC,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,cAAc,EACd,iBAAiB,CACpB,CAAC;IAEF,OAAO;QACH,MAAM;QACN,KAAK;KACR,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAgB,4BAA4B,CACxC,SAA+B,EAC/B,UAA2B,EAC3B,kBAA4C,EAC5C,gBAAwC,EACxC,WAAwB,EACxB,OAA2B,EAC3B,aAAyC,EACzC,GAAW,EACX,KAAa,EACb,cAA0B,EAC1B,iBAAyB;IAEzB,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,wCAAwC;IACrE,MAAM,GAAG,GAAG,IAAI,2BAAc,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,kBAAU,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,IAAI,8BAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,IAAI,4CAA2B,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,kCAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,IAAI,gCAAwB,CAC5C,SAAS,EACT,GAAG,EACH,KAAK,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,GAAG,EACH,KAAK,EACL,cAAc,EACd,iBAAiB,CACpB,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,IAAI,8BAAa,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAExG,OAAO;QACH,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,cAAc;KAC5B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/index.ts"],"names":[],"mappings":";;;AA6BA,0DAiCC;AAQD,oEAyCC;AAvGD,oDAAqD;AACrD,0CAA4C;AAC5C,sDAAwD;AACxD,0DAA4D;AAC5D,4DAAwD;AACxD,qDAA+D;AAC/D,mCAAiF;AACjF,qCAAsD;AAEtD,6CAAgE;AAAvD,sHAAA,2BAA2B,OAAA;AACpC,uDAA2D;AAAlD,yHAAA,qBAAqB,OAAA;AAE9B;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CACnC,SAA+B,EAC/B,UAA2B,EAC3B,kBAA4C,EAC5C,gBAAwC,EACxC,WAAwB,EACxB,OAA2B,EAC3B,GAAW,EACX,KAAa,EACb,cAA0B,EAC1B,iBAAyB,EACzB,kBAA2B;IAE3B,MAAM,MAAM,GAAG,IAAI,mCAA0B,CAAC,OAAO,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,4BAA4B,CACtC,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,MAAM,EACN,GAAG,EACH,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,CACrB,CAAC;IAEF,OAAO;QACH,MAAM;QACN,KAAK;KACR,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAgB,4BAA4B,CACxC,SAA+B,EAC/B,UAA2B,EAC3B,kBAA4C,EAC5C,gBAAwC,EACxC,WAAwB,EACxB,OAA2B,EAC3B,aAAyC,EACzC,GAAW,EACX,KAAa,EACb,cAA0B,EAC1B,iBAAyB,EACzB,kBAA2B;IAE3B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,wCAAwC;IACrE,MAAM,GAAG,GAAG,IAAI,2BAAc,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,kBAAU,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,IAAI,8BAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,IAAI,4CAA2B,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,kCAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,IAAI,gCAAwB,CAC5C,SAAS,EACT,GAAG,EACH,KAAK,EACL,WAAW,EACX,aAAa,EACb,aAAa,EACb,GAAG,EACH,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,CACrB,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,oCAA4B,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IACvG,MAAM,cAAc,GAAG,IAAI,8BAAa,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAExG,OAAO;QACH,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,eAAe;QAC3B,SAAS,EAAE,cAAc;KAC5B,CAAC;AACN,CAAC"}
@@ -1,18 +1,31 @@
1
- import { ProtonDriveTelemetry } from '../../interface';
1
+ import { NodeResult, ProtonDriveTelemetry } from '../../interface';
2
2
  import { NodeAPIService } from '../nodes/apiService';
3
3
  import { NodesCache } from '../nodes/cache';
4
4
  import { NodesCryptoCache } from '../nodes/cryptoCache';
5
5
  import { NodesCryptoService } from '../nodes/cryptoService';
6
6
  import { NodesAccess } from '../nodes/nodesAccess';
7
+ import { NodesManagement } from '../nodes/nodesManagement';
7
8
  import { SharingPublicSharesManager } from './shares';
8
- import { DecryptedNode, DecryptedNodeKeys } from '../nodes/interface';
9
+ import { DecryptedNode, DecryptedNodeKeys, NodeSigningKeys } from '../nodes/interface';
9
10
  import { PrivateKey } from '../../crypto';
10
11
  export declare class SharingPublicNodesAccess extends NodesAccess {
11
12
  private url;
12
13
  private token;
13
14
  private publicShareKey;
14
15
  private publicRootNodeUid;
15
- constructor(telemetry: ProtonDriveTelemetry, apiService: NodeAPIService, cache: NodesCache, cryptoCache: NodesCryptoCache, cryptoService: NodesCryptoService, sharesService: SharingPublicSharesManager, url: string, token: string, publicShareKey: PrivateKey, publicRootNodeUid: string);
16
+ private isAnonymousContext;
17
+ constructor(telemetry: ProtonDriveTelemetry, apiService: NodeAPIService, cache: NodesCache, cryptoCache: NodesCryptoCache, cryptoService: NodesCryptoService, sharesService: SharingPublicSharesManager, url: string, token: string, publicShareKey: PrivateKey, publicRootNodeUid: string, isAnonymousContext: boolean);
16
18
  getParentKeys(node: Pick<DecryptedNode, 'uid' | 'parentUid' | 'shareId'>): Promise<Pick<DecryptedNodeKeys, 'key' | 'hashKey'>>;
17
19
  getNodeUrl(nodeUid: string): Promise<string>;
20
+ getNodeSigningKeys(uids: {
21
+ nodeUid: string;
22
+ parentNodeUid?: string;
23
+ } | {
24
+ nodeUid?: string;
25
+ parentNodeUid: string;
26
+ }): Promise<NodeSigningKeys>;
27
+ }
28
+ export declare class SharingPublicNodesManagement extends NodesManagement {
29
+ constructor(apiService: NodeAPIService, cryptoCache: NodesCryptoCache, cryptoService: NodesCryptoService, nodesAccess: SharingPublicNodesAccess);
30
+ deleteNodes(nodeUids: string[], signal?: AbortSignal): AsyncGenerator<NodeResult>;
18
31
  }
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SharingPublicNodesAccess = void 0;
3
+ exports.SharingPublicNodesManagement = exports.SharingPublicNodesAccess = void 0;
4
4
  const nodesAccess_1 = require("../nodes/nodesAccess");
5
+ const nodesManagement_1 = require("../nodes/nodesManagement");
5
6
  const mediaTypes_1 = require("../nodes/mediaTypes");
6
7
  const uids_1 = require("../uids");
7
8
  class SharingPublicNodesAccess extends nodesAccess_1.NodesAccess {
@@ -9,15 +10,18 @@ class SharingPublicNodesAccess extends nodesAccess_1.NodesAccess {
9
10
  token;
10
11
  publicShareKey;
11
12
  publicRootNodeUid;
12
- constructor(telemetry, apiService, cache, cryptoCache, cryptoService, sharesService, url, token, publicShareKey, publicRootNodeUid) {
13
+ isAnonymousContext;
14
+ constructor(telemetry, apiService, cache, cryptoCache, cryptoService, sharesService, url, token, publicShareKey, publicRootNodeUid, isAnonymousContext) {
13
15
  super(telemetry, apiService, cache, cryptoCache, cryptoService, sharesService);
14
16
  this.url = url;
15
17
  this.token = token;
16
18
  this.publicShareKey = publicShareKey;
17
19
  this.publicRootNodeUid = publicRootNodeUid;
20
+ this.isAnonymousContext = isAnonymousContext;
18
21
  this.token = token;
19
22
  this.publicShareKey = publicShareKey;
20
23
  this.publicRootNodeUid = publicRootNodeUid;
24
+ this.isAnonymousContext = isAnonymousContext;
21
25
  }
22
26
  async getParentKeys(node) {
23
27
  // If we reached the root node of the public link, return the public
@@ -41,6 +45,34 @@ class SharingPublicNodesAccess extends nodesAccess_1.NodesAccess {
41
45
  // Public link doesn't support specific node URLs.
42
46
  return this.url;
43
47
  }
48
+ async getNodeSigningKeys(uids) {
49
+ if (this.isAnonymousContext) {
50
+ const nodeKeys = uids.nodeUid ? await this.getNodeKeys(uids.nodeUid) : { key: undefined };
51
+ const parentNodeKeys = uids.parentNodeUid ? await this.getNodeKeys(uids.parentNodeUid) : { key: undefined };
52
+ return {
53
+ type: 'nodeKey',
54
+ nodeKey: nodeKeys.key,
55
+ parentNodeKey: parentNodeKeys.key,
56
+ };
57
+ }
58
+ return super.getNodeSigningKeys(uids);
59
+ }
44
60
  }
45
61
  exports.SharingPublicNodesAccess = SharingPublicNodesAccess;
62
+ class SharingPublicNodesManagement extends nodesManagement_1.NodesManagement {
63
+ constructor(apiService, cryptoCache, cryptoService, nodesAccess) {
64
+ super(apiService, cryptoCache, cryptoService, nodesAccess);
65
+ }
66
+ async *deleteNodes(nodeUids, signal) {
67
+ // Public link does not support trashing and deleting trashed nodes.
68
+ // Instead, if user is owner, API allows directly deleting existing nodes.
69
+ for await (const result of this.apiService.deleteExistingNodes(nodeUids, signal)) {
70
+ if (result.ok) {
71
+ await this.nodesAccess.notifyNodeDeleted(result.uid);
72
+ }
73
+ yield result;
74
+ }
75
+ }
76
+ }
77
+ exports.SharingPublicNodesManagement = SharingPublicNodesManagement;
46
78
  //# sourceMappingURL=nodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/nodes.ts"],"names":[],"mappings":";;;AAKA,sDAAmD;AACnD,oDAAsE;AACtE,kCAAuC;AAKvC,MAAa,wBAAyB,SAAQ,yBAAW;IAQzC;IACA;IACA;IACA;IAVZ,YACI,SAA+B,EAC/B,UAA0B,EAC1B,KAAiB,EACjB,WAA6B,EAC7B,aAAiC,EACjC,aAAyC,EACjC,GAAW,EACX,KAAa,EACb,cAA0B,EAC1B,iBAAyB;QAEjC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QALvE,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,mBAAc,GAAd,cAAc,CAAY;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAQ;QAGjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CACf,IAA0D;QAE1D,oEAAoE;QACpE,kEAAkE;QAClE,8DAA8D;QAC9D,qDAAqD;QACrD,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtC,OAAO;gBACH,GAAG,EAAE,IAAI,CAAC,cAAc;aAC3B,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,IAAA,6BAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAA,6BAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,OAAO,mCAAmC,IAAI,wBAAwB,IAAI,CAAC,KAAK,WAAW,MAAM,EAAE,CAAC;QACxG,CAAC;QAED,kDAAkD;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AA9CD,4DA8CC"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/nodes.ts"],"names":[],"mappings":";;;AAKA,sDAAmD;AACnD,8DAA2D;AAC3D,oDAAsE;AACtE,kCAAuC;AAKvC,MAAa,wBAAyB,SAAQ,yBAAW;IAQzC;IACA;IACA;IACA;IACA;IAXZ,YACI,SAA+B,EAC/B,UAA0B,EAC1B,KAAiB,EACjB,WAA6B,EAC7B,aAAiC,EACjC,aAAyC,EACjC,GAAW,EACX,KAAa,EACb,cAA0B,EAC1B,iBAAyB,EACzB,kBAA2B;QAEnC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QANvE,QAAG,GAAH,GAAG,CAAQ;QACX,UAAK,GAAL,KAAK,CAAQ;QACb,mBAAc,GAAd,cAAc,CAAY;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,uBAAkB,GAAlB,kBAAkB,CAAS;QAGnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,aAAa,CACf,IAA0D;QAE1D,oEAAoE;QACpE,kEAAkE;QAClE,8DAA8D;QAC9D,qDAAqD;QACrD,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtC,OAAO;gBACH,GAAG,EAAE,IAAI,CAAC,cAAc;aAC3B,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,IAAA,6BAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,IAAA,6BAAgB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAChE,OAAO,mCAAmC,IAAI,wBAAwB,IAAI,CAAC,KAAK,WAAW,MAAM,EAAE,CAAC;QACxG,CAAC;QAED,kDAAkD;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACpB,IAA+F;QAE/F,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC1F,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC5G,OAAO;gBACH,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,QAAQ,CAAC,GAAG;gBACrB,aAAa,EAAE,cAAc,CAAC,GAAG;aACpC,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACJ;AAhED,4DAgEC;AAED,MAAa,4BAA6B,SAAQ,iCAAe;IAC7D,YACI,UAA0B,EAC1B,WAA6B,EAC7B,aAAiC,EACjC,WAAqC;QAErC,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,CAAC,WAAW,CAAC,QAAkB,EAAE,MAAoB;QACvD,oEAAoE;QACpE,0EAA0E;QAC1E,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/E,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,MAAM,CAAC;QACjB,CAAC;IACL,CAAC;CACJ;AApBD,oEAoBC"}
@@ -0,0 +1,17 @@
1
+ import { DriveAPIService } from '../apiService';
2
+ /**
3
+ * Drive API Service for public links.
4
+ *
5
+ * This service is used to make requests to the Drive API without
6
+ * authentication. The unauth context uses the same endpoint, but
7
+ * with an `unauth` prefix. The goal is to avoid the need to use
8
+ * different path and use the exact endpoint for both contexts.
9
+ * However, API has global logic for handling expired sessions that
10
+ * is not compatible with the unauth context. For this reason, this
11
+ * service is used to make requests to the Drive API for public
12
+ * link context in the mean time.
13
+ */
14
+ export declare class UnauthDriveAPIService extends DriveAPIService {
15
+ protected makeRequest<RequestPayload, ResponsePayload>(url: string, method?: string, data?: RequestPayload, signal?: AbortSignal): Promise<ResponsePayload>;
16
+ }
17
+ export declare function getUnauthEndpoint(url: string): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UnauthDriveAPIService = void 0;
4
+ exports.getUnauthEndpoint = getUnauthEndpoint;
5
+ const apiService_1 = require("../apiService");
6
+ /**
7
+ * Drive API Service for public links.
8
+ *
9
+ * This service is used to make requests to the Drive API without
10
+ * authentication. The unauth context uses the same endpoint, but
11
+ * with an `unauth` prefix. The goal is to avoid the need to use
12
+ * different path and use the exact endpoint for both contexts.
13
+ * However, API has global logic for handling expired sessions that
14
+ * is not compatible with the unauth context. For this reason, this
15
+ * service is used to make requests to the Drive API for public
16
+ * link context in the mean time.
17
+ */
18
+ class UnauthDriveAPIService extends apiService_1.DriveAPIService {
19
+ async makeRequest(url, method = 'GET', data, signal) {
20
+ const unauthUrl = getUnauthEndpoint(url);
21
+ return super.makeRequest(unauthUrl, method, data, signal);
22
+ }
23
+ }
24
+ exports.UnauthDriveAPIService = UnauthDriveAPIService;
25
+ function getUnauthEndpoint(url) {
26
+ if (url.startsWith('drive/urls/') || url.startsWith('drive/v2/urls/')) {
27
+ return url;
28
+ }
29
+ return url.replace(/^drive\//, 'drive/unauth/');
30
+ }
31
+ //# sourceMappingURL=unauthApiService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unauthApiService.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/unauthApiService.ts"],"names":[],"mappings":";;;AA0BA,8CAKC;AA/BD,8CAAgD;AAEhD;;;;;;;;;;;GAWG;AACH,MAAa,qBAAsB,SAAQ,4BAAe;IAC5C,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,MAAM,GAAG,KAAK,EACd,IAAqB,EACrB,MAAoB;QAEpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACJ;AAVD,sDAUC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IACzC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpE,OAAO,GAAG,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const unauthApiService_1 = require("./unauthApiService");
4
+ describe('getUnauthEndpoint', () => {
5
+ it('should not change urls endpoints', () => {
6
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/urls/anything')).toBe('drive/urls/anything');
7
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/urls/drive/anything')).toBe('drive/urls/drive/anything');
8
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/urls/drive/v2/anything')).toBe('drive/urls/drive/v2/anything');
9
+ });
10
+ it('should not change v2/urls endpoints', () => {
11
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/urls/anything')).toBe('drive/v2/urls/anything');
12
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/urls/drive/anything')).toBe('drive/v2/urls/drive/anything');
13
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/urls/drive/v2/anything')).toBe('drive/v2/urls/drive/v2/anything');
14
+ });
15
+ it('should put unauth prefix for v2 endpoints', () => {
16
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/anything')).toBe('drive/unauth/v2/anything');
17
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/drive/anything')).toBe('drive/unauth/v2/drive/anything');
18
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/v2/drive/v2/anything')).toBe('drive/unauth/v2/drive/v2/anything');
19
+ });
20
+ it('should put unauth prefix for non-v2 endpoints', () => {
21
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything')).toBe('drive/unauth/anything');
22
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything/v2/anything')).toBe('drive/unauth/anything/v2/anything');
23
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything/drive/anything')).toBe('drive/unauth/anything/drive/anything');
24
+ expect((0, unauthApiService_1.getUnauthEndpoint)('drive/anything/drive/v2/anything')).toBe('drive/unauth/anything/drive/v2/anything');
25
+ });
26
+ });
27
+ //# sourceMappingURL=unauthApiService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unauthApiService.test.js","sourceRoot":"","sources":["../../../src/internal/sharingPublic/unauthApiService.test.ts"],"names":[],"mappings":";;AAAA,yDAAuD;AAEvD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,IAAA,oCAAiB,EAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAA,oCAAiB,EAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzF,MAAM,CAAC,IAAA,oCAAiB,EAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,IAAA,oCAAiB,EAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACnF,MAAM,CAAC,IAAA,oCAAiB,EAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAA,oCAAiB,EAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IACzG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,IAAA,oCAAiB,EAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAChF,MAAM,CAAC,IAAA,oCAAiB,EAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC5F,MAAM,CAAC,IAAA,oCAAiB,EAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,IAAA,oCAAiB,EAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAA,oCAAiB,EAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAClG,MAAM,CAAC,IAAA,oCAAiB,EAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACxG,MAAM,CAAC,IAAA,oCAAiB,EAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAClH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { AnonymousUser } from '../../interface';
1
2
  import { DriveAPIService } from '../apiService';
2
3
  import { UploadTokens } from './interface';
3
4
  import { ThumbnailType } from '../../interface';
@@ -15,7 +16,7 @@ export declare class UploadAPIService {
15
16
  armoredNodePassphraseSignature: string;
16
17
  base64ContentKeyPacket: string;
17
18
  armoredContentKeyPacketSignature: string;
18
- signatureEmail: string;
19
+ signatureEmail: string | AnonymousUser;
19
20
  }): Promise<{
20
21
  nodeUid: string;
21
22
  nodeRevisionUid: string;
@@ -30,7 +31,7 @@ export declare class UploadAPIService {
30
31
  verificationCode: Uint8Array;
31
32
  base64ContentKeyPacket: string;
32
33
  }>;
33
- requestBlockUpload(draftNodeRevisionUid: string, addressId: string, blocks: {
34
+ requestBlockUpload(draftNodeRevisionUid: string, addressId: string | AnonymousUser, blocks: {
34
35
  contentBlocks: {
35
36
  index: number;
36
37
  hash: Uint8Array;
@@ -46,7 +47,7 @@ export declare class UploadAPIService {
46
47
  }): Promise<UploadTokens>;
47
48
  commitDraftRevision(draftNodeRevisionUid: string, options: {
48
49
  armoredManifestSignature: string;
49
- signatureEmail: string;
50
+ signatureEmail: string | AnonymousUser;
50
51
  armoredExtendedAttributes?: string;
51
52
  }): Promise<void>;
52
53
  deleteDraft(draftNodeUid: string): Promise<void>;