@edgestore/shared 1.0.0-next.1 → 1.0.0-next.3
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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/internals/bucketBuilder.d.ts +25 -17
- package/dist/internals/bucketBuilder.d.ts.map +1 -1
- package/dist/internals/bucketBuilder.js +3 -2
- package/dist/internals/schema.d.ts +11 -0
- package/dist/internals/schema.d.ts.map +1 -0
- package/dist/internals/schema.js +36 -0
- package/package.json +4 -8
- package/src/index.ts +6 -0
- package/src/internals/bucketBuilder.ts +40 -18
- package/src/internals/schema.ts +88 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
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';
|
|
6
7
|
export * from './internals/providerCapabilities.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,kCAAkC,CAAC;AACjD,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,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,12 +8,12 @@ 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
|
|
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
|
|
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
|
|
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
|
};
|
|
@@ -24,7 +25,7 @@ type NormalizeMetadata<TMetadata> = string extends keyof TMetadata ? Record<stri
|
|
|
24
25
|
type InferMetadataObjectFromFn<TMetadata> = [
|
|
25
26
|
Exclude<TMetadata, undefined>
|
|
26
27
|
] 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
|
|
28
|
+
export type InferMetadataObject<TBucket extends AnyBuilder> = InferMetadataObjectFromFn<TBucket['_def']['metadata']>;
|
|
28
29
|
type InferMetadataObjectFromDef<TDef extends AnyDef> = InferMetadataObjectFromFn<TDef['metadata']>;
|
|
29
30
|
export type AnyContextValue = string | undefined;
|
|
30
31
|
/**
|
|
@@ -37,7 +38,6 @@ export type AnyContextValue = string | undefined;
|
|
|
37
38
|
export interface AnyContext {
|
|
38
39
|
[key: string]: AnyContextValue;
|
|
39
40
|
}
|
|
40
|
-
export type AnyInput = z.AnyZodObject | z.ZodNever;
|
|
41
41
|
export type AnyPath = Record<string, () => string>[];
|
|
42
42
|
type PathParam<TPath extends AnyPath> = {
|
|
43
43
|
path: keyof UnionToIntersection<TPath[number]>;
|
|
@@ -84,7 +84,7 @@ type BucketConfig = {
|
|
|
84
84
|
};
|
|
85
85
|
type BeforeUploadFn<TCtx, TDef extends AnyDef> = (params: {
|
|
86
86
|
ctx: TCtx;
|
|
87
|
-
input:
|
|
87
|
+
input: InferSchemaOutput<TDef['input']>;
|
|
88
88
|
fileInfo: {
|
|
89
89
|
size: number;
|
|
90
90
|
type: string;
|
|
@@ -107,9 +107,12 @@ type BeforeDeleteFn<TCtx, TDef extends AnyDef> = (params: {
|
|
|
107
107
|
export type AnyMetadata = Record<string, string | undefined | null>;
|
|
108
108
|
type MetadataFn<TCtx, TInput extends AnyInput, TMetadata extends AnyMetadata> = (params: {
|
|
109
109
|
ctx: TCtx;
|
|
110
|
-
input:
|
|
110
|
+
input: InferSchemaOutput<TInput>;
|
|
111
111
|
}) => MaybePromise<TMetadata>;
|
|
112
|
-
export type AnyMetadataFn =
|
|
112
|
+
export type AnyMetadataFn = (params: {
|
|
113
|
+
ctx: any;
|
|
114
|
+
input: any;
|
|
115
|
+
}) => MaybePromise<AnyMetadata>;
|
|
113
116
|
type BucketType = 'IMAGE' | 'FILE';
|
|
114
117
|
type Def<TInput extends AnyInput, TPath extends AnyPath, TMetadata extends AnyMetadataFn | undefined> = {
|
|
115
118
|
type: BucketType;
|
|
@@ -137,7 +140,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
|
|
|
137
140
|
*
|
|
138
141
|
* This can be used to add additional information to the file, like choose the file path or add metadata.
|
|
139
142
|
*/
|
|
140
|
-
input<TInput extends
|
|
143
|
+
input<TInput extends AnySchema>(input: TInput): Builder<TCtx, {
|
|
141
144
|
type: TDef['type'];
|
|
142
145
|
input: TInput;
|
|
143
146
|
path: TDef['path'];
|
|
@@ -162,7 +165,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
|
|
|
162
165
|
*/
|
|
163
166
|
path<TParams extends AnyPath>(pathResolver: (params: {
|
|
164
167
|
ctx: Simplify<ConvertStringToFunction<TCtx>>;
|
|
165
|
-
input: Simplify<ConvertStringToFunction<
|
|
168
|
+
input: Simplify<ConvertStringToFunction<InferSchemaOutput<TDef['input']>>>;
|
|
166
169
|
}) => [...TParams]): Builder<TCtx, {
|
|
167
170
|
type: TDef['type'];
|
|
168
171
|
input: TDef['input'];
|
|
@@ -256,7 +259,13 @@ type Builder<TCtx, TDef extends AnyDef> = {
|
|
|
256
259
|
beforeDelete: BeforeDeleteFn<any, any>;
|
|
257
260
|
}>;
|
|
258
261
|
};
|
|
259
|
-
|
|
262
|
+
type ErasedBuilder<TCtx> = {
|
|
263
|
+
$config: {
|
|
264
|
+
ctx: TCtx;
|
|
265
|
+
};
|
|
266
|
+
_def: AnyDef;
|
|
267
|
+
};
|
|
268
|
+
export type AnyBuilder = ErasedBuilder<any>;
|
|
260
269
|
declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
|
|
261
270
|
context<TNewContext extends AnyContext>(): EdgeStoreBuilder<TNewContext>;
|
|
262
271
|
create(): {
|
|
@@ -265,7 +274,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
|
|
|
265
274
|
*/
|
|
266
275
|
imageBucket(config?: BucketConfig): Builder<TCtx, {
|
|
267
276
|
type: "IMAGE";
|
|
268
|
-
input:
|
|
277
|
+
input: undefined;
|
|
269
278
|
path: [];
|
|
270
279
|
metadata: undefined;
|
|
271
280
|
bucketConfig?: BucketConfig;
|
|
@@ -279,7 +288,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
|
|
|
279
288
|
*/
|
|
280
289
|
fileBucket(config?: BucketConfig): Builder<TCtx, {
|
|
281
290
|
type: "FILE";
|
|
282
|
-
input:
|
|
291
|
+
input: undefined;
|
|
283
292
|
path: [];
|
|
284
293
|
metadata: undefined;
|
|
285
294
|
bucketConfig?: BucketConfig;
|
|
@@ -291,7 +300,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
|
|
|
291
300
|
/**
|
|
292
301
|
* Create a router
|
|
293
302
|
*/
|
|
294
|
-
router: <TBuckets extends Record<string,
|
|
303
|
+
router: <TBuckets extends Record<string, ErasedBuilder<TCtx>>>(buckets: TBuckets) => {
|
|
295
304
|
$config: {
|
|
296
305
|
ctx: TCtx;
|
|
297
306
|
};
|
|
@@ -299,7 +308,7 @@ declare class EdgeStoreBuilder<TCtx = Record<string, never>> {
|
|
|
299
308
|
};
|
|
300
309
|
};
|
|
301
310
|
}
|
|
302
|
-
export type EdgeStoreRouter<TCtx, TBuckets extends Record<string,
|
|
311
|
+
export type EdgeStoreRouter<TCtx, TBuckets extends Record<string, ErasedBuilder<TCtx>> = Record<string, ErasedBuilder<TCtx>>> = {
|
|
303
312
|
/**
|
|
304
313
|
* Only used for types
|
|
305
314
|
* @internal
|
|
@@ -314,5 +323,4 @@ export type AnyRouter = EdgeStoreRouter<any, Record<string, AnyBuilder>>;
|
|
|
314
323
|
* Initialize EdgeStore - be done exactly once per backend
|
|
315
324
|
*/
|
|
316
325
|
export declare const initEdgeStore: EdgeStoreBuilder<Record<string, never>>;
|
|
317
|
-
export {};
|
|
318
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,7 +14,7 @@ const createNewBuilder = (initDef, newDef)=>{
|
|
|
14
14
|
function createBuilder(opts, initDef) {
|
|
15
15
|
const _def = {
|
|
16
16
|
type: opts.type,
|
|
17
|
-
input:
|
|
17
|
+
input: undefined,
|
|
18
18
|
path: [],
|
|
19
19
|
metadata: undefined,
|
|
20
20
|
...initDef
|
|
@@ -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,11 @@
|
|
|
1
|
+
import { type StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
+
export type AnySchema = StandardSchemaV1<any, Record<string, unknown>>;
|
|
3
|
+
/** @internal */
|
|
4
|
+
export type AnyInput = AnySchema | undefined;
|
|
5
|
+
export type InferSchemaInput<TSchema extends AnyInput> = TSchema extends StandardSchemaV1 ? StandardSchemaV1.InferInput<TSchema> : never;
|
|
6
|
+
export type InferSchemaOutput<TSchema extends AnyInput> = TSchema extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<TSchema> : never;
|
|
7
|
+
/** @internal */
|
|
8
|
+
export declare function assertStandardSchema(schema: unknown): asserts schema is AnySchema;
|
|
9
|
+
/** @internal */
|
|
10
|
+
export declare function parseBucketInput<TSchema extends AnyInput>(schema: TSchema, input: unknown): Promise<TSchema extends undefined ? Record<string, never> : InferSchemaOutput<TSchema>>;
|
|
11
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/internals/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvE,gBAAgB;AAChB,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7C,MAAM,MAAM,gBAAgB,CAAC,OAAO,SAAS,QAAQ,IACnD,OAAO,SAAS,gBAAgB,GAC5B,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,GACpC,KAAK,CAAC;AAEZ,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,QAAQ,IACpD,OAAO,SAAS,gBAAgB,GAC5B,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,GACrC,KAAK,CAAC;AAYZ,gBAAgB;AAChB,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,IAAI,SAAS,CAmB7B;AAED,gBAAgB;AAChB,wBAAsB,gBAAgB,CAAC,OAAO,SAAS,QAAQ,EAC7D,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CACR,OAAO,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAC/E,CA6BA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EdgeStoreError } from '../errors/EdgeStoreError.js';
|
|
2
|
+
|
|
3
|
+
function formatIssue(issue) {
|
|
4
|
+
const path = issue.path?.map((segment)=>typeof segment === 'object' ? String(segment.key) : String(segment)).join('.');
|
|
5
|
+
return path ? `${path}: ${issue.message}` : issue.message;
|
|
6
|
+
}
|
|
7
|
+
/** @internal */ function assertStandardSchema(schema) {
|
|
8
|
+
const protocol = typeof schema === 'object' && schema !== null && '~standard' in schema ? schema['~standard'] : undefined;
|
|
9
|
+
if (typeof protocol !== 'object' || protocol === null || !('version' in protocol) || protocol.version !== 1 || !('validate' in protocol) || typeof protocol.validate !== 'function') {
|
|
10
|
+
throw new EdgeStoreError({
|
|
11
|
+
code: 'SERVER_ERROR',
|
|
12
|
+
message: 'Bucket input schemas must implement Standard Schema V1'
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** @internal */ async function parseBucketInput(schema, input) {
|
|
17
|
+
if (schema === undefined) {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
const result = await schema['~standard'].validate(input);
|
|
21
|
+
if (result.issues !== undefined) {
|
|
22
|
+
throw new EdgeStoreError({
|
|
23
|
+
code: 'BAD_REQUEST',
|
|
24
|
+
message: `Invalid input: ${result.issues.map(formatIssue).join('; ')}`
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (typeof result.value !== 'object' || result.value === null || Array.isArray(result.value)) {
|
|
28
|
+
throw new EdgeStoreError({
|
|
29
|
+
code: 'SERVER_ERROR',
|
|
30
|
+
message: 'Bucket input schemas must return an object'
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return result.value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { assertStandardSchema, parseBucketInput };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edgestore/shared",
|
|
3
|
-
"version": "1.0.0-next.
|
|
3
|
+
"version": "1.0.0-next.3",
|
|
4
4
|
"description": "Upload files with ease from React/Next.js",
|
|
5
5
|
"homepage": "https://edgestore.dev",
|
|
6
6
|
"license": "MIT",
|
|
@@ -53,20 +53,16 @@
|
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"react": ">=16.8.0",
|
|
56
|
-
"react-dom": ">=16.8.0"
|
|
57
|
-
"zod": ">=3.0.0"
|
|
58
|
-
},
|
|
59
|
-
"peerDependenciesMeta": {
|
|
60
|
-
"zod": {
|
|
61
|
-
"optional": true
|
|
62
|
-
}
|
|
56
|
+
"react-dom": ">=16.8.0"
|
|
63
57
|
},
|
|
64
58
|
"devDependencies": {
|
|
65
59
|
"@types/node": "25.0.3",
|
|
60
|
+
"arktype": "2.2.3",
|
|
66
61
|
"react": "19.2.7",
|
|
67
62
|
"react-dom": "19.2.7",
|
|
68
63
|
"tsx": "4.23.1",
|
|
69
64
|
"typescript": "6.0.3",
|
|
65
|
+
"valibot": "1.4.2",
|
|
70
66
|
"zod": "3.25.76"
|
|
71
67
|
},
|
|
72
68
|
"gitHead": "a223c4cb8df50e6b64f9db5dc2daf93848748da9",
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export * from './errors';
|
|
2
2
|
export * from './types';
|
|
3
3
|
export * from './internals/bucketBuilder';
|
|
4
|
+
export {
|
|
5
|
+
type AnySchema,
|
|
6
|
+
type InferSchemaInput,
|
|
7
|
+
type InferSchemaOutput,
|
|
8
|
+
parseBucketInput,
|
|
9
|
+
} from './internals/schema';
|
|
4
10
|
export * from './internals/types';
|
|
5
11
|
export * from './internals/providerTypes';
|
|
6
12
|
export * from './internals/providerCapabilities';
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
1
|
import { EdgeStoreError } from '../errors';
|
|
3
2
|
import { type KeysOfUnion, type MaybePromise, type Simplify } from '../types';
|
|
4
3
|
import { createPathParamProxy } from './createPathParamProxy';
|
|
4
|
+
import {
|
|
5
|
+
assertStandardSchema,
|
|
6
|
+
type AnyInput,
|
|
7
|
+
type AnySchema,
|
|
8
|
+
type InferSchemaOutput,
|
|
9
|
+
} from './schema';
|
|
10
|
+
|
|
11
|
+
export type { AnyInput } from './schema';
|
|
5
12
|
|
|
6
13
|
type Merge<TType, TWith> = {
|
|
7
14
|
[TKey in keyof TType | keyof TWith]?: TKey extends keyof TType
|
|
@@ -23,21 +30,22 @@ type UnionToIntersection<TType> = (
|
|
|
23
30
|
? I
|
|
24
31
|
: never;
|
|
25
32
|
|
|
26
|
-
export type InferBucketPathKeys<TBucket extends
|
|
27
|
-
|
|
33
|
+
export type InferBucketPathKeys<TBucket extends AnyBuilder> = KeysOfUnion<
|
|
34
|
+
TBucket['_def']['path'][number]
|
|
35
|
+
>;
|
|
28
36
|
|
|
29
37
|
type InferBucketPathKeysFromDef<TDef extends AnyDef> = KeysOfUnion<
|
|
30
38
|
TDef['path'][number]
|
|
31
39
|
>;
|
|
32
40
|
|
|
33
|
-
export type InferBucketPathObject<TBucket extends
|
|
41
|
+
export type InferBucketPathObject<TBucket extends AnyBuilder> =
|
|
34
42
|
InferBucketPathKeys<TBucket> extends never
|
|
35
43
|
? Record<string, never>
|
|
36
44
|
: {
|
|
37
45
|
[TKey in InferBucketPathKeys<TBucket>]: string;
|
|
38
46
|
};
|
|
39
47
|
|
|
40
|
-
export type InferBucketPathOrder<TBucket extends
|
|
48
|
+
export type InferBucketPathOrder<TBucket extends AnyBuilder> =
|
|
41
49
|
InferBucketPathKeys<TBucket> extends never
|
|
42
50
|
? []
|
|
43
51
|
: InferBucketPathKeys<TBucket>[];
|
|
@@ -81,7 +89,7 @@ type InferMetadataObjectFromFn<TMetadata> = [
|
|
|
81
89
|
? NormalizeMetadata<Awaited<ReturnType<Exclude<TMetadata, undefined>>>>
|
|
82
90
|
: Record<string, never>;
|
|
83
91
|
|
|
84
|
-
export type InferMetadataObject<TBucket extends
|
|
92
|
+
export type InferMetadataObject<TBucket extends AnyBuilder> =
|
|
85
93
|
InferMetadataObjectFromFn<TBucket['_def']['metadata']>;
|
|
86
94
|
|
|
87
95
|
type InferMetadataObjectFromDef<TDef extends AnyDef> =
|
|
@@ -100,8 +108,6 @@ export interface AnyContext {
|
|
|
100
108
|
[key: string]: AnyContextValue;
|
|
101
109
|
}
|
|
102
110
|
|
|
103
|
-
export type AnyInput = z.AnyZodObject | z.ZodNever;
|
|
104
|
-
|
|
105
111
|
export type AnyPath = Record<string, () => string>[];
|
|
106
112
|
|
|
107
113
|
type PathParam<TPath extends AnyPath> = {
|
|
@@ -160,7 +166,7 @@ type BucketConfig = {
|
|
|
160
166
|
|
|
161
167
|
type BeforeUploadFn<TCtx, TDef extends AnyDef> = (params: {
|
|
162
168
|
ctx: TCtx;
|
|
163
|
-
input:
|
|
169
|
+
input: InferSchemaOutput<TDef['input']>;
|
|
164
170
|
fileInfo: {
|
|
165
171
|
size: number;
|
|
166
172
|
type: string;
|
|
@@ -188,9 +194,15 @@ type MetadataFn<
|
|
|
188
194
|
TCtx,
|
|
189
195
|
TInput extends AnyInput,
|
|
190
196
|
TMetadata extends AnyMetadata,
|
|
191
|
-
> = (params: {
|
|
197
|
+
> = (params: {
|
|
198
|
+
ctx: TCtx;
|
|
199
|
+
input: InferSchemaOutput<TInput>;
|
|
200
|
+
}) => MaybePromise<TMetadata>;
|
|
192
201
|
|
|
193
|
-
export type AnyMetadataFn =
|
|
202
|
+
export type AnyMetadataFn = (params: {
|
|
203
|
+
ctx: any;
|
|
204
|
+
input: any;
|
|
205
|
+
}) => MaybePromise<AnyMetadata>;
|
|
194
206
|
|
|
195
207
|
type BucketType = 'IMAGE' | 'FILE';
|
|
196
208
|
|
|
@@ -226,7 +238,7 @@ type Builder<TCtx, TDef extends AnyDef> = {
|
|
|
226
238
|
*
|
|
227
239
|
* This can be used to add additional information to the file, like choose the file path or add metadata.
|
|
228
240
|
*/
|
|
229
|
-
input<TInput extends
|
|
241
|
+
input<TInput extends AnySchema>(
|
|
230
242
|
input: TInput,
|
|
231
243
|
): Builder<
|
|
232
244
|
TCtx,
|
|
@@ -257,7 +269,9 @@ type Builder<TCtx, TDef extends AnyDef> = {
|
|
|
257
269
|
path<TParams extends AnyPath>(
|
|
258
270
|
pathResolver: (params: {
|
|
259
271
|
ctx: Simplify<ConvertStringToFunction<TCtx>>;
|
|
260
|
-
input: Simplify<
|
|
272
|
+
input: Simplify<
|
|
273
|
+
ConvertStringToFunction<InferSchemaOutput<TDef['input']>>
|
|
274
|
+
>;
|
|
261
275
|
}) => [...TParams],
|
|
262
276
|
): Builder<
|
|
263
277
|
TCtx,
|
|
@@ -373,7 +387,14 @@ type Builder<TCtx, TDef extends AnyDef> = {
|
|
|
373
387
|
>;
|
|
374
388
|
};
|
|
375
389
|
|
|
376
|
-
|
|
390
|
+
type ErasedBuilder<TCtx> = {
|
|
391
|
+
$config: {
|
|
392
|
+
ctx: TCtx;
|
|
393
|
+
};
|
|
394
|
+
_def: AnyDef;
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
export type AnyBuilder = ErasedBuilder<any>;
|
|
377
398
|
|
|
378
399
|
const createNewBuilder = (initDef: AnyDef, newDef: Partial<AnyDef>) => {
|
|
379
400
|
const mergedDef = {
|
|
@@ -391,7 +412,7 @@ const createNewBuilder = (initDef: AnyDef, newDef: Partial<AnyDef>) => {
|
|
|
391
412
|
function createBuilder<
|
|
392
413
|
TCtx,
|
|
393
414
|
TType extends BucketType,
|
|
394
|
-
TInput extends AnyInput =
|
|
415
|
+
TInput extends AnyInput = undefined,
|
|
395
416
|
TPath extends AnyPath = [],
|
|
396
417
|
TMetadata extends AnyMetadataFn | undefined = undefined,
|
|
397
418
|
>(
|
|
@@ -413,7 +434,7 @@ function createBuilder<
|
|
|
413
434
|
> {
|
|
414
435
|
const _def: AnyDef = {
|
|
415
436
|
type: opts.type,
|
|
416
|
-
input:
|
|
437
|
+
input: undefined,
|
|
417
438
|
path: [],
|
|
418
439
|
metadata: undefined,
|
|
419
440
|
...initDef,
|
|
@@ -426,6 +447,7 @@ function createBuilder<
|
|
|
426
447
|
// @ts-expect-error - I think it would be too much work to make this type correct.
|
|
427
448
|
_def,
|
|
428
449
|
input(input) {
|
|
450
|
+
assertStandardSchema(input);
|
|
429
451
|
return createNewBuilder(_def, {
|
|
430
452
|
input,
|
|
431
453
|
}) as any;
|
|
@@ -521,9 +543,9 @@ class EdgeStoreBuilder<TCtx = Record<string, never>> {
|
|
|
521
543
|
|
|
522
544
|
export type EdgeStoreRouter<
|
|
523
545
|
TCtx,
|
|
524
|
-
TBuckets extends Record<string,
|
|
546
|
+
TBuckets extends Record<string, ErasedBuilder<TCtx>> = Record<
|
|
525
547
|
string,
|
|
526
|
-
|
|
548
|
+
ErasedBuilder<TCtx>
|
|
527
549
|
>,
|
|
528
550
|
> = {
|
|
529
551
|
/**
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type StandardSchemaV1 } from '@standard-schema/spec';
|
|
2
|
+
import { EdgeStoreError } from '../errors';
|
|
3
|
+
|
|
4
|
+
export type AnySchema = StandardSchemaV1<any, Record<string, unknown>>;
|
|
5
|
+
|
|
6
|
+
/** @internal */
|
|
7
|
+
export type AnyInput = AnySchema | undefined;
|
|
8
|
+
|
|
9
|
+
export type InferSchemaInput<TSchema extends AnyInput> =
|
|
10
|
+
TSchema extends StandardSchemaV1
|
|
11
|
+
? StandardSchemaV1.InferInput<TSchema>
|
|
12
|
+
: never;
|
|
13
|
+
|
|
14
|
+
export type InferSchemaOutput<TSchema extends AnyInput> =
|
|
15
|
+
TSchema extends StandardSchemaV1
|
|
16
|
+
? StandardSchemaV1.InferOutput<TSchema>
|
|
17
|
+
: never;
|
|
18
|
+
|
|
19
|
+
function formatIssue(issue: StandardSchemaV1.Issue): string {
|
|
20
|
+
const path = issue.path
|
|
21
|
+
?.map((segment) =>
|
|
22
|
+
typeof segment === 'object' ? String(segment.key) : String(segment),
|
|
23
|
+
)
|
|
24
|
+
.join('.');
|
|
25
|
+
|
|
26
|
+
return path ? `${path}: ${issue.message}` : issue.message;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** @internal */
|
|
30
|
+
export function assertStandardSchema(
|
|
31
|
+
schema: unknown,
|
|
32
|
+
): asserts schema is AnySchema {
|
|
33
|
+
const protocol =
|
|
34
|
+
typeof schema === 'object' && schema !== null && '~standard' in schema
|
|
35
|
+
? schema['~standard']
|
|
36
|
+
: undefined;
|
|
37
|
+
|
|
38
|
+
if (
|
|
39
|
+
typeof protocol !== 'object' ||
|
|
40
|
+
protocol === null ||
|
|
41
|
+
!('version' in protocol) ||
|
|
42
|
+
protocol.version !== 1 ||
|
|
43
|
+
!('validate' in protocol) ||
|
|
44
|
+
typeof protocol.validate !== 'function'
|
|
45
|
+
) {
|
|
46
|
+
throw new EdgeStoreError({
|
|
47
|
+
code: 'SERVER_ERROR',
|
|
48
|
+
message: 'Bucket input schemas must implement Standard Schema V1',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** @internal */
|
|
54
|
+
export async function parseBucketInput<TSchema extends AnyInput>(
|
|
55
|
+
schema: TSchema,
|
|
56
|
+
input: unknown,
|
|
57
|
+
): Promise<
|
|
58
|
+
TSchema extends undefined ? Record<string, never> : InferSchemaOutput<TSchema>
|
|
59
|
+
> {
|
|
60
|
+
if (schema === undefined) {
|
|
61
|
+
return {} as TSchema extends undefined
|
|
62
|
+
? Record<string, never>
|
|
63
|
+
: InferSchemaOutput<TSchema>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const result = await schema['~standard'].validate(input);
|
|
67
|
+
if (result.issues !== undefined) {
|
|
68
|
+
throw new EdgeStoreError({
|
|
69
|
+
code: 'BAD_REQUEST',
|
|
70
|
+
message: `Invalid input: ${result.issues.map(formatIssue).join('; ')}`,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (
|
|
75
|
+
typeof result.value !== 'object' ||
|
|
76
|
+
result.value === null ||
|
|
77
|
+
Array.isArray(result.value)
|
|
78
|
+
) {
|
|
79
|
+
throw new EdgeStoreError({
|
|
80
|
+
code: 'SERVER_ERROR',
|
|
81
|
+
message: 'Bucket input schemas must return an object',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return result.value as TSchema extends undefined
|
|
86
|
+
? Record<string, never>
|
|
87
|
+
: InferSchemaOutput<TSchema>;
|
|
88
|
+
}
|