@edgestore/shared 1.0.0-next.1 → 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,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';
@@ -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,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,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 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
  };
@@ -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 Builder<any, AnyDef>> = InferMetadataObjectFromFn<TBucket['_def']['metadata']>;
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: z.infer<TDef['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: z.infer<TInput>;
110
+ input: InferSchemaOutput<TInput>;
111
111
  }) => MaybePromise<TMetadata>;
112
- export type AnyMetadataFn = MetadataFn<any, AnyInput, AnyMetadata>;
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 AnyInput>(input: TInput): Builder<TCtx, {
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<z.infer<TDef['input']>>>;
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
- 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>;
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: z.ZodNever;
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: z.ZodNever;
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, Builder<TCtx, AnyDef>>>(buckets: TBuckets) => {
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, Builder<TCtx, AnyDef>> = Record<string, Builder<TCtx, AnyDef>>> = {
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: z.never(),
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.1",
3
+ "version": "1.0.0-next.2",
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 Builder<any, AnyDef>> =
27
- KeysOfUnion<TBucket['_def']['path'][number]>;
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 Builder<any, AnyDef>> =
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 Builder<any, AnyDef>> =
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 Builder<any, AnyDef>> =
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: z.infer<TDef['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: { ctx: TCtx; input: z.infer<TInput> }) => MaybePromise<TMetadata>;
197
+ > = (params: {
198
+ ctx: TCtx;
199
+ input: InferSchemaOutput<TInput>;
200
+ }) => MaybePromise<TMetadata>;
192
201
 
193
- export type AnyMetadataFn = MetadataFn<any, AnyInput, AnyMetadata>;
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 AnyInput>(
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<ConvertStringToFunction<z.infer<TDef['input']>>>;
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
- export type AnyBuilder = Builder<any, AnyDef>;
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 = z.ZodNever,
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: z.never(),
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, Builder<TCtx, AnyDef>> = Record<
546
+ TBuckets extends Record<string, ErasedBuilder<TCtx>> = Record<
525
547
  string,
526
- Builder<TCtx, AnyDef>
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
+ }