better-convex 0.10.1 → 0.10.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.
@@ -1,4 +1,4 @@
1
- import { Dt as ConvexCustomBuilderInitial, _t as ConvexNumberBuilderInitial, bt as ConvexIdBuilderInitial, qn as ConvexTextBuilderInitial, rn as ConvexTableWithColumns } from "../where-clause-compiler-UavDdMUX.js";
1
+ import { Dt as ConvexCustomBuilderInitial, _t as ConvexNumberBuilderInitial, bt as ConvexIdBuilderInitial, qn as ConvexTextBuilderInitial, rn as ConvexTableWithColumns } from "../where-clause-compiler-BCECnxsG.js";
2
2
  import * as convex_values0 from "convex/values";
3
3
  import { GenericId, Infer, Value } from "convex/values";
4
4
  import { DocumentByName, GenericDataModel, GenericDatabaseReader, GenericDatabaseWriter, TableNamesInDataModel } from "convex/server";
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as getConvexConfig, t as generateMeta } from "./codegen-CMQIKrqh.mjs";
2
+ import { n as getConvexConfig, t as generateMeta } from "./codegen-69-_7r9o.mjs";
3
3
  import { createRequire } from "node:module";
4
4
  import { createHash } from "node:crypto";
5
5
  import fs from "node:fs";
@@ -240,6 +240,10 @@ function getSchemaImportPath(outputFile, functionsDir) {
240
240
  const schemaFile = path.join(functionsDir, "schema");
241
241
  return ensureRelativeImportPath(normalizeImportPath(path.relative(path.dirname(outputFile), schemaFile)));
242
242
  }
243
+ function getTriggersImportPath(outputFile, functionsDir) {
244
+ const triggersFile = path.join(functionsDir, "triggers");
245
+ return ensureRelativeImportPath(normalizeImportPath(path.relative(path.dirname(outputFile), triggersFile)));
246
+ }
243
247
  function getServerTypesImportPath(outputFile, functionsDir) {
244
248
  const serverTypesFile = path.join(functionsDir, "_generated", "server");
245
249
  return ensureRelativeImportPath(normalizeImportPath(path.relative(path.dirname(outputFile), serverTypesFile)));
@@ -368,17 +372,19 @@ function listGeneratedRuntimeFiles(functionsDir) {
368
372
  if (!fs.existsSync(generatedDir)) return [];
369
373
  return listFilesRecursive(generatedDir).filter((file) => file.endsWith(".runtime.ts")).map((file) => path.join(generatedDir, file));
370
374
  }
371
- function emitGeneratedServerFile(outputFile, functionsDir, hasRelationsExport, hasTriggersExport, hasMigrationsManifest) {
375
+ function emitGeneratedServerFile(outputFile, functionsDir, hasRelationsExport, hasTriggersExport, triggersImportSource, hasMigrationsManifest) {
372
376
  const asSingleQuotedImport = (importPath) => `'${importPath.replaceAll("'", "\\'")}'`;
373
377
  const serverTypesImportPath = getServerTypesImportPath(outputFile, functionsDir);
374
378
  const dataModelImportPath = getDataModelImportPath(outputFile, functionsDir);
375
379
  const runtimeApiImportPath = getRuntimeApiImportPath(outputFile, functionsDir);
376
380
  const schemaImportPath = getSchemaImportPath(outputFile, functionsDir);
381
+ const triggersImportPath = getTriggersImportPath(outputFile, functionsDir);
377
382
  const migrationsManifestImportPath = getModuleImportPath(outputFile, functionsDir, "migrations/manifest");
378
383
  const serverTypesImportLiteral = asSingleQuotedImport(serverTypesImportPath);
379
384
  const dataModelImportLiteral = asSingleQuotedImport(dataModelImportPath);
380
385
  const runtimeApiImportLiteral = asSingleQuotedImport(runtimeApiImportPath);
381
386
  const schemaImportLiteral = asSingleQuotedImport(schemaImportPath);
387
+ const triggersImportLiteral = asSingleQuotedImport(triggersImportPath);
382
388
  const migrationsManifestImportLiteral = asSingleQuotedImport(migrationsManifestImportPath);
383
389
  if (!hasRelationsExport) return `// biome-ignore-all format: generated
384
390
  // This file is auto-generated by better-convex
@@ -399,7 +405,7 @@ export type GenericCtx = QueryCtx | MutationCtx | ActionCtx;
399
405
  export const initCRPC = baseInitCRPC.dataModel<DataModel>();
400
406
  `;
401
407
  const ormFunctionsAccessor = getAccessPath("(internal as unknown as Record<string, any>)", getModuleNameFromOutputFile(outputFile, functionsDir).split("/").filter(Boolean));
402
- const schemaNamedImports = hasTriggersExport ? "relations, triggers" : "relations";
408
+ const schemaNamedImports = hasTriggersExport && triggersImportSource === "schema" ? "relations, triggers" : "relations";
403
409
  const triggersConfigLine = hasTriggersExport ? " triggers,\n" : "";
404
410
  return `// biome-ignore-all format: generated
405
411
  // This file is auto-generated by better-convex
@@ -416,6 +422,7 @@ import type {
416
422
  } from ${serverTypesImportLiteral};
417
423
  import { internalMutation } from ${serverTypesImportLiteral};
418
424
  import schema, { ${schemaNamedImports} } from ${schemaImportLiteral};
425
+ ${hasTriggersExport && triggersImportSource === "triggers" ? `import { triggers } from ${triggersImportLiteral};\n` : ""}
419
426
  ${hasMigrationsManifest ? `import { migrations } from ${migrationsManifestImportLiteral};\n` : ""}
420
427
 
421
428
  const ormFunctions = ${ormFunctionsAccessor} as OrmFunctions;
@@ -583,72 +590,148 @@ function emitGeneratedModuleRuntimeFile(outputFile, functionsDir, moduleName, pr
583
590
  const handlerRegistryLines = hasHandlerRegistry ? emitProcedureRegistryEntries(handlerEntries, outputFile, functionsDir, moduleName) : [];
584
591
  const handlerRegistryBody = handlerRegistryLines.length > 0 ? `\n${handlerRegistryLines.join("\n")}\n` : "\n";
585
592
  const allEntriesAreCrpc = callerEntries.length > 0 && callerEntries.length === handlerEntries.length;
586
- const callerRegistryIdentifier = allEntriesAreCrpc ? "procedureRegistry" : "callerRegistry";
587
- const handlerRegistryIdentifier = allEntriesAreCrpc ? "procedureRegistry" : "handlerRegistry";
588
- const callerRegistryDeclaration = allEntriesAreCrpc ? `const procedureRegistry = {${callerRegistryBody}} as const;` : `const callerRegistry = {${callerRegistryBody}} as const;`;
593
+ const handlerRegistryDeclaration = hasHandlerRegistry ? allEntriesAreCrpc ? "\n const handlerRegistry = procedureRegistry;\n" : `\n const handlerRegistry = {${handlerRegistryBody}} as const;\n` : "";
594
+ const handlerTypeDeclarations = hasHandlerRegistry ? `
595
+ type ProcedureHandlerContext = QueryCtx | MutationCtx;
596
+ type GeneratedProcedureHandler<
597
+ TCtx extends ProcedureHandlerContext = ProcedureHandlerContext,
598
+ > = TCtx extends MutationCtx
599
+ ? ProcedureCallerFromRegistry<ProcedureHandlerRegistry, 'mutation'>
600
+ : ProcedureCallerFromRegistry<ProcedureHandlerRegistry, 'query'>;
601
+ ` : "";
602
+ const handlerFactoryHelpers = hasHandlerRegistry ? `
603
+ function createHandlerFromRegistryFactory() {
604
+ const { createGenericHandlerFactory } =
605
+ (require('better-convex/server') as RuntimeServerModule);
606
+ const { handlerRegistry } = buildProcedureRegistry();
607
+ return createGenericHandlerFactory<
608
+ QueryCtx,
609
+ MutationCtx,
610
+ ProcedureHandlerRegistry
611
+ >(handlerRegistry);
612
+ }
613
+
614
+ type HandlerFactory = ReturnType<typeof createHandlerFromRegistryFactory>;
615
+
616
+ let cachedCreateHandlerFromRegistry: HandlerFactory | undefined;
617
+
618
+ function getCreateHandlerFromRegistry(): HandlerFactory {
619
+ if (cachedCreateHandlerFromRegistry) {
620
+ return cachedCreateHandlerFromRegistry;
621
+ }
622
+
623
+ const generatedHandlerFactory = createHandlerFromRegistryFactory();
624
+ cachedCreateHandlerFromRegistry = generatedHandlerFactory;
625
+
626
+ return generatedHandlerFactory;
627
+ }
628
+
629
+ ` : "";
630
+ const handlerExport = hasHandlerRegistry ? `
631
+ export function ${handlerExportName}<TCtx extends ProcedureHandlerContext>(
632
+ ctx: TCtx
633
+ ): GeneratedProcedureHandler<TCtx> {
634
+ const createHandlerFromRegistry = getCreateHandlerFromRegistry();
635
+ return createHandlerFromRegistry(ctx) as GeneratedProcedureHandler<TCtx>;
636
+ }
637
+ ` : "";
589
638
  return `// biome-ignore-all format: generated
590
639
  // This file is auto-generated by better-convex
591
640
  // Do not edit manually. Run \`better-convex codegen\` to regenerate.
592
641
 
593
- import {
594
- createGenericCallerFactory,${hasHandlerRegistry ? "\n createGenericHandlerFactory," : ""}
595
- typedProcedureResolver,
596
- type ProcedureActionCallerFromRegistry,
597
- type ProcedureCallerFromRegistry,
598
- type ProcedureScheduleCallerFromRegistry,
642
+ import type {
643
+ ProcedureActionCallerFromRegistry,
644
+ ProcedureCallerFromRegistry,
645
+ ProcedureScheduleCallerFromRegistry,
599
646
  } from 'better-convex/server';
600
- import { api, internal } from '${runtimeApiImportPath}';
601
647
  import type { ActionCtx, MutationCtx, QueryCtx } from '${generatedServerImportPath}';
648
+ import type { OrmTriggerContext } from 'better-convex/orm';
649
+
650
+ type RuntimeServerModule = typeof import('better-convex/server');
651
+
652
+ function createProcedureRegistry() {
653
+ const { typedProcedureResolver } =
654
+ (require('better-convex/server') as RuntimeServerModule);
655
+ const { api, internal } =
656
+ (require(${JSON.stringify(runtimeApiImportPath)}) as typeof import('${runtimeApiImportPath}'));
657
+
658
+ const procedureRegistry = {${callerRegistryBody}} as const;
659
+ ${handlerRegistryDeclaration}
660
+ return {
661
+ procedureRegistry,
662
+ ${hasHandlerRegistry ? " handlerRegistry,\n" : ""} };
663
+ }
664
+
665
+ type ProcedureRegistryBundle = ReturnType<typeof createProcedureRegistry>;
666
+ type ProcedureCallerRegistry = ProcedureRegistryBundle['procedureRegistry'];
667
+ ${hasHandlerRegistry ? `type ProcedureHandlerRegistry = ProcedureRegistryBundle['handlerRegistry'];
668
+ ` : ""}
669
+
670
+ let cachedProcedureRegistry: ProcedureRegistryBundle | undefined;
602
671
 
603
- ${callerRegistryDeclaration}${hasHandlerRegistry && !allEntriesAreCrpc ? `\nconst handlerRegistry = {${handlerRegistryBody}} as const;\n` : ""}
672
+ function buildProcedureRegistry(): ProcedureRegistryBundle {
673
+ if (cachedProcedureRegistry) {
674
+ return cachedProcedureRegistry;
675
+ }
604
676
 
605
- type ProcedureCallerContext = QueryCtx | MutationCtx | ActionCtx;
677
+ const procedureRegistryBundle = createProcedureRegistry();
678
+ cachedProcedureRegistry = procedureRegistryBundle;
679
+
680
+ return procedureRegistryBundle;
681
+ }
682
+
683
+ type MutationCallerContext = MutationCtx | OrmTriggerContext<any, MutationCtx>;
684
+ type ProcedureCallerContext = QueryCtx | MutationCallerContext | ActionCtx;
606
685
  type GeneratedProcedureCaller<
607
686
  TCtx extends ProcedureCallerContext = ProcedureCallerContext,
608
- > = TCtx extends MutationCtx
609
- ? ProcedureCallerFromRegistry<typeof ${callerRegistryIdentifier}, 'mutation'> & {
610
- schedule: ProcedureScheduleCallerFromRegistry<typeof ${callerRegistryIdentifier}>;
687
+ > = TCtx extends MutationCallerContext
688
+ ? ProcedureCallerFromRegistry<ProcedureCallerRegistry, 'mutation'> & {
689
+ schedule: ProcedureScheduleCallerFromRegistry<ProcedureCallerRegistry>;
611
690
  }
612
691
  : TCtx extends ActionCtx
613
- ? ProcedureCallerFromRegistry<typeof ${callerRegistryIdentifier}, 'mutation'> & {
614
- actions: ProcedureActionCallerFromRegistry<typeof ${callerRegistryIdentifier}>;
615
- schedule: ProcedureScheduleCallerFromRegistry<typeof ${callerRegistryIdentifier}>;
692
+ ? ProcedureCallerFromRegistry<ProcedureCallerRegistry, 'mutation'> & {
693
+ actions: ProcedureActionCallerFromRegistry<ProcedureCallerRegistry>;
694
+ schedule: ProcedureScheduleCallerFromRegistry<ProcedureCallerRegistry>;
616
695
  }
617
- : ProcedureCallerFromRegistry<typeof ${callerRegistryIdentifier}, 'query'>;
618
- ${hasHandlerRegistry ? `
619
- type ProcedureHandlerContext = QueryCtx | MutationCtx;
620
- type GeneratedProcedureHandler<
621
- TCtx extends ProcedureHandlerContext = ProcedureHandlerContext,
622
- > = TCtx extends MutationCtx
623
- ? ProcedureCallerFromRegistry<typeof ${handlerRegistryIdentifier}, 'mutation'>
624
- : ProcedureCallerFromRegistry<typeof ${handlerRegistryIdentifier}, 'query'>;
625
- ` : ""}
696
+ : ProcedureCallerFromRegistry<ProcedureCallerRegistry, 'query'>;
697
+ ${handlerTypeDeclarations}
626
698
 
627
- const createCallerFromRegistry = createGenericCallerFactory<
628
- QueryCtx,
629
- MutationCtx,
630
- typeof ${callerRegistryIdentifier},
631
- ActionCtx
632
- >(${callerRegistryIdentifier});${hasHandlerRegistry ? `
633
- const createHandlerFromRegistry = createGenericHandlerFactory<
634
- QueryCtx,
635
- MutationCtx,
636
- typeof ${handlerRegistryIdentifier}
637
- >(${handlerRegistryIdentifier});
638
- ` : ""}
699
+ function createCallerFromRegistryFactory() {
700
+ const { createGenericCallerFactory } =
701
+ (require('better-convex/server') as RuntimeServerModule);
702
+ const { procedureRegistry } = buildProcedureRegistry();
703
+ return createGenericCallerFactory<
704
+ QueryCtx,
705
+ MutationCtx,
706
+ ProcedureCallerRegistry,
707
+ ActionCtx
708
+ >(procedureRegistry);
709
+ }
710
+
711
+ type CallerFactory = ReturnType<typeof createCallerFromRegistryFactory>;
712
+
713
+ let cachedCreateCallerFromRegistry: CallerFactory | undefined;
714
+
715
+ function getCreateCallerFromRegistry(): CallerFactory {
716
+ if (cachedCreateCallerFromRegistry) {
717
+ return cachedCreateCallerFromRegistry;
718
+ }
719
+
720
+ const generatedCallerFactory = createCallerFromRegistryFactory();
721
+ cachedCreateCallerFromRegistry = generatedCallerFactory;
722
+
723
+ return generatedCallerFactory;
724
+ }
725
+
726
+ ${handlerFactoryHelpers}
639
727
 
640
728
  export function ${callerExportName}<TCtx extends ProcedureCallerContext>(
641
729
  ctx: TCtx
642
730
  ): GeneratedProcedureCaller<TCtx> {
731
+ const createCallerFromRegistry = getCreateCallerFromRegistry();
643
732
  return createCallerFromRegistry(ctx) as GeneratedProcedureCaller<TCtx>;
644
733
  }
645
- ${hasHandlerRegistry ? `
646
- export function ${handlerExportName}<TCtx extends ProcedureHandlerContext>(
647
- ctx: TCtx
648
- ): GeneratedProcedureHandler<TCtx> {
649
- return createHandlerFromRegistry(ctx) as GeneratedProcedureHandler<TCtx>;
650
- }
651
- ` : ""}
734
+ ${handlerExport}
652
735
  `;
653
736
  }
654
737
  function hasNamedExport(filePath, exportName) {
@@ -883,9 +966,12 @@ async function generateMeta(outputDir, options) {
883
966
  hasAuthDefaultExport
884
967
  };
885
968
  const hasRelationsExport = hasNamedExport(path.join(functionsDir, "schema.ts"), "relations");
886
- const hasTriggersExport = hasNamedExport(path.join(functionsDir, "schema.ts"), "triggers");
969
+ const hasSchemaTriggersExport = hasNamedExport(path.join(functionsDir, "schema.ts"), "triggers");
970
+ const hasDedicatedTriggersExport = hasNamedExport(path.join(functionsDir, "triggers.ts"), "triggers");
971
+ const hasTriggersExport = hasSchemaTriggersExport || hasDedicatedTriggersExport;
972
+ const triggersImportSource = hasDedicatedTriggersExport ? "triggers" : "schema";
887
973
  const hasMigrationsManifest = fs.existsSync(path.join(functionsDir, "migrations", "manifest.ts"));
888
- if (hasTriggersExport && !hasRelationsExport) throw new Error("Codegen error: schema.ts exports 'triggers' but is missing 'relations'. Export `relations` and define triggers via `defineTriggers(relations, { ... })`.");
974
+ if (hasTriggersExport && !hasRelationsExport) throw new Error("Codegen error: triggers require a 'relations' export from schema.ts. Export `relations` from schema.ts and define triggers via `defineTriggers(relations, { ... })` in schema.ts or triggers.ts.");
889
975
  ensureGeneratedSupportPlaceholders(functionsDir, { includeAuth: generateAuth });
890
976
  if (generateApi) {
891
977
  globalThis.__BETTER_CONVEX_CODEGEN__ = true;
@@ -986,7 +1072,7 @@ ${optionalTypeExports}
986
1072
  if (!fs.existsSync(outputDirname)) fs.mkdirSync(outputDirname, { recursive: true });
987
1073
  fs.writeFileSync(outputFile, output);
988
1074
  } else fs.rmSync(outputFile, { force: true });
989
- const serverOutput = emitGeneratedServerFile(serverOutputFile, functionsDir, hasRelationsExport, hasTriggersExport, hasMigrationsManifest);
1075
+ const serverOutput = emitGeneratedServerFile(serverOutputFile, functionsDir, hasRelationsExport, hasTriggersExport, triggersImportSource, hasMigrationsManifest);
990
1076
  const generatedOutputDirname = path.dirname(serverOutputFile);
991
1077
  if (!fs.existsSync(generatedOutputDirname)) fs.mkdirSync(generatedOutputDirname, { recursive: true });
992
1078
  fs.writeFileSync(serverOutputFile, serverOutput);
@@ -1,5 +1,5 @@
1
1
  import { i as pretendRequired, n as deprecated, r as pretend } from "../validators-BcQFm1oY.js";
2
- import { $ as DatabaseWithQuery, $n as BuildRelationResult, $r as notInArray, $t as defineRelationsPart, A as MigrationRunArgs, An as aggregateIndex, Ar as FieldReference, At as json, B as MigrationMigrateOne, Bn as ConvexUniqueConstraintBuilder, Br as gt, Bt as bigint, C as OrmBeforeResult, Cn as ConvexRankIndexBuilderOn, Cr as ReturningSelection, Ct as ConvexDateBuilderInitial, D as OrmTriggers, Dn as ConvexVectorIndexBuilder, Dr as unsetToken, Dt as ConvexCustomBuilderInitial, E as OrmTriggerContext, En as ConvexSearchIndexConfig, Er as VectorSearchProvider, Et as ConvexCustomBuilder, F as MigrationDirection, Fn as vectorIndex, Fr as between, Ft as ConvexBooleanBuilder, G as MigrationStep, Gn as unique, Gr as isNotNull, Gt as ManyConfig, H as MigrationRunStatus, Hn as ConvexUniqueConstraintConfig, Hr as ilike, Ht as CountBackfillKickoffArgs, I as MigrationDoc, In as ConvexCheckBuilder, Ir as contains, It as ConvexBooleanBuilderInitial, J as buildMigrationPlan, Jn as text, Jr as lt, Jt as RelationsBuilderColumnBase, K as MigrationTableName, Kn as ConvexTextBuilder, Kr as isNull, Kt as OneConfig, L as MigrationDocContext, Ln as ConvexCheckConfig, Lr as endsWith, Lt as boolean, M as MigrationStatusArgs, Mn as rankIndex, Mr as LogicalExpression, Mt as ConvexBytesBuilder, N as MigrationAppliedState, Nn as searchIndex, Nr as UnaryExpression, Nt as ConvexBytesBuilderInitial, O as defineTriggers, On as ConvexVectorIndexBuilderOn, Or as BinaryExpression, Ot as arrayOf, P as MigrationDefinition, Pn as uniqueIndex, Pr as and, Pt as bytes, Q as DatabaseWithMutations, Qn as BuildQueryResult, Qr as notBetween, Qt as defineRelations, R as MigrationDriftIssue, Rn as ConvexForeignKeyBuilder, Rr as eq, Rt as ConvexBigIntBuilder, S as scheduledDeleteFactory, Sn as ConvexRankIndexBuilder, Sr as ReturningResult, St as ConvexDateBuilder, T as OrmTriggerChange, Tn as ConvexSearchIndexBuilderOn, Tr as VectorQueryConfig, Tt as date, U as MigrationSet, Un as check, Ur as inArray, Ut as CountBackfillStatusArgs, V as MigrationPlan, Vn as ConvexUniqueConstraintBuilderOn, Vr as gte, Vt as CountBackfillChunkArgs, W as MigrationStateMap, Wn as foreignKey, Wr as isFieldReference, Wt as ExtractTablesWithRelations, X as defineMigrationSet, Xn as AggregateFieldValue, Xr as ne, Xt as TableRelationalConfig, Y as defineMigration, Yn as AggregateConfig, Yr as lte, Yt as RelationsBuilderColumnConfig, Z as detectMigrationDrift, Zn as AggregateResult, Zr as not, Zt as TablesRelationalConfig, _ as OrmWriterCtx, _i as IsPrimaryKey, _n as rlsRole, _r as OrderByClause, _t as ConvexNumberBuilderInitial, a as TableConfigResult, ai as OrmSchemaPluginTables, an as OrmLifecycleChange, ar as InferInsertModel, at as extractRelationsConfig, b as scheduledMutationBatchFactory, bn as ConvexIndexBuilder, br as PredicateWhereIndexConfig, bt as ConvexIdBuilderInitial, c as OrmNotFoundError, ci as AnyColumn, cn as convexTable, cr as InsertValue, ct as vector, d as GenericOrmCtx, di as ColumnBuilderRuntimeConfig, dn as RlsPolicy, dr as MutationExecutionMode, dt as ConvexTimestampMode, ei as or, en as ConvexDeletionBuilder, er as CountConfig, et as OrmReader, f as OrmApiResult, fi as ColumnBuilderTypeConfig, fn as RlsPolicyConfig, fr as MutationPaginateConfig, ft as timestamp, g as OrmReaderCtx, gi as HasDefault, gn as RlsRoleConfig, gr as MutationRunMode, gt as ConvexNumberBuilder, h as OrmFunctions, hi as DrizzleEntity, hn as RlsRole, hr as MutationReturning, ht as textEnum, i as desc, ii as OrmSchemaPlugin, in as DiscriminatorBuilderConfig, ir as GetColumnData, it as EdgeMetadata, j as MigrationRunChunkArgs, jn as index, jr as FilterExpression, jt as objectOf, k as MigrationCancelArgs, kn as ConvexVectorIndexConfig, kr as ExpressionVisitor, kt as custom, l as CreateOrmOptions, li as ColumnBuilder, ln as deletion, lr as MutationExecuteConfig, lt as ConvexTimestampBuilder, m as OrmClientWithApi, mi as ColumnDataType, mn as rlsPolicy, mr as MutationResult, mt as ConvexTextEnumBuilderInitial, n as defineSchema, ni as Brand, nn as ConvexTable, nr as DBQueryConfig, nt as RlsContext, o as getTableColumns, oi as TableName, on as OrmLifecycleOperation, or as InferModelFromColumns, ot as ConvexVectorBuilder, p as OrmClientBase, pi as ColumnBuilderWithTableName, pn as RlsPolicyToOption, pr as MutationPaginatedResult, pt as ConvexTextEnumBuilder, q as MigrationWriteMode, qn as ConvexTextBuilderInitial, qr as like, qt as RelationsBuilder, r as asc, ri as Columns, rr as FilterOperators, rt as RlsMode, s as getTableConfig, si as SystemFields, sn as TableConfig, sr as InferSelectModel, st as ConvexVectorBuilderInitial, t as WhereClauseResult, ti as startsWith, tn as ConvexDeletionConfig, tr as CountResult, tt as OrmWriter, u as GenericOrm, ui as ColumnBuilderBaseConfig, un as discriminator, ur as MutationExecuteResult, ut as ConvexTimestampBuilderInitial, v as createOrm, vi as IsUnique, vn as ConvexAggregateIndexBuilder, vr as OrderDirection, vt as integer, w as OrmTableTriggers, wn as ConvexSearchIndexBuilder, wr as UpdateSet, wt as ConvexDateMode, x as ScheduledDeleteArgs, xn as ConvexIndexBuilderOn, xr as ReturningAll, xt as id, y as ScheduledMutationBatchArgs, yi as NotNull, yn as ConvexAggregateIndexBuilderOn, yr as PaginatedResult, yt as ConvexIdBuilder, z as MigrationManifestEntry, zn as ConvexForeignKeyConfig, zr as fieldRef, zt as ConvexBigIntBuilderInitial } from "../where-clause-compiler-UavDdMUX.js";
2
+ import { $ as DatabaseWithQuery, $n as BuildRelationResult, $r as notInArray, $t as defineRelationsPart, A as MigrationRunArgs, An as aggregateIndex, Ar as FieldReference, At as json, B as MigrationMigrateOne, Bn as ConvexUniqueConstraintBuilder, Br as gt, Bt as bigint, C as OrmBeforeResult, Cn as ConvexRankIndexBuilderOn, Cr as ReturningSelection, Ct as ConvexDateBuilderInitial, D as OrmTriggers, Dn as ConvexVectorIndexBuilder, Dr as unsetToken, Dt as ConvexCustomBuilderInitial, E as OrmTriggerContext, En as ConvexSearchIndexConfig, Er as VectorSearchProvider, Et as ConvexCustomBuilder, F as MigrationDirection, Fn as vectorIndex, Fr as between, Ft as ConvexBooleanBuilder, G as MigrationStep, Gn as unique, Gr as isNotNull, Gt as ManyConfig, H as MigrationRunStatus, Hn as ConvexUniqueConstraintConfig, Hr as ilike, Ht as CountBackfillKickoffArgs, I as MigrationDoc, In as ConvexCheckBuilder, Ir as contains, It as ConvexBooleanBuilderInitial, J as buildMigrationPlan, Jn as text, Jr as lt, Jt as RelationsBuilderColumnBase, K as MigrationTableName, Kn as ConvexTextBuilder, Kr as isNull, Kt as OneConfig, L as MigrationDocContext, Ln as ConvexCheckConfig, Lr as endsWith, Lt as boolean, M as MigrationStatusArgs, Mn as rankIndex, Mr as LogicalExpression, Mt as ConvexBytesBuilder, N as MigrationAppliedState, Nn as searchIndex, Nr as UnaryExpression, Nt as ConvexBytesBuilderInitial, O as defineTriggers, On as ConvexVectorIndexBuilderOn, Or as BinaryExpression, Ot as arrayOf, P as MigrationDefinition, Pn as uniqueIndex, Pr as and, Pt as bytes, Q as DatabaseWithMutations, Qn as BuildQueryResult, Qr as notBetween, Qt as defineRelations, R as MigrationDriftIssue, Rn as ConvexForeignKeyBuilder, Rr as eq, Rt as ConvexBigIntBuilder, S as scheduledDeleteFactory, Sn as ConvexRankIndexBuilder, Sr as ReturningResult, St as ConvexDateBuilder, T as OrmTriggerChange, Tn as ConvexSearchIndexBuilderOn, Tr as VectorQueryConfig, Tt as date, U as MigrationSet, Un as check, Ur as inArray, Ut as CountBackfillStatusArgs, V as MigrationPlan, Vn as ConvexUniqueConstraintBuilderOn, Vr as gte, Vt as CountBackfillChunkArgs, W as MigrationStateMap, Wn as foreignKey, Wr as isFieldReference, Wt as ExtractTablesWithRelations, X as defineMigrationSet, Xn as AggregateFieldValue, Xr as ne, Xt as TableRelationalConfig, Y as defineMigration, Yn as AggregateConfig, Yr as lte, Yt as RelationsBuilderColumnConfig, Z as detectMigrationDrift, Zn as AggregateResult, Zr as not, Zt as TablesRelationalConfig, _ as OrmWriterCtx, _i as IsPrimaryKey, _n as rlsRole, _r as OrderByClause, _t as ConvexNumberBuilderInitial, a as TableConfigResult, ai as OrmSchemaPluginTables, an as OrmLifecycleChange, ar as InferInsertModel, at as extractRelationsConfig, b as scheduledMutationBatchFactory, bn as ConvexIndexBuilder, br as PredicateWhereIndexConfig, bt as ConvexIdBuilderInitial, c as OrmNotFoundError, ci as AnyColumn, cn as convexTable, cr as InsertValue, ct as vector, d as GenericOrmCtx, di as ColumnBuilderRuntimeConfig, dn as RlsPolicy, dr as MutationExecutionMode, dt as ConvexTimestampMode, ei as or, en as ConvexDeletionBuilder, er as CountConfig, et as OrmReader, f as OrmApiResult, fi as ColumnBuilderTypeConfig, fn as RlsPolicyConfig, fr as MutationPaginateConfig, ft as timestamp, g as OrmReaderCtx, gi as HasDefault, gn as RlsRoleConfig, gr as MutationRunMode, gt as ConvexNumberBuilder, h as OrmFunctions, hi as DrizzleEntity, hn as RlsRole, hr as MutationReturning, ht as textEnum, i as desc, ii as OrmSchemaPlugin, in as DiscriminatorBuilderConfig, ir as GetColumnData, it as EdgeMetadata, j as MigrationRunChunkArgs, jn as index, jr as FilterExpression, jt as objectOf, k as MigrationCancelArgs, kn as ConvexVectorIndexConfig, kr as ExpressionVisitor, kt as custom, l as CreateOrmOptions, li as ColumnBuilder, ln as deletion, lr as MutationExecuteConfig, lt as ConvexTimestampBuilder, m as OrmClientWithApi, mi as ColumnDataType, mn as rlsPolicy, mr as MutationResult, mt as ConvexTextEnumBuilderInitial, n as defineSchema, ni as Brand, nn as ConvexTable, nr as DBQueryConfig, nt as RlsContext, o as getTableColumns, oi as TableName, on as OrmLifecycleOperation, or as InferModelFromColumns, ot as ConvexVectorBuilder, p as OrmClientBase, pi as ColumnBuilderWithTableName, pn as RlsPolicyToOption, pr as MutationPaginatedResult, pt as ConvexTextEnumBuilder, q as MigrationWriteMode, qn as ConvexTextBuilderInitial, qr as like, qt as RelationsBuilder, r as asc, ri as Columns, rr as FilterOperators, rt as RlsMode, s as getTableConfig, si as SystemFields, sn as TableConfig, sr as InferSelectModel, st as ConvexVectorBuilderInitial, t as WhereClauseResult, ti as startsWith, tn as ConvexDeletionConfig, tr as CountResult, tt as OrmWriter, u as GenericOrm, ui as ColumnBuilderBaseConfig, un as discriminator, ur as MutationExecuteResult, ut as ConvexTimestampBuilderInitial, v as createOrm, vi as IsUnique, vn as ConvexAggregateIndexBuilder, vr as OrderDirection, vt as integer, w as OrmTableTriggers, wn as ConvexSearchIndexBuilder, wr as UpdateSet, wt as ConvexDateMode, x as ScheduledDeleteArgs, xn as ConvexIndexBuilderOn, xr as ReturningAll, xt as id, y as ScheduledMutationBatchArgs, yi as NotNull, yn as ConvexAggregateIndexBuilderOn, yr as PaginatedResult, yt as ConvexIdBuilder, z as MigrationManifestEntry, zn as ConvexForeignKeyConfig, zr as fieldRef, zt as ConvexBigIntBuilderInitial } from "../where-clause-compiler-BCECnxsG.js";
3
3
  import { a as QueryCtxWithPreferredOrmQueryTable, i as QueryCtxWithOrmQueryTable, n as LookupByIdResultByCtx, o as getByIdWithOrmQueryFallback, r as QueryCtxWithOptionalOrmQueryTable, t as DocByCtx } from "../query-context-ji7By8u0.js";
4
4
  import { DefineSchemaOptions, GenericSchema, SchemaDefinition } from "convex/server";
5
5
  export { type AggregateConfig, type AggregateFieldValue, type AggregateResult, type AnyColumn, type BinaryExpression, Brand, type BuildQueryResult, type BuildRelationResult, type ColumnBuilder, type ColumnBuilderBaseConfig, type ColumnBuilderRuntimeConfig, type ColumnBuilderTypeConfig, type ColumnBuilderWithTableName, type ColumnDataType, Columns, type ConvexAggregateIndexBuilder, type ConvexAggregateIndexBuilderOn, type ConvexBigIntBuilder, type ConvexBigIntBuilderInitial, type ConvexBooleanBuilder, type ConvexBooleanBuilderInitial, type ConvexBytesBuilder, type ConvexBytesBuilderInitial, type ConvexCheckBuilder, type ConvexCheckConfig, type ConvexCustomBuilder, type ConvexCustomBuilderInitial, type ConvexDateBuilder, type ConvexDateBuilderInitial, type ConvexDateMode, type ConvexDeletionBuilder, type ConvexDeletionConfig, type ConvexForeignKeyBuilder, type ConvexForeignKeyConfig, type ConvexIdBuilder, type ConvexIdBuilderInitial, type ConvexIndexBuilder, type ConvexIndexBuilderOn, type ConvexNumberBuilder, type ConvexNumberBuilderInitial, type ConvexRankIndexBuilder, type ConvexRankIndexBuilderOn, type ConvexSearchIndexBuilder, type ConvexSearchIndexBuilderOn, type ConvexSearchIndexConfig, type ConvexTable, type ConvexTextBuilder, type ConvexTextBuilderInitial, type ConvexTextEnumBuilder, type ConvexTextEnumBuilderInitial, type ConvexTimestampBuilder, type ConvexTimestampBuilderInitial, type ConvexTimestampMode, type ConvexUniqueConstraintBuilder, type ConvexUniqueConstraintBuilderOn, type ConvexUniqueConstraintConfig, type ConvexVectorBuilder, type ConvexVectorBuilderInitial, type ConvexVectorIndexBuilder, type ConvexVectorIndexBuilderOn, type ConvexVectorIndexConfig, type CountBackfillChunkArgs, type CountBackfillKickoffArgs, type CountBackfillStatusArgs, type CountConfig, type CountResult, type CreateOrmOptions, type DBQueryConfig, type DatabaseWithMutations, type DatabaseWithQuery, type DefineSchemaOptions, type DiscriminatorBuilderConfig, type DocByCtx, type DrizzleEntity, type EdgeMetadata, type ExpressionVisitor, type ExtractTablesWithRelations, type FieldReference, type FilterExpression, type FilterOperators, type GenericOrm, type GenericOrmCtx, type GenericSchema, type GetColumnData, type HasDefault, type InferInsertModel, type InferModelFromColumns, type InferSelectModel, type InsertValue, type IsPrimaryKey, type IsUnique, type LogicalExpression, type LookupByIdResultByCtx, type ManyConfig, type MigrationAppliedState, type MigrationCancelArgs, type MigrationDefinition, type MigrationDirection, type MigrationDoc, type MigrationDocContext, type MigrationDriftIssue, type MigrationManifestEntry, type MigrationMigrateOne, type MigrationPlan, type MigrationRunArgs, type MigrationRunChunkArgs, type MigrationRunStatus, type MigrationSet, type MigrationStateMap, type MigrationStatusArgs, type MigrationStep, type MigrationTableName, type MigrationWriteMode, type MutationExecuteConfig, type MutationExecuteResult, type MutationExecutionMode, type MutationPaginateConfig, type MutationPaginatedResult, type MutationResult, type MutationReturning, type MutationRunMode, type NotNull, type OneConfig, type OrderByClause, type OrderDirection, type OrmApiResult, type OrmBeforeResult, type OrmClientBase, type OrmClientWithApi, type OrmFunctions, type OrmLifecycleChange, type OrmLifecycleOperation, OrmNotFoundError, type OrmReader, type OrmReaderCtx, type OrmSchemaPlugin, OrmSchemaPluginTables, type OrmTableTriggers, type OrmTriggerChange, type OrmTriggerContext, type OrmTriggers, type OrmWriter, type OrmWriterCtx, type PaginatedResult, type PredicateWhereIndexConfig, type QueryCtxWithOptionalOrmQueryTable, type QueryCtxWithOrmQueryTable, type QueryCtxWithPreferredOrmQueryTable, type RelationsBuilder, type RelationsBuilderColumnBase, type RelationsBuilderColumnConfig, type ReturningAll, type ReturningResult, type ReturningSelection, type RlsContext, type RlsMode, RlsPolicy, type RlsPolicyConfig, type RlsPolicyToOption, RlsRole, type RlsRoleConfig, type ScheduledDeleteArgs, type ScheduledMutationBatchArgs, type SchemaDefinition, type SystemFields, type TableConfig, type TableConfigResult, TableName, type TableRelationalConfig, type TablesRelationalConfig, type UnaryExpression, type UpdateSet, type VectorQueryConfig, type VectorSearchProvider, type WhereClauseResult, aggregateIndex, and, arrayOf, asc, between, bigint, boolean, buildMigrationPlan, bytes, check, contains, convexTable, createOrm, custom, date, defineMigration, defineMigrationSet, defineRelations, defineRelationsPart, defineSchema, defineTriggers, deletion, deprecated, desc, detectMigrationDrift, discriminator, endsWith, eq, extractRelationsConfig, fieldRef, foreignKey, getByIdWithOrmQueryFallback, getTableColumns, getTableConfig, gt, gte, id, ilike, inArray, index, integer, isFieldReference, isNotNull, isNull, json, like, lt, lte, ne, not, notBetween, notInArray, objectOf, or, pretend, pretendRequired, rankIndex, rlsPolicy, rlsRole, scheduledDeleteFactory, scheduledMutationBatchFactory, searchIndex, startsWith, text, textEnum, timestamp, unique, uniqueIndex, unsetToken, vector, vectorIndex };
@@ -1,4 +1,4 @@
1
- import { ii as OrmSchemaPlugin } from "../where-clause-compiler-UavDdMUX.js";
1
+ import { ii as OrmSchemaPlugin } from "../where-clause-compiler-BCECnxsG.js";
2
2
 
3
3
  //#region src/orm/migrations/schema.d.ts
4
4
  declare function migrationPlugin(): OrmSchemaPlugin;
@@ -1,4 +1,4 @@
1
- import { ii as OrmSchemaPlugin } from "../../where-clause-compiler-UavDdMUX.js";
1
+ import { ii as OrmSchemaPlugin } from "../../where-clause-compiler-BCECnxsG.js";
2
2
  import * as convex_server0 from "convex/server";
3
3
 
4
4
  //#region src/plugins/ratelimit/duration.d.ts
package/dist/watcher.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as getConvexConfig, t as generateMeta } from "./codegen-CMQIKrqh.mjs";
2
+ import { n as getConvexConfig, t as generateMeta } from "./codegen-69-_7r9o.mjs";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
 
@@ -3428,7 +3428,7 @@ type TriggerTableName<TSchema extends TablesRelationalConfig> = { [K in KnownKey
3428
3428
  type TriggerDoc<TSchema extends TablesRelationalConfig, TTableName extends TriggerTableName<TSchema>> = TSchema[TTableName] extends TableRelationalConfig ? InferSelectModel<TSchema[TTableName]['table']> : never;
3429
3429
  type TriggerInsertData<TSchema extends TablesRelationalConfig, TTableName extends TriggerTableName<TSchema>> = TSchema[TTableName] extends TableRelationalConfig ? InferInsertModel<TSchema[TTableName]['table']> : never;
3430
3430
  type TriggerUpdateData<TSchema extends TablesRelationalConfig, TTableName extends TriggerTableName<TSchema>> = Partial<TriggerInsertData<TSchema, TTableName>>;
3431
- type OrmTriggerContext<TSchema extends TablesRelationalConfig, TExtraCtx extends Record<string, unknown> = {}> = Omit<TExtraCtx, 'db' | 'innerDb' | 'orm'> & {
3431
+ type OrmTriggerContext<TSchema extends TablesRelationalConfig, TExtraCtx extends object = {}> = Omit<TExtraCtx, 'db' | 'innerDb' | 'orm'> & {
3432
3432
  db: GenericDatabaseWriter<any>;
3433
3433
  innerDb: GenericDatabaseWriter<any>;
3434
3434
  orm: OrmWriter<TSchema>;
@@ -3442,13 +3442,13 @@ type OrmTriggerChange<TDoc = AnyRecord, TId = TriggerChangeId<TDoc>> = OrmLifecy
3442
3442
  type OrmBeforeResult<TData extends AnyRecord> = void | false | {
3443
3443
  data: Partial<TData>;
3444
3444
  };
3445
- type OrmBeforeHook<TData extends AnyRecord, TCtx extends Record<string, unknown>> = (data: TData, ctx: TCtx) => MaybePromise<OrmBeforeResult<TData>>;
3446
- type OrmAfterHook<TDoc extends AnyRecord, TCtx extends Record<string, unknown>> = (doc: TDoc, ctx: TCtx) => MaybePromise<void>;
3447
- type OrmChangeHook<TDoc extends AnyRecord, TCtx extends Record<string, unknown>> = ((change: OrmTriggerChange<TDoc>, ctx: TCtx) => MaybePromise<void>) | {
3445
+ type OrmBeforeHook<TData extends AnyRecord, TCtx extends object> = (data: TData, ctx: TCtx) => MaybePromise<OrmBeforeResult<TData>>;
3446
+ type OrmAfterHook<TDoc extends AnyRecord, TCtx extends object> = (doc: TDoc, ctx: TCtx) => MaybePromise<void>;
3447
+ type OrmChangeHook<TDoc extends AnyRecord, TCtx extends object> = ((change: OrmTriggerChange<TDoc>, ctx: TCtx) => MaybePromise<void>) | {
3448
3448
  (): unknown;
3449
3449
  (change: OrmTriggerChange<TDoc>, ctx: TCtx): MaybePromise<void>;
3450
3450
  };
3451
- type OrmTableTriggers<TDoc extends AnyRecord, TInsert extends AnyRecord, TUpdate extends AnyRecord, TCtx extends Record<string, unknown>> = {
3451
+ type OrmTableTriggers<TDoc extends AnyRecord, TInsert extends AnyRecord, TUpdate extends AnyRecord, TCtx extends object> = {
3452
3452
  create?: {
3453
3453
  before?: OrmBeforeHook<TInsert, TCtx>;
3454
3454
  after?: OrmAfterHook<TDoc, TCtx>;
@@ -3463,9 +3463,9 @@ type OrmTableTriggers<TDoc extends AnyRecord, TInsert extends AnyRecord, TUpdate
3463
3463
  };
3464
3464
  change?: OrmChangeHook<TDoc, TCtx>;
3465
3465
  };
3466
- type OrmTriggers<TSchema extends TablesRelationalConfig, TExtraCtx extends Record<string, unknown> = {}> = { [TTableName in TriggerTableName<TSchema>]?: OrmTableTriggers<TriggerDoc<TSchema, TTableName>, TriggerInsertData<TSchema, TTableName>, TriggerUpdateData<TSchema, TTableName>, OrmTriggerContext<TSchema, TExtraCtx>> };
3466
+ type OrmTriggers<TSchema extends TablesRelationalConfig, TExtraCtx extends object = {}> = { [TTableName in TriggerTableName<TSchema>]?: OrmTableTriggers<TriggerDoc<TSchema, TTableName>, TriggerInsertData<TSchema, TTableName>, TriggerUpdateData<TSchema, TTableName>, OrmTriggerContext<TSchema, TExtraCtx>> };
3467
3467
  declare function defineTriggers<TSchema extends TablesRelationalConfig>(schema: TSchema, triggers: OrmTriggers<TSchema>): OrmTriggers<TSchema>;
3468
- declare function defineTriggers<TSchema extends TablesRelationalConfig, TExtraCtx extends Record<string, unknown>>(schema: TSchema, triggers: OrmTriggers<TSchema, TExtraCtx>): OrmTriggers<TSchema, TExtraCtx>;
3468
+ declare function defineTriggers<TSchema extends TablesRelationalConfig, TExtraCtx extends object>(schema: TSchema, triggers: OrmTriggers<TSchema, TExtraCtx>): OrmTriggers<TSchema, TExtraCtx>;
3469
3469
  //#endregion
3470
3470
  //#region src/orm/scheduled-delete.d.ts
3471
3471
  type ScheduledDeleteArgs = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-convex",
3
- "version": "0.10.1",
3
+ "version": "0.10.3",
4
4
  "description": "Better Convex - React Query integration and CLI tools for Convex",
5
5
  "keywords": [
6
6
  "convex",