better-convex 0.5.7 → 0.6.0

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.
Files changed (38) hide show
  1. package/dist/auth/index.d.ts +54 -38
  2. package/dist/auth/index.js +578 -114
  3. package/dist/auth-client/index.d.ts +2 -1
  4. package/dist/auth-client/index.js +2 -1
  5. package/dist/auth-config/index.d.ts +45 -0
  6. package/dist/auth-config/index.js +24 -0
  7. package/dist/auth-nextjs/index.d.ts +2 -2
  8. package/dist/auth-nextjs/index.js +2 -2
  9. package/dist/{caller-factory-CeZ07fQ2.js → caller-factory-B1FvYSKr.js} +18 -12
  10. package/dist/cli.mjs +246 -0
  11. package/dist/{codegen-CSeApTME.cjs → codegen-DkpPBVPn.mjs} +28 -60
  12. package/dist/context-utils-DSuX99Da.d.ts +17 -0
  13. package/dist/{create-schema-B4CUvqik.js → create-schema-DhWXOhnU.js} +1 -1
  14. package/dist/create-schema-orm-DplxTtYj.js +145 -0
  15. package/dist/crpc/index.d.ts +3 -3
  16. package/dist/crpc/index.js +4 -3
  17. package/dist/customFunctions-C1okqCzL.js +377 -0
  18. package/dist/{http-types-BrMbHGYR.d.ts → http-types-BRLY10NX.d.ts} +70 -20
  19. package/dist/index-BQkhP2ny.d.ts +1326 -0
  20. package/dist/orm/index.d.ts +2977 -0
  21. package/dist/orm/index.js +3 -0
  22. package/dist/orm-Banm-XXb.js +8812 -0
  23. package/dist/react/index.d.ts +46 -9
  24. package/dist/react/index.js +362 -123
  25. package/dist/rsc/index.d.ts +7 -4
  26. package/dist/rsc/index.js +10 -7
  27. package/dist/server/index.d.ts +4 -617
  28. package/dist/server/index.js +914 -50
  29. package/dist/transformer-CTNSPjwp.js +194 -0
  30. package/dist/types-jftzhhuc.d.ts +42 -0
  31. package/dist/{types-DrFf50wo.d.ts → types-o-5rYcTr.d.ts} +1 -1
  32. package/dist/watcher.mjs +41 -0
  33. package/package.json +10 -12
  34. package/dist/cli.cjs +0 -215
  35. package/dist/watcher.cjs +0 -29
  36. /package/dist/{error-BPjr9_gg.js → error-BZUhlhYz.js} +0 -0
  37. /package/dist/{meta-utils-DS5fA5GB.js → meta-utils-DCpLSBWB.js} +0 -0
  38. /package/dist/{query-options-Dbyr-NY1.js → query-options-BL1Q0X7q.js} +0 -0
@@ -1,14 +1,15 @@
1
+ import { t as GenericCtx } from "../context-utils-DSuX99Da.js";
2
+ import { convex } from "@convex-dev/better-auth/plugins";
1
3
  import * as better_auth_adapters1 from "better-auth/adapters";
2
4
  import { DBAdapterDebugLogOption } from "better-auth/adapters";
3
5
  import { BetterAuthDBSchema } from "better-auth/db";
4
6
  import * as convex_server24 from "convex/server";
5
- import { DocumentByName, FunctionReference, GenericDataModel, GenericMutationCtx, GenericQueryCtx, GenericSchema, IdField, PaginationOptions, PaginationResult, SchemaDefinition, SystemFields, TableNamesInDataModel, internalMutationGeneric } from "convex/server";
7
+ import { DocumentByName, FunctionReference, GenericDataModel, GenericMutationCtx, GenericQueryCtx, GenericSchema, HttpRouter, PaginationOptions, PaginationResult, SchemaDefinition, TableNamesInDataModel, internalMutationGeneric } from "convex/server";
6
8
  import * as convex_values0 from "convex/values";
7
9
  import { Infer } from "convex/values";
8
10
  import { MiddlewareHandler } from "hono";
9
11
  import * as better_auth0 from "better-auth";
10
12
  import { BetterAuthOptions, Where, betterAuth } from "better-auth";
11
- import { GenericCtx } from "@convex-dev/better-auth";
12
13
  import { SetOptional } from "type-fest";
13
14
 
14
15
  //#region src/auth/create-client.d.ts
@@ -27,38 +28,36 @@ type AuthFunctions = {
27
28
  beforeDelete?: FunctionReference<'mutation', 'internal', Record<string, any>>;
28
29
  beforeUpdate?: FunctionReference<'mutation', 'internal', Record<string, any>>;
29
30
  };
30
- type Triggers<DataModel extends GenericDataModel, Schema extends SchemaDefinition<any, any>> = { [K in keyof Schema['tables'] & string]?: {
31
- beforeCreate?: (ctx: GenericMutationCtx<DataModel>, data: Infer<Schema['tables'][K]['validator']>) => Promise<Infer<Schema['tables'][K]['validator']> | undefined>;
32
- beforeDelete?: (ctx: GenericMutationCtx<DataModel>, doc: Infer<Schema['tables'][K]['validator']> & IdField<K> & SystemFields) => Promise<(Infer<Schema['tables'][K]['validator']> & IdField<K> & SystemFields) | undefined>;
33
- beforeUpdate?: (ctx: GenericMutationCtx<DataModel>, doc: Infer<Schema['tables'][K]['validator']> & IdField<K> & SystemFields, update: Partial<Infer<Schema['tables'][K]['validator']>>) => Promise<Partial<Infer<Schema['tables'][K]['validator']>> | undefined>;
34
- onCreate?: (ctx: GenericMutationCtx<DataModel>, doc: Infer<Schema['tables'][K]['validator']> & IdField<K> & SystemFields) => Promise<void>;
35
- onDelete?: (ctx: GenericMutationCtx<DataModel>, doc: Infer<Schema['tables'][K]['validator']> & IdField<K> & SystemFields) => Promise<void>;
36
- onUpdate?: (ctx: GenericMutationCtx<DataModel>, newDoc: Infer<Schema['tables'][K]['validator']> & IdField<K> & {
37
- _creationTime: number;
38
- }, oldDoc: Infer<Schema['tables'][K]['validator']> & IdField<K> & SystemFields) => Promise<void>;
31
+ type Triggers<DataModel extends GenericDataModel, Schema extends SchemaDefinition<any, any>, TriggerCtx extends GenericMutationCtx<DataModel> = GenericMutationCtx<DataModel>> = { [K in Extract<keyof Schema['tables'] & string, TableNamesInDataModel<DataModel>>]?: {
32
+ beforeCreate?: (ctx: TriggerCtx, data: Omit<DocumentByName<DataModel, K>, '_id' | '_creationTime'>) => Promise<Omit<DocumentByName<DataModel, K>, '_id' | '_creationTime'> | undefined>;
33
+ beforeDelete?: (ctx: TriggerCtx, doc: DocumentByName<DataModel, K>) => Promise<DocumentByName<DataModel, K> | undefined>;
34
+ beforeUpdate?: (ctx: TriggerCtx, doc: DocumentByName<DataModel, K>, update: Partial<Omit<DocumentByName<DataModel, K>, '_id' | '_creationTime'>>) => Promise<Partial<Omit<DocumentByName<DataModel, K>, '_id' | '_creationTime'>> | undefined>;
35
+ onCreate?: (ctx: TriggerCtx, doc: DocumentByName<DataModel, K>) => Promise<void>;
36
+ onDelete?: (ctx: TriggerCtx, doc: DocumentByName<DataModel, K>) => Promise<void>;
37
+ onUpdate?: (ctx: TriggerCtx, newDoc: DocumentByName<DataModel, K>, oldDoc: DocumentByName<DataModel, K>) => Promise<void>;
39
38
  } };
40
- declare const createClient: <DataModel extends GenericDataModel, Schema extends SchemaDefinition<GenericSchema, true>>(config: {
39
+ declare const createClient: <DataModel extends GenericDataModel, Schema extends SchemaDefinition<GenericSchema, true>, TriggerCtx extends GenericMutationCtx<DataModel> = GenericMutationCtx<DataModel>>(config: {
41
40
  authFunctions: AuthFunctions;
42
41
  schema: Schema;
43
42
  internalMutation?: typeof internalMutationGeneric;
44
- triggers?: Triggers<DataModel, Schema>;
43
+ context?: (ctx: GenericMutationCtx<DataModel>) => TriggerCtx | Promise<TriggerCtx>;
44
+ triggers?: Triggers<DataModel, Schema, TriggerCtx>;
45
45
  }) => {
46
46
  authFunctions: AuthFunctions;
47
- triggers: Triggers<DataModel, Schema> | undefined;
48
- adapter: (ctx: GenericCtx<DataModel>, createAuthOptions: (ctx: any) => BetterAuthOptions) => better_auth_adapters1.AdapterFactory;
49
- httpAdapter: (ctx: GenericCtx<DataModel>) => better_auth_adapters1.AdapterFactory;
47
+ triggers: Triggers<DataModel, Schema, TriggerCtx> | undefined;
48
+ adapter: (ctx: GenericCtx<DataModel>, getAuthOptions: (ctx: any) => BetterAuthOptions) => better_auth_adapters1.AdapterFactory;
50
49
  triggersApi: () => {
51
50
  beforeCreate: convex_server24.RegisteredMutation<"internal", {
52
- model: string;
53
51
  data: any;
52
+ model: string;
54
53
  }, Promise<any>>;
55
54
  beforeDelete: convex_server24.RegisteredMutation<"internal", {
56
55
  model: string;
57
56
  doc: any;
58
57
  }, Promise<any>>;
59
58
  beforeUpdate: convex_server24.RegisteredMutation<"internal", {
60
- model: string;
61
59
  update: any;
60
+ model: string;
62
61
  doc: any;
63
62
  }, Promise<any>>;
64
63
  onCreate: convex_server24.RegisteredMutation<"internal", {
@@ -125,7 +124,7 @@ declare const adapterConfig: {
125
124
  field: string;
126
125
  action: "create" | "update" | "findOne" | "findMany" | "updateMany" | "delete" | "deleteMany" | "count";
127
126
  model: string;
128
- schema: better_auth0.BetterAuthDBSchema;
127
+ schema: BetterAuthDBSchema;
129
128
  options: BetterAuthOptions;
130
129
  }) => any;
131
130
  customTransformOutput: ({
@@ -137,20 +136,22 @@ declare const adapterConfig: {
137
136
  field: string;
138
137
  select: string[];
139
138
  model: string;
140
- schema: better_auth0.BetterAuthDBSchema;
139
+ schema: BetterAuthDBSchema;
141
140
  options: BetterAuthOptions;
142
141
  }) => any;
143
142
  };
144
143
  declare const httpAdapter: <DataModel extends GenericDataModel, Schema extends SchemaDefinition<any, any>>(ctx: GenericCtx<DataModel>, {
145
144
  authFunctions,
146
145
  debugLogs,
146
+ schema,
147
147
  triggers
148
148
  }: {
149
149
  authFunctions: AuthFunctions;
150
150
  debugLogs?: DBAdapterDebugLogOption;
151
+ schema?: Schema;
151
152
  triggers?: Triggers<DataModel, Schema>;
152
153
  }) => better_auth_adapters1.AdapterFactory;
153
- declare const dbAdapter: <DataModel extends GenericDataModel, Schema extends SchemaDefinition<any, any>>(ctx: GenericCtx<DataModel>, createAuthOptions: (ctx: any) => BetterAuthOptions, {
154
+ declare const dbAdapter: <DataModel extends GenericDataModel, Schema extends SchemaDefinition<any, any>>(ctx: GenericCtx<DataModel>, getAuthOptions: (ctx: any) => BetterAuthOptions, {
154
155
  authFunctions,
155
156
  debugLogs,
156
157
  schema,
@@ -163,6 +164,10 @@ declare const dbAdapter: <DataModel extends GenericDataModel, Schema extends Sch
163
164
  }) => better_auth_adapters1.AdapterFactory;
164
165
  //#endregion
165
166
  //#region src/auth/adapter-utils.d.ts
167
+ type AdapterPaginationOptions = PaginationOptions & {
168
+ endCursor?: string | null;
169
+ maximumRowsRead?: number;
170
+ };
166
171
  declare const adapterWhereValidator: convex_values0.VObject<{
167
172
  connector?: "AND" | "OR" | undefined;
168
173
  operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
@@ -176,8 +181,8 @@ declare const adapterWhereValidator: convex_values0.VObject<{
176
181
  }, "required", "connector" | "field" | "operator" | "value">;
177
182
  declare const adapterArgsValidator: convex_values0.VObject<{
178
183
  limit?: number | undefined;
179
- offset?: number | undefined;
180
184
  select?: string[] | undefined;
185
+ offset?: number | undefined;
181
186
  sortBy?: {
182
187
  field: string;
183
188
  direction: "asc" | "desc";
@@ -217,17 +222,17 @@ declare const adapterArgsValidator: convex_values0.VObject<{
217
222
  operator: convex_values0.VUnion<"lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined, [convex_values0.VLiteral<"lt", "required">, convex_values0.VLiteral<"lte", "required">, convex_values0.VLiteral<"gt", "required">, convex_values0.VLiteral<"gte", "required">, convex_values0.VLiteral<"eq", "required">, convex_values0.VLiteral<"in", "required">, convex_values0.VLiteral<"not_in", "required">, convex_values0.VLiteral<"ne", "required">, convex_values0.VLiteral<"contains", "required">, convex_values0.VLiteral<"starts_with", "required">, convex_values0.VLiteral<"ends_with", "required">], "optional", never>;
218
223
  value: convex_values0.VUnion<string | number | boolean | string[] | number[] | null, [convex_values0.VString<string, "required">, convex_values0.VFloat64<number, "required">, convex_values0.VBoolean<boolean, "required">, convex_values0.VArray<string[], convex_values0.VString<string, "required">, "required">, convex_values0.VArray<number[], convex_values0.VFloat64<number, "required">, "required">, convex_values0.VNull<null, "required">], "required", never>;
219
224
  }, "required", "connector" | "field" | "operator" | "value">, "optional">;
220
- }, "required", "limit" | "model" | "offset" | "select" | "sortBy" | "where" | "sortBy.field" | "sortBy.direction">;
225
+ }, "required", "limit" | "model" | "select" | "offset" | "sortBy" | "where" | "sortBy.field" | "sortBy.direction">;
221
226
  declare const hasUniqueFields: (betterAuthSchema: BetterAuthDBSchema, model: string, input: Record<string, any>) => boolean;
222
227
  declare const checkUniqueFields: <Schema extends SchemaDefinition<any, any>>(ctx: GenericQueryCtx<GenericDataModel>, schema: Schema, betterAuthSchema: BetterAuthDBSchema, table: string, input: Record<string, any>, doc?: Record<string, any>) => Promise<void>;
223
228
  declare const selectFields: <T extends TableNamesInDataModel<GenericDataModel>, D extends DocumentByName<GenericDataModel, T>>(doc: D | null, select?: string[]) => Promise<D | null>;
224
229
  declare const paginate: <Doc extends DocumentByName<GenericDataModel, T>, T extends TableNamesInDataModel<GenericDataModel>>(ctx: GenericQueryCtx<GenericDataModel>, schema: SchemaDefinition<any, any>, betterAuthSchema: BetterAuthDBSchema, args: Infer<typeof adapterArgsValidator> & {
225
- paginationOpts: PaginationOptions;
230
+ paginationOpts: AdapterPaginationOptions;
226
231
  }) => Promise<PaginationResult<Doc>>;
227
232
  declare const listOne: <Doc extends DocumentByName<GenericDataModel, T>, T extends TableNamesInDataModel<GenericDataModel>>(ctx: GenericQueryCtx<GenericDataModel>, schema: SchemaDefinition<any, any>, betterAuthSchema: BetterAuthDBSchema, args: Infer<typeof adapterArgsValidator>) => Promise<Doc | null>;
228
233
  //#endregion
229
234
  //#region src/auth/types.d.ts
230
- type CreateAuth = (ctx: any) => ReturnType<typeof betterAuth>;
235
+ type GetAuth = (ctx: any) => ReturnType<typeof betterAuth>;
231
236
  //#endregion
232
237
  //#region src/auth/create-api.d.ts
233
238
  type Schema = SchemaDefinition<any, any>;
@@ -309,8 +314,9 @@ declare const deleteManyHandler: (ctx: any, args: {
309
314
  splitCursor?: convex_server24.Cursor | null;
310
315
  pageStatus?: "SplitRecommended" | "SplitRequired" | null;
311
316
  }>;
312
- declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Schema, createAuth: CreateAuth, options?: {
313
- internalMutation?: typeof internalMutationGeneric; /** Skip input validation for smaller generated types. Since these are internal functions, validation is optional. */
317
+ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Schema, getAuth: GetAuth, options?: {
318
+ internalMutation?: typeof internalMutationGeneric;
319
+ context?: (ctx: any) => any | Promise<any>; /** Skip input validation for smaller generated types. Since these are internal functions, validation is optional. */
314
320
  skipValidation?: boolean;
315
321
  }) => {
316
322
  create: convex_server24.RegisteredMutation<"internal", {
@@ -318,15 +324,15 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
318
324
  beforeCreateHandle?: string | undefined;
319
325
  onCreateHandle?: string | undefined;
320
326
  input: {
321
- model: string;
322
327
  data: any;
323
- } | {
324
328
  model: string;
329
+ } | {
325
330
  data: {
326
331
  [x: string]: unknown;
327
332
  [x: number]: unknown;
328
333
  [x: symbol]: unknown;
329
334
  };
335
+ model: string;
330
336
  };
331
337
  }, Promise<any>>;
332
338
  deleteMany: convex_server24.RegisteredMutation<"internal", {
@@ -377,8 +383,8 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
377
383
  };
378
384
  }, Promise<convex_server24.GenericDocument | undefined>>;
379
385
  findMany: convex_server24.RegisteredQuery<"internal", {
380
- join?: any;
381
386
  limit?: number | undefined;
387
+ join?: any;
382
388
  offset?: number | undefined;
383
389
  sortBy?: {
384
390
  field: string;
@@ -390,7 +396,6 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
390
396
  field: string;
391
397
  value: string | number | boolean | string[] | number[] | null;
392
398
  }[] | undefined;
393
- model: string;
394
399
  paginationOpts: {
395
400
  id?: number;
396
401
  endCursor?: string | null;
@@ -399,6 +404,7 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
399
404
  numItems: number;
400
405
  cursor: string | null;
401
406
  };
407
+ model: string;
402
408
  }, Promise<convex_server24.PaginationResult<convex_server24.GenericDocument>>>;
403
409
  findOne: convex_server24.RegisteredQuery<"internal", {
404
410
  join?: any;
@@ -424,8 +430,8 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
424
430
  };
425
431
  input: {
426
432
  where?: any[] | undefined;
427
- model: string;
428
433
  update: any;
434
+ model: string;
429
435
  } | {
430
436
  where?: {
431
437
  connector?: "AND" | "OR" | undefined;
@@ -433,12 +439,12 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
433
439
  field: string;
434
440
  value: string | number | boolean | string[] | number[] | null;
435
441
  }[] | undefined;
436
- model: string;
437
442
  update: {
438
443
  [x: string]: unknown;
439
444
  [x: number]: unknown;
440
445
  [x: symbol]: unknown;
441
446
  };
447
+ model: string;
442
448
  };
443
449
  }, Promise<{
444
450
  count: number;
@@ -453,8 +459,8 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
453
459
  onUpdateHandle?: string | undefined;
454
460
  input: {
455
461
  where?: any[] | undefined;
456
- model: string;
457
462
  update: any;
463
+ model: string;
458
464
  } | {
459
465
  where?: {
460
466
  connector?: "AND" | "OR" | undefined;
@@ -462,12 +468,12 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>>(schema: Sch
462
468
  field: string;
463
469
  value: string | number | boolean | string[] | number[] | null;
464
470
  }[] | undefined;
465
- model: string;
466
471
  update: {
467
472
  [x: string]: unknown;
468
473
  [x: number]: unknown;
469
474
  [x: symbol]: unknown;
470
475
  };
476
+ model: string;
471
477
  };
472
478
  }, Promise<any>>;
473
479
  getLatestJwks: convex_server24.RegisteredAction<"internal", {}, Promise<any>>;
@@ -522,11 +528,21 @@ interface AuthMiddlewareOptions {
522
528
  *
523
529
  * const app = new Hono();
524
530
  * app.use('/api/*', cors({ origin: process.env.SITE_URL, credentials: true }));
525
- * app.use(authMiddleware(createAuth));
531
+ * app.use(authMiddleware(getAuth));
526
532
  *
527
533
  * export default createHttpRouter(app, appRouter);
528
534
  * ```
529
535
  */
530
- declare function authMiddleware(createAuth: CreateAuth, opts?: AuthMiddlewareOptions): MiddlewareHandler;
536
+ declare function authMiddleware(getAuth: GetAuth, opts?: AuthMiddlewareOptions): MiddlewareHandler;
537
+ //#endregion
538
+ //#region src/auth/registerRoutes.d.ts
539
+ declare const registerRoutes: (http: HttpRouter, getAuth: GetAuth, opts?: {
540
+ cors?: {
541
+ allowedHeaders?: string[];
542
+ allowedOrigins?: string[];
543
+ exposedHeaders?: string[];
544
+ } | boolean;
545
+ verbose?: boolean;
546
+ }) => void;
531
547
  //#endregion
532
- export { AuthFunctions, AuthMiddlewareOptions, ConvexCleanedWhere, CreateAuth, Triggers, adapterArgsValidator, adapterConfig, adapterWhereValidator, authMiddleware, checkUniqueFields, createApi, createClient, createHandler, dbAdapter, deleteManyHandler, deleteOneHandler, findManyHandler, findOneHandler, getAuthUserId, getAuthUserIdentity, getHeaders, getSession, handlePagination, hasUniqueFields, httpAdapter, listOne, paginate, selectFields, updateManyHandler, updateOneHandler };
548
+ export { type AuthFunctions, AuthMiddlewareOptions, ConvexCleanedWhere, GetAuth, adapterArgsValidator, adapterConfig, adapterWhereValidator, authMiddleware, checkUniqueFields, convex, createApi, createClient, createHandler, dbAdapter, deleteManyHandler, deleteOneHandler, findManyHandler, findOneHandler, getAuthUserId, getAuthUserIdentity, getHeaders, getSession, handlePagination, hasUniqueFields, httpAdapter, listOne, paginate, registerRoutes, selectFields, updateManyHandler, updateOneHandler };