@protontech/drive-sdk 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/crypto/driveCrypto.d.ts +11 -0
- package/dist/crypto/driveCrypto.js +20 -7
- package/dist/crypto/driveCrypto.js.map +1 -1
- package/dist/crypto/interface.d.ts +10 -1
- package/dist/crypto/openPGPCrypto.d.ts +18 -2
- package/dist/crypto/openPGPCrypto.js +25 -6
- package/dist/crypto/openPGPCrypto.js.map +1 -1
- package/dist/diagnostic/telemetry.d.ts +1 -1
- package/dist/diagnostic/telemetry.js +1 -1
- package/dist/diagnostic/telemetry.js.map +1 -1
- package/dist/interface/download.d.ts +46 -0
- package/dist/interface/index.d.ts +2 -2
- package/dist/interface/index.js.map +1 -1
- package/dist/interface/nodes.d.ts +26 -1
- package/dist/interface/nodes.js.map +1 -1
- package/dist/interface/telemetry.d.ts +5 -2
- package/dist/interface/telemetry.js.map +1 -1
- package/dist/internal/apiService/apiService.js +1 -1
- package/dist/internal/apiService/apiService.js.map +1 -1
- package/dist/internal/apiService/driveTypes.d.ts +78 -165
- package/dist/internal/apiService/index.d.ts +1 -1
- package/dist/internal/apiService/index.js +2 -2
- package/dist/internal/apiService/index.js.map +1 -1
- package/dist/internal/apiService/transformers.d.ts +1 -1
- package/dist/internal/apiService/transformers.js +2 -2
- package/dist/internal/apiService/transformers.js.map +1 -1
- package/dist/internal/download/blockIndex.d.ts +11 -0
- package/dist/internal/download/blockIndex.js +35 -0
- package/dist/internal/download/blockIndex.js.map +1 -0
- package/dist/internal/download/blockIndex.test.d.ts +1 -0
- package/dist/internal/download/blockIndex.test.js +147 -0
- package/dist/internal/download/blockIndex.test.js.map +1 -0
- package/dist/internal/download/fileDownloader.d.ts +6 -2
- package/dist/internal/download/fileDownloader.js +83 -6
- package/dist/internal/download/fileDownloader.js.map +1 -1
- package/dist/internal/download/fileDownloader.test.js +69 -4
- package/dist/internal/download/fileDownloader.test.js.map +1 -1
- package/dist/internal/download/interface.d.ts +4 -4
- package/dist/internal/download/seekableStream.d.ts +80 -0
- package/dist/internal/download/seekableStream.js +163 -0
- package/dist/internal/download/seekableStream.js.map +1 -0
- package/dist/internal/download/seekableStream.test.d.ts +1 -0
- package/dist/internal/download/seekableStream.test.js +149 -0
- package/dist/internal/download/seekableStream.test.js.map +1 -0
- package/dist/internal/download/telemetry.js +1 -1
- package/dist/internal/download/telemetry.js.map +1 -1
- package/dist/internal/download/telemetry.test.js +7 -7
- package/dist/internal/download/telemetry.test.js.map +1 -1
- package/dist/internal/errors.d.ts +1 -1
- package/dist/internal/errors.js +7 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/errors.test.js +44 -10
- package/dist/internal/errors.test.js.map +1 -1
- package/dist/internal/events/index.js +1 -1
- package/dist/internal/events/index.js.map +1 -1
- package/dist/internal/nodes/apiService.js +16 -3
- package/dist/internal/nodes/apiService.js.map +1 -1
- package/dist/internal/nodes/apiService.test.js +43 -7
- package/dist/internal/nodes/apiService.test.js.map +1 -1
- package/dist/internal/nodes/cache.js +9 -2
- package/dist/internal/nodes/cache.js.map +1 -1
- package/dist/internal/nodes/cache.test.js +6 -1
- package/dist/internal/nodes/cache.test.js.map +1 -1
- package/dist/internal/nodes/cryptoService.d.ts +4 -1
- package/dist/internal/nodes/cryptoService.js +66 -16
- package/dist/internal/nodes/cryptoService.js.map +1 -1
- package/dist/internal/nodes/cryptoService.test.js +129 -46
- package/dist/internal/nodes/cryptoService.test.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.d.ts +2 -1
- package/dist/internal/nodes/extendedAttributes.js +27 -1
- package/dist/internal/nodes/extendedAttributes.js.map +1 -1
- package/dist/internal/nodes/extendedAttributes.test.js +59 -6
- package/dist/internal/nodes/extendedAttributes.test.js.map +1 -1
- package/dist/internal/nodes/index.test.js +1 -1
- package/dist/internal/nodes/index.test.js.map +1 -1
- package/dist/internal/nodes/interface.d.ts +18 -2
- package/dist/internal/nodes/nodesAccess.js +11 -1
- package/dist/internal/nodes/nodesAccess.js.map +1 -1
- package/dist/internal/nodes/nodesManagement.js +1 -1
- package/dist/internal/nodes/nodesManagement.js.map +1 -1
- package/dist/internal/nodes/nodesRevisions.d.ts +4 -3
- package/dist/internal/nodes/nodesRevisions.js +2 -2
- package/dist/internal/nodes/nodesRevisions.js.map +1 -1
- package/dist/internal/shares/cryptoService.js +7 -4
- package/dist/internal/shares/cryptoService.js.map +1 -1
- package/dist/internal/shares/cryptoService.test.js +5 -3
- package/dist/internal/shares/cryptoService.test.js.map +1 -1
- package/dist/internal/sharing/apiService.js +5 -5
- package/dist/internal/sharing/apiService.js.map +1 -1
- package/dist/internal/sharing/cryptoService.js +8 -5
- package/dist/internal/sharing/cryptoService.js.map +1 -1
- package/dist/internal/sharing/cryptoService.test.js +7 -4
- package/dist/internal/sharing/cryptoService.test.js.map +1 -1
- package/dist/internal/upload/telemetry.js +2 -2
- package/dist/internal/upload/telemetry.js.map +1 -1
- package/dist/internal/upload/telemetry.test.js +7 -7
- package/dist/internal/upload/telemetry.test.js.map +1 -1
- package/dist/telemetry.d.ts +2 -2
- package/dist/telemetry.js +2 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/tests/telemetry.js +1 -1
- package/dist/tests/telemetry.js.map +1 -1
- package/dist/transformers.d.ts +1 -1
- package/dist/transformers.js +2 -1
- package/dist/transformers.js.map +1 -1
- package/package.json +1 -1
- package/src/crypto/driveCrypto.ts +70 -25
- package/src/crypto/interface.ts +15 -0
- package/src/crypto/openPGPCrypto.ts +37 -5
- package/src/diagnostic/telemetry.ts +1 -1
- package/src/interface/download.ts +46 -0
- package/src/interface/index.ts +2 -1
- package/src/interface/nodes.ts +28 -1
- package/src/interface/telemetry.ts +6 -1
- package/src/internal/apiService/apiService.ts +1 -1
- package/src/internal/apiService/driveTypes.ts +78 -165
- package/src/internal/apiService/index.ts +1 -1
- package/src/internal/apiService/transformers.ts +1 -1
- package/src/internal/download/blockIndex.test.ts +158 -0
- package/src/internal/download/blockIndex.ts +36 -0
- package/src/internal/download/fileDownloader.test.ts +100 -7
- package/src/internal/download/fileDownloader.ts +109 -9
- package/src/internal/download/interface.ts +4 -4
- package/src/internal/download/seekableStream.test.ts +187 -0
- package/src/internal/download/seekableStream.ts +182 -0
- package/src/internal/download/telemetry.test.ts +7 -7
- package/src/internal/download/telemetry.ts +1 -1
- package/src/internal/errors.test.ts +45 -11
- package/src/internal/errors.ts +8 -0
- package/src/internal/events/index.ts +1 -1
- package/src/internal/nodes/apiService.test.ts +59 -15
- package/src/internal/nodes/apiService.ts +21 -4
- package/src/internal/nodes/cache.test.ts +6 -1
- package/src/internal/nodes/cache.ts +9 -2
- package/src/internal/nodes/cryptoService.test.ts +139 -47
- package/src/internal/nodes/cryptoService.ts +94 -9
- package/src/internal/nodes/extendedAttributes.test.ts +60 -7
- package/src/internal/nodes/extendedAttributes.ts +37 -1
- package/src/internal/nodes/index.test.ts +1 -1
- package/src/internal/nodes/interface.ts +19 -2
- package/src/internal/nodes/nodesAccess.ts +15 -1
- package/src/internal/nodes/nodesManagement.ts +1 -1
- package/src/internal/nodes/nodesRevisions.ts +14 -5
- package/src/internal/shares/cryptoService.test.ts +5 -3
- package/src/internal/shares/cryptoService.ts +7 -4
- package/src/internal/sharing/apiService.ts +6 -6
- package/src/internal/sharing/cryptoService.test.ts +7 -4
- package/src/internal/sharing/cryptoService.ts +8 -5
- package/src/internal/upload/telemetry.test.ts +7 -7
- package/src/internal/upload/telemetry.ts +2 -2
- package/src/telemetry.ts +2 -2
- package/src/tests/telemetry.ts +1 -1
- package/src/transformers.ts +4 -2
|
@@ -14,7 +14,7 @@ describe('UploadTelemetry', () => {
|
|
|
14
14
|
|
|
15
15
|
beforeEach(() => {
|
|
16
16
|
mockTelemetry = {
|
|
17
|
-
|
|
17
|
+
recordMetric: jest.fn(),
|
|
18
18
|
getLogger: jest.fn().mockReturnValue({
|
|
19
19
|
info: jest.fn(),
|
|
20
20
|
warn: jest.fn(),
|
|
@@ -34,7 +34,7 @@ describe('UploadTelemetry', () => {
|
|
|
34
34
|
const error = new Error('Failed');
|
|
35
35
|
await uploadTelemetry.uploadInitFailed(parentNodeUid, error, 1000);
|
|
36
36
|
|
|
37
|
-
expect(mockTelemetry.
|
|
37
|
+
expect(mockTelemetry.recordMetric).toHaveBeenCalledWith({
|
|
38
38
|
eventName: 'upload',
|
|
39
39
|
volumeType: 'own_volume',
|
|
40
40
|
uploadedSize: 0,
|
|
@@ -48,7 +48,7 @@ describe('UploadTelemetry', () => {
|
|
|
48
48
|
const error = new Error('Failed');
|
|
49
49
|
await uploadTelemetry.uploadFailed(revisionUid, error, 500, 1000);
|
|
50
50
|
|
|
51
|
-
expect(mockTelemetry.
|
|
51
|
+
expect(mockTelemetry.recordMetric).toHaveBeenCalledWith({
|
|
52
52
|
eventName: 'upload',
|
|
53
53
|
volumeType: 'own_volume',
|
|
54
54
|
uploadedSize: 500,
|
|
@@ -61,7 +61,7 @@ describe('UploadTelemetry', () => {
|
|
|
61
61
|
it('should log successful upload (excludes error)', async () => {
|
|
62
62
|
await uploadTelemetry.uploadFinished(revisionUid, 1000);
|
|
63
63
|
|
|
64
|
-
expect(mockTelemetry.
|
|
64
|
+
expect(mockTelemetry.recordMetric).toHaveBeenCalledWith({
|
|
65
65
|
eventName: 'upload',
|
|
66
66
|
volumeType: 'own_volume',
|
|
67
67
|
uploadedSize: 1000,
|
|
@@ -71,7 +71,7 @@ describe('UploadTelemetry', () => {
|
|
|
71
71
|
|
|
72
72
|
describe('detect error category', () => {
|
|
73
73
|
const verifyErrorCategory = (error: string) => {
|
|
74
|
-
expect(mockTelemetry.
|
|
74
|
+
expect(mockTelemetry.recordMetric).toHaveBeenCalledWith(
|
|
75
75
|
expect.objectContaining({
|
|
76
76
|
error,
|
|
77
77
|
}),
|
|
@@ -81,7 +81,7 @@ describe('UploadTelemetry', () => {
|
|
|
81
81
|
it('should ignore ValidationError', async () => {
|
|
82
82
|
const error = new ValidationError('Validation error');
|
|
83
83
|
await uploadTelemetry.uploadFailed(revisionUid, error, 500, 1000);
|
|
84
|
-
expect(mockTelemetry.
|
|
84
|
+
expect(mockTelemetry.recordMetric).not.toHaveBeenCalled();
|
|
85
85
|
});
|
|
86
86
|
|
|
87
87
|
it('should ignore AbortError', async () => {
|
|
@@ -89,7 +89,7 @@ describe('UploadTelemetry', () => {
|
|
|
89
89
|
error.name = 'AbortError';
|
|
90
90
|
await uploadTelemetry.uploadFailed(revisionUid, error, 500, 1000);
|
|
91
91
|
|
|
92
|
-
expect(mockTelemetry.
|
|
92
|
+
expect(mockTelemetry.recordMetric).not.toHaveBeenCalled();
|
|
93
93
|
});
|
|
94
94
|
|
|
95
95
|
it('should detect "rate_limited" error for RateLimitedError', async () => {
|
|
@@ -23,7 +23,7 @@ export class UploadTelemetry {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
logBlockVerificationError(retryHelped: boolean) {
|
|
26
|
-
this.telemetry.
|
|
26
|
+
this.telemetry.recordMetric({
|
|
27
27
|
eventName: 'blockVerificationError',
|
|
28
28
|
retryHelped,
|
|
29
29
|
});
|
|
@@ -89,7 +89,7 @@ export class UploadTelemetry {
|
|
|
89
89
|
this.logger.error('Failed to get metric volume type', error);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
this.telemetry.
|
|
92
|
+
this.telemetry.recordMetric({
|
|
93
93
|
eventName: 'upload',
|
|
94
94
|
volumeType,
|
|
95
95
|
...options,
|
package/src/telemetry.ts
CHANGED
|
@@ -66,7 +66,7 @@ export interface MetricHandler<T extends MetricEvent> {
|
|
|
66
66
|
* const logger = telemetry.getLogger('myLogger');
|
|
67
67
|
* logger.debug('Debug message');
|
|
68
68
|
*
|
|
69
|
-
* telemetry.
|
|
69
|
+
* telemetry.recordMetric({ name: 'somethingHappened', value: 42 });
|
|
70
70
|
*
|
|
71
71
|
* const logs = memoryLogHandler.getLogs();
|
|
72
72
|
* // Process logs
|
|
@@ -91,7 +91,7 @@ export class Telemetry<T extends MetricEvent> {
|
|
|
91
91
|
return new Logger(name, this.logFilter, this.logHandlers);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
recordMetric(event: T): void {
|
|
95
95
|
const metric = {
|
|
96
96
|
time: new Date(),
|
|
97
97
|
event,
|
package/src/tests/telemetry.ts
CHANGED
package/src/transformers.ts
CHANGED
|
@@ -18,7 +18,8 @@ type InternalPartialNode = Pick<
|
|
|
18
18
|
| 'name'
|
|
19
19
|
| 'keyAuthor'
|
|
20
20
|
| 'nameAuthor'
|
|
21
|
-
| '
|
|
21
|
+
| 'directRole'
|
|
22
|
+
| 'membership'
|
|
22
23
|
| 'type'
|
|
23
24
|
| 'mediaType'
|
|
24
25
|
| 'isShared'
|
|
@@ -84,7 +85,8 @@ export function convertInternalNode(node: InternalPartialNode): PublicMaybeNode
|
|
|
84
85
|
parentUid: node.parentUid,
|
|
85
86
|
keyAuthor: node.keyAuthor,
|
|
86
87
|
nameAuthor: node.nameAuthor,
|
|
87
|
-
|
|
88
|
+
directRole: node.directRole,
|
|
89
|
+
membership: node.membership,
|
|
88
90
|
type: node.type,
|
|
89
91
|
mediaType: node.mediaType,
|
|
90
92
|
isShared: node.isShared,
|