@protontech/drive-sdk 0.11.0 → 0.12.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.
- package/dist/crypto/driveCrypto.d.ts +16 -1
- package/dist/crypto/driveCrypto.js +55 -19
- package/dist/crypto/driveCrypto.js.map +1 -1
- package/dist/crypto/driveCrypto.test.js +1 -1
- package/dist/crypto/driveCrypto.test.js.map +1 -1
- package/dist/crypto/interface.d.ts +22 -8
- package/dist/crypto/openPGPCrypto.d.ts +30 -7
- package/dist/crypto/openPGPCrypto.js +46 -8
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/interface/featureFlags.d.ts +4 -1
- package/dist/interface/featureFlags.js +5 -0
- package/dist/interface/featureFlags.js.map +1 -1
- package/dist/interface/index.d.ts +1 -0
- package/dist/interface/index.js +3 -1
- package/dist/interface/index.js.map +1 -1
- package/dist/internal/photos/index.d.ts +2 -2
- package/dist/internal/photos/index.js +2 -2
- package/dist/internal/photos/index.js.map +1 -1
- package/dist/internal/photos/upload.d.ts +2 -2
- package/dist/internal/photos/upload.js +2 -2
- package/dist/internal/photos/upload.js.map +1 -1
- package/dist/internal/sharingPublic/nodes.js +11 -4
- package/dist/internal/sharingPublic/nodes.js.map +1 -1
- package/dist/internal/upload/cryptoService.d.ts +4 -2
- package/dist/internal/upload/cryptoService.js +14 -2
- package/dist/internal/upload/cryptoService.js.map +1 -1
- package/dist/internal/upload/index.d.ts +2 -2
- package/dist/internal/upload/index.js +2 -2
- package/dist/internal/upload/index.js.map +1 -1
- package/dist/protonDriveClient.js +1 -1
- package/dist/protonDriveClient.js.map +1 -1
- package/dist/protonDrivePhotosClient.d.ts +1 -1
- package/dist/protonDrivePhotosClient.js +6 -2
- package/dist/protonDrivePhotosClient.js.map +1 -1
- package/dist/protonDrivePublicLinkClient.d.ts +3 -2
- package/dist/protonDrivePublicLinkClient.js +6 -2
- package/dist/protonDrivePublicLinkClient.js.map +1 -1
- package/package.json +1 -1
- package/src/crypto/driveCrypto.test.ts +1 -0
- package/src/crypto/driveCrypto.ts +51 -10
- package/src/crypto/interface.ts +21 -8
- package/src/crypto/openPGPCrypto.ts +68 -8
- package/src/interface/featureFlags.ts +5 -1
- package/src/interface/index.ts +1 -0
- package/src/internal/photos/index.ts +3 -1
- package/src/internal/photos/upload.ts +14 -6
- package/src/internal/sharingPublic/nodes.ts +11 -4
- package/src/internal/upload/cryptoService.ts +24 -2
- package/src/internal/upload/index.ts +3 -2
- package/src/protonDriveClient.ts +1 -0
- package/src/protonDrivePhotosClient.ts +14 -9
- package/src/protonDrivePublicLinkClient.ts +8 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProtonDriveTelemetry, UploadMetadata } from '../../interface';
|
|
1
|
+
import { FeatureFlagProvider, ProtonDriveTelemetry, UploadMetadata } from '../../interface';
|
|
2
2
|
import { DriveAPIService } from '../apiService';
|
|
3
3
|
import { DriveCrypto } from '../../crypto';
|
|
4
4
|
import { UploadAPIService } from './apiService';
|
|
@@ -22,10 +22,11 @@ export function initUploadModule(
|
|
|
22
22
|
driveCrypto: DriveCrypto,
|
|
23
23
|
sharesService: SharesService,
|
|
24
24
|
nodesService: NodesService,
|
|
25
|
+
featureFlagProvider: FeatureFlagProvider,
|
|
25
26
|
clientUid?: string,
|
|
26
27
|
) {
|
|
27
28
|
const api = new UploadAPIService(apiService, clientUid);
|
|
28
|
-
const cryptoService = new UploadCryptoService(driveCrypto, nodesService);
|
|
29
|
+
const cryptoService = new UploadCryptoService(telemetry, driveCrypto, nodesService, featureFlagProvider);
|
|
29
30
|
|
|
30
31
|
const uploadTelemetry = new UploadTelemetry(telemetry, sharesService);
|
|
31
32
|
const manager = new UploadManager(telemetry, api, cryptoService, nodesService, clientUid);
|
package/src/protonDriveClient.ts
CHANGED
|
@@ -46,6 +46,7 @@ import {
|
|
|
46
46
|
import { SDKEvents } from './internal/sdkEvents';
|
|
47
47
|
import { initSharesModule } from './internal/shares';
|
|
48
48
|
import { initSharingModule } from './internal/sharing';
|
|
49
|
+
import { NullFeatureFlagProvider } from './featureFlags';
|
|
49
50
|
|
|
50
51
|
/**
|
|
51
52
|
* ProtonDrivePhotosClient is the interface to access Photos functionality.
|
|
@@ -84,11 +85,15 @@ export class ProtonDrivePhotosClient {
|
|
|
84
85
|
srpModule,
|
|
85
86
|
config,
|
|
86
87
|
telemetry,
|
|
88
|
+
featureFlagProvider,
|
|
87
89
|
latestEventIdProvider,
|
|
88
90
|
}: ProtonDriveClientContructorParameters) {
|
|
89
91
|
if (!telemetry) {
|
|
90
92
|
telemetry = new Telemetry();
|
|
91
93
|
}
|
|
94
|
+
if (!featureFlagProvider) {
|
|
95
|
+
featureFlagProvider = new NullFeatureFlagProvider();
|
|
96
|
+
}
|
|
92
97
|
this.logger = telemetry.getLogger('photos-interface');
|
|
93
98
|
|
|
94
99
|
const fullConfig = getConfig(config);
|
|
@@ -147,6 +152,7 @@ export class ProtonDrivePhotosClient {
|
|
|
147
152
|
cryptoModule,
|
|
148
153
|
this.photoShares,
|
|
149
154
|
this.nodes.access,
|
|
155
|
+
featureFlagProvider,
|
|
150
156
|
fullConfig.clientUid,
|
|
151
157
|
);
|
|
152
158
|
|
|
@@ -658,14 +664,13 @@ export class ProtonDrivePhotosClient {
|
|
|
658
664
|
signal?: AbortSignal,
|
|
659
665
|
): AsyncGenerator<NodeResultWithError> {
|
|
660
666
|
this.logger.info(`Updating ${photos.length} photos`);
|
|
661
|
-
yield
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
);
|
|
667
|
+
yield* this.photos.photos.updatePhotos(
|
|
668
|
+
photos.map((p) => ({
|
|
669
|
+
nodeUid: getUid(p.nodeUid),
|
|
670
|
+
tagsToAdd: p.tagsToAdd || [],
|
|
671
|
+
tagsToRemove: p.tagsToRemove || [],
|
|
672
|
+
})),
|
|
673
|
+
signal,
|
|
674
|
+
);
|
|
670
675
|
}
|
|
671
676
|
}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
NodeResult,
|
|
21
21
|
SDKEvent,
|
|
22
22
|
MemberRole,
|
|
23
|
+
FeatureFlagProvider,
|
|
23
24
|
} from './interface';
|
|
24
25
|
import { Telemetry } from './telemetry';
|
|
25
26
|
import {
|
|
@@ -33,6 +34,7 @@ import { initDownloadModule } from './internal/download';
|
|
|
33
34
|
import { SDKEvents } from './internal/sdkEvents';
|
|
34
35
|
import { initSharingPublicModule, UnauthDriveAPIService } from './internal/sharingPublic';
|
|
35
36
|
import { initUploadModule } from './internal/upload';
|
|
37
|
+
import { NullFeatureFlagProvider } from './featureFlags';
|
|
36
38
|
import { NodesSecurityScanResult } from './internal/sharingPublic/nodesSecurity';
|
|
37
39
|
|
|
38
40
|
/**
|
|
@@ -93,6 +95,7 @@ export class ProtonDrivePublicLinkClient {
|
|
|
93
95
|
srpModule,
|
|
94
96
|
config,
|
|
95
97
|
telemetry,
|
|
98
|
+
featureFlagProvider,
|
|
96
99
|
url,
|
|
97
100
|
token,
|
|
98
101
|
publicShareKey,
|
|
@@ -106,6 +109,7 @@ export class ProtonDrivePublicLinkClient {
|
|
|
106
109
|
srpModule: SRPModule;
|
|
107
110
|
config?: ProtonDriveConfig;
|
|
108
111
|
telemetry?: ProtonDriveTelemetry;
|
|
112
|
+
featureFlagProvider?: FeatureFlagProvider;
|
|
109
113
|
url: string;
|
|
110
114
|
token: string;
|
|
111
115
|
publicShareKey: PrivateKey;
|
|
@@ -116,6 +120,9 @@ export class ProtonDrivePublicLinkClient {
|
|
|
116
120
|
if (!telemetry) {
|
|
117
121
|
telemetry = new Telemetry();
|
|
118
122
|
}
|
|
123
|
+
if (!featureFlagProvider) {
|
|
124
|
+
featureFlagProvider = new NullFeatureFlagProvider();
|
|
125
|
+
}
|
|
119
126
|
this.logger = telemetry.getLogger('publicLink-interface');
|
|
120
127
|
|
|
121
128
|
// Use only in memory cache for public link as there are no events to keep it up to date if persisted.
|
|
@@ -165,6 +172,7 @@ export class ProtonDrivePublicLinkClient {
|
|
|
165
172
|
cryptoModule,
|
|
166
173
|
this.sharingPublic.shares,
|
|
167
174
|
this.sharingPublic.nodes.access,
|
|
175
|
+
featureFlagProvider,
|
|
168
176
|
fullConfig.clientUid,
|
|
169
177
|
);
|
|
170
178
|
|