@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.
@@ -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.loaded, 0);
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 axios.post(part.url, formData, {
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
  };
@@ -1,4 +1,4 @@
1
- import { httpBatchLink, loggerLink, createTRPCProxyClient, TRPCClientError, } from '@trpc/client';
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) => createTRPCProxyClient({
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',
@@ -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 DownloadProgress } from '../types.js';
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: DownloadProgress) => void;
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: DownloadProgress) => void;
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
- dataId: string;
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
- dataId: string;
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
- current: {
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
- nodeId: string;
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
- dataId: string;
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
- dataId: string;
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
- dataId: string;
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 { Progress } from '../crypto/data.js';
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: Progress) => Promise<void>;
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
- }, "strict", z.ZodTypeAny, {
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
- }, "strict", z.ZodTypeAny, {
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
- }, "strict", z.ZodTypeAny, {
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>;