kitcn 0.27.5 → 0.28.1

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/orm/index.js CHANGED
@@ -4,7 +4,7 @@ import { a as pretendRequired, i as pretend, n as deprecated } from "../validato
4
4
  import { t as id } from "../id-CuSfWa5q.js";
5
5
  import { A as or, C as matchLikePattern, D as notIlike, E as notBetween, O as notInArray, S as lte, T as not, _ as isFieldReference, a as between, b as like, c as endsWith, d as filterValueInList, f as filterValuesEqual, g as inArray, h as ilike, i as arrayOverlaps, j as startsWith, k as notLike, l as eq, m as gte, n as arrayContained, o as column, p as gt, r as arrayContains, s as contains, t as and, u as fieldRef, v as isNotNull, w as ne, x as lt, y as isNull } from "../filter-expression-Dydt8wS0.js";
6
6
  import { a as indexKeyWithinBounds, c as streamIndexRange, i as getIndexFields, l as isUnsetToken, n as EmptyStream, o as mergedStream, r as QueryStream, s as stream, t as getByIdWithOrmQueryFallback, u as unsetToken } from "../query-context-DOm5Xm3H.js";
7
- import { $ as resolveOrmRuntimeDefaults, A as enforceUniqueIndexes, B as getMutationAsyncDelayMs, C as collectPrimaryIdLookupRows, Ct as CREATED_AT_MIGRATION_MESSAGE, D as enforceCheckConstraints, E as encodeUndefinedDeep, Et as usesSystemCreatedAtAlias, F as evaluateFilter, G as getTableDeleteConfig, H as getMutationExecutionMode, I as extractPrimaryIdLookup, J as hardDeleteRow, K as getTableName, L as getChecks, M as ensureNonNullValues, N as ensureNullableColumns, O as enforceForeignKeys, P as evaluateCheckConstraintTriState, Q as patchReferencingRows, R as getColumnName$1, S as collectMutationRowsBounded, St as resolveIndexOrderPushdown, T as deserializeFilterExpression, Tt as PUBLIC_CREATED_AT_FIELD, U as getOrmContext, V as getMutationCollectionLimits, W as getTableColumns$2, X as normalizeDateFieldsForWrite, Y as hydrateDateFieldsForRead, Z as normalizeTemporalComparableValue, _ as applyDefaults, _t as findSearchIndexByName, at as stripUnsetFields, b as buildForeignKeyGraph, bt as getIndexes, c as getAggregateIndexDefinitions, ct as unsetFieldsOf, d as COUNT_ERROR, dt as compileConvexFilter, et as returningSelectionReadsCreationTime, f as createAggregateError, ft as convexAnd, g as ensureCountAllowedForRls, gt as findRelationIndex, h as ensureAggregateAllowedForRls, ht as findIndexForColumns, it as splitReturningSelection, j as ensureDefaultColumns, k as enforcePolymorphicWrite, l as getRankIndexDefinitions, lt as hasLifecycleHooks, mt as mapWithConcurrency, nt as serializeFilterExpression, o as aggregateExtension, ot as takeRowsWithinByteBudget, p as createCountError, pt as isConvexEnforceableFilter, q as getUniqueIndexes, rt as softDeleteRow, st as toConvexFilter, tt as selectReturningRowWithHydration, u as AGGREGATE_ERROR, ut as markLifecycleHookedTables, v as applyIncomingForeignKeyActionsOnDelete, vt as findVectorIndexByName, w as decodeUndefinedDeep, wt as INTERNAL_CREATION_TIME_FIELD, x as canUsePrimaryIdLookupCursor, xt as getRankIndexes, y as applyIncomingForeignKeyActionsOnUpdate, yt as getAggregateIndexes, z as getForeignKeys } from "../schema-D95Z3Kss.js";
7
+ import { $ as patchReferencingRows, A as enforcePolymorphicWrite, B as getForeignKeys, C as collectPrimaryIdLookupRows, Ct as resolveIndexOrderPushdown, D as encodeUndefinedDeep, Dt as usesSystemCreatedAtAlias, E as deserializeFilterExpression, Et as PUBLIC_CREATED_AT_FIELD, F as evaluateCheckConstraintTriState, G as getTableColumns$2, H as getMutationCollectionLimits, I as evaluateFilter, J as getUniqueIndexes, K as getTableDeleteConfig, L as extractPrimaryIdLookup, M as ensureDefaultColumns, N as ensureNonNullValues, O as enforceCheckConstraints, P as ensureNullableColumns, Q as normalizeTemporalComparableValue, R as getChecks, S as collectMutationRowsBounded, St as getRankIndexes, T as decodeUndefinedDeep, Tt as INTERNAL_CREATION_TIME_FIELD, U as getMutationExecutionMode, V as getMutationAsyncDelayMs, W as getOrmContext, X as hydrateDateFieldsForRead, Y as hardDeleteRow, Z as normalizeDateFieldsForWrite, _ as applyDefaults, _t as findRelationIndex, at as splitReturningSelection, b as buildForeignKeyGraph, bt as getAggregateIndexes, c as getAggregateIndexDefinitions, ct as toConvexFilter, d as COUNT_ERROR, dt as markLifecycleHookedTables, et as resolveOrmRuntimeDefaults, f as createAggregateError, ft as compileConvexFilter, g as ensureCountAllowedForRls, gt as findIndexForColumns, h as ensureAggregateAllowedForRls, ht as mapWithConcurrency, it as softDeleteRow, j as enforceUniqueIndexes, k as enforceForeignKeys, l as getRankIndexDefinitions, lt as unsetFieldsOf, mt as isConvexEnforceableFilter, nt as selectReturningRowWithHydration, o as aggregateExtension, ot as stripUnsetFields, p as createCountError, pt as convexAnd, q as getTableName, rt as serializeFilterExpression, st as takeRowsWithinByteBudget, tt as returningSelectionReadsCreationTime, u as AGGREGATE_ERROR, ut as hasLifecycleHooks, v as applyIncomingForeignKeyActionsOnDelete, vt as findSearchIndexByName, w as createForeignKeyProbeMemo, wt as CREATED_AT_MIGRATION_MESSAGE, x as canUsePrimaryIdLookupCursor, xt as getIndexes, y as applyIncomingForeignKeyActionsOnUpdate, yt as findVectorIndexByName, z as getColumnName$1 } from "../schema-CzdjX7nx.js";
8
8
  import { t as defineSchemaExtension } from "../extensions-Blzsyekm.js";
9
9
  import { compareValues, convexToJson, jsonToConvex, v } from "convex/values";
10
10
  import { defineSchema as defineSchema$1, internalActionGeneric, internalMutationGeneric } from "convex/server";
@@ -1543,6 +1543,22 @@ var GelRelationalQuery = class GelRelationalQuery extends QueryPromise {
1543
1543
  * hands it to the next run rather than re-probing.
1544
1544
  */
1545
1545
  _aggregateIndexReadinessByKey = /* @__PURE__ */ new Map();
1546
+ /**
1547
+ * Documents resolved by id during one execution, keyed on the normalized id.
1548
+ *
1549
+ * A relation `where` never compiles into the index plan, so it runs as a
1550
+ * post-fetch membership predicate over a residual stream — one row at a time.
1551
+ * Every de-duplication map inside the relation loaders is scoped to the batch
1552
+ * it is handed, and a batch of one makes all of them no-ops, so a page whose
1553
+ * rows share two parents re-read those two documents once per scanned row.
1554
+ *
1555
+ * Scoped to one execution, like `_rlsPolicyResolution`: `_executionClaimed`
1556
+ * diverts later executions to a fresh instance, and an execution reads
1557
+ * without writing, so a hit is always the document the caller would have read
1558
+ * for itself. It must not be handed to the next run by `_forExecution` — an
1559
+ * intervening write would make it stale.
1560
+ */
1561
+ _documentByNormalizedId = /* @__PURE__ */ new Map();
1546
1562
  constructor(schema, tableConfig, edgeMetadata, db, config, mode, _allEdges, rls, relationLoading, vectorSearchProvider, configuredIndex, countIndexReadiness) {
1547
1563
  super();
1548
1564
  this.schema = schema;
@@ -4428,7 +4444,15 @@ var GelRelationalQuery = class GelRelationalQuery extends QueryPromise {
4428
4444
  async _getById(tableName, id) {
4429
4445
  if (id === null || id === void 0) return null;
4430
4446
  const normalizedId = this.db.normalizeId(tableName, id);
4431
- return normalizedId === null ? null : await this.db.get(normalizedId);
4447
+ if (normalizedId === null) return null;
4448
+ const existing = this._documentByNormalizedId.get(normalizedId);
4449
+ if (existing) return await existing;
4450
+ const pending = Promise.resolve(this.db.get(normalizedId)).catch((error) => {
4451
+ this._documentByNormalizedId.delete(normalizedId);
4452
+ throw error;
4453
+ });
4454
+ this._documentByNormalizedId.set(normalizedId, pending);
4455
+ return await pending;
4432
4456
  }
4433
4457
  _getRelationConcurrency() {
4434
4458
  const value = this.relationLoading?.concurrency;
@@ -5552,6 +5576,8 @@ var ConvexInsertBuilder = class extends QueryPromise {
5552
5576
  const ormContext = getOrmContext(this.db);
5553
5577
  const tableName = getTableName(this.table);
5554
5578
  const returningSelection = this.returningFields && this.returningFields !== true ? splitReturningSelection(this.returningFields) : void 0;
5579
+ const statementTableName = getTableName(this.table);
5580
+ const probedForeignIds = hasLifecycleHooks(this.db, statementTableName) ? void 0 : createForeignKeyProbeMemo();
5555
5581
  const derivedRowSatisfiesCount = returningSelection?.countSelection === void 0 || !countedEdgesReadCreationTime(ormContext?.edgeMetadata, tableName) && !isRlsEnabled(this.table);
5556
5582
  const canDerivePostImage = returningSelection !== void 0 && !hasLifecycleHooks(this.db, tableName) && !returningSelectionReadsCreationTime(returningSelection.columnSelection) && derivedRowSatisfiesCount;
5557
5583
  const results = [];
@@ -5566,14 +5592,17 @@ var ConvexInsertBuilder = class extends QueryPromise {
5566
5592
  row: preparedValue,
5567
5593
  rls
5568
5594
  })) throw new Error(`RLS policy violation for insert on table "${tableName}"`);
5569
- const conflictResult = await this.handleConflict(preparedValue, rlsResolution);
5595
+ const conflictResult = await this.handleConflict(preparedValue, rlsResolution, probedForeignIds);
5570
5596
  if (conflictResult?.status === "skip") continue;
5571
5597
  if (conflictResult?.status === "updated") {
5572
5598
  if (conflictResult.row && this.returningFields) results.push(await this.resolveReturningRow(conflictResult.row, returningSelection, ormContext));
5573
5599
  continue;
5574
5600
  }
5575
5601
  enforceCheckConstraints(this.table, preparedValue);
5576
- await enforceForeignKeys(this.db, this.table, preparedValue, { changedFields: new Set(Object.keys(preparedValue)) });
5602
+ await enforceForeignKeys(this.db, this.table, preparedValue, {
5603
+ changedFields: new Set(Object.keys(preparedValue)),
5604
+ probed: probedForeignIds
5605
+ });
5577
5606
  await enforceUniqueIndexes(this.db, this.table, preparedValue, { changedFields: new Set(Object.keys(preparedValue)) });
5578
5607
  const id = await this.db.insert(tableName, preparedValue);
5579
5608
  if (!this.returningFields) continue;
@@ -5592,7 +5621,7 @@ var ConvexInsertBuilder = class extends QueryPromise {
5592
5621
  if (returningSelection?.countSelection) selected._count = await this._loadReturningCount(row, returningSelection.countSelection, ormContext);
5593
5622
  return selected;
5594
5623
  }
5595
- async handleConflict(value, rlsResolution) {
5624
+ async handleConflict(value, rlsResolution, probedForeignIds) {
5596
5625
  if (!this.conflictConfig) return;
5597
5626
  const { action, config } = this.conflictConfig;
5598
5627
  const targetColumns = Array.isArray(config.target) ? config.target : config.target ? [config.target] : [];
@@ -5660,7 +5689,10 @@ var ConvexInsertBuilder = class extends QueryPromise {
5660
5689
  };
5661
5690
  enforceCheckConstraints(this.table, candidate);
5662
5691
  return candidate;
5663
- })(), { changedFields: new Set(Object.keys(writeSet)) });
5692
+ })(), {
5693
+ changedFields: new Set(Object.keys(writeSet)),
5694
+ probed: probedForeignIds
5695
+ });
5664
5696
  await enforceUniqueIndexes(this.db, this.table, {
5665
5697
  ...existing,
5666
5698
  ...writeSet
@@ -1,3 +1,3 @@
1
- import { C as MigrationTableName, D as defineMigrationSet, E as defineMigration, O as detectMigrationDrift, S as MigrationStep, T as buildMigrationPlan, _ as MigrationMigrateOne, a as MigrationCancelArgs, b as MigrationSet, c as MigrationStatusArgs, d as MigrationDefinition, f as MigrationDirection, g as MigrationManifestEntry, h as MigrationDriftIssue, l as createMigrationHandlers, m as MigrationDocContext, o as MigrationRunArgs, p as MigrationDoc, s as MigrationRunChunkArgs, u as MigrationAppliedState, v as MigrationPlan, w as MigrationWriteMode, x as MigrationStateMap, y as MigrationRunStatus } from "../../capabilities-DkfnnNp7.js";
2
- import { Ct as migrationCapability, dt as MIGRATION_STORAGE_TABLE_NAMES, ft as injectMigrationStorageTables, lt as MIGRATION_RUN_TABLE, mt as migrationStorageTables, pt as migrationExtension, ut as MIGRATION_STATE_TABLE } from "../../where-clause-compiler-DuC8Nr7e.js";
1
+ import { C as MigrationTableName, D as defineMigrationSet, E as defineMigration, O as detectMigrationDrift, S as MigrationStep, T as buildMigrationPlan, _ as MigrationMigrateOne, a as MigrationCancelArgs, b as MigrationSet, c as MigrationStatusArgs, d as MigrationDefinition, f as MigrationDirection, g as MigrationManifestEntry, h as MigrationDriftIssue, l as createMigrationHandlers, m as MigrationDocContext, o as MigrationRunArgs, p as MigrationDoc, s as MigrationRunChunkArgs, u as MigrationAppliedState, v as MigrationPlan, w as MigrationWriteMode, x as MigrationStateMap, y as MigrationRunStatus } from "../../capabilities-BAiI8avr.js";
2
+ import { Ct as migrationCapability, dt as MIGRATION_STORAGE_TABLE_NAMES, ft as injectMigrationStorageTables, lt as MIGRATION_RUN_TABLE, mt as migrationStorageTables, pt as migrationExtension, ut as MIGRATION_STATE_TABLE } from "../../where-clause-compiler-DdAw9rNV.js";
3
3
  export { MIGRATION_RUN_TABLE, MIGRATION_STATE_TABLE, MIGRATION_STORAGE_TABLE_NAMES, 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, buildMigrationPlan, createMigrationHandlers, defineMigration, defineMigrationSet, detectMigrationDrift, injectMigrationStorageTables, migrationCapability, migrationExtension, migrationStorageTables };
@@ -852,18 +852,22 @@ async function enforceUniqueIndexes(db, table, candidate, options) {
852
852
  if (existing !== null && (options?.currentId === void 0 || existing._id !== options.currentId)) throw new Error(`Unique index '${index.name}' violation on '${tableName}'.`);
853
853
  }
854
854
  }
855
+ const createForeignKeyProbeMemo = () => /* @__PURE__ */ new Set();
855
856
  async function enforceForeignKeys(db, table, candidate, options) {
856
857
  const foreignKeys = getForeignKeys(table);
857
858
  if (foreignKeys.length === 0) return;
858
859
  const tableName = getTableName(table);
859
860
  const changedFields = options?.changedFields;
861
+ const probed = options?.probed;
860
862
  for (const foreignKey of foreignKeys) {
861
863
  if (changedFields && !foreignKey.columns.some((field) => changedFields.has(field))) continue;
862
864
  const entries = foreignKey.columns.map((field) => [field, candidate[field]]);
863
865
  if (entries.some(([, value]) => value === void 0 || value === null)) continue;
864
866
  if (foreignKey.foreignColumns.length === 1 && foreignKey.foreignColumns[0] === "_id") {
865
867
  const foreignId = entries[0]?.[1];
868
+ if (probed?.has(foreignId)) continue;
866
869
  if (!await db.get(foreignId)) throw new Error(`Foreign key violation on '${tableName}': missing document in '${foreignKey.foreignTableName}'.`);
870
+ probed?.add(foreignId);
867
871
  continue;
868
872
  }
869
873
  if (!foreignKey.foreignTable) throw new Error(`Foreign key on '${tableName}' requires indexed foreign columns on '${foreignKey.foreignTableName}'.`);
@@ -1522,4 +1526,4 @@ function aggregateExtension() {
1522
1526
  }
1523
1527
 
1524
1528
  //#endregion
1525
- export { resolveOrmRuntimeDefaults as $, enforceUniqueIndexes as A, getMutationAsyncDelayMs as B, collectPrimaryIdLookupRows as C, CREATED_AT_MIGRATION_MESSAGE as Ct, enforceCheckConstraints as D, encodeUndefinedDeep as E, usesSystemCreatedAtAlias as Et, evaluateFilter as F, getTableDeleteConfig as G, getMutationExecutionMode as H, extractPrimaryIdLookup as I, hardDeleteRow as J, getTableName as K, getChecks as L, ensureNonNullValues as M, ensureNullableColumns as N, enforceForeignKeys as O, evaluateCheckConstraintTriState as P, patchReferencingRows as Q, getColumnName as R, collectMutationRowsBounded as S, resolveIndexOrderPushdown as St, deserializeFilterExpression as T, PUBLIC_CREATED_AT_FIELD as Tt, getOrmContext as U, getMutationCollectionLimits as V, getTableColumns as W, normalizeDateFieldsForWrite as X, hydrateDateFieldsForRead as Y, normalizeTemporalComparableValue as Z, applyDefaults as _, findSearchIndexByName as _t, AGGREGATE_STATE_TABLE as a, stripUnsetFields as at, buildForeignKeyGraph as b, getIndexes as bt, getAggregateIndexDefinitions as c, unsetFieldsOf as ct, COUNT_ERROR as d, compileConvexFilter as dt, returningSelectionReadsCreationTime as et, createAggregateError as f, convexAnd as ft, ensureCountAllowedForRls as g, findRelationIndex as gt, ensureAggregateAllowedForRls as h, findIndexForColumns as ht, AGGREGATE_RANK_TREE_TABLE as i, splitReturningSelection as it, ensureDefaultColumns as j, enforcePolymorphicWrite as k, getRankIndexDefinitions as l, hasLifecycleHooks as lt, createError as m, mapWithConcurrency as mt, AGGREGATE_EXTREMA_TABLE as n, serializeFilterExpression as nt, aggregateExtension as o, takeRowsWithinByteBudget as ot, createCountError as p, isConvexEnforceableFilter as pt, getUniqueIndexes as q, AGGREGATE_MEMBER_TABLE as r, softDeleteRow as rt, rankAggregateName as s, toConvexFilter as st, AGGREGATE_BUCKET_TABLE as t, selectReturningRowWithHydration as tt, AGGREGATE_ERROR as u, markLifecycleHookedTables as ut, applyIncomingForeignKeyActionsOnDelete as v, findVectorIndexByName as vt, decodeUndefinedDeep as w, INTERNAL_CREATION_TIME_FIELD as wt, canUsePrimaryIdLookupCursor as x, getRankIndexes as xt, applyIncomingForeignKeyActionsOnUpdate as y, getAggregateIndexes as yt, getForeignKeys as z };
1529
+ export { patchReferencingRows as $, enforcePolymorphicWrite as A, getForeignKeys as B, collectPrimaryIdLookupRows as C, resolveIndexOrderPushdown as Ct, encodeUndefinedDeep as D, usesSystemCreatedAtAlias as Dt, deserializeFilterExpression as E, PUBLIC_CREATED_AT_FIELD as Et, evaluateCheckConstraintTriState as F, getTableColumns as G, getMutationCollectionLimits as H, evaluateFilter as I, getUniqueIndexes as J, getTableDeleteConfig as K, extractPrimaryIdLookup as L, ensureDefaultColumns as M, ensureNonNullValues as N, enforceCheckConstraints as O, ensureNullableColumns as P, normalizeTemporalComparableValue as Q, getChecks as R, collectMutationRowsBounded as S, getRankIndexes as St, decodeUndefinedDeep as T, INTERNAL_CREATION_TIME_FIELD as Tt, getMutationExecutionMode as U, getMutationAsyncDelayMs as V, getOrmContext as W, hydrateDateFieldsForRead as X, hardDeleteRow as Y, normalizeDateFieldsForWrite as Z, applyDefaults as _, findRelationIndex as _t, AGGREGATE_STATE_TABLE as a, splitReturningSelection as at, buildForeignKeyGraph as b, getAggregateIndexes as bt, getAggregateIndexDefinitions as c, toConvexFilter as ct, COUNT_ERROR as d, markLifecycleHookedTables as dt, resolveOrmRuntimeDefaults as et, createAggregateError as f, compileConvexFilter as ft, ensureCountAllowedForRls as g, findIndexForColumns as gt, ensureAggregateAllowedForRls as h, mapWithConcurrency as ht, AGGREGATE_RANK_TREE_TABLE as i, softDeleteRow as it, enforceUniqueIndexes as j, enforceForeignKeys as k, getRankIndexDefinitions as l, unsetFieldsOf as lt, createError as m, isConvexEnforceableFilter as mt, AGGREGATE_EXTREMA_TABLE as n, selectReturningRowWithHydration as nt, aggregateExtension as o, stripUnsetFields as ot, createCountError as p, convexAnd as pt, getTableName as q, AGGREGATE_MEMBER_TABLE as r, serializeFilterExpression as rt, rankAggregateName as s, takeRowsWithinByteBudget as st, AGGREGATE_BUCKET_TABLE as t, returningSelectionReadsCreationTime as tt, AGGREGATE_ERROR as u, hasLifecycleHooks as ut, applyIncomingForeignKeyActionsOnDelete as v, findSearchIndexByName as vt, createForeignKeyProbeMemo as w, CREATED_AT_MIGRATION_MESSAGE as wt, canUsePrimaryIdLookupCursor as x, getIndexes as xt, applyIncomingForeignKeyActionsOnUpdate as y, findVectorIndexByName as yt, getColumnName as z };
@@ -8,8 +8,6 @@ import { BetterAuthClientPlugin } from "better-auth/client";
8
8
  import { createAuthClient } from "better-auth/solid";
9
9
  import * as better_auth0 from "better-auth";
10
10
  import { Session, User } from "better-auth";
11
- import * as better_auth_api0 from "better-auth/api";
12
- import * as better_auth_plugins_oidc_provider0 from "better-auth/plugins/oidc-provider";
13
11
  import * as jose from "jose";
14
12
  import { BetterAuthOptions } from "better-auth/minimal";
15
13
 
@@ -977,18 +975,15 @@ declare const convex$1: (opts: {
977
975
  hooks: {
978
976
  before: ({
979
977
  matcher(context: better_auth0.HookEndpointContext): boolean;
980
- handler: (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
978
+ handler: better_auth0.Middleware<better_auth0.MiddlewareOptions, (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
981
979
  context: {
982
980
  headers: Headers;
983
981
  };
984
- } | undefined>;
982
+ } | undefined>>;
985
983
  } | {
986
984
  matcher: (ctx: better_auth0.HookEndpointContext) => boolean;
987
- handler: (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
988
- context: better_auth0.MiddlewareContext<better_auth0.MiddlewareOptions, {
989
- returned?: unknown | undefined;
990
- responseHeaders?: Headers | undefined;
991
- } & better_auth0.PluginContext<BetterAuthOptions> & better_auth0.InfoContext & {
985
+ handler: better_auth0.Middleware<better_auth0.MiddlewareOptions, (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
986
+ context: better_auth0.MiddlewareContext<better_auth0.MiddlewareOptions, better_auth0.PluginContext<BetterAuthOptions> & better_auth0.InfoContext & {
992
987
  options: BetterAuthOptions;
993
988
  trustedOrigins: string[];
994
989
  trustedProviders: string[];
@@ -1080,6 +1075,7 @@ declare const convex$1: (opts: {
1080
1075
  updateAge: number;
1081
1076
  expiresIn: number;
1082
1077
  freshAge: number;
1078
+ cookieCacheSigner?: better_auth0.CookieCacheSigner | undefined;
1083
1079
  cookieRefreshCache: false | {
1084
1080
  enabled: true;
1085
1081
  updateAge: number;
@@ -1113,12 +1109,15 @@ declare const convex$1: (opts: {
1113
1109
  skipCSRFCheck: boolean;
1114
1110
  runInBackground: (promise: Promise<unknown>) => void;
1115
1111
  runInBackgroundOrAwait: (promise: Promise<unknown> | void) => better_auth0.Awaitable<unknown>;
1112
+ } & {
1113
+ returned?: unknown | undefined;
1114
+ responseHeaders?: Headers | undefined;
1116
1115
  }>;
1117
- }>;
1116
+ }>>;
1118
1117
  })[];
1119
1118
  after: {
1120
- matcher: (context: better_auth0.HookEndpointContext) => boolean;
1121
- handler: better_auth_api0.AuthMiddleware;
1119
+ matcher: (ctx: better_auth0.HookEndpointContext) => boolean;
1120
+ handler: better_auth0.Middleware<better_auth0.MiddlewareOptions, (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>>;
1122
1121
  }[];
1123
1122
  };
1124
1123
  endpoints: {
@@ -1127,7 +1126,25 @@ declare const convex$1: (opts: {
1127
1126
  metadata: {
1128
1127
  isAction: false;
1129
1128
  };
1130
- }, better_auth_plugins_oidc_provider0.OIDCMetadata>;
1129
+ }, {
1130
+ issuer: string;
1131
+ authorization_endpoint: string;
1132
+ token_endpoint: string;
1133
+ userinfo_endpoint: string;
1134
+ jwks_uri: string;
1135
+ registration_endpoint: string;
1136
+ end_session_endpoint: string;
1137
+ scopes_supported: string[];
1138
+ response_types_supported: string[];
1139
+ response_modes_supported: string[];
1140
+ grant_types_supported: string[];
1141
+ acr_values_supported: string[];
1142
+ subject_types_supported: string[];
1143
+ id_token_signing_alg_values_supported: string[];
1144
+ token_endpoint_auth_methods_supported: string[];
1145
+ code_challenge_methods_supported: string[];
1146
+ claims_supported: string[];
1147
+ }>;
1131
1148
  getJwks: better_auth0.StrictEndpoint<"/convex/jwks", {
1132
1149
  method: "GET";
1133
1150
  metadata: {
@@ -1164,7 +1181,7 @@ declare const convex$1: (opts: {
1164
1181
  getToken: better_auth0.StrictEndpoint<"/convex/token", {
1165
1182
  method: "GET";
1166
1183
  requireHeaders: true;
1167
- use: ((inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
1184
+ use: better_auth0.Middleware<better_auth0.MiddlewareOptions, (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
1168
1185
  session: {
1169
1186
  session: Record<string, any> & {
1170
1187
  id: string;
@@ -1186,7 +1203,7 @@ declare const convex$1: (opts: {
1186
1203
  image?: string | null | undefined;
1187
1204
  };
1188
1205
  };
1189
- }>)[];
1206
+ }>>[];
1190
1207
  metadata: {
1191
1208
  openapi: {
1192
1209
  description: string;
@@ -1215,6 +1232,14 @@ declare const convex$1: (opts: {
1215
1232
  type: "date";
1216
1233
  required: false;
1217
1234
  };
1235
+ alg: {
1236
+ type: "string";
1237
+ required: false;
1238
+ };
1239
+ crv: {
1240
+ type: "string";
1241
+ required: false;
1242
+ };
1218
1243
  };
1219
1244
  };
1220
1245
  user: {
@@ -1288,7 +1313,10 @@ type SolidAuthProviderClient = {
1288
1313
  type AuthClientWithPlugins<Plugins extends BetterAuthClientPlugin[]> = ReturnType<typeof createAuthClient<{
1289
1314
  plugins: Plugins;
1290
1315
  }>>;
1291
- type SolidAuthClient = AuthClientWithPlugins<PluginsWithCrossDomain> | AuthClientWithPlugins<PluginsWithoutCrossDomain>;
1316
+ type HydratableAuthClient<Plugins extends BetterAuthClientPlugin[]> = Omit<AuthClientWithPlugins<Plugins>, 'hydrateSession'> & {
1317
+ hydrateSession(session: Parameters<AuthClientWithPlugins<Plugins>['hydrateSession']>[0]): void;
1318
+ };
1319
+ type SolidAuthClient = HydratableAuthClient<PluginsWithCrossDomain> | HydratableAuthClient<PluginsWithoutCrossDomain>;
1292
1320
  //#endregion
1293
1321
  //#region src/solid/convex-auth-provider.d.ts
1294
1322
  type ConvexAuthProviderProps = {
@@ -1,4 +1,4 @@
1
- import { t as JWT_COOKIE_NAME } from "./convex-plugin-DfOhBU9g.js";
1
+ import { t as JWT_COOKIE_NAME } from "./convex-plugin-Dic0l-k8.js";
2
2
  import { betterFetch } from "@better-fetch/fetch";
3
3
  import { getSessionCookie } from "better-auth/cookies";
4
4
  import * as jose from "jose";
@@ -1,4 +1,4 @@
1
- import { Bn as ConvexTextBuilderInitial, Dr as SystemFieldAliases, F as DeleteMode, Gn as OrmRuntimeDefaults, H as EdgeMetadata, Hn as ConvexColumnBuilder, Hr as entityKind, Ht as RelationsConfigWithSchema, I as SerializedFilterExpression, Jn as OrmSchemaExtensionTriggers, Kn as OrmSchemaExtensionRelations, L as getChecks, M as OrmReader, Mr as ColumnBuilderBaseConfig, N as OrmWriter, Nt as AnyRelationsBuilderConfig, Or as SystemFields, P as CascadeMode, Pt as ExtractTablesFromSchema, Qt as OrmLifecycleChange, R as getForeignKeys, Rr as HasDefault, Rt as RelationsBuilder, St as OrderByClause, Ut as TableRelationalConfig, Vt as RelationsBuilderConfigValue, Wn as Columns, Wt as TablesRelationalConfig, Xn as OrmSchemaRelations, Xt as ConvexTableWithColumns, Yt as ConvexTable, Zn as OrmSchemaTriggers, b as MigrationSet, ft as InferSelectModel, in as RlsPolicy, jr as ColumnBuilder, jt as VectorSearchProvider, k as CreateDatabaseOptions, kr as $Type, nr as FilterExpression$1, r as OrmCapability, ut as InferInsertModel, z as getUniqueIndexes } from "./capabilities-DkfnnNp7.js";
1
+ import { Bn as ConvexTextBuilderInitial, Dr as SystemFieldAliases, F as DeleteMode, Gn as OrmRuntimeDefaults, H as EdgeMetadata, Hn as ConvexColumnBuilder, Hr as entityKind, Ht as RelationsConfigWithSchema, I as SerializedFilterExpression, Jn as OrmSchemaExtensionTriggers, Kn as OrmSchemaExtensionRelations, L as getChecks, M as OrmReader, Mr as ColumnBuilderBaseConfig, N as OrmWriter, Nt as AnyRelationsBuilderConfig, Or as SystemFields, P as CascadeMode, Pt as ExtractTablesFromSchema, Qt as OrmLifecycleChange, R as getForeignKeys, Rr as HasDefault, Rt as RelationsBuilder, St as OrderByClause, Ut as TableRelationalConfig, Vt as RelationsBuilderConfigValue, Wn as Columns, Wt as TablesRelationalConfig, Xn as OrmSchemaRelations, Xt as ConvexTableWithColumns, Yt as ConvexTable, Zn as OrmSchemaTriggers, b as MigrationSet, ft as InferSelectModel, in as RlsPolicy, jr as ColumnBuilder, jt as VectorSearchProvider, k as CreateDatabaseOptions, kr as $Type, nr as FilterExpression$1, r as OrmCapability, ut as InferInsertModel, z as getUniqueIndexes } from "./capabilities-BAiI8avr.js";
2
2
  import * as convex_values0 from "convex/values";
3
3
  import { GenericId, Validator, Value } from "convex/values";
4
4
  import { DefineSchemaOptions, GenericDatabaseReader, GenericDatabaseWriter, GenericSchema, SchedulableFunctionReference, Scheduler, SchemaDefinition, internalActionGeneric, internalMutationGeneric } from "convex/server";
@@ -102,15 +102,6 @@ declare const migrationStorageTables: {
102
102
  fieldName: "status";
103
103
  };
104
104
  };
105
- cursor: ConvexTextBuilderInitial<""> & {
106
- _: {
107
- tableName: "migration_state";
108
- };
109
- } & {
110
- _: {
111
- fieldName: "cursor";
112
- };
113
- };
114
105
  direction: ConvexTextBuilderInitial<""> & {
115
106
  _: {
116
107
  tableName: "migration_state";
@@ -120,17 +111,13 @@ declare const migrationStorageTables: {
120
111
  fieldName: "direction";
121
112
  };
122
113
  };
123
- updatedAt: ConvexNumberBuilderInitial<""> & {
124
- _: {
125
- notNull: true;
126
- };
127
- } & {
114
+ cursor: ConvexTextBuilderInitial<""> & {
128
115
  _: {
129
116
  tableName: "migration_state";
130
117
  };
131
118
  } & {
132
119
  _: {
133
- fieldName: "updatedAt";
120
+ fieldName: "cursor";
134
121
  };
135
122
  };
136
123
  migrationId: ConvexTextBuilderInitial<""> & {
@@ -203,6 +190,19 @@ declare const migrationStorageTables: {
203
190
  fieldName: "startedAt";
204
191
  };
205
192
  };
193
+ updatedAt: ConvexNumberBuilderInitial<""> & {
194
+ _: {
195
+ notNull: true;
196
+ };
197
+ } & {
198
+ _: {
199
+ tableName: "migration_state";
200
+ };
201
+ } & {
202
+ _: {
203
+ fieldName: "updatedAt";
204
+ };
205
+ };
206
206
  completedAt: ConvexNumberBuilderInitial<""> & {
207
207
  _: {
208
208
  tableName: "migration_state";
@@ -269,7 +269,7 @@ declare const migrationStorageTables: {
269
269
  fieldName: "direction";
270
270
  };
271
271
  };
272
- updatedAt: ConvexNumberBuilderInitial<""> & {
272
+ runId: ConvexTextBuilderInitial<""> & {
273
273
  _: {
274
274
  notNull: true;
275
275
  };
@@ -279,10 +279,10 @@ declare const migrationStorageTables: {
279
279
  };
280
280
  } & {
281
281
  _: {
282
- fieldName: "updatedAt";
282
+ fieldName: "runId";
283
283
  };
284
284
  };
285
- runId: ConvexTextBuilderInitial<""> & {
285
+ startedAt: ConvexNumberBuilderInitial<""> & {
286
286
  _: {
287
287
  notNull: true;
288
288
  };
@@ -292,10 +292,10 @@ declare const migrationStorageTables: {
292
292
  };
293
293
  } & {
294
294
  _: {
295
- fieldName: "runId";
295
+ fieldName: "startedAt";
296
296
  };
297
297
  };
298
- startedAt: ConvexNumberBuilderInitial<""> & {
298
+ updatedAt: ConvexNumberBuilderInitial<""> & {
299
299
  _: {
300
300
  notNull: true;
301
301
  };
@@ -305,7 +305,7 @@ declare const migrationStorageTables: {
305
305
  };
306
306
  } & {
307
307
  _: {
308
- fieldName: "startedAt";
308
+ fieldName: "updatedAt";
309
309
  };
310
310
  };
311
311
  completedAt: ConvexNumberBuilderInitial<""> & {
@@ -1008,7 +1008,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1008
1008
  readonly aggregate_bucket: ConvexTableWithColumns<{
1009
1009
  name: "aggregate_bucket";
1010
1010
  columns: {
1011
- count: ConvexNumberBuilderInitial<""> & {
1011
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1012
1012
  _: {
1013
1013
  notNull: true;
1014
1014
  };
@@ -1018,10 +1018,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1018
1018
  };
1019
1019
  } & {
1020
1020
  _: {
1021
- fieldName: "count";
1021
+ fieldName: "updatedAt";
1022
1022
  };
1023
1023
  };
1024
- updatedAt: ConvexNumberBuilderInitial<""> & {
1024
+ count: ConvexNumberBuilderInitial<""> & {
1025
1025
  _: {
1026
1026
  notNull: true;
1027
1027
  };
@@ -1031,7 +1031,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1031
1031
  };
1032
1032
  } & {
1033
1033
  _: {
1034
- fieldName: "updatedAt";
1034
+ fieldName: "count";
1035
1035
  };
1036
1036
  };
1037
1037
  tableKey: ConvexTextBuilderInitial<""> & {
@@ -1323,7 +1323,11 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1323
1323
  readonly aggregate_extrema: ConvexTableWithColumns<{
1324
1324
  name: "aggregate_extrema";
1325
1325
  columns: {
1326
- count: ConvexNumberBuilderInitial<""> & {
1326
+ value: ConvexCustomBuilderInitial<"", convex_values0.VAny<any, "required", string>> & {
1327
+ _: {
1328
+ $type: convex_values0.Value;
1329
+ };
1330
+ } & {
1327
1331
  _: {
1328
1332
  notNull: true;
1329
1333
  };
@@ -1333,14 +1337,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1333
1337
  };
1334
1338
  } & {
1335
1339
  _: {
1336
- fieldName: "count";
1340
+ fieldName: "value";
1337
1341
  };
1338
1342
  };
1339
- value: ConvexCustomBuilderInitial<"", convex_values0.VAny<any, "required", string>> & {
1340
- _: {
1341
- $type: convex_values0.Value;
1342
- };
1343
- } & {
1343
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1344
1344
  _: {
1345
1345
  notNull: true;
1346
1346
  };
@@ -1350,10 +1350,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1350
1350
  };
1351
1351
  } & {
1352
1352
  _: {
1353
- fieldName: "value";
1353
+ fieldName: "updatedAt";
1354
1354
  };
1355
1355
  };
1356
- updatedAt: ConvexNumberBuilderInitial<""> & {
1356
+ count: ConvexNumberBuilderInitial<""> & {
1357
1357
  _: {
1358
1358
  notNull: true;
1359
1359
  };
@@ -1363,7 +1363,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1363
1363
  };
1364
1364
  } & {
1365
1365
  _: {
1366
- fieldName: "updatedAt";
1366
+ fieldName: "count";
1367
1367
  };
1368
1368
  };
1369
1369
  tableKey: ConvexTextBuilderInitial<""> & {
@@ -1611,7 +1611,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1611
1611
  fieldName: "cursor";
1612
1612
  };
1613
1613
  };
1614
- updatedAt: ConvexNumberBuilderInitial<""> & {
1614
+ processed: ConvexNumberBuilderInitial<""> & {
1615
1615
  _: {
1616
1616
  notNull: true;
1617
1617
  };
@@ -1621,10 +1621,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1621
1621
  };
1622
1622
  } & {
1623
1623
  _: {
1624
- fieldName: "updatedAt";
1624
+ fieldName: "processed";
1625
1625
  };
1626
1626
  };
1627
- processed: ConvexNumberBuilderInitial<""> & {
1627
+ startedAt: ConvexNumberBuilderInitial<""> & {
1628
1628
  _: {
1629
1629
  notNull: true;
1630
1630
  };
@@ -1634,10 +1634,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1634
1634
  };
1635
1635
  } & {
1636
1636
  _: {
1637
- fieldName: "processed";
1637
+ fieldName: "startedAt";
1638
1638
  };
1639
1639
  };
1640
- startedAt: ConvexNumberBuilderInitial<""> & {
1640
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1641
1641
  _: {
1642
1642
  notNull: true;
1643
1643
  };
@@ -1647,7 +1647,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1647
1647
  };
1648
1648
  } & {
1649
1649
  _: {
1650
- fieldName: "startedAt";
1650
+ fieldName: "updatedAt";
1651
1651
  };
1652
1652
  };
1653
1653
  completedAt: ConvexNumberBuilderInitial<""> & {
@@ -1744,15 +1744,6 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1744
1744
  fieldName: "status";
1745
1745
  };
1746
1746
  };
1747
- cursor: ConvexTextBuilderInitial<""> & {
1748
- _: {
1749
- tableName: "migration_state";
1750
- };
1751
- } & {
1752
- _: {
1753
- fieldName: "cursor";
1754
- };
1755
- };
1756
1747
  direction: ConvexTextBuilderInitial<""> & {
1757
1748
  _: {
1758
1749
  tableName: "migration_state";
@@ -1762,17 +1753,13 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1762
1753
  fieldName: "direction";
1763
1754
  };
1764
1755
  };
1765
- updatedAt: ConvexNumberBuilderInitial<""> & {
1766
- _: {
1767
- notNull: true;
1768
- };
1769
- } & {
1756
+ cursor: ConvexTextBuilderInitial<""> & {
1770
1757
  _: {
1771
1758
  tableName: "migration_state";
1772
1759
  };
1773
1760
  } & {
1774
1761
  _: {
1775
- fieldName: "updatedAt";
1762
+ fieldName: "cursor";
1776
1763
  };
1777
1764
  };
1778
1765
  migrationId: ConvexTextBuilderInitial<""> & {
@@ -1845,6 +1832,19 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1845
1832
  fieldName: "startedAt";
1846
1833
  };
1847
1834
  };
1835
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1836
+ _: {
1837
+ notNull: true;
1838
+ };
1839
+ } & {
1840
+ _: {
1841
+ tableName: "migration_state";
1842
+ };
1843
+ } & {
1844
+ _: {
1845
+ fieldName: "updatedAt";
1846
+ };
1847
+ };
1848
1848
  completedAt: ConvexNumberBuilderInitial<""> & {
1849
1849
  _: {
1850
1850
  tableName: "migration_state";
@@ -1911,7 +1911,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1911
1911
  fieldName: "direction";
1912
1912
  };
1913
1913
  };
1914
- updatedAt: ConvexNumberBuilderInitial<""> & {
1914
+ runId: ConvexTextBuilderInitial<""> & {
1915
1915
  _: {
1916
1916
  notNull: true;
1917
1917
  };
@@ -1921,10 +1921,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1921
1921
  };
1922
1922
  } & {
1923
1923
  _: {
1924
- fieldName: "updatedAt";
1924
+ fieldName: "runId";
1925
1925
  };
1926
1926
  };
1927
- runId: ConvexTextBuilderInitial<""> & {
1927
+ startedAt: ConvexNumberBuilderInitial<""> & {
1928
1928
  _: {
1929
1929
  notNull: true;
1930
1930
  };
@@ -1934,10 +1934,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1934
1934
  };
1935
1935
  } & {
1936
1936
  _: {
1937
- fieldName: "runId";
1937
+ fieldName: "startedAt";
1938
1938
  };
1939
1939
  };
1940
- startedAt: ConvexNumberBuilderInitial<""> & {
1940
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1941
1941
  _: {
1942
1942
  notNull: true;
1943
1943
  };
@@ -1947,7 +1947,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1947
1947
  };
1948
1948
  } & {
1949
1949
  _: {
1950
- fieldName: "startedAt";
1950
+ fieldName: "updatedAt";
1951
1951
  };
1952
1952
  };
1953
1953
  completedAt: ConvexNumberBuilderInitial<""> & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitcn",
3
- "version": "0.27.5",
3
+ "version": "0.28.1",
4
4
  "description": "kitcn - React Query integration and CLI tools for Convex",
5
5
  "keywords": [
6
6
  "convex",
@@ -95,7 +95,7 @@
95
95
  "@tanstack/react-query": ">=5",
96
96
  "@tanstack/react-start": ">=1",
97
97
  "@tanstack/solid-query": ">=5",
98
- "better-auth": ">=1.6.11 <1.7.0",
98
+ "better-auth": ">=1.7.0 <1.8.0",
99
99
  "convex": ">=1.42 <1.45.0",
100
100
  "hono": "4.12.9",
101
101
  "next": ">=14",