@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.
- package/dist/errors/EdgeStoreError.d.ts.map +1 -1
- package/dist/errors/EdgeStoreError.js +1 -1
- package/dist/errors/EdgeStoreError.mjs +1 -1
- package/dist/internals/bucketBuilder.d.ts +51 -18
- package/dist/internals/bucketBuilder.d.ts.map +1 -1
- package/dist/internals/bucketBuilder.js +42 -3
- package/dist/internals/bucketBuilder.mjs +42 -3
- package/dist/internals/providerTypes.d.ts +27 -0
- package/dist/internals/providerTypes.d.ts.map +1 -1
- package/dist/internals/sharedFuncTypes.d.ts +1 -0
- package/dist/internals/sharedFuncTypes.d.ts.map +1 -1
- package/dist/internals/types.d.ts +17 -0
- package/dist/internals/types.d.ts.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -1
- package/src/errors/EdgeStoreError.ts +5 -6
- package/src/internals/bucketBuilder.ts +118 -22
- package/src/internals/providerTypes.ts +31 -0
- package/src/internals/sharedFuncTypes.ts +1 -0
- package/src/internals/types.ts +23 -0
- package/src/types.ts +4 -5
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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?:
|
|
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:
|
|
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:
|
|
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?:
|
|
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?:
|
|
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:
|
|
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":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE;YACJ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf,EAAE,CAAC;QACJ,QAAQ,EAAE,WAAW,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,EAAE,CAAC;KACL,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"providerTypes.d.ts","sourceRoot":"","sources":["../../src/internals/providerTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC;IACjB,IAAI,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE;YACJ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;SACf,EAAE,CAAC;QACJ,QAAQ,EAAE,WAAW,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,EAAE,CAAC;KACL,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,wBAAwB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACzC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,GACD;IACE,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;SACnB,EAAE,CAAC;KACL,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,wBAAwB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACzC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;IACpD,UAAU,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC;IAC7D,aAAa,EAAE,CACb,MAAM,EAAE,mBAAmB,KACxB,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACpC,kBAAkB,EAAE,CAClB,MAAM,EAAE,wBAAwB,KAC7B,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,mBAAmB,KACxB,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;IACrC,uBAAuB,EAAE,CACvB,MAAM,EAAE,6BAA6B,KAClC,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAC9C,aAAa,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzE,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC;CACvE,CAAC"}
|
|
@@ -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;
|
|
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;
|
|
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"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC;AAEpC,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,SAAS,MAAM,KAAK,IAAI,IAAI,CAChE,KAAK,EACL,KAAK,CACN,GACC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAE9B,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI;KAChC,CAAC,IAAI,MAAM,KAAK,GAAG,SAAS,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC3D,CAAC,MAAM,KAAK,CAAC,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,KAAK,IAAI,aAAa,CACrD;KACG,IAAI,IAAI,MAAM,KAAK,GAAG,MAAM,KAAK,GAAG,IAAI,SAAS,MAAM,KAAK,GACzD,KAAK,CAAC,IAAI,CAAC,GACX,IAAI,SAAS,MAAM,KAAK,
|
|
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.
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
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:
|
|
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?:
|
|
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:
|
|
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:
|
|
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?:
|
|
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<
|
|
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:
|
|
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>;
|
package/src/internals/types.ts
CHANGED
|
@@ -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
|
-
|
|
25
|
-
|
|
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> =
|
|
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
|