kitcn 0.12.2 → 0.12.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.
- package/dist/aggregate/index.d.ts +1 -1
- package/dist/auth/generated/index.d.ts +1 -1
- package/dist/auth/index.d.ts +12 -12
- package/dist/{generated-contract-disabled-D-sOFy92.d.ts → generated-contract-disabled-Ct12mYyH.d.ts} +29 -29
- package/dist/orm/index.d.ts +1 -1
- package/dist/{where-clause-compiler-DdjN63Io.d.ts → where-clause-compiler-CuH2JNxb.d.ts} +12 -12
- package/package.json +1 -1
- package/skills/convex/references/features/auth.md +7 -1
- package/skills/convex/references/setup/auth.md +3 -3
- package/skills/convex/references/setup/index.md +16 -6
- package/skills/convex/references/setup/react.md +0 -1
- package/skills/convex/references/setup/server.md +4 -4
|
@@ -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-CuH2JNxb.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,2 +1,2 @@
|
|
|
1
|
-
import { S as defineAuth, _ as GenericAuthBeforeResult, b as GenericAuthTriggerHandlers, g as BetterAuthOptionsWithoutDatabase, i as getGeneratedAuthDisabledReason, n as GeneratedAuthDisabledReasonKind, r as createDisabledAuthRuntime, t as AuthRuntime, v as GenericAuthDefinition, x as GenericAuthTriggers, y as GenericAuthTriggerChange } from "../../generated-contract-disabled-
|
|
1
|
+
import { S as defineAuth, _ as GenericAuthBeforeResult, b as GenericAuthTriggerHandlers, g as BetterAuthOptionsWithoutDatabase, i as getGeneratedAuthDisabledReason, n as GeneratedAuthDisabledReasonKind, r as createDisabledAuthRuntime, t as AuthRuntime, v as GenericAuthDefinition, x as GenericAuthTriggers, y as GenericAuthTriggerChange } from "../../generated-contract-disabled-Ct12mYyH.js";
|
|
2
2
|
export { type AuthRuntime, BetterAuthOptionsWithoutDatabase, type GeneratedAuthDisabledReasonKind, GenericAuthBeforeResult, GenericAuthDefinition, GenericAuthTriggerChange, GenericAuthTriggerHandlers, GenericAuthTriggers, createDisabledAuthRuntime, defineAuth, getGeneratedAuthDisabledReason };
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as QueryCtxWithPreferredOrmQueryTable, n as LookupByIdResultByCtx, t as DocByCtx } from "../query-context-CFZqIvD7.js";
|
|
2
2
|
import { t as GetAuth } from "../types-BiJE7qxR.js";
|
|
3
3
|
import { t as GenericCtx } from "../context-utils-HPC5nXzx.js";
|
|
4
|
-
import { S as defineAuth, _ as GenericAuthBeforeResult, a as AuthFunctions, b as GenericAuthTriggerHandlers, c as createApi, d as deleteOneHandler, f as findManyHandler, g as BetterAuthOptionsWithoutDatabase, h as updateOneHandler, i as getGeneratedAuthDisabledReason, l as createHandler, m as updateManyHandler, n as GeneratedAuthDisabledReasonKind, o as Triggers, p as findOneHandler, r as createDisabledAuthRuntime, s as createClient, t as AuthRuntime, u as deleteManyHandler, v as GenericAuthDefinition, x as GenericAuthTriggers, y as GenericAuthTriggerChange } from "../generated-contract-disabled-
|
|
4
|
+
import { S as defineAuth, _ as GenericAuthBeforeResult, a as AuthFunctions, b as GenericAuthTriggerHandlers, c as createApi, d as deleteOneHandler, f as findManyHandler, g as BetterAuthOptionsWithoutDatabase, h as updateOneHandler, i as getGeneratedAuthDisabledReason, l as createHandler, m as updateManyHandler, n as GeneratedAuthDisabledReasonKind, o as Triggers, p as findOneHandler, r as createDisabledAuthRuntime, s as createClient, t as AuthRuntime, u as deleteManyHandler, v as GenericAuthDefinition, x as GenericAuthTriggers, y as GenericAuthTriggerChange } from "../generated-contract-disabled-Ct12mYyH.js";
|
|
5
5
|
import * as convex_values0 from "convex/values";
|
|
6
6
|
import { Infer } from "convex/values";
|
|
7
7
|
import { DocumentByName, GenericDataModel, GenericMutationCtx, GenericQueryCtx, GenericSchema, PaginationOptions, PaginationResult, SchemaDefinition, TableNamesInDataModel } from "convex/server";
|
|
@@ -103,25 +103,25 @@ type AdapterPaginationOptions = PaginationOptions & {
|
|
|
103
103
|
maximumRowsRead?: number;
|
|
104
104
|
};
|
|
105
105
|
declare const adapterWhereValidator: convex_values0.VObject<{
|
|
106
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
106
107
|
connector?: "AND" | "OR" | undefined;
|
|
107
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
108
108
|
value: string | number | boolean | string[] | number[] | null;
|
|
109
109
|
field: string;
|
|
110
110
|
}, {
|
|
111
111
|
connector: convex_values0.VUnion<"AND" | "OR" | undefined, [convex_values0.VLiteral<"AND", "required">, convex_values0.VLiteral<"OR", "required">], "optional", never>;
|
|
112
112
|
field: convex_values0.VString<string, "required">;
|
|
113
|
-
operator: convex_values0.VUnion<"
|
|
113
|
+
operator: convex_values0.VUnion<"eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined, [convex_values0.VLiteral<"lt", "required">, convex_values0.VLiteral<"lte", "required">, convex_values0.VLiteral<"gt", "required">, convex_values0.VLiteral<"gte", "required">, convex_values0.VLiteral<"eq", "required">, convex_values0.VLiteral<"in", "required">, convex_values0.VLiteral<"not_in", "required">, convex_values0.VLiteral<"ne", "required">, convex_values0.VLiteral<"contains", "required">, convex_values0.VLiteral<"starts_with", "required">, convex_values0.VLiteral<"ends_with", "required">], "optional", never>;
|
|
114
114
|
value: convex_values0.VUnion<string | number | boolean | string[] | number[] | null, [convex_values0.VString<string, "required">, convex_values0.VFloat64<number, "required">, convex_values0.VBoolean<boolean, "required">, convex_values0.VArray<string[], convex_values0.VString<string, "required">, "required">, convex_values0.VArray<number[], convex_values0.VFloat64<number, "required">, "required">, convex_values0.VNull<null, "required">], "required", never>;
|
|
115
|
-
}, "required", "
|
|
115
|
+
}, "required", "operator" | "value" | "field" | "connector">;
|
|
116
116
|
declare const adapterArgsValidator: convex_values0.VObject<{
|
|
117
|
-
|
|
117
|
+
limit?: number | undefined;
|
|
118
118
|
where?: {
|
|
119
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
119
120
|
connector?: "AND" | "OR" | undefined;
|
|
120
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
121
121
|
value: string | number | boolean | string[] | number[] | null;
|
|
122
122
|
field: string;
|
|
123
123
|
}[] | undefined;
|
|
124
|
-
|
|
124
|
+
select?: string[] | undefined;
|
|
125
125
|
offset?: number | undefined;
|
|
126
126
|
sortBy?: {
|
|
127
127
|
field: string;
|
|
@@ -141,22 +141,22 @@ declare const adapterArgsValidator: convex_values0.VObject<{
|
|
|
141
141
|
field: convex_values0.VString<string, "required">;
|
|
142
142
|
}, "optional", "field" | "direction">;
|
|
143
143
|
where: convex_values0.VArray<{
|
|
144
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
144
145
|
connector?: "AND" | "OR" | undefined;
|
|
145
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
146
146
|
value: string | number | boolean | string[] | number[] | null;
|
|
147
147
|
field: string;
|
|
148
148
|
}[] | undefined, convex_values0.VObject<{
|
|
149
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
149
150
|
connector?: "AND" | "OR" | undefined;
|
|
150
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
151
151
|
value: string | number | boolean | string[] | number[] | null;
|
|
152
152
|
field: string;
|
|
153
153
|
}, {
|
|
154
154
|
connector: convex_values0.VUnion<"AND" | "OR" | undefined, [convex_values0.VLiteral<"AND", "required">, convex_values0.VLiteral<"OR", "required">], "optional", never>;
|
|
155
155
|
field: convex_values0.VString<string, "required">;
|
|
156
|
-
operator: convex_values0.VUnion<"
|
|
156
|
+
operator: convex_values0.VUnion<"eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined, [convex_values0.VLiteral<"lt", "required">, convex_values0.VLiteral<"lte", "required">, convex_values0.VLiteral<"gt", "required">, convex_values0.VLiteral<"gte", "required">, convex_values0.VLiteral<"eq", "required">, convex_values0.VLiteral<"in", "required">, convex_values0.VLiteral<"not_in", "required">, convex_values0.VLiteral<"ne", "required">, convex_values0.VLiteral<"contains", "required">, convex_values0.VLiteral<"starts_with", "required">, convex_values0.VLiteral<"ends_with", "required">], "optional", never>;
|
|
157
157
|
value: convex_values0.VUnion<string | number | boolean | string[] | number[] | null, [convex_values0.VString<string, "required">, convex_values0.VFloat64<number, "required">, convex_values0.VBoolean<boolean, "required">, convex_values0.VArray<string[], convex_values0.VString<string, "required">, "required">, convex_values0.VArray<number[], convex_values0.VFloat64<number, "required">, "required">, convex_values0.VNull<null, "required">], "required", never>;
|
|
158
|
-
}, "required", "
|
|
159
|
-
}, "required", "
|
|
158
|
+
}, "required", "operator" | "value" | "field" | "connector">, "optional">;
|
|
159
|
+
}, "required", "limit" | "where" | "model" | "select" | "offset" | "sortBy" | "sortBy.field" | "sortBy.direction">;
|
|
160
160
|
declare const hasUniqueFields: (betterAuthSchema: BetterAuthDBSchema, model: string, input: Record<string, any>) => boolean;
|
|
161
161
|
declare const checkUniqueFields: <Schema extends SchemaDefinition<any, any>>(ctx: GenericQueryCtx<GenericDataModel>, schema: Schema, betterAuthSchema: BetterAuthDBSchema, table: string, input: Record<string, any>, doc?: Record<string, any>) => Promise<void>;
|
|
162
162
|
declare const selectFields: <T extends TableNamesInDataModel<GenericDataModel>, D extends DocumentByName<GenericDataModel, T>>(doc: D | null, select?: string[]) => D | null;
|
package/dist/{generated-contract-disabled-D-sOFy92.d.ts → generated-contract-disabled-Ct12mYyH.d.ts}
RENAMED
|
@@ -173,10 +173,18 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
|
|
|
173
173
|
};
|
|
174
174
|
}, Promise<any>>;
|
|
175
175
|
deleteMany: convex_server0.RegisteredMutation<"internal", {
|
|
176
|
+
paginationOpts: {
|
|
177
|
+
id?: number;
|
|
178
|
+
endCursor?: string | null;
|
|
179
|
+
maximumRowsRead?: number;
|
|
180
|
+
maximumBytesRead?: number;
|
|
181
|
+
numItems: number;
|
|
182
|
+
cursor: string | null;
|
|
183
|
+
};
|
|
176
184
|
input: {
|
|
177
185
|
where?: {
|
|
186
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
178
187
|
connector?: "AND" | "OR" | undefined;
|
|
179
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
180
188
|
value: string | number | boolean | string[] | number[] | null;
|
|
181
189
|
field: string;
|
|
182
190
|
}[] | undefined;
|
|
@@ -185,14 +193,6 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
|
|
|
185
193
|
where?: any[] | undefined;
|
|
186
194
|
model: string;
|
|
187
195
|
};
|
|
188
|
-
paginationOpts: {
|
|
189
|
-
id?: number;
|
|
190
|
-
endCursor?: string | null;
|
|
191
|
-
maximumRowsRead?: number;
|
|
192
|
-
maximumBytesRead?: number;
|
|
193
|
-
numItems: number;
|
|
194
|
-
cursor: string | null;
|
|
195
|
-
};
|
|
196
196
|
}, Promise<{
|
|
197
197
|
count: number;
|
|
198
198
|
ids: any[];
|
|
@@ -204,8 +204,8 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
|
|
|
204
204
|
deleteOne: convex_server0.RegisteredMutation<"internal", {
|
|
205
205
|
input: {
|
|
206
206
|
where?: {
|
|
207
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
207
208
|
connector?: "AND" | "OR" | undefined;
|
|
208
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
209
209
|
value: string | number | boolean | string[] | number[] | null;
|
|
210
210
|
field: string;
|
|
211
211
|
}[] | undefined;
|
|
@@ -216,20 +216,19 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
|
|
|
216
216
|
};
|
|
217
217
|
}, Promise<Record<string, unknown> | undefined>>;
|
|
218
218
|
findMany: convex_server0.RegisteredQuery<"internal", {
|
|
219
|
+
limit?: number | undefined;
|
|
219
220
|
join?: any;
|
|
220
221
|
where?: {
|
|
222
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
221
223
|
connector?: "AND" | "OR" | undefined;
|
|
222
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
223
224
|
value: string | number | boolean | string[] | number[] | null;
|
|
224
225
|
field: string;
|
|
225
226
|
}[] | undefined;
|
|
226
|
-
limit?: number | undefined;
|
|
227
227
|
offset?: number | undefined;
|
|
228
228
|
sortBy?: {
|
|
229
229
|
field: string;
|
|
230
230
|
direction: "asc" | "desc";
|
|
231
231
|
} | undefined;
|
|
232
|
-
model: string;
|
|
233
232
|
paginationOpts: {
|
|
234
233
|
id?: number;
|
|
235
234
|
endCursor?: string | null;
|
|
@@ -238,46 +237,47 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
|
|
|
238
237
|
numItems: number;
|
|
239
238
|
cursor: string | null;
|
|
240
239
|
};
|
|
240
|
+
model: string;
|
|
241
241
|
}, Promise<convex_server0.PaginationResult<convex_server0.GenericDocument>>>;
|
|
242
242
|
findOne: convex_server0.RegisteredQuery<"internal", {
|
|
243
243
|
join?: any;
|
|
244
|
-
select?: string[] | undefined;
|
|
245
244
|
where?: {
|
|
245
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
246
246
|
connector?: "AND" | "OR" | undefined;
|
|
247
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
248
247
|
value: string | number | boolean | string[] | number[] | null;
|
|
249
248
|
field: string;
|
|
250
249
|
}[] | undefined;
|
|
250
|
+
select?: string[] | undefined;
|
|
251
251
|
model: string;
|
|
252
252
|
}, Promise<convex_server0.GenericDocument | null>>;
|
|
253
253
|
getLatestJwks: convex_server0.RegisteredAction<"internal", {}, Promise<unknown>>;
|
|
254
254
|
rotateKeys: convex_server0.RegisteredAction<"internal", {}, Promise<unknown>>;
|
|
255
255
|
updateMany: convex_server0.RegisteredMutation<"internal", {
|
|
256
|
+
paginationOpts: {
|
|
257
|
+
id?: number;
|
|
258
|
+
endCursor?: string | null;
|
|
259
|
+
maximumRowsRead?: number;
|
|
260
|
+
maximumBytesRead?: number;
|
|
261
|
+
numItems: number;
|
|
262
|
+
cursor: string | null;
|
|
263
|
+
};
|
|
256
264
|
input: {
|
|
257
265
|
where?: {
|
|
266
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
258
267
|
connector?: "AND" | "OR" | undefined;
|
|
259
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
260
268
|
value: string | number | boolean | string[] | number[] | null;
|
|
261
269
|
field: string;
|
|
262
270
|
}[] | undefined;
|
|
263
|
-
model: string;
|
|
264
271
|
update: {
|
|
265
272
|
[x: string]: unknown;
|
|
266
273
|
[x: number]: unknown;
|
|
267
274
|
[x: symbol]: unknown;
|
|
268
275
|
};
|
|
276
|
+
model: string;
|
|
269
277
|
} | {
|
|
270
278
|
where?: any[] | undefined;
|
|
271
|
-
model: string;
|
|
272
279
|
update: any;
|
|
273
|
-
|
|
274
|
-
paginationOpts: {
|
|
275
|
-
id?: number;
|
|
276
|
-
endCursor?: string | null;
|
|
277
|
-
maximumRowsRead?: number;
|
|
278
|
-
maximumBytesRead?: number;
|
|
279
|
-
numItems: number;
|
|
280
|
-
cursor: string | null;
|
|
280
|
+
model: string;
|
|
281
281
|
};
|
|
282
282
|
}, Promise<{
|
|
283
283
|
count: number;
|
|
@@ -290,21 +290,21 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
|
|
|
290
290
|
updateOne: convex_server0.RegisteredMutation<"internal", {
|
|
291
291
|
input: {
|
|
292
292
|
where?: {
|
|
293
|
+
operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
293
294
|
connector?: "AND" | "OR" | undefined;
|
|
294
|
-
operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
|
|
295
295
|
value: string | number | boolean | string[] | number[] | null;
|
|
296
296
|
field: string;
|
|
297
297
|
}[] | undefined;
|
|
298
|
-
model: string;
|
|
299
298
|
update: {
|
|
300
299
|
[x: string]: unknown;
|
|
301
300
|
[x: number]: unknown;
|
|
302
301
|
[x: symbol]: unknown;
|
|
303
302
|
};
|
|
303
|
+
model: string;
|
|
304
304
|
} | {
|
|
305
305
|
where?: any[] | undefined;
|
|
306
|
-
model: string;
|
|
307
306
|
update: any;
|
|
307
|
+
model: string;
|
|
308
308
|
};
|
|
309
309
|
}, Promise<any>>;
|
|
310
310
|
};
|
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-CuH2JNxb.js";
|
|
2
2
|
import { i as pretendRequired, n as deprecated, r as pretend } from "../validators-vzRKjBJC.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-CFZqIvD7.js";
|
|
4
4
|
import { DefineSchemaOptions, GenericDatabaseReader, GenericDatabaseWriter, GenericSchema, SchemaDefinition } from "convex/server";
|
|
@@ -3992,11 +3992,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
3992
3992
|
readonly aggregate_extrema: ConvexTableWithColumns<{
|
|
3993
3993
|
name: "aggregate_extrema";
|
|
3994
3994
|
columns: {
|
|
3995
|
-
|
|
3996
|
-
_: {
|
|
3997
|
-
$type: convex_values0.Value;
|
|
3998
|
-
};
|
|
3999
|
-
} & {
|
|
3995
|
+
count: ConvexNumberBuilderInitial<""> & {
|
|
4000
3996
|
_: {
|
|
4001
3997
|
notNull: true;
|
|
4002
3998
|
};
|
|
@@ -4006,10 +4002,14 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4006
4002
|
};
|
|
4007
4003
|
} & {
|
|
4008
4004
|
_: {
|
|
4009
|
-
fieldName: "
|
|
4005
|
+
fieldName: "count";
|
|
4010
4006
|
};
|
|
4011
4007
|
};
|
|
4012
|
-
|
|
4008
|
+
value: ConvexCustomBuilderInitial<"", convex_values0.VAny<any, "required", string>> & {
|
|
4009
|
+
_: {
|
|
4010
|
+
$type: convex_values0.Value;
|
|
4011
|
+
};
|
|
4012
|
+
} & {
|
|
4013
4013
|
_: {
|
|
4014
4014
|
notNull: true;
|
|
4015
4015
|
};
|
|
@@ -4019,7 +4019,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4019
4019
|
};
|
|
4020
4020
|
} & {
|
|
4021
4021
|
_: {
|
|
4022
|
-
fieldName: "
|
|
4022
|
+
fieldName: "value";
|
|
4023
4023
|
};
|
|
4024
4024
|
};
|
|
4025
4025
|
tableKey: ConvexTextBuilderInitial<""> & {
|
|
@@ -4398,22 +4398,22 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
|
|
|
4398
4398
|
readonly migration_state: ConvexTableWithColumns<{
|
|
4399
4399
|
name: "migration_state";
|
|
4400
4400
|
columns: {
|
|
4401
|
-
|
|
4401
|
+
direction: ConvexTextBuilderInitial<""> & {
|
|
4402
4402
|
_: {
|
|
4403
4403
|
tableName: "migration_state";
|
|
4404
4404
|
};
|
|
4405
4405
|
} & {
|
|
4406
4406
|
_: {
|
|
4407
|
-
fieldName: "
|
|
4407
|
+
fieldName: "direction";
|
|
4408
4408
|
};
|
|
4409
4409
|
};
|
|
4410
|
-
|
|
4410
|
+
cursor: ConvexTextBuilderInitial<""> & {
|
|
4411
4411
|
_: {
|
|
4412
4412
|
tableName: "migration_state";
|
|
4413
4413
|
};
|
|
4414
4414
|
} & {
|
|
4415
4415
|
_: {
|
|
4416
|
-
fieldName: "
|
|
4416
|
+
fieldName: "cursor";
|
|
4417
4417
|
};
|
|
4418
4418
|
};
|
|
4419
4419
|
status: ConvexTextBuilderInitial<""> & {
|
package/package.json
CHANGED
|
@@ -69,7 +69,7 @@ Use the CLI-first path:
|
|
|
69
69
|
npx kitcn add auth --yes
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
If kitcn is not bootstrapped yet, start with `npx kitcn init -t next --yes` for a fresh app or `npx kitcn init --yes` for in-place adoption.
|
|
72
|
+
If kitcn is not bootstrapped yet, start with `npx kitcn@latest init -t next --yes` for a fresh app or `npx kitcn@latest init --yes` for in-place adoption.
|
|
73
73
|
|
|
74
74
|
On local Convex, `add auth --yes` also finishes the first auth bootstrap pass: generated runtime, `BETTER_AUTH_SECRET`, and `JWKS`.
|
|
75
75
|
|
|
@@ -279,6 +279,12 @@ export const {
|
|
|
279
279
|
|
|
280
280
|
### Sign In
|
|
281
281
|
|
|
282
|
+
Rule:
|
|
283
|
+
|
|
284
|
+
1. The standard Next local path assumes `NEXT_PUBLIC_SITE_URL=http://localhost:3000`.
|
|
285
|
+
2. If the app runs on another port, update `.env.local` `NEXT_PUBLIC_SITE_URL`,
|
|
286
|
+
`convex/.env` `SITE_URL`, and the app dev script together.
|
|
287
|
+
|
|
282
288
|
**Social:**
|
|
283
289
|
```ts
|
|
284
290
|
const signInSocial = useMutation(useSignInSocialMutationOptions());
|
|
@@ -7,10 +7,10 @@ Feature gate: only apply this section if auth is enabled.
|
|
|
7
7
|
If kitcn is not bootstrapped yet, start there first:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
npx kitcn@latest init -t next --yes
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Use `
|
|
13
|
+
Use `npx kitcn@latest init --yes` instead for in-place adoption of the
|
|
14
14
|
current supported app.
|
|
15
15
|
|
|
16
16
|
Then install auth:
|
|
@@ -82,7 +82,7 @@ export default defineAuth(() => ({
|
|
|
82
82
|
|
|
83
83
|
Canonical rule:
|
|
84
84
|
|
|
85
|
-
1. `
|
|
85
|
+
1. `npx kitcn@latest init --yes`, `bunx kitcn dev`, and `bunx kitcn add auth --yes` all drive generation of `convex/functions/generated/` when they own the local Convex flow.
|
|
86
86
|
2. `auth.ts` default-exports `defineAuth(() => ({ ...options, triggers }))` imported from `./generated/auth`.
|
|
87
87
|
3. Import runtime auth contract (`getAuth`, `authClient`, CRUD/triggers, `auth`) from `<functionsDir>/generated/auth`.
|
|
88
88
|
4. If `auth.ts` is missing or incomplete, codegen still succeeds and generated runtime exports `authEnabled = false` with setup guidance at call time.
|
|
@@ -86,7 +86,7 @@ Quickstart path:
|
|
|
86
86
|
```bash
|
|
87
87
|
mkdir my-app
|
|
88
88
|
cd my-app
|
|
89
|
-
|
|
89
|
+
npx kitcn@latest init -t next --yes
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
Then start the long-running backend with `bunx kitcn dev`, run the
|
|
@@ -99,19 +99,19 @@ Use the CLI first:
|
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
101
|
# Adopt the current supported app in place
|
|
102
|
-
|
|
102
|
+
npx kitcn@latest init --yes
|
|
103
103
|
|
|
104
104
|
# Adopt the current supported app on Concave
|
|
105
|
-
|
|
105
|
+
npx kitcn@latest --backend concave init --yes
|
|
106
106
|
|
|
107
107
|
# New Next.js app with deterministic shadcn bootstrap + first local Convex bootstrap
|
|
108
|
-
|
|
108
|
+
npx kitcn@latest init -t next --yes
|
|
109
109
|
|
|
110
110
|
# New Vite app with the React baseline + first local Convex bootstrap
|
|
111
|
-
|
|
111
|
+
npx kitcn@latest init -t vite --yes
|
|
112
112
|
|
|
113
113
|
# Nested app target
|
|
114
|
-
|
|
114
|
+
npx kitcn@latest init -t next --yes --cwd apps --name web
|
|
115
115
|
```
|
|
116
116
|
|
|
117
117
|
Then add only the features you want:
|
|
@@ -373,6 +373,13 @@ NEXT_PUBLIC_SITE_URL=http://localhost:3000
|
|
|
373
373
|
|
|
374
374
|
Rule: real-time URL uses `.cloud`; HTTP/router/caller URL uses `.site`.
|
|
375
375
|
|
|
376
|
+
Local auth contract:
|
|
377
|
+
|
|
378
|
+
1. Default app origin is `http://localhost:3000`.
|
|
379
|
+
2. If you move the app to another local port, update `.env.local`
|
|
380
|
+
`NEXT_PUBLIC_SITE_URL`, `convex/.env` `SITE_URL`, and the app dev script
|
|
381
|
+
together.
|
|
382
|
+
|
|
376
383
|
### 4.3 Typed env helper (recommended for full backend parity)
|
|
377
384
|
|
|
378
385
|
When multiple Convex functions and libs share env values (auth, billing, dev guards), create one typed helper:
|
|
@@ -598,6 +605,7 @@ CLI commands:
|
|
|
598
605
|
```bash
|
|
599
606
|
bunx kitcn dev
|
|
600
607
|
# deterministic one-shot local runtime proof:
|
|
608
|
+
# stop any long-running local backend first
|
|
601
609
|
bunx kitcn verify
|
|
602
610
|
# optional fallback only if dev cannot run and backend is already active:
|
|
603
611
|
bunx kitcn codegen
|
|
@@ -622,6 +630,7 @@ dev session and auto-pushes later edits. Keep `env push` for `--prod`,
|
|
|
622
630
|
Run these after base setup (Sections 3-5) and before starting Section 6:
|
|
623
631
|
|
|
624
632
|
```bash
|
|
633
|
+
# stop any long-running local backend first
|
|
625
634
|
bunx kitcn verify
|
|
626
635
|
bunx convex run internal.seed.seed
|
|
627
636
|
bunx convex run internal.init.default
|
|
@@ -643,6 +652,7 @@ Then sanity-check runtime paths (non-auth only):
|
|
|
643
652
|
Run this after Section 6 and before Sections 7-10:
|
|
644
653
|
|
|
645
654
|
```bash
|
|
655
|
+
# stop any long-running local backend first
|
|
646
656
|
bunx kitcn verify
|
|
647
657
|
bun run typecheck || bunx tsc --noEmit
|
|
648
658
|
bun test
|
|
@@ -172,4 +172,3 @@ Provider mount checklist:
|
|
|
172
172
|
1. `AppConvexProvider` wraps app routes before client feature components render.
|
|
173
173
|
2. `CRPCProvider` is nested inside TanStack Query provider (`QueryClientProvider`).
|
|
174
174
|
3. Next.js apps pass token where required (Section 8.A.4) or intentionally run without token for public-only paths.
|
|
175
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## 5. Core Backend
|
|
2
2
|
|
|
3
|
-
For production bootstrap, start in the CLI Registry: use `
|
|
3
|
+
For production bootstrap, start in the CLI Registry: use `npx kitcn@latest init -t <next|vite> --yes` for the shortest fresh local path, `npx kitcn@latest init --yes` to adopt the current app and finish the first local Convex bootstrap in one command, and `bunx kitcn add <plugin>` for feature layers. This file is the manual backend wiring reference.
|
|
4
4
|
|
|
5
5
|
### 5.1 Define schema and relations
|
|
6
6
|
|
|
@@ -204,8 +204,8 @@ Do not fake generated files.
|
|
|
204
204
|
|
|
205
205
|
Automation/non-interactive path:
|
|
206
206
|
|
|
207
|
-
1. Run `
|
|
208
|
-
2. Run `bunx kitcn verify` when you want a non-interactive local runtime proof in the current app. It reuses an existing local deployment when one is already configured, and only falls back to anonymous fresh-local setup when it has to.
|
|
207
|
+
1. Run `npx kitcn@latest init --yes` when you want scaffold or adoption plus the one-shot local Convex bootstrap in one command.
|
|
208
|
+
2. Run `bunx kitcn verify` when you want a non-interactive local runtime proof in the current app. Stop any long-running local backend first. It reuses an existing local deployment when one is already configured, and only falls back to anonymous fresh-local setup when it has to.
|
|
209
209
|
3. Confirm the generated runtime exists in `convex/functions/generated/server.ts`.
|
|
210
210
|
4. Then run `bunx kitcn dev` for ongoing codegen/API refresh.
|
|
211
211
|
|
|
@@ -222,7 +222,7 @@ Agent command policy:
|
|
|
222
222
|
1. Default to `bunx kitcn dev`.
|
|
223
223
|
2. `kitcn dev` already runs codegen/API generation.
|
|
224
224
|
3. Do not run `bunx kitcn codegen` as a separate default step.
|
|
225
|
-
4. Use `bunx kitcn verify` for one-shot local runtime proof in CI or agent runs.
|
|
225
|
+
4. Use `bunx kitcn verify` for one-shot local runtime proof in CI or agent runs, with any long-running local backend stopped first.
|
|
226
226
|
5. Use manual `bunx kitcn codegen` only as fallback when `kitcn dev` cannot be run and backend is already active.
|
|
227
227
|
6. Use `bunx kitcn insights` for cloud-deployment debugging; it forwards to the upstream Convex insights CLI.
|
|
228
228
|
|