kitcn 0.15.15 → 0.15.16
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/aggregate/index.d.ts +1 -1
- package/dist/auth/client/index.d.ts +1 -1
- package/dist/auth/client/index.js +3 -3
- package/dist/{auth-store-B_ARzzEX.d.ts → auth-store-GDNKweSK.d.ts} +21 -3
- package/dist/{auth-store-CwGbvP_s.js → auth-store-ssZDPa37.js} +183 -7
- package/dist/orm/index.d.ts +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +2 -2
- package/dist/{where-clause-compiler-D0D_4v_n.d.ts → where-clause-compiler-CR_tTVuy.d.ts} +31 -31
- package/package.json +1 -1
- package/skills/kitcn/references/features/auth.md +23 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as ConvexNumberBuilderInitial, E as ConvexIdBuilderInitial, N as ConvexCustomBuilderInitial, dn as ConvexTableWithColumns, tr as ConvexTextBuilderInitial } from "../where-clause-compiler-
|
|
1
|
+
import { C as ConvexNumberBuilderInitial, E as ConvexIdBuilderInitial, N as ConvexCustomBuilderInitial, dn as ConvexTableWithColumns, tr as ConvexTextBuilderInitial } from "../where-clause-compiler-CR_tTVuy.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";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { r as AuthStore } from "../../auth-store-
|
|
2
|
+
import { r as AuthStore } from "../../auth-store-GDNKweSK.js";
|
|
3
3
|
import { ConvexReactClient } from "convex/react";
|
|
4
4
|
import { ReactNode } from "react";
|
|
5
5
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { A as defaultIsUnauthorized, D as writeAuthSessionFallbackData, E as readAuthSessionFallbackToken, T as readAuthSessionFallbackData, _ as useAuthValue, d as decodeJwtExp, f as isSessionSyncGraceActive, g as useAuthStore, k as CRPCClientError, n as AuthProvider, o as ConvexProviderWithAuth$1, s as FetchAccessTokenContext, t as AUTH_SESSION_SYNC_GRACE_MS, w as clearAuthSessionFallback } from "../../auth-store-ssZDPa37.js";
|
|
3
|
+
import { useConvexAuth } from "convex/react";
|
|
4
4
|
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
|
|
@@ -272,7 +272,7 @@ function ConvexAuthProviderInner({ children, client, authClient, convexQueryClie
|
|
|
272
272
|
}, [fetchAccessToken, authStore]);
|
|
273
273
|
return /* @__PURE__ */ jsx(FetchAccessTokenContext.Provider, {
|
|
274
274
|
value: fetchAccessToken,
|
|
275
|
-
children: /* @__PURE__ */ jsx(ConvexProviderWithAuth, {
|
|
275
|
+
children: /* @__PURE__ */ jsx(ConvexProviderWithAuth$1, {
|
|
276
276
|
client,
|
|
277
277
|
useAuth,
|
|
278
278
|
children: /* @__PURE__ */ jsx(AuthStateSync, { children })
|
|
@@ -18,6 +18,23 @@ type ConvexAuthResult = {
|
|
|
18
18
|
};
|
|
19
19
|
/** Get auth from bridge context (null if no bridge configured) */
|
|
20
20
|
declare const useConvexAuthBridge: () => ConvexAuthResult | null;
|
|
21
|
+
type ConvexAuthRecoveryStatus = 'idle' | 'recovering' | 'failed';
|
|
22
|
+
type ConvexAuthRecoveryErrorCode = 'AUTH_PROVIDER_LOADING' | 'AUTH_PROVIDER_UNAUTHENTICATED' | 'AUTH_RECOVERY_CANCELLED' | 'AUTH_RECOVERY_FAILED' | 'AUTH_RECOVERY_TIMEOUT';
|
|
23
|
+
declare class ConvexAuthRecoveryError extends Error {
|
|
24
|
+
readonly code: ConvexAuthRecoveryErrorCode;
|
|
25
|
+
constructor(code: ConvexAuthRecoveryErrorCode, message: string);
|
|
26
|
+
}
|
|
27
|
+
type ConvexAuthRecoveryOptions = {
|
|
28
|
+
/** Maximum time to wait for Convex backend confirmation. Defaults to 10s. */timeoutMs?: number;
|
|
29
|
+
};
|
|
30
|
+
type ConvexAuthRecovery = {
|
|
31
|
+
error: ConvexAuthRecoveryError | null;
|
|
32
|
+
recover: (options?: ConvexAuthRecoveryOptions) => Promise<void>;
|
|
33
|
+
status: ConvexAuthRecoveryStatus;
|
|
34
|
+
};
|
|
35
|
+
/** Imperatively rebind Convex auth and wait for backend confirmation. */
|
|
36
|
+
declare function useConvexAuthRecovery(): ConvexAuthRecovery;
|
|
37
|
+
type ConvexProviderWithAuthProps = React.ComponentProps<typeof ConvexProviderWithAuth>;
|
|
21
38
|
type AuthStoreState = {
|
|
22
39
|
/** Callback when mutation/action called while unauthorized. Throws by default. */onMutationUnauthorized: () => void; /** Callback when query called while unauthorized. Noop by default. */
|
|
23
40
|
onQueryUnauthorized: (info: {
|
|
@@ -116,8 +133,9 @@ declare function ConvexAuthBridge({
|
|
|
116
133
|
*/
|
|
117
134
|
declare function ConvexProviderWithAuth$1({
|
|
118
135
|
children,
|
|
119
|
-
|
|
120
|
-
|
|
136
|
+
client,
|
|
137
|
+
useAuth
|
|
138
|
+
}: ConvexProviderWithAuthProps): react_jsx_runtime0.JSX.Element;
|
|
121
139
|
declare const useAuth: () => {
|
|
122
140
|
hasSession: boolean;
|
|
123
141
|
isAuthenticated: boolean;
|
|
@@ -153,4 +171,4 @@ declare function Unauthenticated({
|
|
|
153
171
|
children: React.ReactNode;
|
|
154
172
|
}): react.ReactNode;
|
|
155
173
|
//#endregion
|
|
156
|
-
export {
|
|
174
|
+
export { useSafeConvexAuth as A, useAuthStore as C, useFetchAccessToken as D, useConvexAuthRecovery as E, useIsAuth as O, useAuthState as S, useConvexAuthBridge as T, Unauthenticated as _, Authenticated as a, useAuth as b, ConvexAuthRecoveryError as c, ConvexAuthRecoveryStatus as d, ConvexProviderWithAuth$1 as f, MaybeUnauthenticated as g, MaybeAuthenticated as h, AuthStoreState as i, useMaybeAuth as k, ConvexAuthRecoveryErrorCode as l, FetchAccessTokenFn as m, AuthProvider as n, ConvexAuthBridge as o, FetchAccessTokenContext as p, AuthStore as r, ConvexAuthRecovery as s, AUTH_SESSION_SYNC_GRACE_MS as t, ConvexAuthRecoveryOptions as u, decodeJwtExp as v, useAuthValue as w, useAuthGuard as x, isSessionSyncGraceActive as y };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { ConvexProviderWithAuth, useConvexAuth } from "convex/react";
|
|
3
|
-
import { createContext, useContext } from "react";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { createAtomStore } from "jotai-x";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
|
|
7
7
|
//#region src/crpc/error.ts
|
|
8
8
|
/**
|
|
@@ -102,6 +102,69 @@ const useFetchAccessToken = () => useContext(FetchAccessTokenContext);
|
|
|
102
102
|
const ConvexAuthBridgeContext = createContext(null);
|
|
103
103
|
/** Get auth from bridge context (null if no bridge configured) */
|
|
104
104
|
const useConvexAuthBridge = () => useContext(ConvexAuthBridgeContext);
|
|
105
|
+
var ConvexAuthRecoveryError = class extends Error {
|
|
106
|
+
code;
|
|
107
|
+
constructor(code, message) {
|
|
108
|
+
super(message);
|
|
109
|
+
this.name = "ConvexAuthRecoveryError";
|
|
110
|
+
this.code = code;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const ConvexAuthRecoveryContext = createContext(null);
|
|
114
|
+
/** Imperatively rebind Convex auth and wait for backend confirmation. */
|
|
115
|
+
function useConvexAuthRecovery() {
|
|
116
|
+
const recovery = useContext(ConvexAuthRecoveryContext);
|
|
117
|
+
if (!recovery) throw new Error("useConvexAuthRecovery must be used inside ConvexProviderWithAuth");
|
|
118
|
+
return recovery;
|
|
119
|
+
}
|
|
120
|
+
const AUTH_RECOVERY_TIMEOUT_MS = 1e4;
|
|
121
|
+
function ConvexAuthRecoverySync({ authProviderAuthenticated, authProviderLoading, onChange }) {
|
|
122
|
+
const auth = useConvexAuth();
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
onChange({
|
|
125
|
+
authProviderAuthenticated,
|
|
126
|
+
authProviderLoading,
|
|
127
|
+
isAuthenticated: auth.isAuthenticated,
|
|
128
|
+
isLoading: auth.isLoading
|
|
129
|
+
});
|
|
130
|
+
}, [
|
|
131
|
+
auth.isAuthenticated,
|
|
132
|
+
auth.isLoading,
|
|
133
|
+
authProviderAuthenticated,
|
|
134
|
+
authProviderLoading,
|
|
135
|
+
onChange
|
|
136
|
+
]);
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
function ConvexAuthBinding({ bindingVersion, children, client, onAuthSnapshot, onBindingFetch, useAuth }) {
|
|
140
|
+
const { fetchAccessToken: fetchAccessTokenFromAuth, isAuthenticated, isLoading } = useAuth();
|
|
141
|
+
const fetchAccessToken = useCallback((args) => {
|
|
142
|
+
onBindingFetch(bindingVersion);
|
|
143
|
+
return fetchAccessTokenFromAuth(args);
|
|
144
|
+
}, [
|
|
145
|
+
bindingVersion,
|
|
146
|
+
fetchAccessTokenFromAuth,
|
|
147
|
+
onBindingFetch
|
|
148
|
+
]);
|
|
149
|
+
const boundAuth = useMemo(() => ({
|
|
150
|
+
fetchAccessToken,
|
|
151
|
+
isAuthenticated,
|
|
152
|
+
isLoading
|
|
153
|
+
}), [
|
|
154
|
+
fetchAccessToken,
|
|
155
|
+
isAuthenticated,
|
|
156
|
+
isLoading
|
|
157
|
+
]);
|
|
158
|
+
return /* @__PURE__ */ jsxs(ConvexProviderWithAuth, {
|
|
159
|
+
client,
|
|
160
|
+
useAuth: useCallback(() => boundAuth, [boundAuth]),
|
|
161
|
+
children: [/* @__PURE__ */ jsx(ConvexAuthRecoverySync, {
|
|
162
|
+
authProviderAuthenticated: isAuthenticated,
|
|
163
|
+
authProviderLoading: isLoading,
|
|
164
|
+
onChange: onAuthSnapshot
|
|
165
|
+
}), /* @__PURE__ */ jsx(ConvexAuthBridge, { children })]
|
|
166
|
+
});
|
|
167
|
+
}
|
|
105
168
|
const AUTH_SESSION_SYNC_GRACE_MS = 1e4;
|
|
106
169
|
const isSessionSyncGraceActive = (sessionSyncGraceUntil) => typeof sessionSyncGraceUntil === "number" && sessionSyncGraceUntil > Date.now();
|
|
107
170
|
/** Decode JWT expiration (ms timestamp) from token */
|
|
@@ -176,10 +239,123 @@ function ConvexAuthBridge({ children }) {
|
|
|
176
239
|
* </ConvexProviderWithAuth>
|
|
177
240
|
* ```
|
|
178
241
|
*/
|
|
179
|
-
function ConvexProviderWithAuth$1({ children,
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
242
|
+
function ConvexProviderWithAuth$1({ children, client, useAuth }) {
|
|
243
|
+
const [bindingVersion, setBindingVersion] = useState(0);
|
|
244
|
+
const [error, setError] = useState(null);
|
|
245
|
+
const [status, setStatus] = useState("idle");
|
|
246
|
+
const bindingVersionRef = useRef(0);
|
|
247
|
+
const pendingRef = useRef(null);
|
|
248
|
+
const authSnapshotRef = useRef({
|
|
249
|
+
authProviderAuthenticated: false,
|
|
250
|
+
authProviderLoading: true,
|
|
251
|
+
isAuthenticated: false,
|
|
252
|
+
isLoading: true
|
|
253
|
+
});
|
|
254
|
+
const settleRecovery = useCallback((recoveryError) => {
|
|
255
|
+
const pending = pendingRef.current;
|
|
256
|
+
if (!pending) return;
|
|
257
|
+
clearTimeout(pending.timeoutId);
|
|
258
|
+
pendingRef.current = null;
|
|
259
|
+
if (recoveryError) {
|
|
260
|
+
setError(recoveryError);
|
|
261
|
+
setStatus("failed");
|
|
262
|
+
pending.reject(recoveryError);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
setError(null);
|
|
266
|
+
setStatus("idle");
|
|
267
|
+
pending.resolve();
|
|
268
|
+
}, []);
|
|
269
|
+
const onAuthSnapshot = useCallback((snapshot) => {
|
|
270
|
+
authSnapshotRef.current = snapshot;
|
|
271
|
+
const pending = pendingRef.current;
|
|
272
|
+
if (!pending) return;
|
|
273
|
+
if (snapshot.authProviderLoading) {
|
|
274
|
+
settleRecovery(new ConvexAuthRecoveryError("AUTH_PROVIDER_LOADING", "Cannot recover Convex auth while the auth provider is loading"));
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
if (!snapshot.authProviderAuthenticated) {
|
|
278
|
+
settleRecovery(new ConvexAuthRecoveryError("AUTH_PROVIDER_UNAUTHENTICATED", "Cannot recover Convex auth without an authenticated provider session"));
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
if (!pending.isBound || snapshot.isLoading) return;
|
|
282
|
+
if (snapshot.isAuthenticated) {
|
|
283
|
+
settleRecovery(null);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
settleRecovery(new ConvexAuthRecoveryError("AUTH_RECOVERY_FAILED", "Convex rejected the recovered authentication binding"));
|
|
287
|
+
}, [settleRecovery]);
|
|
288
|
+
const onBindingFetch = useCallback((activeBindingVersion) => {
|
|
289
|
+
const pending = pendingRef.current;
|
|
290
|
+
if (pending?.bindingVersion === activeBindingVersion) pending.isBound = true;
|
|
291
|
+
}, []);
|
|
292
|
+
const recover = useCallback((options = {}) => {
|
|
293
|
+
const pending = pendingRef.current;
|
|
294
|
+
if (pending) return pending.promise;
|
|
295
|
+
const authSnapshot = authSnapshotRef.current;
|
|
296
|
+
if (authSnapshot.authProviderLoading) {
|
|
297
|
+
const recoveryError = new ConvexAuthRecoveryError("AUTH_PROVIDER_LOADING", "Cannot recover Convex auth while the auth provider is loading");
|
|
298
|
+
setError(recoveryError);
|
|
299
|
+
setStatus("failed");
|
|
300
|
+
return Promise.reject(recoveryError);
|
|
301
|
+
}
|
|
302
|
+
if (!authSnapshot.authProviderAuthenticated) {
|
|
303
|
+
const recoveryError = new ConvexAuthRecoveryError("AUTH_PROVIDER_UNAUTHENTICATED", "Cannot recover Convex auth without an authenticated provider session");
|
|
304
|
+
setError(recoveryError);
|
|
305
|
+
setStatus("failed");
|
|
306
|
+
return Promise.reject(recoveryError);
|
|
307
|
+
}
|
|
308
|
+
let resolve;
|
|
309
|
+
let reject;
|
|
310
|
+
const promise = new Promise((resolvePromise, rejectPromise) => {
|
|
311
|
+
resolve = resolvePromise;
|
|
312
|
+
reject = rejectPromise;
|
|
313
|
+
});
|
|
314
|
+
const timeoutMs = options.timeoutMs ?? AUTH_RECOVERY_TIMEOUT_MS;
|
|
315
|
+
const nextBindingVersion = bindingVersionRef.current + 1;
|
|
316
|
+
const timeoutId = setTimeout(() => {
|
|
317
|
+
settleRecovery(new ConvexAuthRecoveryError("AUTH_RECOVERY_TIMEOUT", `Convex auth recovery timed out after ${timeoutMs}ms`));
|
|
318
|
+
}, timeoutMs);
|
|
319
|
+
pendingRef.current = {
|
|
320
|
+
bindingVersion: nextBindingVersion,
|
|
321
|
+
isBound: false,
|
|
322
|
+
promise,
|
|
323
|
+
reject,
|
|
324
|
+
resolve,
|
|
325
|
+
timeoutId
|
|
326
|
+
};
|
|
327
|
+
bindingVersionRef.current = nextBindingVersion;
|
|
328
|
+
setError(null);
|
|
329
|
+
setStatus("recovering");
|
|
330
|
+
setBindingVersion(nextBindingVersion);
|
|
331
|
+
return promise;
|
|
332
|
+
}, [settleRecovery]);
|
|
333
|
+
useEffect(() => () => {
|
|
334
|
+
const pending = pendingRef.current;
|
|
335
|
+
if (!pending) return;
|
|
336
|
+
clearTimeout(pending.timeoutId);
|
|
337
|
+
pendingRef.current = null;
|
|
338
|
+
pending.reject(new ConvexAuthRecoveryError("AUTH_RECOVERY_CANCELLED", "Convex auth recovery was cancelled because the provider unmounted"));
|
|
339
|
+
}, []);
|
|
340
|
+
const recovery = useMemo(() => ({
|
|
341
|
+
error,
|
|
342
|
+
recover,
|
|
343
|
+
status
|
|
344
|
+
}), [
|
|
345
|
+
error,
|
|
346
|
+
recover,
|
|
347
|
+
status
|
|
348
|
+
]);
|
|
349
|
+
return /* @__PURE__ */ jsx(ConvexAuthRecoveryContext.Provider, {
|
|
350
|
+
value: recovery,
|
|
351
|
+
children: /* @__PURE__ */ jsx(ConvexAuthBinding, {
|
|
352
|
+
bindingVersion,
|
|
353
|
+
client,
|
|
354
|
+
onAuthSnapshot,
|
|
355
|
+
onBindingFetch,
|
|
356
|
+
useAuth,
|
|
357
|
+
children
|
|
358
|
+
})
|
|
183
359
|
});
|
|
184
360
|
}
|
|
185
361
|
const useAuth = () => {
|
|
@@ -251,4 +427,4 @@ function Unauthenticated({ children }) {
|
|
|
251
427
|
}
|
|
252
428
|
|
|
253
429
|
//#endregion
|
|
254
|
-
export {
|
|
430
|
+
export { defaultIsUnauthorized as A, useSafeConvexAuth as C, writeAuthSessionFallbackData as D, readAuthSessionFallbackToken as E, writeAuthSessionFallbackToken as O, useMaybeAuth as S, readAuthSessionFallbackData as T, useAuthValue as _, ConvexAuthRecoveryError as a, useFetchAccessToken as b, MaybeAuthenticated as c, decodeJwtExp as d, isSessionSyncGraceActive as f, useAuthStore as g, useAuthState as h, ConvexAuthBridge as i, isCRPCClientError as j, CRPCClientError as k, MaybeUnauthenticated as l, useAuthGuard as m, AuthProvider as n, ConvexProviderWithAuth$1 as o, useAuth as p, Authenticated as r, FetchAccessTokenContext as s, AUTH_SESSION_SYNC_GRACE_MS as t, Unauthenticated as u, useConvexAuthBridge as v, clearAuthSessionFallback as w, useIsAuth as x, useConvexAuthRecovery as y };
|
package/dist/orm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as GenericOrmCtx$1, $n as unique, $r as endsWith, $t as ManyConfig, A as ConvexDateMode, An as ConvexRankIndexBuilder, Ar as ReturningResult, At as MigrationManifestEntry, B as ConvexBytesBuilderInitial, Bn as rankIndex, Br as OrmSchemaRelations, Bt as defineMigration, C as ConvexNumberBuilderInitial, Ci as ColumnBuilderWithTableName, Cn as RlsRole, Cr as MutationReturning, Ct as MigrationStatusArgs, D as id, Di as IsPrimaryKey, Dn as ConvexAggregateIndexBuilderOn, Dr as PaginatedResult, Dt as MigrationDoc, E as ConvexIdBuilderInitial, Ei as HasDefault, En as ConvexAggregateIndexBuilder, Er as OrderDirection, Et as MigrationDirection, F as custom, Fn as ConvexVectorIndexBuilder, Fr as unsetToken, Ft as MigrationStateMap, G as ConvexBigIntBuilder, Gn as ConvexCheckConfig, Gr as ExpressionVisitor, Gt as OrmReader$1, H as ConvexBooleanBuilder, Hn as uniqueIndex, Hr as TableName, Ht as detectMigrationDrift, I as json, In as ConvexVectorIndexBuilderOn, Ir as Brand, It as MigrationStep, J as CountBackfillChunkArgs, Jn as ConvexUniqueConstraintBuilder, Jr as LogicalExpression, Jt as RlsMode, K as ConvexBigIntBuilderInitial, Kn as ConvexForeignKeyBuilder, Kr as FieldReference, Kt as OrmWriter$1, L as objectOf, Ln as ConvexVectorIndexConfig, Lr as Columns, Lt as MigrationTableName, M as ConvexCustomBuilder, Mn as ConvexSearchIndexBuilder, Mr as UpdateSet, Mt as MigrationPlan, N as ConvexCustomBuilderInitial, Nn as ConvexSearchIndexBuilderOn, Nr as VectorQueryConfig, Nt as MigrationRunStatus, O as ConvexDateBuilder, Oi as IsUnique, On as ConvexIndexBuilder, Or as PredicateWhereIndexConfig, Ot as MigrationDocContext, P as arrayOf, Pn as ConvexSearchIndexConfig, Pr as VectorSearchProvider, Pt as MigrationSet, Q as GenericOrm$1, Qn as foreignKey, Qr as contains, Qt as ExtractTablesWithRelations, R as unionOf, Rn as aggregateIndex, Rr as OrmSchemaExtensionTables, Rt as MigrationWriteMode, S as ConvexNumberBuilder, Si as ColumnBuilderTypeConfig, Sn as rlsPolicy, Sr as MutationResult, St as MigrationRunChunkArgs, T as ConvexIdBuilder, Ti as DrizzleEntity, Tn as rlsRole, Tr as OrderByClause, Tt as MigrationDefinition, U as ConvexBooleanBuilderInitial, Un as vectorIndex, Ur as SystemFields, Ut as DatabaseWithMutations, V as bytes, Vn as searchIndex, Vr as OrmSchemaTriggers, Vt as defineMigrationSet, W as boolean, Wn as ConvexCheckBuilder, Wr as BinaryExpression, Wt as DatabaseWithQuery, X as CountBackfillStatusArgs, Xn as ConvexUniqueConstraintConfig, Xr as and, Xt as extractRelationsConfig, Y as CountBackfillKickoffArgs, Yn as ConvexUniqueConstraintBuilderOn, Yr as UnaryExpression, Yt as EdgeMetadata, Z as CreateOrmOptions, Zn as check, Zr as between, Zt as ExtractTablesFromSchema, _ as ConvexTimestampMode, _i as startsWith, _n as deletion, _r as MutationExecuteConfig, _t as OrmTriggerContext, a as requireSchemaRelations, ai as inArray, an as TablesRelationalConfig, ar as AggregateResult, at as OrmWriterCtx, b as ConvexTextEnumBuilderInitial, bi as ColumnBuilderBaseConfig, bn as RlsPolicyConfig, br as MutationPaginateConfig, bt as MigrationCancelArgs, c as TableConfigResult, ci as isNull, cn as ConvexDeletionBuilder, cr as CountConfig, ct as ScheduledMutationBatchArgs, d as OrmNotFoundError, di as lte, dn as ConvexTableWithColumns, dr as FilterOperators, dt as scheduledDeleteFactory, ei as eq, en as OneConfig, er as ConvexTextBuilder, et as OrmApiResult, f as ConvexVectorBuilder, fi as ne, fn as DiscriminatorBuilderConfig, fr as GetColumnData, ft as SchemaExtension, g as ConvexTimestampBuilderInitial, gi as or, gn as convexTable, gr as InsertValue, gt as OrmTriggerChange, h as ConvexTimestampBuilder, hi as notInArray, hn as TableConfig, hr as InferSelectModel, ht as OrmTableTriggers, i as getSchemaTriggers, ii as ilike, in as TableRelationalConfig, ir as AggregateFieldValue, it as OrmReaderCtx, j as date, jn as ConvexRankIndexBuilderOn, jr as ReturningSelection, jt as MigrationMigrateOne, k as ConvexDateBuilderInitial, ki as NotNull, kn as ConvexIndexBuilderOn, kr as ReturningAll, kt as MigrationDriftIssue, l as getTableColumns, li as like, ln as ConvexDeletionConfig, lr as CountResult, lt as scheduledMutationBatchFactory, m as vector, mi as notBetween, mn as OrmLifecycleOperation, mr as InferModelFromColumns, mt as OrmBeforeResult, n as defineSchema, ni as gt, nn as RelationsBuilderColumnBase, nr as text, nt as OrmClientWithApi$1, o as asc, oi as isFieldReference, on as defineRelations, or as BuildQueryResult, ot as ResolveOrmSchema, p as ConvexVectorBuilderInitial, pi as not, pn as OrmLifecycleChange, pr as InferInsertModel, pt as defineSchemaExtension, q as bigint, qn as ConvexForeignKeyConfig, qr as FilterExpression, qt as RlsContext, r as getSchemaRelations, ri as gte, rn as RelationsBuilderColumnConfig, rr as AggregateConfig, rt as OrmFunctions, s as desc, si as isNotNull, sn as defineRelationsPart, sr as BuildRelationResult, st as createOrm, t as WhereClauseResult, ti as fieldRef, tn as RelationsBuilder, tr as ConvexTextBuilderInitial, tt as OrmClientBase$1, u as getTableConfig, ui as lt, un as ConvexTable, ur as DBQueryConfig, ut as ScheduledDeleteArgs, v as timestamp, vi as AnyColumn, vn as discriminator, vr as MutationExecuteResult, vt as OrmTriggers, w as integer, wi as ColumnDataType, wn as RlsRoleConfig, wr as MutationRunMode, wt as MigrationAppliedState, x as textEnum, xi as ColumnBuilderRuntimeConfig, xn as RlsPolicyToOption, xr as MutationPaginatedResult, xt as MigrationRunArgs, y as ConvexTextEnumBuilder, yi as ColumnBuilder, yn as RlsPolicy, yr as MutationExecutionMode, yt as defineTriggers, z as ConvexBytesBuilder, zn as index, zr as OrmSchemaExtensions, zt as buildMigrationPlan } from "../where-clause-compiler-
|
|
1
|
+
import { $ as GenericOrmCtx$1, $n as unique, $r as endsWith, $t as ManyConfig, A as ConvexDateMode, An as ConvexRankIndexBuilder, Ar as ReturningResult, At as MigrationManifestEntry, B as ConvexBytesBuilderInitial, Bn as rankIndex, Br as OrmSchemaRelations, Bt as defineMigration, C as ConvexNumberBuilderInitial, Ci as ColumnBuilderWithTableName, Cn as RlsRole, Cr as MutationReturning, Ct as MigrationStatusArgs, D as id, Di as IsPrimaryKey, Dn as ConvexAggregateIndexBuilderOn, Dr as PaginatedResult, Dt as MigrationDoc, E as ConvexIdBuilderInitial, Ei as HasDefault, En as ConvexAggregateIndexBuilder, Er as OrderDirection, Et as MigrationDirection, F as custom, Fn as ConvexVectorIndexBuilder, Fr as unsetToken, Ft as MigrationStateMap, G as ConvexBigIntBuilder, Gn as ConvexCheckConfig, Gr as ExpressionVisitor, Gt as OrmReader$1, H as ConvexBooleanBuilder, Hn as uniqueIndex, Hr as TableName, Ht as detectMigrationDrift, I as json, In as ConvexVectorIndexBuilderOn, Ir as Brand, It as MigrationStep, J as CountBackfillChunkArgs, Jn as ConvexUniqueConstraintBuilder, Jr as LogicalExpression, Jt as RlsMode, K as ConvexBigIntBuilderInitial, Kn as ConvexForeignKeyBuilder, Kr as FieldReference, Kt as OrmWriter$1, L as objectOf, Ln as ConvexVectorIndexConfig, Lr as Columns, Lt as MigrationTableName, M as ConvexCustomBuilder, Mn as ConvexSearchIndexBuilder, Mr as UpdateSet, Mt as MigrationPlan, N as ConvexCustomBuilderInitial, Nn as ConvexSearchIndexBuilderOn, Nr as VectorQueryConfig, Nt as MigrationRunStatus, O as ConvexDateBuilder, Oi as IsUnique, On as ConvexIndexBuilder, Or as PredicateWhereIndexConfig, Ot as MigrationDocContext, P as arrayOf, Pn as ConvexSearchIndexConfig, Pr as VectorSearchProvider, Pt as MigrationSet, Q as GenericOrm$1, Qn as foreignKey, Qr as contains, Qt as ExtractTablesWithRelations, R as unionOf, Rn as aggregateIndex, Rr as OrmSchemaExtensionTables, Rt as MigrationWriteMode, S as ConvexNumberBuilder, Si as ColumnBuilderTypeConfig, Sn as rlsPolicy, Sr as MutationResult, St as MigrationRunChunkArgs, T as ConvexIdBuilder, Ti as DrizzleEntity, Tn as rlsRole, Tr as OrderByClause, Tt as MigrationDefinition, U as ConvexBooleanBuilderInitial, Un as vectorIndex, Ur as SystemFields, Ut as DatabaseWithMutations, V as bytes, Vn as searchIndex, Vr as OrmSchemaTriggers, Vt as defineMigrationSet, W as boolean, Wn as ConvexCheckBuilder, Wr as BinaryExpression, Wt as DatabaseWithQuery, X as CountBackfillStatusArgs, Xn as ConvexUniqueConstraintConfig, Xr as and, Xt as extractRelationsConfig, Y as CountBackfillKickoffArgs, Yn as ConvexUniqueConstraintBuilderOn, Yr as UnaryExpression, Yt as EdgeMetadata, Z as CreateOrmOptions, Zn as check, Zr as between, Zt as ExtractTablesFromSchema, _ as ConvexTimestampMode, _i as startsWith, _n as deletion, _r as MutationExecuteConfig, _t as OrmTriggerContext, a as requireSchemaRelations, ai as inArray, an as TablesRelationalConfig, ar as AggregateResult, at as OrmWriterCtx, b as ConvexTextEnumBuilderInitial, bi as ColumnBuilderBaseConfig, bn as RlsPolicyConfig, br as MutationPaginateConfig, bt as MigrationCancelArgs, c as TableConfigResult, ci as isNull, cn as ConvexDeletionBuilder, cr as CountConfig, ct as ScheduledMutationBatchArgs, d as OrmNotFoundError, di as lte, dn as ConvexTableWithColumns, dr as FilterOperators, dt as scheduledDeleteFactory, ei as eq, en as OneConfig, er as ConvexTextBuilder, et as OrmApiResult, f as ConvexVectorBuilder, fi as ne, fn as DiscriminatorBuilderConfig, fr as GetColumnData, ft as SchemaExtension, g as ConvexTimestampBuilderInitial, gi as or, gn as convexTable, gr as InsertValue, gt as OrmTriggerChange, h as ConvexTimestampBuilder, hi as notInArray, hn as TableConfig, hr as InferSelectModel, ht as OrmTableTriggers, i as getSchemaTriggers, ii as ilike, in as TableRelationalConfig, ir as AggregateFieldValue, it as OrmReaderCtx, j as date, jn as ConvexRankIndexBuilderOn, jr as ReturningSelection, jt as MigrationMigrateOne, k as ConvexDateBuilderInitial, ki as NotNull, kn as ConvexIndexBuilderOn, kr as ReturningAll, kt as MigrationDriftIssue, l as getTableColumns, li as like, ln as ConvexDeletionConfig, lr as CountResult, lt as scheduledMutationBatchFactory, m as vector, mi as notBetween, mn as OrmLifecycleOperation, mr as InferModelFromColumns, mt as OrmBeforeResult, n as defineSchema, ni as gt, nn as RelationsBuilderColumnBase, nr as text, nt as OrmClientWithApi$1, o as asc, oi as isFieldReference, on as defineRelations, or as BuildQueryResult, ot as ResolveOrmSchema, p as ConvexVectorBuilderInitial, pi as not, pn as OrmLifecycleChange, pr as InferInsertModel, pt as defineSchemaExtension, q as bigint, qn as ConvexForeignKeyConfig, qr as FilterExpression, qt as RlsContext, r as getSchemaRelations, ri as gte, rn as RelationsBuilderColumnConfig, rr as AggregateConfig, rt as OrmFunctions, s as desc, si as isNotNull, sn as defineRelationsPart, sr as BuildRelationResult, st as createOrm, t as WhereClauseResult, ti as fieldRef, tn as RelationsBuilder, tr as ConvexTextBuilderInitial, tt as OrmClientBase$1, u as getTableConfig, ui as lt, un as ConvexTable, ur as DBQueryConfig, ut as ScheduledDeleteArgs, v as timestamp, vi as AnyColumn, vn as discriminator, vr as MutationExecuteResult, vt as OrmTriggers, w as integer, wi as ColumnDataType, wn as RlsRoleConfig, wr as MutationRunMode, wt as MigrationAppliedState, x as textEnum, xi as ColumnBuilderRuntimeConfig, xn as RlsPolicyToOption, xr as MutationPaginatedResult, xt as MigrationRunArgs, y as ConvexTextEnumBuilder, yi as ColumnBuilder, yn as RlsPolicy, yr as MutationExecutionMode, yt as defineTriggers, z as ConvexBytesBuilder, zn as index, zr as OrmSchemaExtensions, zt as buildMigrationPlan } from "../where-clause-compiler-CR_tTVuy.js";
|
|
2
2
|
import { i as pretendRequired, n as deprecated, r as pretend } from "../validators-BhsByJeg.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-CNo9ffvI.js";
|
|
4
4
|
import { DefineSchemaOptions, GenericDatabaseReader, GenericDatabaseWriter, GenericSchema, SchemaDefinition } from "convex/server";
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { C as
|
|
2
|
+
import { A as useSafeConvexAuth, C as useAuthStore, D as useFetchAccessToken, E as useConvexAuthRecovery, O as useIsAuth, S as useAuthState, T as useConvexAuthBridge, _ as Unauthenticated, a as Authenticated, b as useAuth, c as ConvexAuthRecoveryError, d as ConvexAuthRecoveryStatus, f as ConvexProviderWithAuth, g as MaybeUnauthenticated, h as MaybeAuthenticated, i as AuthStoreState, k as useMaybeAuth, l as ConvexAuthRecoveryErrorCode, m as FetchAccessTokenFn, n as AuthProvider, o as ConvexAuthBridge, p as FetchAccessTokenContext, r as AuthStore, s as ConvexAuthRecovery, t as AUTH_SESSION_SYNC_GRACE_MS, u as ConvexAuthRecoveryOptions, v as decodeJwtExp, w as useAuthValue, x as useAuthGuard, y as isSessionSyncGraceActive } from "../auth-store-GDNKweSK.js";
|
|
3
3
|
import { ConvexProvider, ConvexReactClient, ConvexReactClient as ConvexReactClient$1, ConvexReactClientOptions, Watch, WatchQueryOptions, useConvex } from "convex/react";
|
|
4
4
|
import { ReactNode } from "react";
|
|
5
5
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
@@ -1143,4 +1143,4 @@ declare function useUploadMutationOptions<TGenerateUrlMutation extends FunctionR
|
|
|
1143
1143
|
*/
|
|
1144
1144
|
declare function createVanillaCRPCProxy<TApi extends Record<string, unknown>>(api: TApi, meta: CallerMeta, convexClient: ConvexReactClient$1, transformer?: DataTransformerOptions): VanillaCRPCClient<TApi>;
|
|
1145
1145
|
//#endregion
|
|
1146
|
-
export { AUTH_SESSION_SYNC_GRACE_MS, AuthMutationError, AuthProvider, AuthStore, AuthStoreState, Authenticated, CRPCHttpOptions, ConvexAuthBridge, ConvexProvider, ConvexProviderWithAuth, ConvexQueryClient, ConvexQueryClientOptions, ConvexQueryClientSingletonOptions, ConvexReactClient, CreateCRPCContextOptions, FetchAccessTokenContext, FetchAccessTokenFn, HttpCRPCClient, HttpCRPCClientFromRouter, type HttpClientOptions, type HttpFormValue, type HttpInputArgs, HttpMutationKey, HttpProxyOptions, HttpQueryKey, HttpRouteInfo, HttpRouteMap, MaybeAuthenticated, MaybeUnauthenticated, PaginationState, PaginationStatus, Unauthenticated, UseInfiniteQueryResult, VanillaHttpCRPCClient, VanillaHttpCRPCClientFromRouter, createAuthMutations, createCRPCContext, createCRPCOptionsProxy, createHttpProxy, createVanillaCRPCProxy, decodeJwtExp, getConvexQueryClientSingleton, getQueryClientSingleton, isAuthMutationError, isSessionSyncGraceActive, useAuth, useAuthGuard, useAuthState, useAuthStore, useAuthValue, useConvex, useConvexActionOptions, useConvexActionQueryOptions, useSafeConvexAuth as useConvexAuth, useSafeConvexAuth, useConvexAuthBridge, useConvexInfiniteQueryOptions, useConvexMutationOptions, useConvexQueryClient, useConvexQueryOptions, useFetchAccessToken, useFnMeta, useInfiniteQuery, useIsAuth, useMaybeAuth, useMeta, useUploadMutationOptions };
|
|
1146
|
+
export { AUTH_SESSION_SYNC_GRACE_MS, AuthMutationError, AuthProvider, AuthStore, AuthStoreState, Authenticated, CRPCHttpOptions, ConvexAuthBridge, ConvexAuthRecovery, ConvexAuthRecoveryError, ConvexAuthRecoveryErrorCode, ConvexAuthRecoveryOptions, ConvexAuthRecoveryStatus, ConvexProvider, ConvexProviderWithAuth, ConvexQueryClient, ConvexQueryClientOptions, ConvexQueryClientSingletonOptions, ConvexReactClient, CreateCRPCContextOptions, FetchAccessTokenContext, FetchAccessTokenFn, HttpCRPCClient, HttpCRPCClientFromRouter, type HttpClientOptions, type HttpFormValue, type HttpInputArgs, HttpMutationKey, HttpProxyOptions, HttpQueryKey, HttpRouteInfo, HttpRouteMap, MaybeAuthenticated, MaybeUnauthenticated, PaginationState, PaginationStatus, Unauthenticated, UseInfiniteQueryResult, VanillaHttpCRPCClient, VanillaHttpCRPCClientFromRouter, createAuthMutations, createCRPCContext, createCRPCOptionsProxy, createHttpProxy, createVanillaCRPCProxy, decodeJwtExp, getConvexQueryClientSingleton, getQueryClientSingleton, isAuthMutationError, isSessionSyncGraceActive, useAuth, useAuthGuard, useAuthState, useAuthStore, useAuthValue, useConvex, useConvexActionOptions, useConvexActionQueryOptions, useSafeConvexAuth as useConvexAuth, useSafeConvexAuth, useConvexAuthBridge, useConvexAuthRecovery, useConvexInfiniteQueryOptions, useConvexMutationOptions, useConvexQueryClient, useConvexQueryOptions, useFetchAccessToken, useFnMeta, useInfiniteQuery, useIsAuth, useMaybeAuth, useMeta, useUploadMutationOptions };
|
package/dist/react/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { A as defaultIsUnauthorized, C as useSafeConvexAuth, D as writeAuthSessionFallbackData, O as writeAuthSessionFallbackToken, S as useMaybeAuth, _ as useAuthValue, a as ConvexAuthRecoveryError, b as useFetchAccessToken, c as MaybeAuthenticated, d as decodeJwtExp, f as isSessionSyncGraceActive, g as useAuthStore, h as useAuthState, i as ConvexAuthBridge, j as isCRPCClientError, k as CRPCClientError, l as MaybeUnauthenticated, m as useAuthGuard, n as AuthProvider, o as ConvexProviderWithAuth, p as useAuth, r as Authenticated, s as FetchAccessTokenContext, t as AUTH_SESSION_SYNC_GRACE_MS, u as Unauthenticated, v as useConvexAuthBridge, w as clearAuthSessionFallback, x as useIsAuth, y as useConvexAuthRecovery } from "../auth-store-ssZDPa37.js";
|
|
3
3
|
import { ConvexProvider, ConvexReactClient, ConvexReactClient as ConvexReactClient$1, useAction, useConvex, useMutation } from "convex/react";
|
|
4
4
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -2592,4 +2592,4 @@ function useInfiniteQuery(infiniteOptions) {
|
|
|
2592
2592
|
}
|
|
2593
2593
|
|
|
2594
2594
|
//#endregion
|
|
2595
|
-
export { AUTH_SESSION_SYNC_GRACE_MS, AuthMutationError, AuthProvider, Authenticated, ConvexAuthBridge, ConvexProvider, ConvexProviderWithAuth, ConvexQueryClient, ConvexReactClient, FetchAccessTokenContext, MaybeAuthenticated, MaybeUnauthenticated, Unauthenticated, createAuthMutations, createCRPCContext, createCRPCOptionsProxy, createHttpProxy, createVanillaCRPCProxy, decodeJwtExp, getConvexQueryClientSingleton, getQueryClientSingleton, isAuthMutationError, isSessionSyncGraceActive, useAuth, useAuthGuard, useAuthState, useAuthStore, useAuthValue, useConvex, useConvexActionOptions, useConvexActionQueryOptions, useSafeConvexAuth as useConvexAuth, useSafeConvexAuth, useConvexAuthBridge, useConvexInfiniteQueryOptions, useConvexMutationOptions, useConvexQueryClient, useConvexQueryOptions, useFetchAccessToken, useFnMeta, useInfiniteQuery, useIsAuth, useMaybeAuth, useMeta, useUploadMutationOptions };
|
|
2595
|
+
export { AUTH_SESSION_SYNC_GRACE_MS, AuthMutationError, AuthProvider, Authenticated, ConvexAuthBridge, ConvexAuthRecoveryError, ConvexProvider, ConvexProviderWithAuth, ConvexQueryClient, ConvexReactClient, FetchAccessTokenContext, MaybeAuthenticated, MaybeUnauthenticated, Unauthenticated, createAuthMutations, createCRPCContext, createCRPCOptionsProxy, createHttpProxy, createVanillaCRPCProxy, decodeJwtExp, getConvexQueryClientSingleton, getQueryClientSingleton, isAuthMutationError, isSessionSyncGraceActive, useAuth, useAuthGuard, useAuthState, useAuthStore, useAuthValue, useConvex, useConvexActionOptions, useConvexActionQueryOptions, useSafeConvexAuth as useConvexAuth, useSafeConvexAuth, useConvexAuthBridge, useConvexAuthRecovery, useConvexInfiniteQueryOptions, useConvexMutationOptions, useConvexQueryClient, useConvexQueryOptions, useFetchAccessToken, useFnMeta, useInfiniteQuery, useIsAuth, useMaybeAuth, useMeta, useUploadMutationOptions };
|
|
@@ -4240,19 +4240,6 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4240
4240
|
readonly aggregate_state: ConvexTableWithColumns<{
|
|
4241
4241
|
name: "aggregate_state";
|
|
4242
4242
|
columns: {
|
|
4243
|
-
status: ConvexTextBuilderInitial<""> & {
|
|
4244
|
-
_: {
|
|
4245
|
-
notNull: true;
|
|
4246
|
-
};
|
|
4247
|
-
} & {
|
|
4248
|
-
_: {
|
|
4249
|
-
tableName: "aggregate_state";
|
|
4250
|
-
};
|
|
4251
|
-
} & {
|
|
4252
|
-
_: {
|
|
4253
|
-
fieldName: "status";
|
|
4254
|
-
};
|
|
4255
|
-
};
|
|
4256
4243
|
kind: ConvexTextBuilderInitial<""> & {
|
|
4257
4244
|
_: {
|
|
4258
4245
|
notNull: true;
|
|
@@ -4340,6 +4327,19 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4340
4327
|
fieldName: "metricDefinitionHash";
|
|
4341
4328
|
};
|
|
4342
4329
|
};
|
|
4330
|
+
status: ConvexTextBuilderInitial<""> & {
|
|
4331
|
+
_: {
|
|
4332
|
+
notNull: true;
|
|
4333
|
+
};
|
|
4334
|
+
} & {
|
|
4335
|
+
_: {
|
|
4336
|
+
tableName: "aggregate_state";
|
|
4337
|
+
};
|
|
4338
|
+
} & {
|
|
4339
|
+
_: {
|
|
4340
|
+
fieldName: "status";
|
|
4341
|
+
};
|
|
4342
|
+
};
|
|
4343
4343
|
processed: ConvexNumberBuilderInitial<""> & {
|
|
4344
4344
|
_: {
|
|
4345
4345
|
notNull: true;
|
|
@@ -4394,38 +4394,38 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4394
4394
|
readonly migration_state: ConvexTableWithColumns<{
|
|
4395
4395
|
name: "migration_state";
|
|
4396
4396
|
columns: {
|
|
4397
|
-
|
|
4398
|
-
_: {
|
|
4399
|
-
notNull: true;
|
|
4400
|
-
};
|
|
4401
|
-
} & {
|
|
4397
|
+
cursor: ConvexTextBuilderInitial<""> & {
|
|
4402
4398
|
_: {
|
|
4403
4399
|
tableName: "migration_state";
|
|
4404
4400
|
};
|
|
4405
4401
|
} & {
|
|
4406
4402
|
_: {
|
|
4407
|
-
fieldName: "
|
|
4403
|
+
fieldName: "cursor";
|
|
4408
4404
|
};
|
|
4409
4405
|
};
|
|
4410
|
-
|
|
4406
|
+
direction: ConvexTextBuilderInitial<""> & {
|
|
4411
4407
|
_: {
|
|
4412
4408
|
tableName: "migration_state";
|
|
4413
4409
|
};
|
|
4414
4410
|
} & {
|
|
4415
4411
|
_: {
|
|
4416
|
-
fieldName: "
|
|
4412
|
+
fieldName: "direction";
|
|
4417
4413
|
};
|
|
4418
4414
|
};
|
|
4419
|
-
|
|
4415
|
+
updatedAt: ConvexNumberBuilderInitial<""> & {
|
|
4416
|
+
_: {
|
|
4417
|
+
notNull: true;
|
|
4418
|
+
};
|
|
4419
|
+
} & {
|
|
4420
4420
|
_: {
|
|
4421
4421
|
tableName: "migration_state";
|
|
4422
4422
|
};
|
|
4423
4423
|
} & {
|
|
4424
4424
|
_: {
|
|
4425
|
-
fieldName: "
|
|
4425
|
+
fieldName: "updatedAt";
|
|
4426
4426
|
};
|
|
4427
4427
|
};
|
|
4428
|
-
|
|
4428
|
+
status: ConvexTextBuilderInitial<""> & {
|
|
4429
4429
|
_: {
|
|
4430
4430
|
notNull: true;
|
|
4431
4431
|
};
|
|
@@ -4435,7 +4435,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4435
4435
|
};
|
|
4436
4436
|
} & {
|
|
4437
4437
|
_: {
|
|
4438
|
-
fieldName: "
|
|
4438
|
+
fieldName: "status";
|
|
4439
4439
|
};
|
|
4440
4440
|
};
|
|
4441
4441
|
processed: ConvexNumberBuilderInitial<""> & {
|
|
@@ -4548,7 +4548,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4548
4548
|
readonly migration_run: ConvexTableWithColumns<{
|
|
4549
4549
|
name: "migration_run";
|
|
4550
4550
|
columns: {
|
|
4551
|
-
|
|
4551
|
+
direction: ConvexTextBuilderInitial<""> & {
|
|
4552
4552
|
_: {
|
|
4553
4553
|
notNull: true;
|
|
4554
4554
|
};
|
|
@@ -4558,10 +4558,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4558
4558
|
};
|
|
4559
4559
|
} & {
|
|
4560
4560
|
_: {
|
|
4561
|
-
fieldName: "
|
|
4561
|
+
fieldName: "direction";
|
|
4562
4562
|
};
|
|
4563
4563
|
};
|
|
4564
|
-
|
|
4564
|
+
updatedAt: ConvexNumberBuilderInitial<""> & {
|
|
4565
4565
|
_: {
|
|
4566
4566
|
notNull: true;
|
|
4567
4567
|
};
|
|
@@ -4571,10 +4571,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4571
4571
|
};
|
|
4572
4572
|
} & {
|
|
4573
4573
|
_: {
|
|
4574
|
-
fieldName: "
|
|
4574
|
+
fieldName: "updatedAt";
|
|
4575
4575
|
};
|
|
4576
4576
|
};
|
|
4577
|
-
|
|
4577
|
+
status: ConvexTextBuilderInitial<""> & {
|
|
4578
4578
|
_: {
|
|
4579
4579
|
notNull: true;
|
|
4580
4580
|
};
|
|
@@ -4584,7 +4584,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4584
4584
|
};
|
|
4585
4585
|
} & {
|
|
4586
4586
|
_: {
|
|
4587
|
-
fieldName: "
|
|
4587
|
+
fieldName: "status";
|
|
4588
4588
|
};
|
|
4589
4589
|
};
|
|
4590
4590
|
startedAt: ConvexNumberBuilderInitial<""> & {
|
package/package.json
CHANGED
|
@@ -358,6 +358,7 @@ All from `kitcn/react`:
|
|
|
358
358
|
| `useMaybeAuth()` | `boolean` | Has token (optimistic, may not be verified) |
|
|
359
359
|
| `useIsAuth()` | `boolean` | Server-verified authentication |
|
|
360
360
|
| `useAuthGuard()` | `() => boolean` | Guard mutations, returns true if blocked |
|
|
361
|
+
| `useConvexAuthRecovery()` | `{ recover, status, error }` | Rebind Convex auth after a transient token failure |
|
|
361
362
|
|
|
362
363
|
### useAuthGuard
|
|
363
364
|
|
|
@@ -409,6 +410,28 @@ import { ConvexProviderWithAuth } from 'kitcn/react';
|
|
|
409
410
|
<ConvexProviderWithAuth client={convex} useAuth={useAuthFromConvexDev}>
|
|
410
411
|
```
|
|
411
412
|
|
|
413
|
+
### Convex Auth Recovery
|
|
414
|
+
|
|
415
|
+
Use recovery only when the outer auth provider remains authenticated but
|
|
416
|
+
Convex entered an unauthenticated state after a transient token refresh
|
|
417
|
+
failure:
|
|
418
|
+
|
|
419
|
+
```tsx
|
|
420
|
+
import { useConvexAuthRecovery } from 'kitcn/react';
|
|
421
|
+
|
|
422
|
+
const { error, recover, status } = useConvexAuthRecovery();
|
|
423
|
+
await recover();
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
`recover()` replaces the provider-owned auth binding and resolves after Convex
|
|
427
|
+
confirms authentication. Concurrent calls share one promise. The default
|
|
428
|
+
timeout is 10 seconds; override it with `recover({ timeoutMs })`.
|
|
429
|
+
|
|
430
|
+
Failures are `ConvexAuthRecoveryError` values with code
|
|
431
|
+
`AUTH_PROVIDER_LOADING`, `AUTH_PROVIDER_UNAUTHENTICATED`,
|
|
432
|
+
`AUTH_RECOVERY_CANCELLED`, `AUTH_RECOVERY_FAILED`, or
|
|
433
|
+
`AUTH_RECOVERY_TIMEOUT`. Never recover an intentional sign-out.
|
|
434
|
+
|
|
412
435
|
---
|
|
413
436
|
|
|
414
437
|
## Auth Triggers
|