@edgestore/shared 1.0.0-next.0 → 1.0.0-next.1

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/index.d.ts CHANGED
@@ -3,5 +3,6 @@ export * from './types.js';
3
3
  export * from './internals/bucketBuilder.js';
4
4
  export * from './internals/types.js';
5
5
  export * from './internals/providerTypes.js';
6
+ export * from './internals/providerCapabilities.js';
6
7
  export * from './internals/sharedFuncTypes.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC"}
@@ -16,9 +16,24 @@ export type InferBucketPathOrder<TBucket extends Builder<any, AnyDef>> = InferBu
16
16
  export type InferBucketPathObjectFromDef<TDef extends AnyDef> = InferBucketPathKeysFromDef<TDef> extends never ? Record<string, never> : {
17
17
  [TKey in InferBucketPathKeysFromDef<TDef>]: string;
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>;
20
- type InferMetadataObjectFromDef<TDef extends AnyDef> = TDef['metadata'] extends (...args: any) => any ? Awaited<ReturnType<TDef['metadata']>> : Record<string, never>;
21
- export type AnyContextValue = string | undefined | null | AnyContext;
19
+ type NormalizeMetadata<TMetadata> = string extends keyof TMetadata ? Record<string, Exclude<TMetadata[string], null | undefined>> : Simplify<{
20
+ [TKey in keyof TMetadata as Extract<TMetadata[TKey], null | undefined> extends never ? TKey : never]: Exclude<TMetadata[TKey], null | undefined>;
21
+ } & {
22
+ [TKey in keyof TMetadata as Extract<TMetadata[TKey], null | undefined> extends never ? never : TKey]?: Exclude<TMetadata[TKey], null | undefined>;
23
+ }>;
24
+ type InferMetadataObjectFromFn<TMetadata> = [
25
+ Exclude<TMetadata, undefined>
26
+ ] extends [never] ? Record<string, never> : Exclude<TMetadata, undefined> extends (...args: any) => any ? NormalizeMetadata<Awaited<ReturnType<Exclude<TMetadata, undefined>>>> : Record<string, never>;
27
+ export type InferMetadataObject<TBucket extends Builder<any, AnyDef>> = InferMetadataObjectFromFn<TBucket['_def']['metadata']>;
28
+ type InferMetadataObjectFromDef<TDef extends AnyDef> = InferMetadataObjectFromFn<TDef['metadata']>;
29
+ export type AnyContextValue = string | undefined;
30
+ /**
31
+ * Context shared by router hooks, path and metadata builders, and providers.
32
+ *
33
+ * Values are limited to strings so every supported provider receives the same
34
+ * context shape. Optional properties may be `undefined`; providers omit them
35
+ * when serializing the context.
36
+ */
22
37
  export interface AnyContext {
23
38
  [key: string]: AnyContextValue;
24
39
  }
@@ -96,7 +111,7 @@ type MetadataFn<TCtx, TInput extends AnyInput, TMetadata extends AnyMetadata> =
96
111
  }) => MaybePromise<TMetadata>;
97
112
  export type AnyMetadataFn = MetadataFn<any, AnyInput, AnyMetadata>;
98
113
  type BucketType = 'IMAGE' | 'FILE';
99
- type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMetadataFn> = {
114
+ type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMetadataFn | undefined> = {
100
115
  type: BucketType;
101
116
  input: TInput;
102
117
  path: TPath;
@@ -107,7 +122,7 @@ type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMe
107
122
  beforeUpload?: BeforeUploadFn<any, any>;
108
123
  beforeDelete?: BeforeDeleteFn<any, any>;
109
124
  };
110
- type AnyDef = Def<AnyInput, AnyPath, AnyMetadataFn>;
125
+ type AnyDef = Def<AnyInput, AnyPath, AnyMetadataFn | undefined>;
111
126
  type Builder<TCtx, TDef extends AnyDef> = {
112
127
  /** only used for types */
113
128
  $config: {
@@ -252,7 +267,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
252
267
  type: "IMAGE";
253
268
  input: z.ZodNever;
254
269
  path: [];
255
- metadata: () => Record<string, never>;
270
+ metadata: undefined;
256
271
  bucketConfig?: BucketConfig;
257
272
  accessControl?: AccessControl<any, any>;
258
273
  autoSignedUrls?: AutoSignedUrlsConfig;
@@ -266,7 +281,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
266
281
  type: "FILE";
267
282
  input: z.ZodNever;
268
283
  path: [];
269
- metadata: () => Record<string, never>;
284
+ metadata: undefined;
270
285
  bucketConfig?: BucketConfig;
271
286
  accessControl?: AccessControl<any, any>;
272
287
  autoSignedUrls?: AutoSignedUrlsConfig;
@@ -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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"}
@@ -16,7 +16,7 @@ function createBuilder(opts, initDef) {
16
16
  type: opts.type,
17
17
  input: z.never(),
18
18
  path: [],
19
- metadata: ()=>({}),
19
+ metadata: undefined,
20
20
  ...initDef
21
21
  };
22
22
  return {
@@ -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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"}
@@ -1,25 +1,17 @@
1
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
1
2
  import { type MaybePromise } from '../types.js';
2
- import { type AnyBuilder, type AnyMetadata, type EdgeStoreRouter } from './bucketBuilder.js';
3
- export type InitParams = {
4
- ctx: any;
5
- router: EdgeStoreRouter<any>;
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>;
6
11
  };
7
12
  export type InitRes = {
8
13
  token?: string;
9
- };
10
- export type GetFileParams = {
11
- url: string;
12
- };
13
- export type GetFileRes = {
14
- url: string;
15
- size: number;
16
- uploadedAt: Date;
17
- path: {
18
- [key: string]: string;
19
- };
20
- metadata: {
21
- [key: string]: string;
22
- };
14
+ clientInit?: ClientInit;
23
15
  };
24
16
  export type RequestUploadParams = {
25
17
  multipart?: {
@@ -29,6 +21,7 @@ export type RequestUploadParams = {
29
21
  bucketName: string;
30
22
  bucketType: string;
31
23
  fileInfo: {
24
+ type?: string;
32
25
  size: number;
33
26
  extension: string;
34
27
  isPublic: boolean;
@@ -46,6 +39,122 @@ export type RequestUploadParams = {
46
39
  includeThumbnails?: boolean;
47
40
  };
48
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
+ /** Router-derived path values, when this operation retrieves them. */
91
+ path?: Record<string, string>;
92
+ /** Router-derived metadata values, when this operation retrieves them. */
93
+ metadata?: Record<string, string>;
94
+ uploadedAt: Date | string;
95
+ updatedAt: Date | string;
96
+ };
97
+ export type ProviderFileMutationResult<TErrorCode extends string = 'FILE_NOT_CONFIRMABLE' | 'FILE_NOT_DELETABLE' | 'FILE_NOT_RESTORABLE' | 'INVALID_FILE_REF'> = {
98
+ results: ({
99
+ success: true;
100
+ } | {
101
+ success: false;
102
+ error: {
103
+ code: TErrorCode;
104
+ message: string;
105
+ };
106
+ })[];
107
+ };
108
+ export type BackendUploadParams = {
109
+ bucketName: string;
110
+ bucketType: string;
111
+ fileInfo: RequestUploadParams['fileInfo'];
112
+ autoSignedUrls?: RequestUploadParams['autoSignedUrls'];
113
+ source: Blob;
114
+ signal?: AbortSignal;
115
+ onProgress?: (progress: {
116
+ transferredBytes: number;
117
+ totalBytes: number;
118
+ percentage: number;
119
+ phase: 'preparing' | 'uploading' | 'processing';
120
+ }) => void;
121
+ };
122
+ export type BackendUploadResult<TFile extends BackendFile = ProviderFile> = {
123
+ file: TFile;
124
+ signedReadUrl?: {
125
+ signedUrl: string;
126
+ signedThumbnailUrl?: string | null;
127
+ expiresAt: Date | string;
128
+ expiresIn: number;
129
+ };
130
+ };
131
+ export type BackendUploadOperation<TFile extends BackendFile = ProviderFile> = (params: BackendUploadParams) => MaybePromise<BackendUploadResult<TFile>>;
132
+ export type BackendGetFileOperation<TFile extends BackendFile = ProviderFile, TFileReference = FileReference> = (params: {
133
+ bucketName: string;
134
+ file: TFileReference;
135
+ }) => MaybePromise<TFile>;
136
+ export type BackendListFilesResult<TFile extends BackendFile = ProviderFile, TCursor = string> = {
137
+ items: TFile[];
138
+ limit: number;
139
+ nextCursor: TCursor | null;
140
+ hasMore: boolean;
141
+ };
142
+ export type BackendListFilesOperation<TFile extends BackendFile = ProviderFile, TCursor = string> = (params: {
143
+ bucketName: string;
144
+ filter?: ListFilesFilter;
145
+ cursor?: TCursor;
146
+ limit?: number;
147
+ }) => MaybePromise<BackendListFilesResult<TFile, TCursor>>;
148
+ export type BackendFileMutationOperation<TFileReference = FileReference, TErrorCode extends string = 'FILE_NOT_CONFIRMABLE' | 'FILE_NOT_DELETABLE' | 'FILE_NOT_RESTORABLE' | 'INVALID_FILE_REF'> = (params: {
149
+ bucketName: string;
150
+ files: TFileReference[];
151
+ }) => MaybePromise<ProviderFileMutationResult<TErrorCode>>;
152
+ export type BackendGetSignedUrlsOperation<TFileReference = FileReference, TResult extends GetSignedUrlRes = GetSignedUrlRes> = (params: {
153
+ bucketName: string;
154
+ files: TFileReference[];
155
+ expiresIn?: number;
156
+ includeThumbnails?: boolean;
157
+ }) => MaybePromise<TResult[]>;
49
158
  export type RequestUploadPartsParams = {
50
159
  multipart: {
51
160
  uploadId: string;
@@ -70,18 +179,18 @@ export type CompleteMultipartUploadParams = {
70
179
  eTag: string;
71
180
  }[];
72
181
  };
73
- export type CompleteMultipartUploadRes = {
74
- success: boolean;
75
- };
76
- export type RequestUploadRes = {
77
- uploadUrl: string;
182
+ type RequestUploadAccess = {
78
183
  accessUrl: string;
79
184
  thumbnailUrl?: string | null;
80
185
  accessSignedUrl?: string;
81
186
  accessSignedThumbnailUrl?: string | null;
82
187
  accessSignedUrlExpiresAt?: Date | string;
83
188
  accessSignedUrlExpiresIn?: number;
84
- } | {
189
+ };
190
+ export type SinglePartRequestUploadRes = RequestUploadAccess & {
191
+ uploadUrl: string;
192
+ };
193
+ export type MultipartRequestUploadRes = RequestUploadAccess & {
85
194
  multipart: {
86
195
  key: string;
87
196
  uploadId: string;
@@ -92,19 +201,8 @@ export type RequestUploadRes = {
92
201
  uploadUrl: string;
93
202
  }[];
94
203
  };
95
- accessUrl: string;
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
204
  };
205
+ export type RequestUploadRes = SinglePartRequestUploadRes | MultipartRequestUploadRes;
108
206
  export type GetSignedUrlRes = {
109
207
  url: string;
110
208
  signedUrl: string;
@@ -113,30 +211,54 @@ export type GetSignedUrlRes = {
113
211
  thumbnailUrl?: string | null;
114
212
  signedThumbnailUrl?: string | null;
115
213
  };
116
- export type ConfirmUpload = {
117
- bucket: AnyBuilder;
118
- url: string;
214
+ export type ProviderReferenceDefinition<TSchema extends StandardSchemaV1 = StandardSchemaV1> = {
215
+ schema: TSchema;
216
+ fromUrl: (url: string) => MaybePromise<unknown>;
119
217
  };
120
- export type ConfirmUploadRes = {
121
- success: boolean;
218
+ type ProviderUploadBase<TUpload extends BackendUploadOperation<BackendFile> | undefined = BackendUploadOperation<BackendFile> | undefined> = {
219
+ upload?: TUpload;
122
220
  };
123
- export type DeleteFileParams = {
124
- bucket: AnyBuilder;
125
- url: string;
221
+ export type ProviderMultipartUploads = {
222
+ requestParts: (params: RequestUploadPartsParams) => MaybePromise<RequestUploadPartsRes>;
223
+ complete: (params: CompleteMultipartUploadParams) => MaybePromise<void>;
126
224
  };
127
- export type DeleteFileRes = {
128
- success: boolean;
225
+ export type ProviderUploads<TUpload extends BackendUploadOperation<BackendFile> | undefined = BackendUploadOperation<BackendFile> | undefined> = (ProviderUploadBase<TUpload> & {
226
+ request: (params: RequestUploadParams) => MaybePromise<SinglePartRequestUploadRes>;
227
+ multipart?: never;
228
+ }) | (ProviderUploadBase<TUpload> & {
229
+ request: (params: RequestUploadParams) => MaybePromise<RequestUploadRes>;
230
+ multipart: ProviderMultipartUploads;
231
+ });
232
+ 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> = {
233
+ cursorSchema?: StandardSchemaV1<unknown, TCursor>;
234
+ get: TGet;
235
+ list?: TList;
236
+ confirm?: TConfirm;
237
+ delete?: TDelete;
238
+ restore?: TRestore;
239
+ getSignedUrls?: TGetSignedUrls;
129
240
  };
130
- export type Provider = {
241
+ 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>> = {
131
242
  name: string;
132
- init: (params: InitParams) => MaybePromise<InitRes>;
133
- getBaseUrl: () => MaybePromise<string>;
134
- getFile: (params: GetFileParams) => MaybePromise<GetFileRes>;
135
- requestUpload: (params: RequestUploadParams) => MaybePromise<RequestUploadRes>;
136
- requestUploadParts: (params: RequestUploadPartsParams) => MaybePromise<RequestUploadPartsRes>;
137
- getSignedUrls?: (params: GetSignedUrlsParams) => MaybePromise<GetSignedUrlRes[]>;
138
- completeMultipartUpload: (params: CompleteMultipartUploadParams) => MaybePromise<CompleteMultipartUploadRes>;
139
- confirmUpload: (params: ConfirmUpload) => MaybePromise<ConfirmUploadRes>;
140
- deleteFile: (params: DeleteFileParams) => MaybePromise<DeleteFileRes>;
243
+ baseUrl: string | (() => MaybePromise<string>);
244
+ init: <TCtx extends AnyContext>(params: InitParams<TCtx>) => MaybePromise<InitRes>;
245
+ reference: ProviderReferenceDefinition<TReferenceSchema>;
246
+ uploads: TUploads;
247
+ files: TFiles;
248
+ };
249
+ export type AnyEdgeStoreProvider = EdgeStoreProvider<StandardSchemaV1<any, any>, any, ProviderUploads, ProviderFiles<any, any>>;
250
+ export type DefaultEdgeStoreProvider = EdgeStoreProvider<StandardSchemaV1<unknown, FileReference>, string> & {
251
+ uploads: ProviderUploads<BackendUploadOperation> & {
252
+ upload: BackendUploadOperation;
253
+ };
254
+ files: ProviderFiles<FileReference, string> & {
255
+ get: BackendGetFileOperation;
256
+ list: BackendListFilesOperation;
257
+ confirm: BackendFileMutationOperation;
258
+ delete: BackendFileMutationOperation;
259
+ restore: BackendFileMutationOperation;
260
+ getSignedUrls: BackendGetSignedUrlsOperation;
261
+ };
141
262
  };
263
+ export {};
142
264
  //# sourceMappingURL=providerTypes.d.ts.map
@@ -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":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,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,CAAC,IAAI,SAAS,UAAU,GAAG,UAAU,IAAI;IAC7D,GAAG,EAAE,IAAI,CAAC;IACV,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,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,CAAC,EAAE,MAAM,CAAC;QACd,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,mBAAmB,GAC3B,MAAM,GACN,OAAO,CAAC;IACN,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEP,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC;IACxB,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,UAAU,SAAS,MAAM,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,IACpB;IACF,OAAO,EAAE,CACL;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GACjB;QACE,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE;YACL,IAAI,EAAE,UAAU,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CACJ,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;KACjD,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,WAAW,GAAG,YAAY,IAAI;IAC1E,IAAI,EAAE,KAAK,CAAC;IACZ,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACnC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,WAAW,GAAG,YAAY,IAAI,CAC7E,MAAM,EAAE,mBAAmB,KACxB,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,uBAAuB,CACjC,KAAK,SAAS,WAAW,GAAG,YAAY,EACxC,cAAc,GAAG,aAAa,IAC5B,CAAC,MAAM,EAAE;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;CACtB,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;AAE1B,MAAM,MAAM,sBAAsB,CAChC,KAAK,SAAS,WAAW,GAAG,YAAY,EACxC,OAAO,GAAG,MAAM,IACd;IACF,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACnC,KAAK,SAAS,WAAW,GAAG,YAAY,EACxC,OAAO,GAAG,MAAM,IACd,CAAC,MAAM,EAAE;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,KAAK,YAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3D,MAAM,MAAM,4BAA4B,CACtC,cAAc,GAAG,aAAa,EAC9B,UAAU,SAAS,MAAM,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,IACpB,CAAC,MAAM,EAAE;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB,KAAK,YAAY,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC;AAE3D,MAAM,MAAM,6BAA6B,CACvC,cAAc,GAAG,aAAa,EAC9B,OAAO,SAAS,eAAe,GAAG,eAAe,IAC/C,CAAC,MAAM,EAAE;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AAE9B,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,KAAK,mBAAmB,GAAG;IACzB,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;AAEF,MAAM,MAAM,0BAA0B,GAAG,mBAAmB,GAAG;IAC7D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAC5D,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;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAC1B,0BAA0B,GAAG,yBAAyB,CAAC;AAEzD,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,2BAA2B,CACrC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,IACjD;IACF,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC;CACjD,CAAC;AAEF,KAAK,kBAAkB,CACrB,OAAO,SAAS,sBAAsB,CAAC,WAAW,CAAC,GAAG,SAAS,GAC7D,sBAAsB,CAAC,WAAW,CAAC,GAAG,SAAS,IAC/C;IACF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,CACZ,MAAM,EAAE,wBAAwB,KAC7B,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,6BAA6B,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,eAAe,CACzB,OAAO,SAAS,sBAAsB,CAAC,WAAW,CAAC,GAAG,SAAS,GAC7D,sBAAsB,CAAC,WAAW,CAAC,GAAG,SAAS,IAE/C,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG;IAC7B,OAAO,EAAE,CACP,MAAM,EAAE,mBAAmB,KACxB,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB,CAAC,GACF,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG;IAC7B,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzE,SAAS,EAAE,wBAAwB,CAAC;CACrC,CAAC,CAAC;AAEP,MAAM,MAAM,aAAa,CACvB,cAAc,GAAG,aAAa,EAC9B,OAAO,GAAG,MAAM,EAChB,IAAI,SAAS,uBAAuB,CAAC,WAAW,EAAE,cAAc,CAAC,GAC/D,uBAAuB,CAAC,WAAW,EAAE,cAAc,CAAC,EACtD,KAAK,SAAS,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,GACvE,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7D,QAAQ,SACN,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,GAChE,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,EAClE,OAAO,SACL,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,GAChE,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,EAClE,QAAQ,SACN,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,GAChE,4BAA4B,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,SAAS,EAClE,cAAc,SACZ,6BAA6B,CAAC,cAAc,CAAC,GAAG,SAAS,GACzD,6BAA6B,CAAC,cAAc,CAAC,GAAG,SAAS,IACzD;IACF,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAC3B,gBAAgB,SAAS,gBAAgB,GAAG,gBAAgB,CAC1D,OAAO,EACP,aAAa,CACd,EACD,OAAO,GAAG,MAAM,EAChB,QAAQ,SAAS,eAAe,GAAG,eAAe,EAClD,MAAM,SAAS,aAAa,CAC1B,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAC9C,OAAO,CACR,GAAG,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,IACxE;IACF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,IAAI,SAAS,UAAU,EAC5B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,KACrB,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3B,SAAS,EAAE,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;IACzD,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAClD,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1B,GAAG,EACH,eAAe,EACf,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CACtD,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,EACxC,MAAM,CACP,GAAG;IACF,OAAO,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG;QACjD,MAAM,EAAE,sBAAsB,CAAC;KAChC,CAAC;IACF,KAAK,EAAE,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAC5C,GAAG,EAAE,uBAAuB,CAAC;QAC7B,IAAI,EAAE,yBAAyB,CAAC;QAChC,OAAO,EAAE,4BAA4B,CAAC;QACtC,MAAM,EAAE,4BAA4B,CAAC;QACrC,OAAO,EAAE,4BAA4B,CAAC;QACtC,aAAa,EAAE,6BAA6B,CAAC;KAC9C,CAAC;CACH,CAAC"}
@@ -1,12 +1,11 @@
1
1
  import { type Simplify } from '../types.js';
2
2
  import { type AnyMetadata } from './bucketBuilder.js';
3
- import { type DeleteFileRes, type RequestUploadPartsRes, type RequestUploadRes } from './providerTypes.js';
3
+ import { type ClientInit, type RequestUploadPartsRes, type RequestUploadRes } from './providerTypes.js';
4
4
  export type SharedInitRes = {
5
5
  newCookies: string[];
6
- token: string | undefined;
7
6
  baseUrl: string;
8
7
  providerName: string;
9
- requiresFileAccessCookie: boolean;
8
+ clientInit?: ClientInit;
10
9
  };
11
10
  export type SharedRequestUploadRes = Simplify<RequestUploadRes & {
12
11
  size: number;
@@ -16,5 +15,16 @@ export type SharedRequestUploadRes = Simplify<RequestUploadRes & {
16
15
  metadata: AnyMetadata;
17
16
  }>;
18
17
  export type SharedRequestUploadPartsRes = RequestUploadPartsRes;
19
- export type SharedDeleteFileRes = DeleteFileRes;
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;
20
30
  //# sourceMappingURL=sharedFuncTypes.d.ts.map
@@ -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;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
+ {"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"}
@@ -26,7 +26,7 @@ export type UploadOptions = {
26
26
  */
27
27
  replaceTargetUrl?: string;
28
28
  /**
29
- * If true, the file needs to be confirmed by using the `confirmUpload` function.
29
+ * If true, the file needs to be confirmed by using the `confirm` function.
30
30
  * If the file is not confirmed within 24 hours, it will be deleted.
31
31
  *
32
32
  * This is useful for pages where the file is uploaded as soon as it is selected,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edgestore/shared",
3
- "version": "1.0.0-next.0",
3
+ "version": "1.0.0-next.1",
4
4
  "description": "Upload files with ease from React/Next.js",
5
5
  "homepage": "https://edgestore.dev",
6
6
  "license": "MIT",
@@ -48,6 +48,9 @@
48
48
  "!**/*.test.*",
49
49
  "!**/__tests__"
50
50
  ],
51
+ "dependencies": {
52
+ "@standard-schema/spec": "^1.1.0"
53
+ },
51
54
  "peerDependencies": {
52
55
  "react": ">=16.8.0",
53
56
  "react-dom": ">=16.8.0",
package/src/index.ts CHANGED
@@ -3,4 +3,5 @@ export * from './types';
3
3
  export * from './internals/bucketBuilder';
4
4
  export * from './internals/types';
5
5
  export * from './internals/providerTypes';
6
+ export * from './internals/providerCapabilities';
6
7
  export * from './internals/sharedFuncTypes';
@@ -49,18 +49,53 @@ export type InferBucketPathObjectFromDef<TDef extends AnyDef> =
49
49
  [TKey in InferBucketPathKeysFromDef<TDef>]: string;
50
50
  };
51
51
 
52
- export type InferMetadataObject<TBucket extends Builder<any, AnyDef>> =
53
- TBucket['_def']['metadata'] extends (...args: any) => any
54
- ? Awaited<ReturnType<TBucket['_def']['metadata']>>
52
+ type NormalizeMetadata<TMetadata> = string extends keyof TMetadata
53
+ ? Record<string, Exclude<TMetadata[string], null | undefined>>
54
+ : Simplify<
55
+ {
56
+ [
57
+ TKey in keyof TMetadata as Extract<
58
+ TMetadata[TKey],
59
+ null | undefined
60
+ > extends never
61
+ ? TKey
62
+ : never
63
+ ]: Exclude<TMetadata[TKey], null | undefined>;
64
+ } & {
65
+ [
66
+ TKey in keyof TMetadata as Extract<
67
+ TMetadata[TKey],
68
+ null | undefined
69
+ > extends never
70
+ ? never
71
+ : TKey
72
+ ]?: Exclude<TMetadata[TKey], null | undefined>;
73
+ }
74
+ >;
75
+
76
+ type InferMetadataObjectFromFn<TMetadata> = [
77
+ Exclude<TMetadata, undefined>,
78
+ ] extends [never]
79
+ ? Record<string, never>
80
+ : Exclude<TMetadata, undefined> extends (...args: any) => any
81
+ ? NormalizeMetadata<Awaited<ReturnType<Exclude<TMetadata, undefined>>>>
55
82
  : Record<string, never>;
56
83
 
84
+ export type InferMetadataObject<TBucket extends Builder<any, AnyDef>> =
85
+ InferMetadataObjectFromFn<TBucket['_def']['metadata']>;
86
+
57
87
  type InferMetadataObjectFromDef<TDef extends AnyDef> =
58
- TDef['metadata'] extends (...args: any) => any
59
- ? Awaited<ReturnType<TDef['metadata']>>
60
- : Record<string, never>;
88
+ InferMetadataObjectFromFn<TDef['metadata']>;
61
89
 
62
- export type AnyContextValue = string | undefined | null | AnyContext;
90
+ export type AnyContextValue = string | undefined;
63
91
 
92
+ /**
93
+ * Context shared by router hooks, path and metadata builders, and providers.
94
+ *
95
+ * Values are limited to strings so every supported provider receives the same
96
+ * context shape. Optional properties may be `undefined`; providers omit them
97
+ * when serializing the context.
98
+ */
64
99
  export interface AnyContext {
65
100
  [key: string]: AnyContextValue;
66
101
  }
@@ -162,7 +197,7 @@ type BucketType = 'IMAGE' | 'FILE';
162
197
  type Def<
163
198
  TInput extends AnyInput,
164
199
  TPath extends AnyPath,
165
- TMetadata extends AnyMetadataFn,
200
+ TMetadata extends AnyMetadataFn | undefined,
166
201
  > = {
167
202
  type: BucketType;
168
203
  input: TInput;
@@ -175,7 +210,7 @@ type Def<
175
210
  beforeDelete?: BeforeDeleteFn<any, any>;
176
211
  };
177
212
 
178
- type AnyDef = Def<AnyInput, AnyPath, AnyMetadataFn>;
213
+ type AnyDef = Def<AnyInput, AnyPath, AnyMetadataFn | undefined>;
179
214
 
180
215
  type Builder<TCtx, TDef extends AnyDef> = {
181
216
  /** only used for types */
@@ -358,7 +393,7 @@ function createBuilder<
358
393
  TType extends BucketType,
359
394
  TInput extends AnyInput = z.ZodNever,
360
395
  TPath extends AnyPath = [],
361
- TMetadata extends AnyMetadataFn = () => Record<string, never>,
396
+ TMetadata extends AnyMetadataFn | undefined = undefined,
362
397
  >(
363
398
  opts: { type: TType },
364
399
  initDef?: Partial<AnyDef>,
@@ -380,7 +415,7 @@ function createBuilder<
380
415
  type: opts.type,
381
416
  input: z.never(),
382
417
  path: [],
383
- metadata: () => ({}),
418
+ metadata: undefined,
384
419
  ...initDef,
385
420
  };
386
421
 
@@ -0,0 +1,126 @@
1
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
2
+ import type {
3
+ BackendFile,
4
+ GetSignedUrlRes,
5
+ ProviderFileMutationResult,
6
+ } from './providerTypes';
7
+
8
+ export type ProviderCapabilityName =
9
+ | 'upload'
10
+ | 'get'
11
+ | 'list'
12
+ | 'confirm'
13
+ | 'delete'
14
+ | 'restore'
15
+ | 'getSignedUrls';
16
+
17
+ export type ProviderCapability<
18
+ TProvider,
19
+ TName extends ProviderCapabilityName,
20
+ > = TName extends 'upload'
21
+ ? TProvider extends { uploads: { upload: infer TOperation } }
22
+ ? Extract<TOperation, (...args: never[]) => unknown>
23
+ : never
24
+ : TProvider extends {
25
+ files: infer TFiles;
26
+ }
27
+ ? TName extends keyof TFiles
28
+ ? Extract<TFiles[TName], (...args: never[]) => unknown>
29
+ : never
30
+ : never;
31
+
32
+ export type ProviderCapabilityInput<
33
+ TProvider,
34
+ TName extends ProviderCapabilityName,
35
+ > = Parameters<ProviderCapability<TProvider, TName>>[0];
36
+
37
+ export type ProviderCapabilityResult<
38
+ TProvider,
39
+ TName extends ProviderCapabilityName,
40
+ > = Awaited<ReturnType<ProviderCapability<TProvider, TName>>>;
41
+
42
+ type ProviderReferenceSchema<TProvider> = TProvider extends {
43
+ reference: {
44
+ schema: infer TSchema extends StandardSchemaV1;
45
+ };
46
+ }
47
+ ? TSchema
48
+ : never;
49
+
50
+ export type ProviderReferenceInput<TProvider> = StandardSchemaV1.InferInput<
51
+ ProviderReferenceSchema<TProvider>
52
+ >;
53
+
54
+ export type ProviderReference<TProvider> = StandardSchemaV1.InferOutput<
55
+ ProviderReferenceSchema<TProvider>
56
+ >;
57
+
58
+ export type ProviderCursor<TProvider> = TProvider extends {
59
+ files: {
60
+ cursorSchema: infer TSchema extends StandardSchemaV1;
61
+ };
62
+ }
63
+ ? StandardSchemaV1.InferOutput<TSchema>
64
+ : string;
65
+
66
+ export type ProviderCapabilityFile<
67
+ TProvider,
68
+ TName extends 'upload' | 'get' | 'list',
69
+ > = TName extends 'upload'
70
+ ? ProviderCapabilityResult<TProvider, TName> extends {
71
+ file: infer TFile extends BackendFile;
72
+ }
73
+ ? TFile
74
+ : never
75
+ : TName extends 'list'
76
+ ? ProviderCapabilityResult<TProvider, TName> extends {
77
+ items: (infer TFile extends BackendFile)[];
78
+ }
79
+ ? TFile
80
+ : never
81
+ : ProviderCapabilityResult<TProvider, TName> extends BackendFile
82
+ ? ProviderCapabilityResult<TProvider, TName>
83
+ : never;
84
+
85
+ export type ProviderMutationItem<
86
+ TProvider,
87
+ TName extends 'confirm' | 'delete' | 'restore',
88
+ > =
89
+ ProviderCapabilityResult<TProvider, TName> extends {
90
+ results: (infer TItem)[];
91
+ }
92
+ ? TItem
93
+ : never;
94
+
95
+ export type ProviderMutationError<
96
+ TProvider,
97
+ TName extends 'confirm' | 'delete' | 'restore',
98
+ > =
99
+ Extract<ProviderMutationItem<TProvider, TName>, { success: false }> extends {
100
+ error: infer TError;
101
+ }
102
+ ? TError
103
+ : never;
104
+
105
+ type ProviderMutationErrorCode<
106
+ TProvider,
107
+ TName extends 'confirm' | 'delete' | 'restore',
108
+ > =
109
+ ProviderMutationError<TProvider, TName> extends {
110
+ code: infer TErrorCode extends string;
111
+ }
112
+ ? TErrorCode
113
+ : never;
114
+
115
+ export type ProviderSignedUrlResult<TProvider> =
116
+ ProviderCapabilityResult<
117
+ TProvider,
118
+ 'getSignedUrls'
119
+ > extends (infer TResult extends GetSignedUrlRes)[]
120
+ ? TResult
121
+ : never;
122
+
123
+ export type ProviderMutationResult<
124
+ TProvider,
125
+ TName extends 'confirm' | 'delete' | 'restore',
126
+ > = ProviderFileMutationResult<ProviderMutationErrorCode<TProvider, TName>>;
@@ -1,33 +1,24 @@
1
+ import type { StandardSchemaV1 } from '@standard-schema/spec';
1
2
  import { type MaybePromise } from '../types';
2
3
  import {
3
- type AnyBuilder,
4
+ type AnyContext,
4
5
  type AnyMetadata,
5
6
  type EdgeStoreRouter,
6
7
  } from './bucketBuilder';
7
8
 
8
- export type InitParams = {
9
- ctx: any;
10
- router: EdgeStoreRouter<any>;
9
+ export type InitParams<TCtx extends AnyContext = AnyContext> = {
10
+ ctx: TCtx;
11
+ router: EdgeStoreRouter<TCtx>;
11
12
  };
12
13
 
13
- export type InitRes = {
14
- token?: string;
15
- };
16
-
17
- export type GetFileParams = {
18
- url: string;
14
+ export type ClientInit = {
15
+ path: string;
16
+ headers?: Record<string, string>;
19
17
  };
20
18
 
21
- export type GetFileRes = {
22
- url: string;
23
- size: number;
24
- uploadedAt: Date;
25
- path: {
26
- [key: string]: string;
27
- };
28
- metadata: {
29
- [key: string]: string;
30
- };
19
+ export type InitRes = {
20
+ token?: string;
21
+ clientInit?: ClientInit;
31
22
  };
32
23
 
33
24
  export type RequestUploadParams = {
@@ -38,6 +29,7 @@ export type RequestUploadParams = {
38
29
  bucketName: string;
39
30
  bucketType: string;
40
31
  fileInfo: {
32
+ type?: string;
41
33
  size: number;
42
34
  extension: string;
43
35
  isPublic: boolean;
@@ -56,6 +48,160 @@ export type RequestUploadParams = {
56
48
  };
57
49
  };
58
50
 
51
+ export type ProviderFilterValue =
52
+ | string
53
+ | Partial<{
54
+ eq: string;
55
+ neq: string;
56
+ gt: string;
57
+ gte: string;
58
+ lt: string;
59
+ lte: string;
60
+ startsWith: string;
61
+ endsWith: string;
62
+ between: [string, string];
63
+ }>;
64
+
65
+ export type ListFilesFilter = {
66
+ AND?: ListFilesFilter[];
67
+ OR?: ListFilesFilter[];
68
+ uploadedAt?: ProviderFilterValue;
69
+ path?: Record<string, ProviderFilterValue>;
70
+ metadata?: Record<string, ProviderFilterValue>;
71
+ };
72
+
73
+ export type FileReference = { id: string } | { key: string } | { url: string };
74
+
75
+ export type ProviderFile = {
76
+ id: string;
77
+ url: string;
78
+ key: string;
79
+ thumbnailUrl: string | null;
80
+ thumbnailKey: string | null;
81
+ bucketId: string;
82
+ bucketName: string;
83
+ projectId: string;
84
+ accountId: string;
85
+ name: string;
86
+ path: Record<string, string>;
87
+ metadata: Record<string, string>;
88
+ sizeBytes: number;
89
+ mimeType: string | null;
90
+ state: 'requested' | 'uploaded' | 'deleted' | 'replace_requested';
91
+ temporary: boolean;
92
+ uploadedAt: Date;
93
+ updatedAt: Date;
94
+ };
95
+
96
+ export type BackendFile = {
97
+ url: string;
98
+ sizeBytes: number;
99
+ /** Router-derived path values, when this operation retrieves them. */
100
+ path?: Record<string, string>;
101
+ /** Router-derived metadata values, when this operation retrieves them. */
102
+ metadata?: Record<string, string>;
103
+ uploadedAt: Date | string;
104
+ updatedAt: Date | string;
105
+ };
106
+
107
+ export type ProviderFileMutationResult<
108
+ TErrorCode extends string =
109
+ | 'FILE_NOT_CONFIRMABLE'
110
+ | 'FILE_NOT_DELETABLE'
111
+ | 'FILE_NOT_RESTORABLE'
112
+ | 'INVALID_FILE_REF',
113
+ > = {
114
+ results: (
115
+ | { success: true }
116
+ | {
117
+ success: false;
118
+ error: {
119
+ code: TErrorCode;
120
+ message: string;
121
+ };
122
+ }
123
+ )[];
124
+ };
125
+
126
+ export type BackendUploadParams = {
127
+ bucketName: string;
128
+ bucketType: string;
129
+ fileInfo: RequestUploadParams['fileInfo'];
130
+ autoSignedUrls?: RequestUploadParams['autoSignedUrls'];
131
+ source: Blob;
132
+ signal?: AbortSignal;
133
+ onProgress?: (progress: {
134
+ transferredBytes: number;
135
+ totalBytes: number;
136
+ percentage: number;
137
+ phase: 'preparing' | 'uploading' | 'processing';
138
+ }) => void;
139
+ };
140
+
141
+ export type BackendUploadResult<TFile extends BackendFile = ProviderFile> = {
142
+ file: TFile;
143
+ signedReadUrl?: {
144
+ signedUrl: string;
145
+ signedThumbnailUrl?: string | null;
146
+ expiresAt: Date | string;
147
+ expiresIn: number;
148
+ };
149
+ };
150
+
151
+ export type BackendUploadOperation<TFile extends BackendFile = ProviderFile> = (
152
+ params: BackendUploadParams,
153
+ ) => MaybePromise<BackendUploadResult<TFile>>;
154
+
155
+ export type BackendGetFileOperation<
156
+ TFile extends BackendFile = ProviderFile,
157
+ TFileReference = FileReference,
158
+ > = (params: {
159
+ bucketName: string;
160
+ file: TFileReference;
161
+ }) => MaybePromise<TFile>;
162
+
163
+ export type BackendListFilesResult<
164
+ TFile extends BackendFile = ProviderFile,
165
+ TCursor = string,
166
+ > = {
167
+ items: TFile[];
168
+ limit: number;
169
+ nextCursor: TCursor | null;
170
+ hasMore: boolean;
171
+ };
172
+
173
+ export type BackendListFilesOperation<
174
+ TFile extends BackendFile = ProviderFile,
175
+ TCursor = string,
176
+ > = (params: {
177
+ bucketName: string;
178
+ filter?: ListFilesFilter;
179
+ cursor?: TCursor;
180
+ limit?: number;
181
+ }) => MaybePromise<BackendListFilesResult<TFile, TCursor>>;
182
+
183
+ export type BackendFileMutationOperation<
184
+ TFileReference = FileReference,
185
+ TErrorCode extends string =
186
+ | 'FILE_NOT_CONFIRMABLE'
187
+ | 'FILE_NOT_DELETABLE'
188
+ | 'FILE_NOT_RESTORABLE'
189
+ | 'INVALID_FILE_REF',
190
+ > = (params: {
191
+ bucketName: string;
192
+ files: TFileReference[];
193
+ }) => MaybePromise<ProviderFileMutationResult<TErrorCode>>;
194
+
195
+ export type BackendGetSignedUrlsOperation<
196
+ TFileReference = FileReference,
197
+ TResult extends GetSignedUrlRes = GetSignedUrlRes,
198
+ > = (params: {
199
+ bucketName: string;
200
+ files: TFileReference[];
201
+ expiresIn?: number;
202
+ includeThumbnails?: boolean;
203
+ }) => MaybePromise<TResult[]>;
204
+
59
205
  export type RequestUploadPartsParams = {
60
206
  multipart: {
61
207
  uploadId: string;
@@ -83,46 +229,35 @@ export type CompleteMultipartUploadParams = {
83
229
  }[];
84
230
  };
85
231
 
86
- export type CompleteMultipartUploadRes = {
87
- success: boolean;
232
+ type RequestUploadAccess = {
233
+ accessUrl: string;
234
+ thumbnailUrl?: string | null;
235
+ accessSignedUrl?: string;
236
+ accessSignedThumbnailUrl?: string | null;
237
+ accessSignedUrlExpiresAt?: Date | string;
238
+ accessSignedUrlExpiresIn?: number;
88
239
  };
89
240
 
90
- export type RequestUploadRes =
91
- | {
241
+ export type SinglePartRequestUploadRes = RequestUploadAccess & {
242
+ uploadUrl: string;
243
+ };
244
+
245
+ export type MultipartRequestUploadRes = RequestUploadAccess & {
246
+ multipart: {
247
+ key: string;
248
+ uploadId: string;
249
+ partSize: number;
250
+ totalParts: number;
251
+ parts: {
252
+ partNumber: number;
92
253
  uploadUrl: string;
93
- accessUrl: string;
94
- thumbnailUrl?: string | null;
95
- accessSignedUrl?: string;
96
- accessSignedThumbnailUrl?: string | null;
97
- accessSignedUrlExpiresAt?: Date | string;
98
- accessSignedUrlExpiresIn?: number;
99
- }
100
- | {
101
- multipart: {
102
- key: string;
103
- uploadId: string;
104
- partSize: number;
105
- totalParts: number;
106
- parts: {
107
- partNumber: number;
108
- uploadUrl: string;
109
- }[];
110
- };
111
- accessUrl: string;
112
- thumbnailUrl?: string | null;
113
- accessSignedUrl?: string;
114
- accessSignedThumbnailUrl?: string | null;
115
- accessSignedUrlExpiresAt?: Date | string;
116
- accessSignedUrlExpiresIn?: number;
117
- };
118
-
119
- export type GetSignedUrlsParams = {
120
- bucketName: string;
121
- urls: string[];
122
- expiresIn?: number;
123
- includeThumbnails?: boolean;
254
+ }[];
255
+ };
124
256
  };
125
257
 
258
+ export type RequestUploadRes =
259
+ SinglePartRequestUploadRes | MultipartRequestUploadRes;
260
+
126
261
  export type GetSignedUrlRes = {
127
262
  url: string;
128
263
  signedUrl: string;
@@ -132,41 +267,113 @@ export type GetSignedUrlRes = {
132
267
  signedThumbnailUrl?: string | null;
133
268
  };
134
269
 
135
- export type ConfirmUpload = {
136
- bucket: AnyBuilder;
137
- url: string;
270
+ export type ProviderReferenceDefinition<
271
+ TSchema extends StandardSchemaV1 = StandardSchemaV1,
272
+ > = {
273
+ schema: TSchema;
274
+ fromUrl: (url: string) => MaybePromise<unknown>;
138
275
  };
139
276
 
140
- export type ConfirmUploadRes = {
141
- success: boolean;
277
+ type ProviderUploadBase<
278
+ TUpload extends BackendUploadOperation<BackendFile> | undefined =
279
+ BackendUploadOperation<BackendFile> | undefined,
280
+ > = {
281
+ upload?: TUpload;
142
282
  };
143
283
 
144
- export type DeleteFileParams = {
145
- bucket: AnyBuilder;
146
- url: string;
284
+ export type ProviderMultipartUploads = {
285
+ requestParts: (
286
+ params: RequestUploadPartsParams,
287
+ ) => MaybePromise<RequestUploadPartsRes>;
288
+ complete: (params: CompleteMultipartUploadParams) => MaybePromise<void>;
147
289
  };
148
290
 
149
- export type DeleteFileRes = {
150
- success: boolean;
291
+ export type ProviderUploads<
292
+ TUpload extends BackendUploadOperation<BackendFile> | undefined =
293
+ BackendUploadOperation<BackendFile> | undefined,
294
+ > =
295
+ | (ProviderUploadBase<TUpload> & {
296
+ request: (
297
+ params: RequestUploadParams,
298
+ ) => MaybePromise<SinglePartRequestUploadRes>;
299
+ multipart?: never;
300
+ })
301
+ | (ProviderUploadBase<TUpload> & {
302
+ request: (params: RequestUploadParams) => MaybePromise<RequestUploadRes>;
303
+ multipart: ProviderMultipartUploads;
304
+ });
305
+
306
+ export type ProviderFiles<
307
+ TFileReference = FileReference,
308
+ TCursor = string,
309
+ TGet extends BackendGetFileOperation<BackendFile, TFileReference> =
310
+ BackendGetFileOperation<BackendFile, TFileReference>,
311
+ TList extends BackendListFilesOperation<BackendFile, TCursor> | undefined =
312
+ BackendListFilesOperation<BackendFile, TCursor> | undefined,
313
+ TConfirm extends
314
+ BackendFileMutationOperation<TFileReference, string> | undefined =
315
+ BackendFileMutationOperation<TFileReference, string> | undefined,
316
+ TDelete extends
317
+ BackendFileMutationOperation<TFileReference, string> | undefined =
318
+ BackendFileMutationOperation<TFileReference, string> | undefined,
319
+ TRestore extends
320
+ BackendFileMutationOperation<TFileReference, string> | undefined =
321
+ BackendFileMutationOperation<TFileReference, string> | undefined,
322
+ TGetSignedUrls extends
323
+ BackendGetSignedUrlsOperation<TFileReference> | undefined =
324
+ BackendGetSignedUrlsOperation<TFileReference> | undefined,
325
+ > = {
326
+ cursorSchema?: StandardSchemaV1<unknown, TCursor>;
327
+ get: TGet;
328
+ list?: TList;
329
+ confirm?: TConfirm;
330
+ delete?: TDelete;
331
+ restore?: TRestore;
332
+ getSignedUrls?: TGetSignedUrls;
151
333
  };
152
334
 
153
- export type Provider = {
335
+ export type EdgeStoreProvider<
336
+ TReferenceSchema extends StandardSchemaV1 = StandardSchemaV1<
337
+ unknown,
338
+ FileReference
339
+ >,
340
+ TCursor = string,
341
+ TUploads extends ProviderUploads = ProviderUploads,
342
+ TFiles extends ProviderFiles<
343
+ StandardSchemaV1.InferOutput<TReferenceSchema>,
344
+ TCursor
345
+ > = ProviderFiles<StandardSchemaV1.InferOutput<TReferenceSchema>, TCursor>,
346
+ > = {
154
347
  name: string;
155
- init: (params: InitParams) => MaybePromise<InitRes>;
156
- getBaseUrl: () => MaybePromise<string>;
157
- getFile: (params: GetFileParams) => MaybePromise<GetFileRes>;
158
- requestUpload: (
159
- params: RequestUploadParams,
160
- ) => MaybePromise<RequestUploadRes>;
161
- requestUploadParts: (
162
- params: RequestUploadPartsParams,
163
- ) => MaybePromise<RequestUploadPartsRes>;
164
- getSignedUrls?: (
165
- params: GetSignedUrlsParams,
166
- ) => MaybePromise<GetSignedUrlRes[]>;
167
- completeMultipartUpload: (
168
- params: CompleteMultipartUploadParams,
169
- ) => MaybePromise<CompleteMultipartUploadRes>;
170
- confirmUpload: (params: ConfirmUpload) => MaybePromise<ConfirmUploadRes>;
171
- deleteFile: (params: DeleteFileParams) => MaybePromise<DeleteFileRes>;
348
+ baseUrl: string | (() => MaybePromise<string>);
349
+ init: <TCtx extends AnyContext>(
350
+ params: InitParams<TCtx>,
351
+ ) => MaybePromise<InitRes>;
352
+ reference: ProviderReferenceDefinition<TReferenceSchema>;
353
+ uploads: TUploads;
354
+ files: TFiles;
355
+ };
356
+
357
+ export type AnyEdgeStoreProvider = EdgeStoreProvider<
358
+ StandardSchemaV1<any, any>,
359
+ any,
360
+ ProviderUploads,
361
+ ProviderFiles<any, any>
362
+ >;
363
+
364
+ export type DefaultEdgeStoreProvider = EdgeStoreProvider<
365
+ StandardSchemaV1<unknown, FileReference>,
366
+ string
367
+ > & {
368
+ uploads: ProviderUploads<BackendUploadOperation> & {
369
+ upload: BackendUploadOperation;
370
+ };
371
+ files: ProviderFiles<FileReference, string> & {
372
+ get: BackendGetFileOperation;
373
+ list: BackendListFilesOperation;
374
+ confirm: BackendFileMutationOperation;
375
+ delete: BackendFileMutationOperation;
376
+ restore: BackendFileMutationOperation;
377
+ getSignedUrls: BackendGetSignedUrlsOperation;
378
+ };
172
379
  };
@@ -1,17 +1,16 @@
1
1
  import { type Simplify } from '../types';
2
2
  import { type AnyMetadata } from './bucketBuilder';
3
3
  import {
4
- type DeleteFileRes,
4
+ type ClientInit,
5
5
  type RequestUploadPartsRes,
6
6
  type RequestUploadRes,
7
7
  } from './providerTypes';
8
8
 
9
9
  export type SharedInitRes = {
10
10
  newCookies: string[];
11
- token: string | undefined;
12
11
  baseUrl: string;
13
12
  providerName: string;
14
- requiresFileAccessCookie: boolean;
13
+ clientInit?: ClientInit;
15
14
  };
16
15
  export type SharedRequestUploadRes = Simplify<
17
16
  RequestUploadRes & {
@@ -23,4 +22,17 @@ export type SharedRequestUploadRes = Simplify<
23
22
  }
24
23
  >;
25
24
  export type SharedRequestUploadPartsRes = RequestUploadPartsRes;
26
- export type SharedDeleteFileRes = DeleteFileRes;
25
+
26
+ export type SharedFileMutationRes = {
27
+ succeeded: string[];
28
+ failed: {
29
+ url: string;
30
+ error: {
31
+ code: string;
32
+ message: string;
33
+ };
34
+ }[];
35
+ };
36
+
37
+ export type SharedConfirmUploadsRes = SharedFileMutationRes;
38
+ export type SharedDeleteFilesRes = SharedFileMutationRes;
@@ -32,7 +32,7 @@ export type UploadOptions = {
32
32
  */
33
33
  replaceTargetUrl?: string;
34
34
  /**
35
- * If true, the file needs to be confirmed by using the `confirmUpload` function.
35
+ * If true, the file needs to be confirmed by using the `confirm` function.
36
36
  * If the file is not confirmed within 24 hours, it will be deleted.
37
37
  *
38
38
  * This is useful for pages where the file is uploaded as soon as it is selected,