@edgestore/shared 0.7.0 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"EdgeStoreError.d.ts","sourceRoot":"","sources":["../../src/errors/EdgeStoreError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,eAAO,MAAM,sBAAsB;;;;;;;;;CASzB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAExE,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,qBAAqB,IACnE,KAAK,SAAS,gBAAgB,GAC1B;IACE,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD,KAAK,SAAS,uBAAuB,GACrC;IACE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD,KAAK,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CACxC;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;CAClD,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;CACzD,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CACX,qBAAqB,EACrB,gBAAgB,GAAG,uBAAuB,CAC3C,CAAC;CACH,CACJ,CAAC;AAEF,qBAAa,cAAc,CAAC,KAAK,SAAS,qBAAqB,CAAE,SAAQ,KAAK;IAC5E,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;IAC9B,SAAgB,IAAI,EAAE,KAAK,CAAC;IAC5B,SAAgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,SAAgB,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAGpD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,SAAS,GAC/C,MAAM,GACN;QACE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACvC,CAAC;IAWR,gBAAgB,IAAI,MAAM;IAM1B,aAAa,IAAI,qBAAqB;CAQvC"}
1
+ {"version":3,"file":"EdgeStoreError.d.ts","sourceRoot":"","sources":["../../src/errors/EdgeStoreError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,sBAAsB;;;;;;;;;CASzB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAExE,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,qBAAqB,IACnE,KAAK,SAAS,gBAAgB,GAC1B;IACE,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD,KAAK,SAAS,uBAAuB,GACnC;IACE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB,GACD,KAAK,CAAC;AAEd,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CACxC;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;CAClD,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;CACzD,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CACX,qBAAqB,EACrB,gBAAgB,GAAG,uBAAuB,CAC3C,CAAC;CACH,CACJ,CAAC;AAEF,qBAAa,cAAc,CAAC,KAAK,SAAS,qBAAqB,CAAE,SAAQ,KAAK;IAC5E,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;IAC9B,SAAgB,IAAI,EAAE,KAAK,CAAC;IAC5B,SAAgB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxC,SAAgB,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAGpD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,SAAS,GAC/C,MAAM,GACN;QACE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACvC,CAAC;IAWR,gBAAgB,IAAI,MAAM;IAM1B,aAAa,IAAI,qBAAqB;CAQvC"}
@@ -13,7 +13,7 @@ function _define_property(obj, key, value) {
13
13
  }
14
14
  return obj;
15
15
  }
16
- /* eslint-disable @typescript-eslint/no-non-null-assertion */ const EDGE_STORE_ERROR_CODES = {
16
+ const EDGE_STORE_ERROR_CODES = {
17
17
  BAD_REQUEST: 400,
18
18
  FILE_TOO_LARGE: 400,
19
19
  MIME_TYPE_NOT_ALLOWED: 400,
@@ -11,7 +11,7 @@ function _define_property(obj, key, value) {
11
11
  }
12
12
  return obj;
13
13
  }
14
- /* eslint-disable @typescript-eslint/no-non-null-assertion */ const EDGE_STORE_ERROR_CODES = {
14
+ const EDGE_STORE_ERROR_CODES = {
15
15
  BAD_REQUEST: 400,
16
16
  FILE_TOO_LARGE: 400,
17
17
  MIME_TYPE_NOT_ALLOWED: 400,
@@ -12,12 +12,16 @@ type InferBucketPathKeysFromDef<TDef extends AnyDef> = KeysOfUnion<TDef['path'][
12
12
  export type InferBucketPathObject<TBucket extends Builder<any, AnyDef>> = InferBucketPathKeys<TBucket> extends never ? Record<string, never> : {
13
13
  [TKey in InferBucketPathKeys<TBucket>]: string;
14
14
  };
15
+ export type InferBucketPathOrder<TBucket extends Builder<any, AnyDef>> = InferBucketPathKeys<TBucket> extends never ? [] : InferBucketPathKeys<TBucket>[];
15
16
  export type InferBucketPathObjectFromDef<TDef extends AnyDef> = InferBucketPathKeysFromDef<TDef> extends never ? Record<string, never> : {
16
17
  [TKey in InferBucketPathKeysFromDef<TDef>]: string;
17
18
  };
18
19
  export type InferMetadataObject<TBucket extends Builder<any, AnyDef>> = TBucket['_def']['metadata'] extends (...args: any) => any ? Awaited<ReturnType<TBucket['_def']['metadata']>> : Record<string, never>;
19
20
  type InferMetadataObjectFromDef<TDef extends AnyDef> = TDef['metadata'] extends (...args: any) => any ? Awaited<ReturnType<TDef['metadata']>> : Record<string, never>;
20
- export type AnyContext = Record<string, string | undefined | null>;
21
+ export type AnyContextValue = string | undefined | null | AnyContext;
22
+ export interface AnyContext {
23
+ [key: string]: AnyContextValue;
24
+ }
21
25
  export type AnyInput = z.AnyZodObject | z.ZodNever;
22
26
  export type AnyPath = Record<string, () => string>[];
23
27
  type PathParam<TPath extends AnyPath> = {
@@ -40,6 +44,11 @@ export type AccessControlSchema<TCtx, TDef extends AnyDef> = Merge<{
40
44
  AND?: AccessControlSchema<TCtx, TDef>[];
41
45
  NOT?: AccessControlSchema<TCtx, TDef>[];
42
46
  }>;
47
+ export type AccessControl<TCtx, TDef extends AnyDef> = 'private' | AccessControlSchema<TCtx, TDef>;
48
+ export type AutoSignedUrlsConfig = {
49
+ expiresIn?: number;
50
+ includeThumbnails?: boolean;
51
+ };
43
52
  type BucketConfig = {
44
53
  /**
45
54
  * Maximum size for a single file in bytes
@@ -58,18 +67,17 @@ type BucketConfig = {
58
67
  */
59
68
  accept?: string[];
60
69
  };
61
- type FileInfo = {
62
- size: number;
63
- type: string;
64
- extension: string;
65
- fileName?: string;
66
- replaceTargetUrl?: string;
67
- temporary: boolean;
68
- };
69
70
  type BeforeUploadFn<TCtx, TDef extends AnyDef> = (params: {
70
71
  ctx: TCtx;
71
72
  input: z.infer<TDef['input']>;
72
- fileInfo: FileInfo;
73
+ fileInfo: {
74
+ size: number;
75
+ type: string;
76
+ extension: string;
77
+ fileName?: string;
78
+ replaceTargetUrl?: string;
79
+ temporary: boolean;
80
+ };
73
81
  }) => MaybePromise<boolean>;
74
82
  type BeforeDeleteFn<TCtx, TDef extends AnyDef> = (params: {
75
83
  ctx: TCtx;
@@ -94,7 +102,8 @@ type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMe
94
102
  path: TPath;
95
103
  metadata: TMetadata;
96
104
  bucketConfig?: BucketConfig;
97
- accessControl?: AccessControlSchema<any, any>;
105
+ accessControl?: AccessControl<any, any>;
106
+ autoSignedUrls?: AutoSignedUrlsConfig;
98
107
  beforeUpload?: BeforeUploadFn<any, any>;
99
108
  beforeDelete?: BeforeDeleteFn<any, any>;
100
109
  };
@@ -120,6 +129,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
120
129
  metadata: TDef['metadata'];
121
130
  bucketConfig: TDef['bucketConfig'];
122
131
  accessControl: TDef['accessControl'];
132
+ autoSignedUrls: TDef['autoSignedUrls'];
123
133
  beforeUpload: TDef['beforeUpload'];
124
134
  beforeDelete: TDef['beforeDelete'];
125
135
  }>;
@@ -145,6 +155,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
145
155
  metadata: TDef['metadata'];
146
156
  bucketConfig: TDef['bucketConfig'];
147
157
  accessControl: TDef['accessControl'];
158
+ autoSignedUrls: TDef['autoSignedUrls'];
148
159
  beforeUpload: TDef['beforeUpload'];
149
160
  beforeDelete: TDef['beforeDelete'];
150
161
  }>;
@@ -160,6 +171,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
160
171
  metadata: MetadataFn<any, any, TMetadata>;
161
172
  bucketConfig: TDef['bucketConfig'];
162
173
  accessControl: TDef['accessControl'];
174
+ autoSignedUrls: TDef['autoSignedUrls'];
163
175
  beforeUpload: TDef['beforeUpload'];
164
176
  beforeDelete: TDef['beforeDelete'];
165
177
  }>;
@@ -169,13 +181,30 @@ type Builder<TCtx, TDef extends AnyDef> = {
169
181
  * This means that images will only be accessible from within your app.
170
182
  * And only if it passes the check set in this function.
171
183
  */
172
- accessControl(accessControl: AccessControlSchema<TCtx, TDef>): Builder<TCtx, {
184
+ accessControl(accessControl: AccessControl<TCtx, TDef>): Builder<TCtx, {
185
+ type: TDef['type'];
186
+ input: TDef['input'];
187
+ path: TDef['path'];
188
+ metadata: TDef['metadata'];
189
+ bucketConfig: TDef['bucketConfig'];
190
+ accessControl: AccessControl<any, any>;
191
+ autoSignedUrls: TDef['autoSignedUrls'];
192
+ beforeUpload: TDef['beforeUpload'];
193
+ beforeDelete: TDef['beforeDelete'];
194
+ }>;
195
+ /**
196
+ * Automatically return temporary signed read URLs after uploads.
197
+ *
198
+ * This requires explicit non-public access control.
199
+ */
200
+ autoSignedUrls(config?: AutoSignedUrlsConfig): Builder<TCtx, {
173
201
  type: TDef['type'];
174
202
  input: TDef['input'];
175
203
  path: TDef['path'];
176
204
  metadata: TDef['metadata'];
177
205
  bucketConfig: TDef['bucketConfig'];
178
- accessControl: AccessControlSchema<any, any>;
206
+ accessControl: TDef['accessControl'];
207
+ autoSignedUrls: AutoSignedUrlsConfig;
179
208
  beforeUpload: TDef['beforeUpload'];
180
209
  beforeDelete: TDef['beforeDelete'];
181
210
  }>;
@@ -191,6 +220,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
191
220
  metadata: TDef['metadata'];
192
221
  bucketConfig: TDef['bucketConfig'];
193
222
  accessControl: TDef['accessControl'];
223
+ autoSignedUrls: TDef['autoSignedUrls'];
194
224
  beforeUpload: BeforeUploadFn<any, any>;
195
225
  beforeDelete: TDef['beforeDelete'];
196
226
  }>;
@@ -206,6 +236,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
206
236
  metadata: TDef['metadata'];
207
237
  bucketConfig: TDef['bucketConfig'];
208
238
  accessControl: TDef['accessControl'];
239
+ autoSignedUrls: TDef['autoSignedUrls'];
209
240
  beforeUpload: TDef['beforeUpload'];
210
241
  beforeDelete: BeforeDeleteFn<any, any>;
211
242
  }>;
@@ -223,7 +254,8 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
223
254
  path: [];
224
255
  metadata: () => Record<string, never>;
225
256
  bucketConfig?: BucketConfig;
226
- accessControl?: AccessControlSchema<any, any>;
257
+ accessControl?: AccessControl<any, any>;
258
+ autoSignedUrls?: AutoSignedUrlsConfig;
227
259
  beforeUpload?: BeforeUploadFn<any, any>;
228
260
  beforeDelete?: BeforeDeleteFn<any, any>;
229
261
  }>;
@@ -236,7 +268,8 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
236
268
  path: [];
237
269
  metadata: () => Record<string, never>;
238
270
  bucketConfig?: BucketConfig;
239
- accessControl?: AccessControlSchema<any, any>;
271
+ accessControl?: AccessControl<any, any>;
272
+ autoSignedUrls?: AutoSignedUrlsConfig;
240
273
  beforeUpload?: BeforeUploadFn<any, any>;
241
274
  beforeDelete?: BeforeDeleteFn<any, any>;
242
275
  }>;
@@ -251,7 +284,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
251
284
  };
252
285
  };
253
286
  }
254
- export type EdgeStoreRouter<TCtx> = {
287
+ export type EdgeStoreRouter<TCtx, TBuckets extends Record<string, Builder<TCtx, AnyDef>> = Record<string, Builder<TCtx, AnyDef>>> = {
255
288
  /**
256
289
  * Only used for types
257
290
  * @internal
@@ -259,9 +292,9 @@ export type EdgeStoreRouter<TCtx> = {
259
292
  $config: {
260
293
  ctx: TCtx;
261
294
  };
262
- buckets: Record<string, Builder<TCtx, AnyDef>>;
295
+ buckets: TBuckets;
263
296
  };
264
- export type AnyRouter = EdgeStoreRouter<any>;
297
+ export type AnyRouter = EdgeStoreRouter<any, Record<string, AnyBuilder>>;
265
298
  /**
266
299
  * Initialize EdgeStore - be done exactly once per backend
267
300
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bucketBuilder.d.ts","sourceRoot":"","sources":["../../src/internals/bucketBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bucketBuilder.d.ts","sourceRoot":"","sources":["../../src/internals/bucketBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var zod = require('zod');
4
+ var EdgeStoreError = require('../errors/EdgeStoreError.js');
4
5
  var createPathParamProxy = require('./createPathParamProxy.js');
5
6
 
6
7
  const createNewBuilder = (initDef, newDef)=>{
@@ -32,11 +33,29 @@ function createBuilder(opts, initDef) {
32
33
  });
33
34
  },
34
35
  path (pathResolver) {
35
- // TODO: Should throw a runtime error in the following cases:
36
- // 1. in case of multiple keys in one object
37
- // 2. in case of duplicate keys
38
36
  const pathParamProxy = createPathParamProxy.createPathParamProxy();
39
37
  const params = pathResolver(pathParamProxy);
38
+ const pathKeys = new Set();
39
+ for (const param of params){
40
+ const entries = Object.entries(param);
41
+ if (entries.length !== 1) {
42
+ const foundKeys = entries.map(([key])=>key);
43
+ throw new EdgeStoreError.EdgeStoreError({
44
+ message: `Path params must have exactly one key. Found keys: ${foundKeys.length > 0 ? foundKeys.join(', ') : '(none)'}`,
45
+ code: 'SERVER_ERROR'
46
+ });
47
+ }
48
+ const key = entries[0]?.[0];
49
+ if (key !== undefined && pathKeys.has(key)) {
50
+ throw new EdgeStoreError.EdgeStoreError({
51
+ message: `Duplicate path param found: ${key}`,
52
+ code: 'SERVER_ERROR'
53
+ });
54
+ }
55
+ if (key !== undefined) {
56
+ pathKeys.add(key);
57
+ }
58
+ }
40
59
  return createNewBuilder(_def, {
41
60
  path: params
42
61
  });
@@ -47,10 +66,30 @@ function createBuilder(opts, initDef) {
47
66
  });
48
67
  },
49
68
  accessControl (accessControl) {
69
+ if (typeof accessControl === 'object' && Object.keys(accessControl).length === 0) {
70
+ throw new EdgeStoreError.EdgeStoreError({
71
+ message: 'Empty accessControl objects are not allowed. Use accessControl("private") for signed-URL-only private files.',
72
+ code: 'SERVER_ERROR'
73
+ });
74
+ }
50
75
  return createNewBuilder(_def, {
51
76
  accessControl: accessControl
52
77
  });
53
78
  },
79
+ autoSignedUrls (config) {
80
+ if (_def.accessControl === undefined) {
81
+ throw new EdgeStoreError.EdgeStoreError({
82
+ message: 'autoSignedUrls requires a non-public bucket. Add accessControl("private") or an access-control schema first.',
83
+ code: 'SERVER_ERROR'
84
+ });
85
+ }
86
+ return createNewBuilder(_def, {
87
+ autoSignedUrls: {
88
+ expiresIn: config?.expiresIn,
89
+ includeThumbnails: config?.includeThumbnails ?? (_def.type === 'IMAGE' ? true : false)
90
+ }
91
+ });
92
+ },
54
93
  beforeUpload (beforeUpload) {
55
94
  return createNewBuilder(_def, {
56
95
  beforeUpload
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { EdgeStoreError } from '../errors/EdgeStoreError.mjs';
2
3
  import { createPathParamProxy } from './createPathParamProxy.mjs';
3
4
 
4
5
  const createNewBuilder = (initDef, newDef)=>{
@@ -30,11 +31,29 @@ function createBuilder(opts, initDef) {
30
31
  });
31
32
  },
32
33
  path (pathResolver) {
33
- // TODO: Should throw a runtime error in the following cases:
34
- // 1. in case of multiple keys in one object
35
- // 2. in case of duplicate keys
36
34
  const pathParamProxy = createPathParamProxy();
37
35
  const params = pathResolver(pathParamProxy);
36
+ const pathKeys = new Set();
37
+ for (const param of params){
38
+ const entries = Object.entries(param);
39
+ if (entries.length !== 1) {
40
+ const foundKeys = entries.map(([key])=>key);
41
+ throw new EdgeStoreError({
42
+ message: `Path params must have exactly one key. Found keys: ${foundKeys.length > 0 ? foundKeys.join(', ') : '(none)'}`,
43
+ code: 'SERVER_ERROR'
44
+ });
45
+ }
46
+ const key = entries[0]?.[0];
47
+ if (key !== undefined && pathKeys.has(key)) {
48
+ throw new EdgeStoreError({
49
+ message: `Duplicate path param found: ${key}`,
50
+ code: 'SERVER_ERROR'
51
+ });
52
+ }
53
+ if (key !== undefined) {
54
+ pathKeys.add(key);
55
+ }
56
+ }
38
57
  return createNewBuilder(_def, {
39
58
  path: params
40
59
  });
@@ -45,10 +64,30 @@ function createBuilder(opts, initDef) {
45
64
  });
46
65
  },
47
66
  accessControl (accessControl) {
67
+ if (typeof accessControl === 'object' && Object.keys(accessControl).length === 0) {
68
+ throw new EdgeStoreError({
69
+ message: 'Empty accessControl objects are not allowed. Use accessControl("private") for signed-URL-only private files.',
70
+ code: 'SERVER_ERROR'
71
+ });
72
+ }
48
73
  return createNewBuilder(_def, {
49
74
  accessControl: accessControl
50
75
  });
51
76
  },
77
+ autoSignedUrls (config) {
78
+ if (_def.accessControl === undefined) {
79
+ throw new EdgeStoreError({
80
+ message: 'autoSignedUrls requires a non-public bucket. Add accessControl("private") or an access-control schema first.',
81
+ code: 'SERVER_ERROR'
82
+ });
83
+ }
84
+ return createNewBuilder(_def, {
85
+ autoSignedUrls: {
86
+ expiresIn: config?.expiresIn,
87
+ includeThumbnails: config?.includeThumbnails ?? (_def.type === 'IMAGE' ? true : false)
88
+ }
89
+ });
90
+ },
52
91
  beforeUpload (beforeUpload) {
53
92
  return createNewBuilder(_def, {
54
93
  beforeUpload
@@ -41,6 +41,10 @@ export type RequestUploadParams = {
41
41
  replaceTargetUrl?: string;
42
42
  temporary: boolean;
43
43
  };
44
+ autoSignedUrls?: {
45
+ expiresIn?: number;
46
+ includeThumbnails?: boolean;
47
+ };
44
48
  };
45
49
  export type RequestUploadPartsParams = {
46
50
  multipart: {
@@ -73,6 +77,10 @@ export type RequestUploadRes = {
73
77
  uploadUrl: string;
74
78
  accessUrl: string;
75
79
  thumbnailUrl?: string | null;
80
+ accessSignedUrl?: string;
81
+ accessSignedThumbnailUrl?: string | null;
82
+ accessSignedUrlExpiresAt?: Date | string;
83
+ accessSignedUrlExpiresIn?: number;
76
84
  } | {
77
85
  multipart: {
78
86
  key: string;
@@ -86,6 +94,24 @@ export type RequestUploadRes = {
86
94
  };
87
95
  accessUrl: string;
88
96
  thumbnailUrl?: string | null;
97
+ accessSignedUrl?: string;
98
+ accessSignedThumbnailUrl?: string | null;
99
+ accessSignedUrlExpiresAt?: Date | string;
100
+ accessSignedUrlExpiresIn?: number;
101
+ };
102
+ export type GetSignedUrlsParams = {
103
+ bucketName: string;
104
+ urls: string[];
105
+ expiresIn?: number;
106
+ includeThumbnails?: boolean;
107
+ };
108
+ export type GetSignedUrlRes = {
109
+ url: string;
110
+ signedUrl: string;
111
+ expiresAt: Date;
112
+ expiresIn: number;
113
+ thumbnailUrl?: string | null;
114
+ signedThumbnailUrl?: string | null;
89
115
  };
90
116
  export type ConfirmUpload = {
91
117
  bucket: AnyBuilder;
@@ -108,6 +134,7 @@ export type Provider = {
108
134
  getFile: (params: GetFileParams) => MaybePromise<GetFileRes>;
109
135
  requestUpload: (params: RequestUploadParams) => MaybePromise<RequestUploadRes>;
110
136
  requestUploadParts: (params: RequestUploadPartsParams) => MaybePromise<RequestUploadPartsRes>;
137
+ getSignedUrls?: (params: GetSignedUrlsParams) => MaybePromise<GetSignedUrlRes[]>;
111
138
  completeMultipartUpload: (params: CompleteMultipartUploadParams) => MaybePromise<CompleteMultipartUploadRes>;
112
139
  confirmUpload: (params: ConfirmUpload) => MaybePromise<ConfirmUploadRes>;
113
140
  deleteFile: (params: DeleteFileParams) => MaybePromise<DeleteFileRes>;
@@ -1 +1 @@
1
- {"version":3,"file":"providerTypes.d.ts","sourceRoot":"","sources":["../../src/internals/providerTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providerTypes.d.ts","sourceRoot":"","sources":["../../src/internals/providerTypes.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export type SharedInitRes = {
6
6
  token: string | undefined;
7
7
  baseUrl: string;
8
8
  providerName: string;
9
+ requiresFileAccessCookie: boolean;
9
10
  };
10
11
  export type SharedRequestUploadRes = Simplify<RequestUploadRes & {
11
12
  size: number;
@@ -1 +1 @@
1
- {"version":3,"file":"sharedFuncTypes.d.ts","sourceRoot":"","sources":["../../src/internals/sharedFuncTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAC3C,gBAAgB,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;CACvB,CACF,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"sharedFuncTypes.d.ts","sourceRoot":"","sources":["../../src/internals/sharedFuncTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAC3C,gBAAgB,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;CACvB,CACF,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,qBAAqB,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC"}
@@ -1,3 +1,12 @@
1
+ import { type MaybePromise } from '../types';
2
+ export type ClientUploadTransform = (params: {
3
+ file: File;
4
+ extension: string;
5
+ signal?: AbortSignal;
6
+ }) => MaybePromise<File | Blob | {
7
+ file: File | Blob;
8
+ extension: string;
9
+ }>;
1
10
  export type UploadOptions = {
2
11
  /**
3
12
  * e.g. 'my-file-name.jpg'
@@ -26,5 +35,13 @@ export type UploadOptions = {
26
35
  * This avoids unnecessary zombie files in the bucket.
27
36
  */
28
37
  temporary?: boolean;
38
+ /**
39
+ * Transform the file before it is validated and uploaded.
40
+ *
41
+ * This can be used to compress images, convert formats, encrypt files, etc.
42
+ * The transformed file's size, MIME type, and extension will be used for the
43
+ * upload request.
44
+ */
45
+ transform?: ClientUploadTransform;
29
46
  };
30
47
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/internals/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE;IAC3C,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,YAAY,CACd,IAAI,GACJ,IAAI,GACJ;IACE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CACJ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgestore/shared",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Upload files with ease from React/Next.js",
5
5
  "homepage": "https://edgestore.dev",
6
6
  "license": "MIT",
@@ -67,6 +67,8 @@
67
67
  "build": "rollup --config rollup.config.ts --configPlugin rollup-plugin-swc3",
68
68
  "dev": "pnpm build --watch",
69
69
  "codegen:entrypoints": "tsx entrypoints.script.ts",
70
+ "test": "vitest run",
71
+ "typecheck": "tsc --noEmit -p tsconfig.json",
70
72
  "lint": "eslint --cache --ext \".js,.ts,.tsx\" --ignore-path ../../.gitignore --report-unused-disable-directives src"
71
73
  }
72
74
  }
@@ -1,6 +1,5 @@
1
1
  import { type Simplify } from '../types';
2
2
 
3
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
4
3
  export const EDGE_STORE_ERROR_CODES = {
5
4
  BAD_REQUEST: 400,
6
5
  FILE_TOO_LARGE: 400,
@@ -21,11 +20,11 @@ export type EdgeStoreErrorDetails<TCode extends EdgeStoreErrorCodeKey> =
21
20
  fileSize: number;
22
21
  }
23
22
  : TCode extends 'MIME_TYPE_NOT_ALLOWED'
24
- ? {
25
- allowedMimeTypes: string[];
26
- mimeType: string;
27
- }
28
- : never;
23
+ ? {
24
+ allowedMimeTypes: string[];
25
+ mimeType: string;
26
+ }
27
+ : never;
29
28
 
30
29
  export type EdgeStoreJsonResponse = Simplify<
31
30
  | {
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { EdgeStoreError } from '../errors';
2
3
  import { type KeysOfUnion, type MaybePromise, type Simplify } from '../types';
3
4
  import { createPathParamProxy } from './createPathParamProxy';
4
5
 
@@ -36,6 +37,11 @@ export type InferBucketPathObject<TBucket extends Builder<any, AnyDef>> =
36
37
  [TKey in InferBucketPathKeys<TBucket>]: string;
37
38
  };
38
39
 
40
+ export type InferBucketPathOrder<TBucket extends Builder<any, AnyDef>> =
41
+ InferBucketPathKeys<TBucket> extends never
42
+ ? []
43
+ : InferBucketPathKeys<TBucket>[];
44
+
39
45
  export type InferBucketPathObjectFromDef<TDef extends AnyDef> =
40
46
  InferBucketPathKeysFromDef<TDef> extends never
41
47
  ? Record<string, never>
@@ -53,7 +59,11 @@ type InferMetadataObjectFromDef<TDef extends AnyDef> =
53
59
  ? Awaited<ReturnType<TDef['metadata']>>
54
60
  : Record<string, never>;
55
61
 
56
- export type AnyContext = Record<string, string | undefined | null>;
62
+ export type AnyContextValue = string | undefined | null | AnyContext;
63
+
64
+ export interface AnyContext {
65
+ [key: string]: AnyContextValue;
66
+ }
57
67
 
58
68
  export type AnyInput = z.AnyZodObject | z.ZodNever;
59
69
 
@@ -88,6 +98,15 @@ export type AccessControlSchema<TCtx, TDef extends AnyDef> = Merge<
88
98
  }
89
99
  >;
90
100
 
101
+ export type AccessControl<TCtx, TDef extends AnyDef> =
102
+ | 'private'
103
+ | AccessControlSchema<TCtx, TDef>;
104
+
105
+ export type AutoSignedUrlsConfig = {
106
+ expiresIn?: number;
107
+ includeThumbnails?: boolean;
108
+ };
109
+
91
110
  type BucketConfig = {
92
111
  /**
93
112
  * Maximum size for a single file in bytes
@@ -107,19 +126,17 @@ type BucketConfig = {
107
126
  accept?: string[];
108
127
  };
109
128
 
110
- type FileInfo = {
111
- size: number;
112
- type: string;
113
- extension: string;
114
- fileName?: string;
115
- replaceTargetUrl?: string;
116
- temporary: boolean;
117
- };
118
-
119
129
  type BeforeUploadFn<TCtx, TDef extends AnyDef> = (params: {
120
130
  ctx: TCtx;
121
131
  input: z.infer<TDef['input']>;
122
- fileInfo: FileInfo;
132
+ fileInfo: {
133
+ size: number;
134
+ type: string;
135
+ extension: string;
136
+ fileName?: string;
137
+ replaceTargetUrl?: string;
138
+ temporary: boolean;
139
+ };
123
140
  }) => MaybePromise<boolean>;
124
141
 
125
142
  type BeforeDeleteFn<TCtx, TDef extends AnyDef> = (params: {
@@ -155,7 +172,8 @@ type Def<
155
172
  path: TPath;
156
173
  metadata: TMetadata;
157
174
  bucketConfig?: BucketConfig;
158
- accessControl?: AccessControlSchema<any, any>;
175
+ accessControl?: AccessControl<any, any>;
176
+ autoSignedUrls?: AutoSignedUrlsConfig;
159
177
  beforeUpload?: BeforeUploadFn<any, any>;
160
178
  beforeDelete?: BeforeDeleteFn<any, any>;
161
179
  };
@@ -187,6 +205,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
187
205
  metadata: TDef['metadata'];
188
206
  bucketConfig: TDef['bucketConfig'];
189
207
  accessControl: TDef['accessControl'];
208
+ autoSignedUrls: TDef['autoSignedUrls'];
190
209
  beforeUpload: TDef['beforeUpload'];
191
210
  beforeDelete: TDef['beforeDelete'];
192
211
  }
@@ -217,6 +236,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
217
236
  metadata: TDef['metadata'];
218
237
  bucketConfig: TDef['bucketConfig'];
219
238
  accessControl: TDef['accessControl'];
239
+ autoSignedUrls: TDef['autoSignedUrls'];
220
240
  beforeUpload: TDef['beforeUpload'];
221
241
  beforeDelete: TDef['beforeDelete'];
222
242
  }
@@ -237,6 +257,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
237
257
  metadata: MetadataFn<any, any, TMetadata>;
238
258
  bucketConfig: TDef['bucketConfig'];
239
259
  accessControl: TDef['accessControl'];
260
+ autoSignedUrls: TDef['autoSignedUrls'];
240
261
  beforeUpload: TDef['beforeUpload'];
241
262
  beforeDelete: TDef['beforeDelete'];
242
263
  }
@@ -247,7 +268,26 @@ type Builder<TCtx, TDef extends AnyDef> = {
247
268
  * This means that images will only be accessible from within your app.
248
269
  * And only if it passes the check set in this function.
249
270
  */
250
- accessControl(accessControl: AccessControlSchema<TCtx, TDef>): Builder<
271
+ accessControl(accessControl: AccessControl<TCtx, TDef>): Builder<
272
+ TCtx,
273
+ {
274
+ type: TDef['type'];
275
+ input: TDef['input'];
276
+ path: TDef['path'];
277
+ metadata: TDef['metadata'];
278
+ bucketConfig: TDef['bucketConfig'];
279
+ accessControl: AccessControl<any, any>;
280
+ autoSignedUrls: TDef['autoSignedUrls'];
281
+ beforeUpload: TDef['beforeUpload'];
282
+ beforeDelete: TDef['beforeDelete'];
283
+ }
284
+ >;
285
+ /**
286
+ * Automatically return temporary signed read URLs after uploads.
287
+ *
288
+ * This requires explicit non-public access control.
289
+ */
290
+ autoSignedUrls(config?: AutoSignedUrlsConfig): Builder<
251
291
  TCtx,
252
292
  {
253
293
  type: TDef['type'];
@@ -255,7 +295,8 @@ type Builder<TCtx, TDef extends AnyDef> = {
255
295
  path: TDef['path'];
256
296
  metadata: TDef['metadata'];
257
297
  bucketConfig: TDef['bucketConfig'];
258
- accessControl: AccessControlSchema<any, any>;
298
+ accessControl: TDef['accessControl'];
299
+ autoSignedUrls: AutoSignedUrlsConfig;
259
300
  beforeUpload: TDef['beforeUpload'];
260
301
  beforeDelete: TDef['beforeDelete'];
261
302
  }
@@ -274,6 +315,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
274
315
  metadata: TDef['metadata'];
275
316
  bucketConfig: TDef['bucketConfig'];
276
317
  accessControl: TDef['accessControl'];
318
+ autoSignedUrls: TDef['autoSignedUrls'];
277
319
  beforeUpload: BeforeUploadFn<any, any>;
278
320
  beforeDelete: TDef['beforeDelete'];
279
321
  }
@@ -292,6 +334,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
292
334
  metadata: TDef['metadata'];
293
335
  bucketConfig: TDef['bucketConfig'];
294
336
  accessControl: TDef['accessControl'];
337
+ autoSignedUrls: TDef['autoSignedUrls'];
295
338
  beforeUpload: TDef['beforeUpload'];
296
339
  beforeDelete: BeforeDeleteFn<any, any>;
297
340
  }
@@ -330,7 +373,8 @@ function createBuilder<
330
373
  path: TPath;
331
374
  metadata: TMetadata;
332
375
  bucketConfig?: BucketConfig;
333
- accessControl?: AccessControlSchema<any, any>;
376
+ accessControl?: AccessControl<any, any>;
377
+ autoSignedUrls?: AutoSignedUrlsConfig;
334
378
  beforeUpload?: BeforeUploadFn<any, any>;
335
379
  beforeDelete?: BeforeDeleteFn<any, any>;
336
380
  }
@@ -355,11 +399,31 @@ function createBuilder<
355
399
  }) as any;
356
400
  },
357
401
  path(pathResolver) {
358
- // TODO: Should throw a runtime error in the following cases:
359
- // 1. in case of multiple keys in one object
360
- // 2. in case of duplicate keys
361
402
  const pathParamProxy = createPathParamProxy();
362
403
  const params = pathResolver(pathParamProxy);
404
+ const pathKeys = new Set<string>();
405
+ for (const param of params) {
406
+ const entries = Object.entries(param);
407
+ if (entries.length !== 1) {
408
+ const foundKeys = entries.map(([key]) => key);
409
+ throw new EdgeStoreError({
410
+ message: `Path params must have exactly one key. Found keys: ${
411
+ foundKeys.length > 0 ? foundKeys.join(', ') : '(none)'
412
+ }`,
413
+ code: 'SERVER_ERROR',
414
+ });
415
+ }
416
+ const key = entries[0]?.[0];
417
+ if (key !== undefined && pathKeys.has(key)) {
418
+ throw new EdgeStoreError({
419
+ message: `Duplicate path param found: ${key}`,
420
+ code: 'SERVER_ERROR',
421
+ });
422
+ }
423
+ if (key !== undefined) {
424
+ pathKeys.add(key);
425
+ }
426
+ }
363
427
  return createNewBuilder(_def, {
364
428
  path: params,
365
429
  }) as any;
@@ -370,10 +434,36 @@ function createBuilder<
370
434
  }) as any;
371
435
  },
372
436
  accessControl(accessControl) {
437
+ if (
438
+ typeof accessControl === 'object' &&
439
+ Object.keys(accessControl).length === 0
440
+ ) {
441
+ throw new EdgeStoreError({
442
+ message:
443
+ 'Empty accessControl objects are not allowed. Use accessControl("private") for signed-URL-only private files.',
444
+ code: 'SERVER_ERROR',
445
+ });
446
+ }
373
447
  return createNewBuilder(_def, {
374
448
  accessControl: accessControl,
375
449
  }) as any;
376
450
  },
451
+ autoSignedUrls(config) {
452
+ if (_def.accessControl === undefined) {
453
+ throw new EdgeStoreError({
454
+ message:
455
+ 'autoSignedUrls requires a non-public bucket. Add accessControl("private") or an access-control schema first.',
456
+ code: 'SERVER_ERROR',
457
+ });
458
+ }
459
+ return createNewBuilder(_def, {
460
+ autoSignedUrls: {
461
+ expiresIn: config?.expiresIn,
462
+ includeThumbnails:
463
+ config?.includeThumbnails ?? (_def.type === 'IMAGE' ? true : false),
464
+ },
465
+ }) as any;
466
+ },
377
467
  beforeUpload(beforeUpload) {
378
468
  return createNewBuilder(_def, {
379
469
  beforeUpload,
@@ -397,7 +487,13 @@ class EdgeStoreBuilder<TCtx = Record<string, never>> {
397
487
  }
398
488
  }
399
489
 
400
- export type EdgeStoreRouter<TCtx> = {
490
+ export type EdgeStoreRouter<
491
+ TCtx,
492
+ TBuckets extends Record<string, Builder<TCtx, AnyDef>> = Record<
493
+ string,
494
+ Builder<TCtx, AnyDef>
495
+ >,
496
+ > = {
401
497
  /**
402
498
  * Only used for types
403
499
  * @internal
@@ -405,10 +501,10 @@ export type EdgeStoreRouter<TCtx> = {
405
501
  $config: {
406
502
  ctx: TCtx;
407
503
  };
408
- buckets: Record<string, Builder<TCtx, AnyDef>>;
504
+ buckets: TBuckets;
409
505
  };
410
506
 
411
- export type AnyRouter = EdgeStoreRouter<any>;
507
+ export type AnyRouter = EdgeStoreRouter<any, Record<string, AnyBuilder>>;
412
508
 
413
509
  function createRouterFactory<TCtx>() {
414
510
  return function createRouterInner<
@@ -419,7 +515,7 @@ function createRouterFactory<TCtx>() {
419
515
  ctx: undefined as TCtx,
420
516
  },
421
517
  buckets,
422
- } satisfies EdgeStoreRouter<TCtx>;
518
+ } satisfies EdgeStoreRouter<TCtx, TBuckets>;
423
519
  };
424
520
  }
425
521
 
@@ -50,6 +50,10 @@ export type RequestUploadParams = {
50
50
  replaceTargetUrl?: string;
51
51
  temporary: boolean;
52
52
  };
53
+ autoSignedUrls?: {
54
+ expiresIn?: number;
55
+ includeThumbnails?: boolean;
56
+ };
53
57
  };
54
58
 
55
59
  export type RequestUploadPartsParams = {
@@ -88,6 +92,10 @@ export type RequestUploadRes =
88
92
  uploadUrl: string;
89
93
  accessUrl: string;
90
94
  thumbnailUrl?: string | null;
95
+ accessSignedUrl?: string;
96
+ accessSignedThumbnailUrl?: string | null;
97
+ accessSignedUrlExpiresAt?: Date | string;
98
+ accessSignedUrlExpiresIn?: number;
91
99
  }
92
100
  | {
93
101
  multipart: {
@@ -102,8 +110,28 @@ export type RequestUploadRes =
102
110
  };
103
111
  accessUrl: string;
104
112
  thumbnailUrl?: string | null;
113
+ accessSignedUrl?: string;
114
+ accessSignedThumbnailUrl?: string | null;
115
+ accessSignedUrlExpiresAt?: Date | string;
116
+ accessSignedUrlExpiresIn?: number;
105
117
  };
106
118
 
119
+ export type GetSignedUrlsParams = {
120
+ bucketName: string;
121
+ urls: string[];
122
+ expiresIn?: number;
123
+ includeThumbnails?: boolean;
124
+ };
125
+
126
+ export type GetSignedUrlRes = {
127
+ url: string;
128
+ signedUrl: string;
129
+ expiresAt: Date;
130
+ expiresIn: number;
131
+ thumbnailUrl?: string | null;
132
+ signedThumbnailUrl?: string | null;
133
+ };
134
+
107
135
  export type ConfirmUpload = {
108
136
  bucket: AnyBuilder;
109
137
  url: string;
@@ -133,6 +161,9 @@ export type Provider = {
133
161
  requestUploadParts: (
134
162
  params: RequestUploadPartsParams,
135
163
  ) => MaybePromise<RequestUploadPartsRes>;
164
+ getSignedUrls?: (
165
+ params: GetSignedUrlsParams,
166
+ ) => MaybePromise<GetSignedUrlRes[]>;
136
167
  completeMultipartUpload: (
137
168
  params: CompleteMultipartUploadParams,
138
169
  ) => MaybePromise<CompleteMultipartUploadRes>;
@@ -11,6 +11,7 @@ export type SharedInitRes = {
11
11
  token: string | undefined;
12
12
  baseUrl: string;
13
13
  providerName: string;
14
+ requiresFileAccessCookie: boolean;
14
15
  };
15
16
  export type SharedRequestUploadRes = Simplify<
16
17
  RequestUploadRes & {
@@ -1,3 +1,18 @@
1
+ import { type MaybePromise } from '../types';
2
+
3
+ export type ClientUploadTransform = (params: {
4
+ file: File;
5
+ extension: string;
6
+ signal?: AbortSignal;
7
+ }) => MaybePromise<
8
+ | File
9
+ | Blob
10
+ | {
11
+ file: File | Blob;
12
+ extension: string;
13
+ }
14
+ >;
15
+
1
16
  export type UploadOptions = {
2
17
  /**
3
18
  * e.g. 'my-file-name.jpg'
@@ -26,4 +41,12 @@ export type UploadOptions = {
26
41
  * This avoids unnecessary zombie files in the bucket.
27
42
  */
28
43
  temporary?: boolean;
44
+ /**
45
+ * Transform the file before it is validated and uploaded.
46
+ *
47
+ * This can be used to compress images, convert formats, encrypt files, etc.
48
+ * The transformed file's size, MIME type, and extension will be used for the
49
+ * upload request.
50
+ */
51
+ transform?: ClientUploadTransform;
29
52
  };
package/src/types.ts CHANGED
@@ -21,8 +21,8 @@ export type FlatOverwrite<TType, TWith> = InferOptional<
21
21
  [TKey in keyof TType | keyof TWith]: TKey extends keyof TWith
22
22
  ? TWith[TKey]
23
23
  : TKey extends keyof TType
24
- ? TType[TKey]
25
- : never;
24
+ ? TType[TKey]
25
+ : never;
26
26
  },
27
27
  UndefinedKeys<TType> | UndefinedKeys<TWith>
28
28
  >;
@@ -49,9 +49,8 @@ export type Maybe<TType> = TType | null | undefined;
49
49
  /**
50
50
  * @internal
51
51
  */
52
- export type ThenArg<TType> = TType extends PromiseLike<infer U>
53
- ? ThenArg<U>
54
- : TType;
52
+ export type ThenArg<TType> =
53
+ TType extends PromiseLike<infer U> ? ThenArg<U> : TType;
55
54
 
56
55
  /**
57
56
  * @internal