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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  export * from './errors/index.js';
2
2
  export * from './types.js';
3
3
  export * from './internals/bucketBuilder.js';
4
+ export { type AnySchema, type InferSchemaInput, type InferSchemaOutput, parseBucketInput, } from './internals/schema.js';
4
5
  export * from './internals/types.js';
5
6
  export * from './internals/providerTypes.js';
7
+ export * from './internals/providerCapabilities.js';
6
8
  export * from './internals/sharedFuncTypes.js';
7
9
  //# 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,OAAO,EACL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { EdgeStoreApiClientError } from './errors/index.js';
2
2
  export { initEdgeStore } from './internals/bucketBuilder.js';
3
+ export { parseBucketInput } from './internals/schema.js';
3
4
  export { EDGE_STORE_ERROR_CODES, EdgeStoreError } from './errors/EdgeStoreError.js';
@@ -1,5 +1,6 @@
1
- import { z } from 'zod';
2
1
  import { type KeysOfUnion, type MaybePromise, type Simplify } from '../types.js';
2
+ import { type AnyInput, type AnySchema, type InferSchemaOutput } from './schema.js';
3
+ export type { AnyInput } from './schema.js';
3
4
  type Merge<TType, TWith> = {
4
5
  [TKey in keyof TType | keyof TWith]?: TKey extends keyof TType ? TKey extends keyof TWith ? TType[TKey] & TWith[TKey] : TType[TKey] : TWith[TKey & keyof TWith];
5
6
  };
@@ -7,22 +8,36 @@ type ConvertStringToFunction<TType> = {
7
8
  [K in keyof TType]: TType[K] extends object ? Simplify<ConvertStringToFunction<TType[K]>> : () => string;
8
9
  };
9
10
  type UnionToIntersection<TType> = (TType extends any ? (k: TType) => void : never) extends (k: infer I) => void ? I : never;
10
- export type InferBucketPathKeys<TBucket extends Builder<any, AnyDef>> = KeysOfUnion<TBucket['_def']['path'][number]>;
11
+ export type InferBucketPathKeys<TBucket extends AnyBuilder> = KeysOfUnion<TBucket['_def']['path'][number]>;
11
12
  type InferBucketPathKeysFromDef<TDef extends AnyDef> = KeysOfUnion<TDef['path'][number]>;
12
- export type InferBucketPathObject<TBucket extends Builder<any, AnyDef>> = InferBucketPathKeys<TBucket> extends never ? Record<string, never> : {
13
+ export type InferBucketPathObject<TBucket extends AnyBuilder> = InferBucketPathKeys<TBucket> extends never ? Record<string, never> : {
13
14
  [TKey in InferBucketPathKeys<TBucket>]: string;
14
15
  };
15
- export type InferBucketPathOrder<TBucket extends Builder<any, AnyDef>> = InferBucketPathKeys<TBucket> extends never ? [] : InferBucketPathKeys<TBucket>[];
16
+ export type InferBucketPathOrder<TBucket extends AnyBuilder> = InferBucketPathKeys<TBucket> extends never ? [] : InferBucketPathKeys<TBucket>[];
16
17
  export type InferBucketPathObjectFromDef<TDef extends AnyDef> = InferBucketPathKeysFromDef<TDef> extends never ? Record<string, never> : {
17
18
  [TKey in InferBucketPathKeysFromDef<TDef>]: string;
18
19
  };
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;
20
+ type NormalizeMetadata<TMetadata> = string extends keyof TMetadata ? Record<string, Exclude<TMetadata[string], null | undefined>> : Simplify<{
21
+ [TKey in keyof TMetadata as Extract<TMetadata[TKey], null | undefined> extends never ? TKey : never]: Exclude<TMetadata[TKey], null | undefined>;
22
+ } & {
23
+ [TKey in keyof TMetadata as Extract<TMetadata[TKey], null | undefined> extends never ? never : TKey]?: Exclude<TMetadata[TKey], null | undefined>;
24
+ }>;
25
+ type InferMetadataObjectFromFn<TMetadata> = [
26
+ Exclude<TMetadata, undefined>
27
+ ] extends [never] ? Record<string, never> : Exclude<TMetadata, undefined> extends (...args: any) => any ? NormalizeMetadata<Awaited<ReturnType<Exclude<TMetadata, undefined>>>> : Record<string, never>;
28
+ export type InferMetadataObject<TBucket extends AnyBuilder> = InferMetadataObjectFromFn<TBucket['_def']['metadata']>;
29
+ type InferMetadataObjectFromDef<TDef extends AnyDef> = InferMetadataObjectFromFn<TDef['metadata']>;
30
+ export type AnyContextValue = string | undefined;
31
+ /**
32
+ * Context shared by router hooks, path and metadata builders, and providers.
33
+ *
34
+ * Values are limited to strings so every supported provider receives the same
35
+ * context shape. Optional properties may be `undefined`; providers omit them
36
+ * when serializing the context.
37
+ */
22
38
  export interface AnyContext {
23
39
  [key: string]: AnyContextValue;
24
40
  }
25
- export type AnyInput = z.AnyZodObject | z.ZodNever;
26
41
  export type AnyPath = Record<string, () => string>[];
27
42
  type PathParam<TPath extends AnyPath> = {
28
43
  path: keyof UnionToIntersection<TPath[number]>;
@@ -69,7 +84,7 @@ type BucketConfig = {
69
84
  };
70
85
  type BeforeUploadFn<TCtx, TDef extends AnyDef> = (params: {
71
86
  ctx: TCtx;
72
- input: z.infer<TDef['input']>;
87
+ input: InferSchemaOutput<TDef['input']>;
73
88
  fileInfo: {
74
89
  size: number;
75
90
  type: string;
@@ -92,11 +107,14 @@ type BeforeDeleteFn<TCtx, TDef extends AnyDef> = (params: {
92
107
  export type AnyMetadata = Record<string, string | undefined | null>;
93
108
  type MetadataFn<TCtx, TInput extends AnyInput, TMetadata extends AnyMetadata> = (params: {
94
109
  ctx: TCtx;
95
- input: z.infer<TInput>;
110
+ input: InferSchemaOutput<TInput>;
96
111
  }) => MaybePromise<TMetadata>;
97
- export type AnyMetadataFn = MetadataFn<any, AnyInput, AnyMetadata>;
112
+ export type AnyMetadataFn = (params: {
113
+ ctx: any;
114
+ input: any;
115
+ }) => MaybePromise<AnyMetadata>;
98
116
  type BucketType = 'IMAGE' | 'FILE';
99
- type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMetadataFn> = {
117
+ type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMetadataFn | undefined> = {
100
118
  type: BucketType;
101
119
  input: TInput;
102
120
  path: TPath;
@@ -107,7 +125,7 @@ type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMe
107
125
  beforeUpload?: BeforeUploadFn<any, any>;
108
126
  beforeDelete?: BeforeDeleteFn<any, any>;
109
127
  };
110
- type AnyDef = Def<AnyInput, AnyPath, AnyMetadataFn>;
128
+ type AnyDef = Def<AnyInput, AnyPath, AnyMetadataFn | undefined>;
111
129
  type Builder<TCtx, TDef extends AnyDef> = {
112
130
  /** only used for types */
113
131
  $config: {
@@ -122,7 +140,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
122
140
  *
123
141
  * This can be used to add additional information to the file, like choose the file path or add metadata.
124
142
  */
125
- input<TInput extends AnyInput>(input: TInput): Builder<TCtx, {
143
+ input<TInput extends AnySchema>(input: TInput): Builder<TCtx, {
126
144
  type: TDef['type'];
127
145
  input: TInput;
128
146
  path: TDef['path'];
@@ -147,7 +165,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
147
165
  */
148
166
  path<TParams extends AnyPath>(pathResolver: (params: {
149
167
  ctx: Simplify<ConvertStringToFunction<TCtx>>;
150
- input: Simplify<ConvertStringToFunction<z.infer<TDef['input']>>>;
168
+ input: Simplify<ConvertStringToFunction<InferSchemaOutput<TDef['input']>>>;
151
169
  }) => [...TParams]): Builder<TCtx, {
152
170
  type: TDef['type'];
153
171
  input: TDef['input'];
@@ -241,7 +259,13 @@ type Builder<TCtx, TDef extends AnyDef> = {
241
259
  beforeDelete: BeforeDeleteFn<any, any>;
242
260
  }>;
243
261
  };
244
- export type AnyBuilder = Builder<any, AnyDef>;
262
+ type ErasedBuilder<TCtx> = {
263
+ $config: {
264
+ ctx: TCtx;
265
+ };
266
+ _def: AnyDef;
267
+ };
268
+ export type AnyBuilder = ErasedBuilder<any>;
245
269
  declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
246
270
  context<TNewContext extends AnyContext>(): EdgeStoreBuilder<TNewContext>;
247
271
  create(): {
@@ -250,9 +274,9 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
250
274
  */
251
275
  imageBucket(config?: BucketConfig): Builder<TCtx, {
252
276
  type: "IMAGE";
253
- input: z.ZodNever;
277
+ input: undefined;
254
278
  path: [];
255
- metadata: () => Record<string, never>;
279
+ metadata: undefined;
256
280
  bucketConfig?: BucketConfig;
257
281
  accessControl?: AccessControl<any, any>;
258
282
  autoSignedUrls?: AutoSignedUrlsConfig;
@@ -264,9 +288,9 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
264
288
  */
265
289
  fileBucket(config?: BucketConfig): Builder<TCtx, {
266
290
  type: "FILE";
267
- input: z.ZodNever;
291
+ input: undefined;
268
292
  path: [];
269
- metadata: () => Record<string, never>;
293
+ metadata: undefined;
270
294
  bucketConfig?: BucketConfig;
271
295
  accessControl?: AccessControl<any, any>;
272
296
  autoSignedUrls?: AutoSignedUrlsConfig;
@@ -276,7 +300,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
276
300
  /**
277
301
  * Create a router
278
302
  */
279
- router: <TBuckets extends Record<string, Builder<TCtx, AnyDef>>>(buckets: TBuckets) => {
303
+ router: <TBuckets extends Record<string, ErasedBuilder<TCtx>>>(buckets: TBuckets) => {
280
304
  $config: {
281
305
  ctx: TCtx;
282
306
  };
@@ -284,7 +308,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
284
308
  };
285
309
  };
286
310
  }
287
- export type EdgeStoreRouter<TCtx, TBuckets extends Record<string, Builder<TCtx, AnyDef>> = Record<string, Builder<TCtx, AnyDef>>> = {
311
+ export type EdgeStoreRouter<TCtx, TBuckets extends Record<string, ErasedBuilder<TCtx>> = Record<string, ErasedBuilder<TCtx>>> = {
288
312
  /**
289
313
  * Only used for types
290
314
  * @internal
@@ -299,5 +323,4 @@ export type AnyRouter = EdgeStoreRouter<any, Record<string, AnyBuilder>>;
299
323
  * Initialize EdgeStore - be done exactly once per backend
300
324
  */
301
325
  export declare const initEdgeStore: EdgeStoreBuilder<Record<string, never>>;
302
- export {};
303
326
  //# sourceMappingURL=bucketBuilder.d.ts.map
@@ -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,6 @@
1
- import { z } from 'zod';
2
1
  import { EdgeStoreError } from '../errors/EdgeStoreError.js';
3
2
  import { createPathParamProxy } from './createPathParamProxy.js';
3
+ import { assertStandardSchema } from './schema.js';
4
4
 
5
5
  const createNewBuilder = (initDef, newDef)=>{
6
6
  const mergedDef = {
@@ -14,9 +14,9 @@ const createNewBuilder = (initDef, newDef)=>{
14
14
  function createBuilder(opts, initDef) {
15
15
  const _def = {
16
16
  type: opts.type,
17
- input: z.never(),
17
+ input: undefined,
18
18
  path: [],
19
- metadata: ()=>({}),
19
+ metadata: undefined,
20
20
  ...initDef
21
21
  };
22
22
  return {
@@ -26,6 +26,7 @@ function createBuilder(opts, initDef) {
26
26
  // @ts-expect-error - I think it would be too much work to make this type correct.
27
27
  _def,
28
28
  input (input) {
29
+ assertStandardSchema(input);
29
30
  return createNewBuilder(_def, {
30
31
  input
31
32
  });
@@ -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