@secrecy/lib 1.64.1 → 1.65.0-feat-next15.2
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/lib/client/SecrecyCloudClient.js +5 -5
- package/dist/lib/client.js +3 -3
- package/dist/types/cache.d.ts +2 -2
- package/dist/types/client/SecrecyCloudClient.d.ts +23 -23
- package/dist/types/client/index.d.ts +2 -2
- package/dist/types/client/types/index.d.ts +3 -29
- package/dist/types/client.d.ts +5088 -17875
- package/dist/types/crypto/data.d.ts +3 -3
- package/dist/types/error/client.d.ts +7 -11
- package/dist/types/error/index.d.ts +23 -23
- package/dist/types/error/server.d.ts +35 -13
- package/dist/types/index.d.ts +2 -2
- package/dist/types/types.d.ts +1 -2
- package/dist/types/worker/sodium.d.ts +3 -3
- package/package.json +29 -30
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
1
|
import ky from 'ky';
|
|
3
2
|
import { nodesCache, dataCache, dataContentCache, nodesEncryptionCache, } from '../cache.js';
|
|
4
3
|
import { secretStreamKeygen } from '../crypto/data.js';
|
|
@@ -185,7 +184,7 @@ export class SecrecyCloudClient {
|
|
|
185
184
|
const progressParts = {};
|
|
186
185
|
const onProgress = (part, progressEvent) => {
|
|
187
186
|
progressParts[part] = progressEvent;
|
|
188
|
-
const current = Object.values(progressParts).reduce((prv, cur) => prv + cur.
|
|
187
|
+
const current = Object.values(progressParts).reduce((prv, cur) => prv + cur.transferredBytes, 0);
|
|
189
188
|
void uploadProgress?.({
|
|
190
189
|
percent: current / encryptedData.byteLength,
|
|
191
190
|
total: encryptedData.byteLength,
|
|
@@ -201,12 +200,13 @@ export class SecrecyCloudClient {
|
|
|
201
200
|
for (const [key, value] of Object.entries(part.fields)) {
|
|
202
201
|
formData.append(key, value);
|
|
203
202
|
}
|
|
204
|
-
formData.append('file', new Blob([chunk.data], { type: filetype?.mime }), `${uploadData.id}-${chunk.order}`);
|
|
205
|
-
await
|
|
203
|
+
formData.append('file', new Blob([chunk.data.slice(0)], { type: filetype?.mime }), `${uploadData.id}-${chunk.order}`);
|
|
204
|
+
await ky.post(part.url, {
|
|
205
|
+
signal,
|
|
206
|
+
body: formData,
|
|
206
207
|
onUploadProgress: (progressEvent) => {
|
|
207
208
|
onProgress(part.order, progressEvent);
|
|
208
209
|
},
|
|
209
|
-
signal,
|
|
210
210
|
});
|
|
211
211
|
return uploadDataPartEnd(chunk.md5, chunk.order);
|
|
212
212
|
};
|
package/dist/lib/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { httpBatchLink, loggerLink,
|
|
1
|
+
import { httpBatchLink, loggerLink, createTRPCClient as innerCreateTRPCClient, TRPCClientError, } from '@trpc/client';
|
|
2
2
|
import superjson from 'superjson';
|
|
3
3
|
import { SECRECY_LIB_VERSION } from './versioning.js';
|
|
4
4
|
export function isTRPCClientError(cause) {
|
|
@@ -9,8 +9,7 @@ superjson.registerCustom({
|
|
|
9
9
|
serialize: (v) => [...v],
|
|
10
10
|
deserialize: (v) => Buffer.from(v),
|
|
11
11
|
}, 'buffer');
|
|
12
|
-
export const createTRPCClient = (opts) =>
|
|
13
|
-
transformer: superjson,
|
|
12
|
+
export const createTRPCClient = (opts) => innerCreateTRPCClient({
|
|
14
13
|
links: [
|
|
15
14
|
loggerLink({
|
|
16
15
|
enabled: (op) => {
|
|
@@ -24,6 +23,7 @@ export const createTRPCClient = (opts) => createTRPCProxyClient({
|
|
|
24
23
|
},
|
|
25
24
|
}),
|
|
26
25
|
httpBatchLink({
|
|
26
|
+
transformer: superjson,
|
|
27
27
|
url: opts.apiUrl
|
|
28
28
|
? `${opts.apiUrl}/trpc`
|
|
29
29
|
: 'https://api.secrecy.tech/trpc',
|
package/dist/types/cache.d.ts
CHANGED
|
@@ -4,9 +4,9 @@ export declare const dataCache: Map<string, InternalData>;
|
|
|
4
4
|
export declare const nodesCache: Map<string, InternalNode | InternalNodeFull>;
|
|
5
5
|
export declare const nodesEncryptionCache: Map<string, InternalMinimalNodeForEncryption>;
|
|
6
6
|
export declare const usersCache: Map<string, {
|
|
7
|
-
id: string;
|
|
8
|
-
lastname: string;
|
|
9
7
|
firstname: string;
|
|
8
|
+
lastname: string;
|
|
9
|
+
id: string;
|
|
10
10
|
avatar: string | null;
|
|
11
11
|
isSearchable: boolean;
|
|
12
12
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ProgressCallback, SecrecyClient } from '../index.js';
|
|
2
2
|
import type { DataMetadata, DataStorageType, KeyPair, LocalData, Node, NodeFull, NodeType } from './types/index.js';
|
|
3
3
|
import { type RouterInputs, type ApiClient, type RouterOutputs } from '../client.js';
|
|
4
|
-
import { type
|
|
4
|
+
import { type Progress } from '../types.js';
|
|
5
5
|
import { FileTypeResult } from 'file-type';
|
|
6
6
|
export declare class SecrecyCloudClient {
|
|
7
7
|
#private;
|
|
@@ -63,13 +63,13 @@ export declare class SecrecyCloudClient {
|
|
|
63
63
|
}): Promise<NodeFull>;
|
|
64
64
|
dataContent({ dataId, onDownloadProgress, progressDecrypt, signal, }: {
|
|
65
65
|
dataId: string;
|
|
66
|
-
onDownloadProgress?: (progress:
|
|
66
|
+
onDownloadProgress?: (progress: Progress) => void;
|
|
67
67
|
progressDecrypt?: ProgressCallback;
|
|
68
68
|
signal?: AbortSignal;
|
|
69
69
|
}): Promise<LocalData>;
|
|
70
70
|
dataContents({ dataIds, onDownloadProgress, progressDecrypt, signal, }: {
|
|
71
71
|
dataIds: string[];
|
|
72
|
-
onDownloadProgress?: (progress:
|
|
72
|
+
onDownloadProgress?: (progress: Progress) => void;
|
|
73
73
|
progressDecrypt?: ProgressCallback;
|
|
74
74
|
signal?: AbortSignal;
|
|
75
75
|
}): Promise<LocalData[]>;
|
|
@@ -104,22 +104,23 @@ export declare class SecrecyCloudClient {
|
|
|
104
104
|
toType: "s3" | "cold" | "lite";
|
|
105
105
|
}>;
|
|
106
106
|
getPublicDataLink(input: RouterInputs['cloud']['dataLink']): Promise<{
|
|
107
|
-
name: string;
|
|
108
107
|
id: string;
|
|
109
|
-
|
|
110
|
-
expireAt: Date | null;
|
|
108
|
+
name: string;
|
|
111
109
|
slug: string;
|
|
110
|
+
expireAt: Date | null;
|
|
111
|
+
dataId: string;
|
|
112
112
|
}>;
|
|
113
113
|
getPublicDataLinks(input: RouterInputs['cloud']['dataLinks']): Promise<{
|
|
114
|
-
name: string;
|
|
115
114
|
id: string;
|
|
116
|
-
|
|
117
|
-
expireAt: Date | null;
|
|
115
|
+
name: string;
|
|
118
116
|
slug: string;
|
|
117
|
+
expireAt: Date | null;
|
|
118
|
+
dataId: string;
|
|
119
119
|
}[]>;
|
|
120
120
|
checkAccesses(input: RouterInputs['cloud']['checkAccesses']): Promise<{
|
|
121
121
|
isMatching: true;
|
|
122
122
|
} | {
|
|
123
|
+
isMatching: false;
|
|
123
124
|
details: {
|
|
124
125
|
missingNodeAccesses: {
|
|
125
126
|
userId: string;
|
|
@@ -127,12 +128,13 @@ export declare class SecrecyCloudClient {
|
|
|
127
128
|
}[];
|
|
128
129
|
missingDataAccesses: {
|
|
129
130
|
userId: string;
|
|
130
|
-
dataId: string;
|
|
131
131
|
nodeId: string;
|
|
132
|
+
dataId: string;
|
|
132
133
|
}[];
|
|
133
134
|
invalidRightsAccesses: {
|
|
134
135
|
userId: string;
|
|
135
|
-
|
|
136
|
+
nodeId: string;
|
|
137
|
+
expect: {
|
|
136
138
|
rights: "delete" | "read" | "write";
|
|
137
139
|
} & {
|
|
138
140
|
addAccess?: "delete" | "read" | "write" | null | undefined;
|
|
@@ -140,8 +142,7 @@ export declare class SecrecyCloudClient {
|
|
|
140
142
|
delAccess?: "delete" | "read" | "write" | null | undefined;
|
|
141
143
|
sharingDelAccess?: "delete" | "read" | "write" | null | undefined;
|
|
142
144
|
};
|
|
143
|
-
|
|
144
|
-
expect: {
|
|
145
|
+
current: {
|
|
145
146
|
rights: "delete" | "read" | "write";
|
|
146
147
|
} & {
|
|
147
148
|
addAccess?: "delete" | "read" | "write" | null | undefined;
|
|
@@ -151,28 +152,27 @@ export declare class SecrecyCloudClient {
|
|
|
151
152
|
};
|
|
152
153
|
}[];
|
|
153
154
|
};
|
|
154
|
-
isMatching: false;
|
|
155
155
|
}>;
|
|
156
156
|
createPublicDataLink(input: RouterInputs['cloud']['createDataLink']): Promise<{
|
|
157
|
-
name: string;
|
|
158
157
|
id: string;
|
|
159
|
-
|
|
160
|
-
expireAt: Date | null;
|
|
158
|
+
name: string;
|
|
161
159
|
slug: string;
|
|
160
|
+
expireAt: Date | null;
|
|
161
|
+
dataId: string;
|
|
162
162
|
}>;
|
|
163
163
|
updatePublicDataLink(input: RouterInputs['cloud']['updateDataLink']): Promise<{
|
|
164
|
-
name: string;
|
|
165
164
|
id: string;
|
|
166
|
-
|
|
167
|
-
expireAt: Date | null;
|
|
165
|
+
name: string;
|
|
168
166
|
slug: string;
|
|
167
|
+
expireAt: Date | null;
|
|
168
|
+
dataId: string;
|
|
169
169
|
}>;
|
|
170
170
|
deletePublicDataLink(input: RouterInputs['cloud']['deleteDataLink']): Promise<{
|
|
171
|
-
name: string;
|
|
172
171
|
id: string;
|
|
173
|
-
|
|
174
|
-
expireAt: Date | null;
|
|
172
|
+
name: string;
|
|
175
173
|
slug: string;
|
|
174
|
+
expireAt: Date | null;
|
|
175
|
+
dataId: string;
|
|
176
176
|
}>;
|
|
177
177
|
private _handleDataContent;
|
|
178
178
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseClient, type SecrecyUrls } from '../base-client.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SecretStreamProgress } from '../crypto/data.js';
|
|
3
3
|
import { SecrecyCloudClient } from './SecrecyCloudClient.js';
|
|
4
4
|
import { SecrecyMailClient } from './SecrecyMailClient.js';
|
|
5
5
|
import { SecrecyAppClient } from './SecrecyAppClient.js';
|
|
@@ -11,7 +11,7 @@ import { type KeyPair } from './types/index.js';
|
|
|
11
11
|
import { SecrecyUserClient } from './SecrecyUserClient.js';
|
|
12
12
|
import { SecrecyPseudonymClient } from './SecrecyPseudonymClient.js';
|
|
13
13
|
export type NewMail = Pick<RouterInputs['mail']['createDraft'], 'body' | 'subject' | 'senderFiles' | 'recipients' | 'replyToId'>;
|
|
14
|
-
export type ProgressCallback = (progress:
|
|
14
|
+
export type ProgressCallback = (progress: SecretStreamProgress) => Promise<void>;
|
|
15
15
|
export interface SecrecyClientOptions {
|
|
16
16
|
uaSession: string;
|
|
17
17
|
uaKeys: KeyPair;
|
|
@@ -7,40 +7,14 @@ export type * from './user.js';
|
|
|
7
7
|
declare const keyPair: z.ZodObject<{
|
|
8
8
|
publicKey: z.ZodString;
|
|
9
9
|
privateKey: z.ZodString;
|
|
10
|
-
},
|
|
11
|
-
publicKey: string;
|
|
12
|
-
privateKey: string;
|
|
13
|
-
}, {
|
|
14
|
-
publicKey: string;
|
|
15
|
-
privateKey: string;
|
|
16
|
-
}>;
|
|
10
|
+
}, z.core.$strict>;
|
|
17
11
|
export type KeyPair = z.infer<typeof keyPair>;
|
|
18
12
|
export declare const secrecyUserApp: z.ZodReadonly<z.ZodObject<{
|
|
19
13
|
keys: z.ZodObject<{
|
|
20
14
|
publicKey: z.ZodString;
|
|
21
15
|
privateKey: z.ZodString;
|
|
22
|
-
},
|
|
23
|
-
publicKey: string;
|
|
24
|
-
privateKey: string;
|
|
25
|
-
}, {
|
|
26
|
-
publicKey: string;
|
|
27
|
-
privateKey: string;
|
|
28
|
-
}>;
|
|
16
|
+
}, z.core.$strict>;
|
|
29
17
|
jwt: z.ZodString;
|
|
30
18
|
uaSession: z.ZodString;
|
|
31
|
-
},
|
|
32
|
-
keys: {
|
|
33
|
-
publicKey: string;
|
|
34
|
-
privateKey: string;
|
|
35
|
-
};
|
|
36
|
-
jwt: string;
|
|
37
|
-
uaSession: string;
|
|
38
|
-
}, {
|
|
39
|
-
keys: {
|
|
40
|
-
publicKey: string;
|
|
41
|
-
privateKey: string;
|
|
42
|
-
};
|
|
43
|
-
jwt: string;
|
|
44
|
-
uaSession: string;
|
|
45
|
-
}>>;
|
|
19
|
+
}, z.core.$strict>>;
|
|
46
20
|
export type SecrecyUserApp = z.infer<typeof secrecyUserApp>;
|