@edgestore/shared 0.0.0-canary-20260730114359
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/errors/EdgeStoreError.d.ts +47 -0
- package/dist/errors/EdgeStoreError.d.ts.map +1 -0
- package/dist/errors/EdgeStoreError.js +43 -0
- package/dist/errors/index.d.ts +9 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +20 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/internals/bucketBuilder.d.ts +315 -0
- package/dist/internals/bucketBuilder.d.ts.map +1 -0
- package/dist/internals/bucketBuilder.js +230 -0
- package/dist/internals/createPathParamProxy.d.ts +21 -0
- package/dist/internals/createPathParamProxy.d.ts.map +1 -0
- package/dist/internals/createPathParamProxy.js +29 -0
- package/dist/internals/providerCapabilities.d.ts +44 -0
- package/dist/internals/providerCapabilities.d.ts.map +1 -0
- package/dist/internals/providerTypes.d.ts +270 -0
- package/dist/internals/providerTypes.d.ts.map +1 -0
- package/dist/internals/sharedFuncTypes.d.ts +30 -0
- package/dist/internals/sharedFuncTypes.d.ts.map +1 -0
- package/dist/internals/types.d.ts +47 -0
- package/dist/internals/types.d.ts.map +1 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +81 -0
- package/src/errors/EdgeStoreError.ts +89 -0
- package/src/errors/index.ts +14 -0
- package/src/index.ts +7 -0
- package/src/internals/bucketBuilder.ts +677 -0
- package/src/internals/createPathParamProxy.ts +40 -0
- package/src/internals/providerCapabilities.ts +126 -0
- package/src/internals/providerTypes.ts +388 -0
- package/src/internals/sharedFuncTypes.ts +38 -0
- package/src/internals/types.ts +52 -0
- package/src/types.ts +146 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { EdgeStoreError } from '../errors/EdgeStoreError.js';
|
|
3
|
+
import { createPathParamProxy } from './createPathParamProxy.js';
|
|
4
|
+
|
|
5
|
+
const createNewBuilder = (initDef, newDef)=>{
|
|
6
|
+
const mergedDef = {
|
|
7
|
+
...initDef,
|
|
8
|
+
...newDef
|
|
9
|
+
};
|
|
10
|
+
return createBuilder({
|
|
11
|
+
type: mergedDef.type
|
|
12
|
+
}, mergedDef);
|
|
13
|
+
};
|
|
14
|
+
function createBuilder(opts, initDef) {
|
|
15
|
+
const _def = {
|
|
16
|
+
type: opts.type,
|
|
17
|
+
input: z.never(),
|
|
18
|
+
path: [],
|
|
19
|
+
metadata: ()=>({}),
|
|
20
|
+
...initDef
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
$config: {
|
|
24
|
+
ctx: undefined
|
|
25
|
+
},
|
|
26
|
+
// @ts-expect-error - I think it would be too much work to make this type correct.
|
|
27
|
+
_def,
|
|
28
|
+
input (input) {
|
|
29
|
+
return createNewBuilder(_def, {
|
|
30
|
+
input
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
path (pathResolver) {
|
|
34
|
+
const pathParamProxy = createPathParamProxy();
|
|
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
|
+
}
|
|
57
|
+
return createNewBuilder(_def, {
|
|
58
|
+
path: params
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
metadata (metadata) {
|
|
62
|
+
return createNewBuilder(_def, {
|
|
63
|
+
metadata
|
|
64
|
+
});
|
|
65
|
+
},
|
|
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
|
+
}
|
|
73
|
+
return createNewBuilder(_def, {
|
|
74
|
+
accessControl: accessControl
|
|
75
|
+
});
|
|
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
|
+
},
|
|
91
|
+
beforeUpload (beforeUpload) {
|
|
92
|
+
return createNewBuilder(_def, {
|
|
93
|
+
beforeUpload
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
beforeDelete (beforeDelete) {
|
|
97
|
+
return createNewBuilder(_def, {
|
|
98
|
+
beforeDelete
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
class EdgeStoreBuilder {
|
|
104
|
+
context() {
|
|
105
|
+
return new EdgeStoreBuilder();
|
|
106
|
+
}
|
|
107
|
+
create() {
|
|
108
|
+
return createEdgeStoreInner()();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function createRouterFactory() {
|
|
112
|
+
return function createRouterInner(buckets) {
|
|
113
|
+
return {
|
|
114
|
+
$config: {
|
|
115
|
+
ctx: undefined
|
|
116
|
+
},
|
|
117
|
+
buckets
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function initBucket(type, config) {
|
|
122
|
+
return createBuilder({
|
|
123
|
+
type
|
|
124
|
+
}, {
|
|
125
|
+
bucketConfig: config
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
function createEdgeStoreInner() {
|
|
129
|
+
return function initEdgeStoreInner() {
|
|
130
|
+
return {
|
|
131
|
+
/**
|
|
132
|
+
* Builder object for creating an image bucket
|
|
133
|
+
*/ imageBucket (config) {
|
|
134
|
+
return initBucket('IMAGE', config);
|
|
135
|
+
},
|
|
136
|
+
/**
|
|
137
|
+
* Builder object for creating a file bucket
|
|
138
|
+
*/ fileBucket (config) {
|
|
139
|
+
return initBucket('FILE', config);
|
|
140
|
+
},
|
|
141
|
+
/**
|
|
142
|
+
* Create a router
|
|
143
|
+
*/ router: createRouterFactory()
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Initialize EdgeStore - be done exactly once per backend
|
|
149
|
+
*/ const initEdgeStore = new EdgeStoreBuilder(); // ↓↓↓ TYPE TESTS ↓↓↓
|
|
150
|
+
// type Context = {
|
|
151
|
+
// userId: string;
|
|
152
|
+
// userRole: 'admin' | 'visitor';
|
|
153
|
+
// };
|
|
154
|
+
// const es = initEdgeStore.context<Context>().create();
|
|
155
|
+
// const imagesBucket = es.imageBucket()
|
|
156
|
+
// .input(
|
|
157
|
+
// z.object({
|
|
158
|
+
// type: z.enum(['profile', 'post']),
|
|
159
|
+
// extension: z.string().optional(),
|
|
160
|
+
// }),
|
|
161
|
+
// )
|
|
162
|
+
// .path(({ ctx, input }) => [{ author: ctx.userId }, { type: input.type }])
|
|
163
|
+
// .metadata(({ ctx, input }) => ({
|
|
164
|
+
// extension: input.extension,
|
|
165
|
+
// role: ctx.userRole,
|
|
166
|
+
// }))
|
|
167
|
+
// .beforeUpload(() => {
|
|
168
|
+
// return true;
|
|
169
|
+
// });
|
|
170
|
+
// const a = es.imageBucket()
|
|
171
|
+
// .input(z.object({ type: z.string(), someMeta: z.string().optional() }))
|
|
172
|
+
// .path(({ ctx, input }) => [{ author: ctx.userId }, { type: input.type }])
|
|
173
|
+
// .metadata(({ ctx, input }) => ({
|
|
174
|
+
// role: ctx.userRole,
|
|
175
|
+
// someMeta: input.someMeta,
|
|
176
|
+
// }))
|
|
177
|
+
// .accessControl({
|
|
178
|
+
// OR: [
|
|
179
|
+
// {
|
|
180
|
+
// userId: { path: 'author' }, // this will check if the userId is the same as the author in the path parameter
|
|
181
|
+
// },
|
|
182
|
+
// {
|
|
183
|
+
// userRole: 'admin', // this is the same as { userRole: { eq: "admin" } }
|
|
184
|
+
// },
|
|
185
|
+
// ],
|
|
186
|
+
// })
|
|
187
|
+
// .beforeUpload(({ ctx, input }) => {
|
|
188
|
+
// return true;
|
|
189
|
+
// })
|
|
190
|
+
// .beforeDelete(({ ctx, file }) => {
|
|
191
|
+
// return true;
|
|
192
|
+
// });
|
|
193
|
+
// const b = es.imageBucket().path(({ ctx }) => [{ author: ctx.userId }]);
|
|
194
|
+
// const router = es.router({
|
|
195
|
+
// original: imagesBucket,
|
|
196
|
+
// imageBucket: a,
|
|
197
|
+
// imageBucket2: b,
|
|
198
|
+
// });
|
|
199
|
+
// export { router };
|
|
200
|
+
// type ListFilesResponse<TBucket extends AnyRouter['buckets'][string]> = {
|
|
201
|
+
// data: {
|
|
202
|
+
// // url: string;
|
|
203
|
+
// // size: number;
|
|
204
|
+
// // uploadedAt: Date;
|
|
205
|
+
// // metadata: InferMetadataObject<TBucket>;
|
|
206
|
+
// path: InferBucketPathKeys<TBucket> extends string ? {
|
|
207
|
+
// [key: string]: string;
|
|
208
|
+
// } :{
|
|
209
|
+
// [TKey in InferBucketPathKeys<TBucket>]: string;
|
|
210
|
+
// };
|
|
211
|
+
// }[];
|
|
212
|
+
// pagination: {
|
|
213
|
+
// currentPage: number;
|
|
214
|
+
// totalPages: number;
|
|
215
|
+
// totalCount: number;
|
|
216
|
+
// };
|
|
217
|
+
// };
|
|
218
|
+
// type TPathKeys = 'author' | 'type';
|
|
219
|
+
// type TPathKeys2 = InferBucketPathKeys<AnyBuilder>;
|
|
220
|
+
// type ObjectWithKeys<TKeys extends string> = {
|
|
221
|
+
// [TKey in TKeys]: string;
|
|
222
|
+
// };
|
|
223
|
+
// type Test1 = ObjectWithKeys<TPathKeys>;
|
|
224
|
+
// type Test2 = ObjectWithKeys<TPathKeys2>;
|
|
225
|
+
// type PathKeys = InferBucketPathKeys<typeof router.buckets.imageBucket>;
|
|
226
|
+
// type MetadataKeys = InferMetadataObject<typeof router.buckets.imageBucket>;
|
|
227
|
+
// type MyEdgeStoreRouter = typeof router;
|
|
228
|
+
// type MyAccessControl = AccessControlSchema<Context, AnyDef>;
|
|
229
|
+
|
|
230
|
+
export { initEdgeStore };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type RecursivePathProxy = {
|
|
2
|
+
(): string;
|
|
3
|
+
ctx: any;
|
|
4
|
+
input: any;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Creates a Proxy that prints the path to the property when called.
|
|
8
|
+
*
|
|
9
|
+
* Example:
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* const pathParamProxy = createPathParamProxy();
|
|
13
|
+
* console.log(pathParamProxy.ctx.user.id());
|
|
14
|
+
* // Logs: "ctx.user.id"
|
|
15
|
+
* console.log(pathParamProxy.input.type());
|
|
16
|
+
* // Logs: "input.type"
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function createPathParamProxy(): RecursivePathProxy;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=createPathParamProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPathParamProxy.d.ts","sourceRoot":"","sources":["../../src/internals/createPathParamProxy.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG;IACxB,IAAI,MAAM,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,kBAAkB,CAoBzD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a Proxy that prints the path to the property when called.
|
|
3
|
+
*
|
|
4
|
+
* Example:
|
|
5
|
+
*
|
|
6
|
+
* ```ts
|
|
7
|
+
* const pathParamProxy = createPathParamProxy();
|
|
8
|
+
* console.log(pathParamProxy.ctx.user.id());
|
|
9
|
+
* // Logs: "ctx.user.id"
|
|
10
|
+
* console.log(pathParamProxy.input.type());
|
|
11
|
+
* // Logs: "input.type"
|
|
12
|
+
* ```
|
|
13
|
+
*/ function createPathParamProxy() {
|
|
14
|
+
const getPath = (target, _prop)=>{
|
|
15
|
+
const proxyFunction = ()=>target;
|
|
16
|
+
return new Proxy(proxyFunction, {
|
|
17
|
+
get: (_target, propChild)=>{
|
|
18
|
+
return getPath(`${target}.${String(propChild)}`);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
return new Proxy(()=>'', {
|
|
23
|
+
get: (_target, prop)=>{
|
|
24
|
+
return getPath(String(prop));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { createPathParamProxy };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
+
import type { BackendFile, GetSignedUrlRes, ProviderFileMutationResult } from './providerTypes.js';
|
|
3
|
+
export type ProviderCapabilityName = 'upload' | 'get' | 'list' | 'confirm' | 'delete' | 'restore' | 'getSignedUrls';
|
|
4
|
+
export type ProviderCapability<TProvider, TName extends ProviderCapabilityName> = TName extends 'upload' ? TProvider extends {
|
|
5
|
+
uploads: {
|
|
6
|
+
upload: infer TOperation;
|
|
7
|
+
};
|
|
8
|
+
} ? Extract<TOperation, (...args: never[]) => unknown> : never : TProvider extends {
|
|
9
|
+
files: infer TFiles;
|
|
10
|
+
} ? TName extends keyof TFiles ? Extract<TFiles[TName], (...args: never[]) => unknown> : never : never;
|
|
11
|
+
export type ProviderCapabilityInput<TProvider, TName extends ProviderCapabilityName> = Parameters<ProviderCapability<TProvider, TName>>[0];
|
|
12
|
+
export type ProviderCapabilityResult<TProvider, TName extends ProviderCapabilityName> = Awaited<ReturnType<ProviderCapability<TProvider, TName>>>;
|
|
13
|
+
type ProviderReferenceSchema<TProvider> = TProvider extends {
|
|
14
|
+
reference: {
|
|
15
|
+
schema: infer TSchema extends StandardSchemaV1;
|
|
16
|
+
};
|
|
17
|
+
} ? TSchema : never;
|
|
18
|
+
export type ProviderReferenceInput<TProvider> = StandardSchemaV1.InferInput<ProviderReferenceSchema<TProvider>>;
|
|
19
|
+
export type ProviderReference<TProvider> = StandardSchemaV1.InferOutput<ProviderReferenceSchema<TProvider>>;
|
|
20
|
+
export type ProviderCursor<TProvider> = TProvider extends {
|
|
21
|
+
files: {
|
|
22
|
+
cursorSchema: infer TSchema extends StandardSchemaV1;
|
|
23
|
+
};
|
|
24
|
+
} ? StandardSchemaV1.InferOutput<TSchema> : string;
|
|
25
|
+
export type ProviderCapabilityFile<TProvider, TName extends 'upload' | 'get' | 'list'> = TName extends 'upload' ? ProviderCapabilityResult<TProvider, TName> extends {
|
|
26
|
+
file: infer TFile extends BackendFile;
|
|
27
|
+
} ? TFile : never : TName extends 'list' ? ProviderCapabilityResult<TProvider, TName> extends {
|
|
28
|
+
items: (infer TFile extends BackendFile)[];
|
|
29
|
+
} ? TFile : never : ProviderCapabilityResult<TProvider, TName> extends BackendFile ? ProviderCapabilityResult<TProvider, TName> : never;
|
|
30
|
+
export type ProviderMutationItem<TProvider, TName extends 'confirm' | 'delete' | 'restore'> = ProviderCapabilityResult<TProvider, TName> extends {
|
|
31
|
+
results: (infer TItem)[];
|
|
32
|
+
} ? TItem : never;
|
|
33
|
+
export type ProviderMutationError<TProvider, TName extends 'confirm' | 'delete' | 'restore'> = Extract<ProviderMutationItem<TProvider, TName>, {
|
|
34
|
+
success: false;
|
|
35
|
+
}> extends {
|
|
36
|
+
error: infer TError;
|
|
37
|
+
} ? TError : never;
|
|
38
|
+
type ProviderMutationErrorCode<TProvider, TName extends 'confirm' | 'delete' | 'restore'> = ProviderMutationError<TProvider, TName> extends {
|
|
39
|
+
code: infer TErrorCode extends string;
|
|
40
|
+
} ? TErrorCode : never;
|
|
41
|
+
export type ProviderSignedUrlResult<TProvider> = ProviderCapabilityResult<TProvider, 'getSignedUrls'> extends (infer TResult extends GetSignedUrlRes)[] ? TResult : never;
|
|
42
|
+
export type ProviderMutationResult<TProvider, TName extends 'confirm' | 'delete' | 'restore'> = ProviderFileMutationResult<ProviderMutationErrorCode<TProvider, TName>>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=providerCapabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerCapabilities.d.ts","sourceRoot":"","sources":["../../src/internals/providerCapabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
+
import { type MaybePromise } from '../types.js';
|
|
3
|
+
import { type AnyContext, type AnyMetadata, type EdgeStoreRouter } from './bucketBuilder.js';
|
|
4
|
+
export type InitParams<TCtx extends AnyContext = AnyContext> = {
|
|
5
|
+
ctx: TCtx;
|
|
6
|
+
router: EdgeStoreRouter<TCtx>;
|
|
7
|
+
};
|
|
8
|
+
export type ClientInit = {
|
|
9
|
+
path: string;
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
};
|
|
12
|
+
export type InitRes = {
|
|
13
|
+
token?: string;
|
|
14
|
+
clientInit?: ClientInit;
|
|
15
|
+
};
|
|
16
|
+
export type RequestUploadParams = {
|
|
17
|
+
multipart?: {
|
|
18
|
+
uploadId?: string;
|
|
19
|
+
parts: number[];
|
|
20
|
+
};
|
|
21
|
+
bucketName: string;
|
|
22
|
+
bucketType: string;
|
|
23
|
+
fileInfo: {
|
|
24
|
+
type?: string;
|
|
25
|
+
size: number;
|
|
26
|
+
extension: string;
|
|
27
|
+
isPublic: boolean;
|
|
28
|
+
fileName?: string;
|
|
29
|
+
path: {
|
|
30
|
+
key: string;
|
|
31
|
+
value: string;
|
|
32
|
+
}[];
|
|
33
|
+
metadata: AnyMetadata;
|
|
34
|
+
replaceTargetUrl?: string;
|
|
35
|
+
temporary: boolean;
|
|
36
|
+
};
|
|
37
|
+
autoSignedUrls?: {
|
|
38
|
+
expiresIn?: number;
|
|
39
|
+
includeThumbnails?: boolean;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export type ProviderFilterValue = string | Partial<{
|
|
43
|
+
eq: string;
|
|
44
|
+
neq: string;
|
|
45
|
+
gt: string;
|
|
46
|
+
gte: string;
|
|
47
|
+
lt: string;
|
|
48
|
+
lte: string;
|
|
49
|
+
startsWith: string;
|
|
50
|
+
endsWith: string;
|
|
51
|
+
between: [string, string];
|
|
52
|
+
}>;
|
|
53
|
+
export type ListFilesFilter = {
|
|
54
|
+
AND?: ListFilesFilter[];
|
|
55
|
+
OR?: ListFilesFilter[];
|
|
56
|
+
uploadedAt?: ProviderFilterValue;
|
|
57
|
+
path?: Record<string, ProviderFilterValue>;
|
|
58
|
+
metadata?: Record<string, ProviderFilterValue>;
|
|
59
|
+
};
|
|
60
|
+
export type FileReference = {
|
|
61
|
+
id: string;
|
|
62
|
+
} | {
|
|
63
|
+
key: string;
|
|
64
|
+
} | {
|
|
65
|
+
url: string;
|
|
66
|
+
};
|
|
67
|
+
export type ProviderFile = {
|
|
68
|
+
id: string;
|
|
69
|
+
url: string;
|
|
70
|
+
key: string;
|
|
71
|
+
thumbnailUrl: string | null;
|
|
72
|
+
thumbnailKey: string | null;
|
|
73
|
+
bucketId: string;
|
|
74
|
+
bucketName: string;
|
|
75
|
+
projectId: string;
|
|
76
|
+
accountId: string;
|
|
77
|
+
name: string;
|
|
78
|
+
path: Record<string, string>;
|
|
79
|
+
metadata: Record<string, string>;
|
|
80
|
+
sizeBytes: number;
|
|
81
|
+
mimeType: string | null;
|
|
82
|
+
state: 'requested' | 'uploaded' | 'deleted' | 'replace_requested';
|
|
83
|
+
temporary: boolean;
|
|
84
|
+
uploadedAt: Date;
|
|
85
|
+
updatedAt: Date;
|
|
86
|
+
};
|
|
87
|
+
export type BackendFile = {
|
|
88
|
+
url: string;
|
|
89
|
+
sizeBytes: number;
|
|
90
|
+
path: Record<string, string>;
|
|
91
|
+
metadata: Record<string, string>;
|
|
92
|
+
uploadedAt: Date | string;
|
|
93
|
+
updatedAt: Date | string;
|
|
94
|
+
};
|
|
95
|
+
export type ProviderFileMutationResult<TErrorCode extends string = 'FILE_NOT_CONFIRMABLE' | 'FILE_NOT_DELETABLE' | 'FILE_NOT_RESTORABLE' | 'INVALID_FILE_REF'> = {
|
|
96
|
+
results: ({
|
|
97
|
+
success: true;
|
|
98
|
+
} | {
|
|
99
|
+
success: false;
|
|
100
|
+
error: {
|
|
101
|
+
code: TErrorCode;
|
|
102
|
+
message: string;
|
|
103
|
+
};
|
|
104
|
+
})[];
|
|
105
|
+
};
|
|
106
|
+
export type BackendUploadParams = {
|
|
107
|
+
bucketName: string;
|
|
108
|
+
bucketType: string;
|
|
109
|
+
fileInfo: RequestUploadParams['fileInfo'];
|
|
110
|
+
autoSignedUrls?: RequestUploadParams['autoSignedUrls'];
|
|
111
|
+
source: Blob;
|
|
112
|
+
signal?: AbortSignal;
|
|
113
|
+
onProgress?: (progress: {
|
|
114
|
+
transferredBytes: number;
|
|
115
|
+
totalBytes: number;
|
|
116
|
+
percentage: number;
|
|
117
|
+
phase: 'preparing' | 'uploading' | 'processing';
|
|
118
|
+
}) => void;
|
|
119
|
+
};
|
|
120
|
+
export type BackendUploadResult<TFile extends BackendFile = ProviderFile> = {
|
|
121
|
+
file: TFile;
|
|
122
|
+
signedReadUrl?: {
|
|
123
|
+
signedUrl: string;
|
|
124
|
+
signedThumbnailUrl?: string | null;
|
|
125
|
+
expiresAt: Date | string;
|
|
126
|
+
expiresIn: number;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
export type BackendUploadOperation<TFile extends BackendFile = ProviderFile> = (params: BackendUploadParams) => MaybePromise<BackendUploadResult<TFile>>;
|
|
130
|
+
export type BackendGetFileOperation<TFile extends BackendFile = ProviderFile, TFileReference = FileReference> = (params: {
|
|
131
|
+
bucketName: string;
|
|
132
|
+
file: TFileReference;
|
|
133
|
+
}) => MaybePromise<TFile>;
|
|
134
|
+
export type BackendListFilesResult<TFile extends BackendFile = ProviderFile, TCursor = string> = {
|
|
135
|
+
items: TFile[];
|
|
136
|
+
limit: number;
|
|
137
|
+
nextCursor: TCursor | null;
|
|
138
|
+
hasMore: boolean;
|
|
139
|
+
};
|
|
140
|
+
export type BackendListFilesOperation<TFile extends BackendFile = ProviderFile, TCursor = string> = (params: {
|
|
141
|
+
bucketName: string;
|
|
142
|
+
filter?: ListFilesFilter;
|
|
143
|
+
cursor?: TCursor;
|
|
144
|
+
limit?: number;
|
|
145
|
+
}) => MaybePromise<BackendListFilesResult<TFile, TCursor>>;
|
|
146
|
+
export type BackendFileMutationOperation<TFileReference = FileReference, TErrorCode extends string = 'FILE_NOT_CONFIRMABLE' | 'FILE_NOT_DELETABLE' | 'FILE_NOT_RESTORABLE' | 'INVALID_FILE_REF'> = (params: {
|
|
147
|
+
bucketName: string;
|
|
148
|
+
files: TFileReference[];
|
|
149
|
+
}) => MaybePromise<ProviderFileMutationResult<TErrorCode>>;
|
|
150
|
+
export type BackendGetSignedUrlsOperation<TFileReference = FileReference, TResult extends GetSignedUrlRes = GetSignedUrlRes> = (params: {
|
|
151
|
+
bucketName: string;
|
|
152
|
+
files: TFileReference[];
|
|
153
|
+
expiresIn?: number;
|
|
154
|
+
includeThumbnails?: boolean;
|
|
155
|
+
}) => MaybePromise<TResult[]>;
|
|
156
|
+
export type RequestUploadPartsParams = {
|
|
157
|
+
multipart: {
|
|
158
|
+
uploadId: string;
|
|
159
|
+
parts: number[];
|
|
160
|
+
};
|
|
161
|
+
path: string;
|
|
162
|
+
};
|
|
163
|
+
export type RequestUploadPartsRes = {
|
|
164
|
+
multipart: {
|
|
165
|
+
uploadId: string;
|
|
166
|
+
parts: {
|
|
167
|
+
partNumber: number;
|
|
168
|
+
uploadUrl: string;
|
|
169
|
+
}[];
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
export type CompleteMultipartUploadParams = {
|
|
173
|
+
uploadId: string;
|
|
174
|
+
key: string;
|
|
175
|
+
parts: {
|
|
176
|
+
partNumber: number;
|
|
177
|
+
eTag: string;
|
|
178
|
+
}[];
|
|
179
|
+
};
|
|
180
|
+
type RequestUploadAccess = {
|
|
181
|
+
accessUrl: string;
|
|
182
|
+
thumbnailUrl?: string | null;
|
|
183
|
+
accessSignedUrl?: string;
|
|
184
|
+
accessSignedThumbnailUrl?: string | null;
|
|
185
|
+
accessSignedUrlExpiresAt?: Date | string;
|
|
186
|
+
accessSignedUrlExpiresIn?: number;
|
|
187
|
+
};
|
|
188
|
+
export type SinglePartRequestUploadRes = RequestUploadAccess & {
|
|
189
|
+
uploadUrl: string;
|
|
190
|
+
};
|
|
191
|
+
export type MultipartRequestUploadRes = RequestUploadAccess & {
|
|
192
|
+
multipart: {
|
|
193
|
+
key: string;
|
|
194
|
+
uploadId: string;
|
|
195
|
+
partSize: number;
|
|
196
|
+
totalParts: number;
|
|
197
|
+
parts: {
|
|
198
|
+
partNumber: number;
|
|
199
|
+
uploadUrl: string;
|
|
200
|
+
}[];
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
export type RequestUploadRes = SinglePartRequestUploadRes | MultipartRequestUploadRes;
|
|
204
|
+
export type GetSignedUrlRes = {
|
|
205
|
+
url: string;
|
|
206
|
+
signedUrl: string;
|
|
207
|
+
expiresAt: Date;
|
|
208
|
+
expiresIn: number;
|
|
209
|
+
thumbnailUrl?: string | null;
|
|
210
|
+
signedThumbnailUrl?: string | null;
|
|
211
|
+
};
|
|
212
|
+
export type ProviderReferenceDefinition<TSchema extends StandardSchemaV1 = StandardSchemaV1> = {
|
|
213
|
+
schema: TSchema;
|
|
214
|
+
fromUrl: (url: string) => MaybePromise<unknown>;
|
|
215
|
+
};
|
|
216
|
+
type ProviderUploadBase<TUpload extends BackendUploadOperation<BackendFile> | undefined = BackendUploadOperation<BackendFile> | undefined> = {
|
|
217
|
+
upload?: TUpload;
|
|
218
|
+
};
|
|
219
|
+
export type ProviderMultipartUploads = {
|
|
220
|
+
requestParts: (params: RequestUploadPartsParams) => MaybePromise<RequestUploadPartsRes>;
|
|
221
|
+
complete: (params: CompleteMultipartUploadParams) => MaybePromise<void>;
|
|
222
|
+
};
|
|
223
|
+
export type ProviderUploads<TUpload extends BackendUploadOperation<BackendFile> | undefined = BackendUploadOperation<BackendFile> | undefined> = (ProviderUploadBase<TUpload> & {
|
|
224
|
+
request: (params: RequestUploadParams) => MaybePromise<SinglePartRequestUploadRes>;
|
|
225
|
+
multipart?: never;
|
|
226
|
+
}) | (ProviderUploadBase<TUpload> & {
|
|
227
|
+
request: (params: RequestUploadParams) => MaybePromise<RequestUploadRes>;
|
|
228
|
+
multipart: ProviderMultipartUploads;
|
|
229
|
+
});
|
|
230
|
+
export type ProviderFiles<TFileReference = FileReference, TCursor = string, TGet extends BackendGetFileOperation<BackendFile, TFileReference> = BackendGetFileOperation<BackendFile, TFileReference>, TList extends BackendListFilesOperation<BackendFile, TCursor> | undefined = BackendListFilesOperation<BackendFile, TCursor> | undefined, TConfirm extends BackendFileMutationOperation<TFileReference, string> | undefined = BackendFileMutationOperation<TFileReference, string> | undefined, TDelete extends BackendFileMutationOperation<TFileReference, string> | undefined = BackendFileMutationOperation<TFileReference, string> | undefined, TRestore extends BackendFileMutationOperation<TFileReference, string> | undefined = BackendFileMutationOperation<TFileReference, string> | undefined, TGetSignedUrls extends BackendGetSignedUrlsOperation<TFileReference> | undefined = BackendGetSignedUrlsOperation<TFileReference> | undefined> = {
|
|
231
|
+
cursorSchema?: StandardSchemaV1<unknown, TCursor>;
|
|
232
|
+
get: TGet;
|
|
233
|
+
list?: TList;
|
|
234
|
+
confirm?: TConfirm;
|
|
235
|
+
delete?: TDelete;
|
|
236
|
+
restore?: TRestore;
|
|
237
|
+
getSignedUrls?: TGetSignedUrls;
|
|
238
|
+
};
|
|
239
|
+
export type EdgeStoreProvider<TReferenceSchema extends StandardSchemaV1 = StandardSchemaV1<unknown, FileReference>, TCursor = string, TUploads extends ProviderUploads = ProviderUploads, TFiles extends ProviderFiles<StandardSchemaV1.InferOutput<TReferenceSchema>, TCursor> = ProviderFiles<StandardSchemaV1.InferOutput<TReferenceSchema>, TCursor>> = {
|
|
240
|
+
name: string;
|
|
241
|
+
baseUrl: string | (() => MaybePromise<string>);
|
|
242
|
+
init: <TCtx extends AnyContext>(params: InitParams<TCtx>) => MaybePromise<InitRes>;
|
|
243
|
+
reference: ProviderReferenceDefinition<TReferenceSchema>;
|
|
244
|
+
uploads: TUploads;
|
|
245
|
+
files: TFiles;
|
|
246
|
+
};
|
|
247
|
+
export type AnyEdgeStoreProvider = EdgeStoreProvider<StandardSchemaV1<any, any>, any, ProviderUploads, ProviderFiles<any, any>>;
|
|
248
|
+
declare const routerFileFieldsProviderBrand: unique symbol;
|
|
249
|
+
/**
|
|
250
|
+
* @internal Marks providers whose read contract persists the router-derived
|
|
251
|
+
* path and metadata fields.
|
|
252
|
+
*/
|
|
253
|
+
export type RouterFileFieldsProvider = {
|
|
254
|
+
readonly [routerFileFieldsProviderBrand]: true;
|
|
255
|
+
};
|
|
256
|
+
export type DefaultEdgeStoreProvider = EdgeStoreProvider<StandardSchemaV1<unknown, FileReference>, string> & RouterFileFieldsProvider & {
|
|
257
|
+
uploads: ProviderUploads<BackendUploadOperation> & {
|
|
258
|
+
upload: BackendUploadOperation;
|
|
259
|
+
};
|
|
260
|
+
files: ProviderFiles<FileReference, string> & {
|
|
261
|
+
get: BackendGetFileOperation;
|
|
262
|
+
list: BackendListFilesOperation;
|
|
263
|
+
confirm: BackendFileMutationOperation;
|
|
264
|
+
delete: BackendFileMutationOperation;
|
|
265
|
+
restore: BackendFileMutationOperation;
|
|
266
|
+
getSignedUrls: BackendGetSignedUrlsOperation;
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
export {};
|
|
270
|
+
//# sourceMappingURL=providerTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerTypes.d.ts","sourceRoot":"","sources":["../../src/internals/providerTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Simplify } from '../types.js';
|
|
2
|
+
import { type AnyMetadata } from './bucketBuilder.js';
|
|
3
|
+
import { type ClientInit, type RequestUploadPartsRes, type RequestUploadRes } from './providerTypes.js';
|
|
4
|
+
export type SharedInitRes = {
|
|
5
|
+
newCookies: string[];
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
providerName: string;
|
|
8
|
+
clientInit?: ClientInit;
|
|
9
|
+
};
|
|
10
|
+
export type SharedRequestUploadRes = Simplify<RequestUploadRes & {
|
|
11
|
+
size: number;
|
|
12
|
+
uploadedAt: string;
|
|
13
|
+
path: Record<string, string>;
|
|
14
|
+
pathOrder: string[];
|
|
15
|
+
metadata: AnyMetadata;
|
|
16
|
+
}>;
|
|
17
|
+
export type SharedRequestUploadPartsRes = RequestUploadPartsRes;
|
|
18
|
+
export type SharedFileMutationRes = {
|
|
19
|
+
succeeded: string[];
|
|
20
|
+
failed: {
|
|
21
|
+
url: string;
|
|
22
|
+
error: {
|
|
23
|
+
code: string;
|
|
24
|
+
message: string;
|
|
25
|
+
};
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
export type SharedConfirmUploadsRes = SharedFileMutationRes;
|
|
29
|
+
export type SharedDeleteFilesRes = SharedFileMutationRes;
|
|
30
|
+
//# sourceMappingURL=sharedFuncTypes.d.ts.map
|
|
@@ -0,0 +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,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,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;AAEhE,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC"}
|