kitcn 0.12.12 → 0.12.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { C as ConvexNumberBuilderInitial, E as ConvexIdBuilderInitial, N as ConvexCustomBuilderInitial, dn as ConvexTableWithColumns, tr as ConvexTextBuilderInitial } from "../where-clause-compiler-BpfS2FJi.js";
1
+ import { C as ConvexNumberBuilderInitial, E as ConvexIdBuilderInitial, N as ConvexCustomBuilderInitial, dn as ConvexTableWithColumns, tr as ConvexTextBuilderInitial } from "../where-clause-compiler-DdjN63Io.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-9Yg1NHlV.js";
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-Dzx2IRId.js";
2
2
  export { type AuthRuntime, BetterAuthOptionsWithoutDatabase, type GeneratedAuthDisabledReasonKind, GenericAuthBeforeResult, GenericAuthDefinition, GenericAuthTriggerChange, GenericAuthTriggerHandlers, GenericAuthTriggers, createDisabledAuthRuntime, defineAuth, getGeneratedAuthDisabledReason };
@@ -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-9Yg1NHlV.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-Dzx2IRId.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;
107
106
  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<"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>;
113
+ operator: convex_values0.VUnion<"lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined, [convex_values0.VLiteral<"lt", "required">, convex_values0.VLiteral<"lte", "required">, convex_values0.VLiteral<"gt", "required">, convex_values0.VLiteral<"gte", "required">, convex_values0.VLiteral<"eq", "required">, convex_values0.VLiteral<"in", "required">, convex_values0.VLiteral<"not_in", "required">, convex_values0.VLiteral<"ne", "required">, convex_values0.VLiteral<"contains", "required">, convex_values0.VLiteral<"starts_with", "required">, convex_values0.VLiteral<"ends_with", "required">], "optional", never>;
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", "value" | "operator" | "field" | "connector">;
115
+ }, "required", "value" | "connector" | "field" | "operator">;
116
116
  declare const adapterArgsValidator: convex_values0.VObject<{
117
- limit?: number | undefined;
117
+ select?: string[] | undefined;
118
118
  where?: {
119
- operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
120
119
  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
- select?: string[] | undefined;
124
+ limit?: number | 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;
145
144
  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;
150
149
  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<"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>;
156
+ operator: convex_values0.VUnion<"lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined, [convex_values0.VLiteral<"lt", "required">, convex_values0.VLiteral<"lte", "required">, convex_values0.VLiteral<"gt", "required">, convex_values0.VLiteral<"gte", "required">, convex_values0.VLiteral<"eq", "required">, convex_values0.VLiteral<"in", "required">, convex_values0.VLiteral<"not_in", "required">, convex_values0.VLiteral<"ne", "required">, convex_values0.VLiteral<"contains", "required">, convex_values0.VLiteral<"starts_with", "required">, convex_values0.VLiteral<"ends_with", "required">], "optional", never>;
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", "value" | "operator" | "field" | "connector">, "optional">;
159
- }, "required", "limit" | "where" | "model" | "select" | "offset" | "sortBy" | "sortBy.field" | "sortBy.direction">;
158
+ }, "required", "value" | "connector" | "field" | "operator">, "optional">;
159
+ }, "required", "model" | "select" | "where" | "limit" | "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;
@@ -7,12 +7,12 @@ import { createHash, randomBytes } from "node:crypto";
7
7
  import { confirm, isCancel, multiselect, select, spinner } from "@clack/prompts";
8
8
  import { parse } from "dotenv";
9
9
  import { execa } from "execa";
10
- import { createJiti } from "jiti";
11
10
  import { v } from "convex/values";
12
11
  import "convex/server";
13
12
  import { createInterface } from "node:readline/promises";
14
13
  import { build } from "esbuild";
15
14
  import { createColors } from "picocolors";
15
+ import { createJiti } from "jiti";
16
16
  import os from "node:os";
17
17
  import { parse as parse$1 } from "@babel/parser";
18
18
 
@@ -2195,6 +2195,174 @@ const highlighter = {
2195
2195
  }
2196
2196
  };
2197
2197
 
2198
+ //#endregion
2199
+ //#region src/cli/utils/project-jiti.ts
2200
+ const JITI_EXPORT_CONDITION_PRIORITY = [
2201
+ "bun",
2202
+ "import",
2203
+ "module",
2204
+ "default",
2205
+ "require"
2206
+ ];
2207
+ const SERVER_PARSER_SHIM_SOURCE = `const createProcedureBuilder = () => {
2208
+ const createMiddleware = (handler = undefined) => ({
2209
+ _handler: handler,
2210
+ pipe(nextHandler) {
2211
+ return createMiddleware(nextHandler);
2212
+ },
2213
+ });
2214
+ const builder = {
2215
+ internal() {
2216
+ return builder;
2217
+ },
2218
+ use() {
2219
+ return builder;
2220
+ },
2221
+ meta() {
2222
+ return builder;
2223
+ },
2224
+ input() {
2225
+ return builder;
2226
+ },
2227
+ output() {
2228
+ return builder;
2229
+ },
2230
+ query(handler) {
2231
+ return {
2232
+ _crpcMeta: { type: "query" },
2233
+ _handler: handler,
2234
+ };
2235
+ },
2236
+ mutation(handler) {
2237
+ return {
2238
+ _crpcMeta: { type: "mutation" },
2239
+ _handler: handler,
2240
+ };
2241
+ },
2242
+ action(handler) {
2243
+ return {
2244
+ _crpcMeta: { type: "action" },
2245
+ _handler: handler,
2246
+ };
2247
+ },
2248
+ middleware(handler) {
2249
+ return createMiddleware(handler);
2250
+ },
2251
+ };
2252
+
2253
+ return builder;
2254
+ };
2255
+
2256
+ export const initCRPC = {
2257
+ meta() {
2258
+ return this;
2259
+ },
2260
+ dataModel() {
2261
+ return this;
2262
+ },
2263
+ context() {
2264
+ return this;
2265
+ },
2266
+ middleware(handler) {
2267
+ return createMiddleware(handler);
2268
+ },
2269
+ create() {
2270
+ return {
2271
+ query: createProcedureBuilder(),
2272
+ mutation: createProcedureBuilder(),
2273
+ action: createProcedureBuilder(),
2274
+ httpAction: createProcedureBuilder(),
2275
+ middleware: createMiddleware,
2276
+ router: (record = {}) => record,
2277
+ };
2278
+ },
2279
+ };
2280
+
2281
+ export class CRPCError extends Error {
2282
+ constructor(options = {}) {
2283
+ super(options.message ?? options.code ?? "CRPC error");
2284
+ this.code = options.code;
2285
+ }
2286
+ }
2287
+
2288
+ export const createEnv = ({ schema }) => () =>
2289
+ typeof schema?.parse === "function" ? schema.parse(process.env) : process.env;
2290
+ export const createHttpRouter = (_app, httpRouter) => httpRouter ?? {};
2291
+ export const createCallerFactory = () => () => ({});
2292
+ export const createApiLeaf = (fnOrRoot, pathOrMeta, maybeMeta) => {
2293
+ const meta = maybeMeta ?? pathOrMeta;
2294
+ const fn = Array.isArray(pathOrMeta)
2295
+ ? pathOrMeta.reduce((current, segment) => current?.[segment], fnOrRoot)
2296
+ : fnOrRoot;
2297
+ return Object.assign(fn ?? {}, meta ?? {}, { functionRef: fn });
2298
+ };
2299
+ export const createGeneratedFunctionReference = (name) => ({
2300
+ [Symbol.for("functionName")]: name,
2301
+ });
2302
+ export const typedProcedureResolver = (_functionRef, resolver) => resolver;
2303
+ export const createGeneratedRegistryRuntime = () => ({
2304
+ getCallerFactory() {
2305
+ return () => ({});
2306
+ },
2307
+ getHandlerFactory() {
2308
+ return () => ({});
2309
+ },
2310
+ });
2311
+ `;
2312
+ const resolveJitiExportTarget = (target) => {
2313
+ if (typeof target === "string") return target;
2314
+ if (Array.isArray(target)) {
2315
+ for (const entry of target) {
2316
+ const resolved = resolveJitiExportTarget(entry);
2317
+ if (resolved) return resolved;
2318
+ }
2319
+ return null;
2320
+ }
2321
+ if (!target || typeof target !== "object") return null;
2322
+ const record = target;
2323
+ for (const condition of JITI_EXPORT_CONDITION_PRIORITY) {
2324
+ const resolved = resolveJitiExportTarget(record[condition]);
2325
+ if (resolved) return resolved;
2326
+ }
2327
+ for (const value of Object.values(record)) {
2328
+ const resolved = resolveJitiExportTarget(value);
2329
+ if (resolved) return resolved;
2330
+ }
2331
+ return null;
2332
+ };
2333
+ const buildLocalPackageExportAliases = (cwd, packageName) => {
2334
+ const packageDir = path.join(cwd, "node_modules", ...packageName.split("/"));
2335
+ const packageJsonPath = path.join(packageDir, "package.json");
2336
+ if (!fs.existsSync(packageJsonPath)) return {};
2337
+ const exportsField = JSON.parse(fs.readFileSync(packageJsonPath, "utf8")).exports;
2338
+ if (!exportsField || typeof exportsField !== "object" || Array.isArray(exportsField)) return {};
2339
+ const aliases = {};
2340
+ for (const [exportKey, exportTarget] of Object.entries(exportsField)) {
2341
+ const resolvedTarget = resolveJitiExportTarget(exportTarget);
2342
+ if (!resolvedTarget || !resolvedTarget.startsWith("./")) continue;
2343
+ const specifier = exportKey === "." ? packageName : exportKey.startsWith("./") ? `${packageName}${exportKey.slice(1)}` : null;
2344
+ if (!specifier) continue;
2345
+ aliases[specifier] = path.join(packageDir, resolvedTarget);
2346
+ }
2347
+ return aliases;
2348
+ };
2349
+ const ensureServerParserShim = (cwd) => {
2350
+ const shimDir = path.join(cwd, "node_modules", ".kitcn");
2351
+ const shimPath = path.join(shimDir, "project-jiti-server-shim.mjs");
2352
+ fs.mkdirSync(shimDir, { recursive: true });
2353
+ if (!fs.existsSync(shimPath) || fs.readFileSync(shimPath, "utf8") !== SERVER_PARSER_SHIM_SOURCE) fs.writeFileSync(shimPath, SERVER_PARSER_SHIM_SOURCE, "utf8");
2354
+ return shimPath;
2355
+ };
2356
+ const createProjectJiti = (cwd = process.cwd()) => createJiti(cwd, {
2357
+ interopDefault: true,
2358
+ moduleCache: false,
2359
+ alias: {
2360
+ ...buildLocalPackageExportAliases(cwd, "kitcn"),
2361
+ ...buildLocalPackageExportAliases(cwd, "convex"),
2362
+ "kitcn/server": ensureServerParserShim(cwd)
2363
+ }
2364
+ });
2365
+
2198
2366
  //#endregion
2199
2367
  //#region src/cli/analyze.ts
2200
2368
  const MB = 1024 * 1024;
@@ -2427,10 +2595,7 @@ const listConvexHandlerExports = async (entryPoint, jitiInstance) => {
2427
2595
  const scanHandlerExportsByEntry = async (entryPoints) => {
2428
2596
  globalThis.__KITCN_CODEGEN__ = true;
2429
2597
  try {
2430
- const jitiInstance = createJiti(process.cwd(), {
2431
- interopDefault: true,
2432
- moduleCache: false
2433
- });
2598
+ const jitiInstance = createProjectJiti();
2434
2599
  const results = await Promise.all(entryPoints.map(async (entryPoint) => ({
2435
2600
  entryPoint,
2436
2601
  exportNames: await listConvexHandlerExports(entryPoint, jitiInstance)
@@ -4054,7 +4219,6 @@ function emitGeneratedServerPlaceholderFile() {
4054
4219
  // This file is auto-generated by kitcn
4055
4220
  // Do not edit manually. Run \`kitcn codegen\` to regenerate.
4056
4221
 
4057
- import { initCRPC as baseInitCRPC } from 'kitcn/server';
4058
4222
  import type {
4059
4223
  ActionCtx as ServerActionCtx,
4060
4224
  MutationCtx as ServerMutationCtx,
@@ -4065,8 +4229,59 @@ export type QueryCtx = ServerQueryCtx;
4065
4229
  export type MutationCtx = ServerMutationCtx;
4066
4230
  export type ActionCtx = ServerActionCtx;
4067
4231
  export type GenericCtx = QueryCtx | MutationCtx | ActionCtx;
4068
- export const initCRPC = baseInitCRPC;
4069
- export const httpAction = undefined as unknown;
4232
+
4233
+ const createProcedureBuilder = () => {
4234
+ const builder = {
4235
+ internal() {
4236
+ return builder;
4237
+ },
4238
+ use() {
4239
+ return builder;
4240
+ },
4241
+ meta() {
4242
+ return builder;
4243
+ },
4244
+ input() {
4245
+ return builder;
4246
+ },
4247
+ output() {
4248
+ return builder;
4249
+ },
4250
+ query(handler?: unknown) {
4251
+ return handler ?? builder;
4252
+ },
4253
+ mutation(handler?: unknown) {
4254
+ return handler ?? builder;
4255
+ },
4256
+ action(handler?: unknown) {
4257
+ return handler ?? builder;
4258
+ },
4259
+ };
4260
+
4261
+ return builder;
4262
+ };
4263
+
4264
+ export const initCRPC = {
4265
+ meta() {
4266
+ return this;
4267
+ },
4268
+ dataModel() {
4269
+ return this;
4270
+ },
4271
+ context() {
4272
+ return this;
4273
+ },
4274
+ create() {
4275
+ return {
4276
+ query: createProcedureBuilder(),
4277
+ mutation: createProcedureBuilder(),
4278
+ action: createProcedureBuilder(),
4279
+ httpAction: createProcedureBuilder(),
4280
+ router: (record = {}) => record,
4281
+ };
4282
+ },
4283
+ };
4284
+ export const httpAction = createProcedureBuilder();
4070
4285
 
4071
4286
  export function withOrm<Ctx>(ctx: Ctx): Ctx {
4072
4287
  return ctx;
@@ -4166,10 +4381,7 @@ async function resolveSchemaMetadataForCodegen(functionsDir, debug) {
4166
4381
  hasRelations: false,
4167
4382
  hasTriggers: false
4168
4383
  };
4169
- const jitiInstance = createJiti(process.cwd(), {
4170
- interopDefault: true,
4171
- moduleCache: false
4172
- });
4384
+ const jitiInstance = createProjectJiti();
4173
4385
  try {
4174
4386
  const schemaModule = await jitiInstance.import(schemaPath);
4175
4387
  const schemaValue = schemaModule && typeof schemaModule === "object" ? schemaModule.default ?? schemaModule : null;
@@ -4803,10 +5015,7 @@ async function generateMeta(sharedDir, options) {
4803
5015
  if (generateApi) {
4804
5016
  globalThis.__KITCN_CODEGEN__ = true;
4805
5017
  try {
4806
- const jitiInstance = createJiti(process.cwd(), {
4807
- interopDefault: true,
4808
- moduleCache: false
4809
- });
5018
+ const jitiInstance = createProjectJiti();
4810
5019
  const files = listFilesRecursive(functionsDir).filter((file) => file.endsWith(".ts") && isValidConvexFile(file));
4811
5020
  const existingRuntimeFilesBeforeParse = new Set(listGeneratedRuntimeFiles(functionsDir));
4812
5021
  const runtimePlaceholderModules = [...new Set([
@@ -6465,10 +6674,7 @@ const readPluginRootSchemaOwnership = (value) => {
6465
6674
  const resolveSchemaInstalledPlugins = async (functionsDir) => {
6466
6675
  const schemaPath = getSchemaFilePath(functionsDir);
6467
6676
  if (!fs.existsSync(schemaPath)) return [];
6468
- const jiti = createJiti(process.cwd(), {
6469
- interopDefault: true,
6470
- moduleCache: false
6471
- });
6677
+ const jiti = createProjectJiti();
6472
6678
  try {
6473
6679
  const schemaModule = await jiti.import(schemaPath);
6474
6680
  const schemaValue = schemaModule && typeof schemaModule === "object" ? schemaModule.default ?? schemaModule : null;
@@ -9072,10 +9278,7 @@ const loadAuthOptionsFromDefinition = async (authDefinitionPath) => {
9072
9278
  fs.writeFileSync(tempAuthPath, authSource.replaceAll(GENERATED_AUTH_IMPORT_RE, `./generated/${tempGeneratedAuthBase}`), "utf8");
9073
9279
  }
9074
9280
  try {
9075
- const authModule = await createJiti(importPath, {
9076
- interopDefault: true,
9077
- moduleCache: false
9078
- }).import(importPath);
9281
+ const authModule = await createProjectJiti().import(importPath);
9079
9282
  const authDefinition = authModule && typeof authModule === "object" ? authModule.default : null;
9080
9283
  if (typeof authDefinition !== "function") return null;
9081
9284
  const authOptions = authDefinition({});
@@ -12097,14 +12300,63 @@ const INIT_GENERATED_SERVER_STUB_TEMPLATE = `import type {
12097
12300
  GenericMutationCtx,
12098
12301
  GenericQueryCtx,
12099
12302
  } from 'convex/server';
12100
- import { initCRPC as baseInitCRPC } from 'kitcn/server';
12101
12303
 
12102
12304
  export type QueryCtx = GenericQueryCtx<GenericDataModel>;
12103
12305
  export type MutationCtx = GenericMutationCtx<GenericDataModel>;
12104
12306
  export type ActionCtx = GenericActionCtx<GenericDataModel>;
12105
12307
  export type GenericCtx = QueryCtx | MutationCtx | ActionCtx;
12106
12308
 
12107
- export const initCRPC = baseInitCRPC;
12309
+ const createProcedureBuilder = () => {
12310
+ const builder = {
12311
+ internal() {
12312
+ return builder;
12313
+ },
12314
+ use() {
12315
+ return builder;
12316
+ },
12317
+ meta() {
12318
+ return builder;
12319
+ },
12320
+ input() {
12321
+ return builder;
12322
+ },
12323
+ output() {
12324
+ return builder;
12325
+ },
12326
+ query(handler?: unknown) {
12327
+ return handler ?? builder;
12328
+ },
12329
+ mutation(handler?: unknown) {
12330
+ return handler ?? builder;
12331
+ },
12332
+ action(handler?: unknown) {
12333
+ return handler ?? builder;
12334
+ },
12335
+ };
12336
+
12337
+ return builder;
12338
+ };
12339
+
12340
+ export const initCRPC = {
12341
+ meta() {
12342
+ return this;
12343
+ },
12344
+ dataModel() {
12345
+ return this;
12346
+ },
12347
+ context() {
12348
+ return this;
12349
+ },
12350
+ create() {
12351
+ return {
12352
+ query: createProcedureBuilder(),
12353
+ mutation: createProcedureBuilder(),
12354
+ action: createProcedureBuilder(),
12355
+ httpAction: createProcedureBuilder(),
12356
+ router: (record = {}) => record,
12357
+ };
12358
+ },
12359
+ };
12108
12360
  `;
12109
12361
  const INIT_LOCAL_BOOTSTRAP_READY_RE = /(Convex|Concave) functions ready!/i;
12110
12362
  const CONVEX_INIT_CREATED_CONFIG_RE = /Configured a local deployment|Provisioned a .* deployment|saved its name as CONVEX_DEPLOYMENT/i;
@@ -12327,6 +12579,11 @@ const CONVEX_DEPLOYMENT_ENV_KEYS = [
12327
12579
  "CONVEX_SELF_HOSTED_ADMIN_KEY"
12328
12580
  ];
12329
12581
  const LOCAL_CONVEX_DEPLOYMENT_PREFIXES = ["local:", "anonymous:"];
12582
+ const LOCAL_CONVEX_DEPLOYMENT_VALUES = ["anonymous-agent"];
12583
+ function isLocalConvexDeploymentValue(deployment) {
12584
+ if (!deployment) return false;
12585
+ return LOCAL_CONVEX_DEPLOYMENT_VALUES.includes(deployment) || LOCAL_CONVEX_DEPLOYMENT_PREFIXES.some((prefix) => deployment.startsWith(prefix));
12586
+ }
12330
12587
  function createBackendCommandEnv(overrides) {
12331
12588
  const clearedDeploymentEnv = Object.fromEntries(CONVEX_DEPLOYMENT_ENV_KEYS.map((key) => [key, void 0]));
12332
12589
  return {
@@ -12337,7 +12594,7 @@ function createBackendCommandEnv(overrides) {
12337
12594
  }
12338
12595
  function hasRemoteConvexDeploymentEnv(env) {
12339
12596
  const deployment = env.CONVEX_DEPLOYMENT?.trim();
12340
- if (deployment && !LOCAL_CONVEX_DEPLOYMENT_PREFIXES.some((prefix) => deployment.startsWith(prefix))) return true;
12597
+ if (deployment && !isLocalConvexDeploymentValue(deployment)) return true;
12341
12598
  return Boolean(env.CONVEX_DEPLOY_KEY?.trim() || env.CONVEX_SELF_HOSTED_URL?.trim() || env.CONVEX_SELF_HOSTED_ADMIN_KEY?.trim());
12342
12599
  }
12343
12600
  function readConvexTargetEnvFile(args, cwd = process.cwd()) {
@@ -13727,10 +13984,7 @@ function buildAggregateFingerprintPayload(tables) {
13727
13984
  async function computeAggregateIndexFingerprint(functionsDir) {
13728
13985
  const schemaPath = join(functionsDir, "schema.ts");
13729
13986
  if (!fs.existsSync(schemaPath)) return null;
13730
- const schemaModule = await createJiti(process.cwd(), {
13731
- interopDefault: true,
13732
- moduleCache: false
13733
- }).import(schemaPath);
13987
+ const schemaModule = await createProjectJiti().import(schemaPath);
13734
13988
  if (!schemaModule || typeof schemaModule !== "object") return null;
13735
13989
  const schemaValue = resolveSchemaDefaultExport(schemaModule);
13736
13990
  if (!schemaValue) return null;
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { $ as resolvePluginPreset, A as resolveConfiguredBackend, B as runConvexInitIfNeeded, C as isInitialized, D as readPackageVersions, E as parseInitCommandArgs, F as runAfterScaffoldScript, G as trackProcess, H as runInitCommandFlow, I as runAggregateBackfillFlow, J as collectPluginScaffoldTemplates, K as withWorkingDirectory, L as runAggregatePruneFlow, M as resolveInitProjectDir, N as resolveMigrationConfig, O as resolveBackfillConfig, P as resolveRunDeps, Q as resolveAddTemplateDefaults, R as runBackendFunction, S as isEntryPoint, T as parseBackendRunJson, Tt as highlighter, U as runMigrationCreate, V as runDevSchemaBackfillIfNeeded, W as runMigrationFlow, X as promptForPluginSelection, Y as filterScaffoldTemplatePathMap, Z as promptForScaffoldTemplateSelection, _ as formatInfoOutput, _t as inspectPluginDependencyInstall, a as cleanup, at as isSupportedPluginKey, b as hasRemoteConvexDeploymentEnv, bt as serializeEnvValue, c as createCommandEnv, ct as assertSchemaFileExists, d as extractBackfillCliOptions, dt as getSchemaFilePath, et as resolvePresetScaffoldTemplates, f as extractConcaveRunTargetArgs, ft as readPluginLockfile, g as formatDocsOutput, gt as applyPluginDependencyInstall, h as extractResetCliOptions, ht as applyPlanningDependencyInstall, i as buildInitializationPlan, it as getSupportedPluginKeys, j as resolveDocTopic, k as resolveCodegenTrimSegments, l as ensureConvexGitignoreEntry, lt as collectInstalledPluginKeys, m as extractMigrationDownOptions, mt as applyDependencyHintsInstall, n as applyPluginInstallPlanFiles, nt as resolveTemplatesByIdOrThrow, o as createBackendAdapter, ot as buildPluginInstallPlan, p as extractMigrationCliOptions, pt as resolveSchemaInstalledPlugins, q as createSpinner, r as assertNoRemovedDevPreRunFlag, rt as getPluginCatalogEntry, s as createBackendCommandEnv, st as resolvePluginScaffoldRoots, t as applyDependencyInstallPlan, tt as resolveTemplateSelectionSource, u as extractBackendRunTargetArgs, ut as getPluginLockfilePath, v as getAggregateBackfillDeploymentKey, vt as resolveProjectScaffoldContext, w as parseArgs, wt as logger, x as isConvexDevPreRunConflictFlag, xt as stripConvexCommandNoise, y as getDevAggregateBackfillStatePath, yt as resolveAuthEnvState, z as runConfiguredCodegen } from "./backend-core-Cf6h5gQc.mjs";
2
+ import { $ as resolvePluginPreset, A as resolveConfiguredBackend, B as runConvexInitIfNeeded, C as isInitialized, D as readPackageVersions, E as parseInitCommandArgs, F as runAfterScaffoldScript, G as trackProcess, H as runInitCommandFlow, I as runAggregateBackfillFlow, J as collectPluginScaffoldTemplates, K as withWorkingDirectory, L as runAggregatePruneFlow, M as resolveInitProjectDir, N as resolveMigrationConfig, O as resolveBackfillConfig, P as resolveRunDeps, Q as resolveAddTemplateDefaults, R as runBackendFunction, S as isEntryPoint, T as parseBackendRunJson, Tt as highlighter, U as runMigrationCreate, V as runDevSchemaBackfillIfNeeded, W as runMigrationFlow, X as promptForPluginSelection, Y as filterScaffoldTemplatePathMap, Z as promptForScaffoldTemplateSelection, _ as formatInfoOutput, _t as inspectPluginDependencyInstall, a as cleanup, at as isSupportedPluginKey, b as hasRemoteConvexDeploymentEnv, bt as serializeEnvValue, c as createCommandEnv, ct as assertSchemaFileExists, d as extractBackfillCliOptions, dt as getSchemaFilePath, et as resolvePresetScaffoldTemplates, f as extractConcaveRunTargetArgs, ft as readPluginLockfile, g as formatDocsOutput, gt as applyPluginDependencyInstall, h as extractResetCliOptions, ht as applyPlanningDependencyInstall, i as buildInitializationPlan, it as getSupportedPluginKeys, j as resolveDocTopic, k as resolveCodegenTrimSegments, l as ensureConvexGitignoreEntry, lt as collectInstalledPluginKeys, m as extractMigrationDownOptions, mt as applyDependencyHintsInstall, n as applyPluginInstallPlanFiles, nt as resolveTemplatesByIdOrThrow, o as createBackendAdapter, ot as buildPluginInstallPlan, p as extractMigrationCliOptions, pt as resolveSchemaInstalledPlugins, q as createSpinner, r as assertNoRemovedDevPreRunFlag, rt as getPluginCatalogEntry, s as createBackendCommandEnv, st as resolvePluginScaffoldRoots, t as applyDependencyInstallPlan, tt as resolveTemplateSelectionSource, u as extractBackendRunTargetArgs, ut as getPluginLockfilePath, v as getAggregateBackfillDeploymentKey, vt as resolveProjectScaffoldContext, w as parseArgs, wt as logger, x as isConvexDevPreRunConflictFlag, xt as stripConvexCommandNoise, y as getDevAggregateBackfillStatePath, yt as resolveAuthEnvState, z as runConfiguredCodegen } from "./backend-core-7NEZ71jw.mjs";
3
3
  import fs, { existsSync, readFileSync } from "node:fs";
4
4
  import path, { delimiter, dirname, join, relative, resolve } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
@@ -652,6 +652,12 @@ function resolveImplicitConvexRemoteDeploymentEnv(cwd = process.cwd()) {
652
652
  CONVEX_SELF_HOSTED_ADMIN_KEY: parsed.CONVEX_SELF_HOSTED_ADMIN_KEY
653
653
  };
654
654
  }
655
+ function resolveImplicitConvexAnonymousAgentMode(cwd = process.cwd()) {
656
+ const envLocalPath = join(cwd, ".env.local");
657
+ if (!fs.existsSync(envLocalPath)) return;
658
+ const deployment = parseEnv(fs.readFileSync(envLocalPath, "utf8")).CONVEX_DEPLOYMENT?.trim();
659
+ if (deployment === "anonymous-agent" || deployment?.startsWith("anonymous:")) return "anonymous";
660
+ }
655
661
  function resolveConvexEnvFileCommandEnv(args, cwd = process.cwd()) {
656
662
  let envFilePath = null;
657
663
  for (let i = 0; i < args.length; i += 1) {
@@ -874,6 +880,7 @@ const handleDevCommand = async (argv, deps) => {
874
880
  const explicitConvexTargetArgs = extractBackendRunTargetArgs("convex", convexDevArgs);
875
881
  const explicitConvexCommandEnv = resolveConvexEnvFileCommandEnv(convexDevArgs);
876
882
  const implicitConvexCommandEnv = backend === "convex" && explicitConvexTargetArgs.length === 0 && explicitConvexCommandEnv === null ? resolveImplicitConvexRemoteDeploymentEnv() : null;
883
+ const implicitConvexAgentMode = backend === "convex" && explicitConvexTargetArgs.length === 0 && !explicitConvexCommandEnv?.CONVEX_AGENT_MODE && !implicitConvexCommandEnv?.CONVEX_AGENT_MODE ? resolveImplicitConvexAnonymousAgentMode() : void 0;
877
884
  const effectiveConvexCommandEnv = explicitConvexCommandEnv ?? implicitConvexCommandEnv;
878
885
  const preRunFunction = config.dev.preRun;
879
886
  if (bootstrap && backend !== "convex") throw new Error("`kitcn dev --bootstrap` is only supported for backend convex.");
@@ -919,7 +926,8 @@ const handleDevCommand = async (argv, deps) => {
919
926
  echoOutput: false,
920
927
  env: {
921
928
  ...localNodeEnvOverrides,
922
- ...effectiveConvexCommandEnv
929
+ ...effectiveConvexCommandEnv,
930
+ ...implicitConvexAgentMode ? { CONVEX_AGENT_MODE: implicitConvexAgentMode } : {}
923
931
  },
924
932
  targetArgs
925
933
  });
@@ -970,6 +978,7 @@ const handleDevCommand = async (argv, deps) => {
970
978
  env: createBackendCommandEnv({
971
979
  ...localNodeEnvOverrides,
972
980
  ...effectiveConvexCommandEnv,
981
+ ...implicitConvexAgentMode ? { CONVEX_AGENT_MODE: implicitConvexAgentMode } : {},
973
982
  ...concaveLocalDevContract?.backendEnv
974
983
  }),
975
984
  reject: false
@@ -173,18 +173,10 @@ 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
- };
184
176
  input: {
185
177
  where?: {
186
- operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
187
178
  connector?: "AND" | "OR" | undefined;
179
+ operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
188
180
  value: string | number | boolean | string[] | number[] | null;
189
181
  field: string;
190
182
  }[] | undefined;
@@ -193,6 +185,14 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
193
185
  where?: any[] | undefined;
194
186
  model: string;
195
187
  };
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;
208
207
  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;
@@ -217,18 +217,19 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
217
217
  }, Promise<Record<string, unknown> | undefined>>;
218
218
  findMany: convex_server0.RegisteredQuery<"internal", {
219
219
  join?: any;
220
- limit?: number | undefined;
221
220
  where?: {
222
- operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
223
221
  connector?: "AND" | "OR" | undefined;
222
+ operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
224
223
  value: string | number | boolean | string[] | number[] | null;
225
224
  field: string;
226
225
  }[] | 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;
232
233
  paginationOpts: {
233
234
  id?: number;
234
235
  endCursor?: string | null;
@@ -237,47 +238,46 @@ declare const createApi: <Schema extends SchemaDefinition<any, any>, DataModel e
237
238
  numItems: number;
238
239
  cursor: string | null;
239
240
  };
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;
244
245
  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;
247
248
  value: string | number | boolean | string[] | number[] | null;
248
249
  field: string;
249
250
  }[] | 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
- };
264
256
  input: {
265
257
  where?: {
266
- operator?: "eq" | "ne" | "lt" | "lte" | "gt" | "gte" | "in" | "not_in" | "contains" | "starts_with" | "ends_with" | undefined;
267
258
  connector?: "AND" | "OR" | undefined;
259
+ operator?: "lt" | "lte" | "gt" | "gte" | "eq" | "in" | "not_in" | "ne" | "contains" | "starts_with" | "ends_with" | undefined;
268
260
  value: string | number | boolean | string[] | number[] | null;
269
261
  field: string;
270
262
  }[] | undefined;
263
+ model: string;
271
264
  update: {
272
265
  [x: string]: unknown;
273
266
  [x: number]: unknown;
274
267
  [x: symbol]: unknown;
275
268
  };
276
- model: string;
277
269
  } | {
278
270
  where?: any[] | undefined;
279
- update: any;
280
271
  model: string;
272
+ 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;
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;
294
293
  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;
298
299
  update: {
299
300
  [x: string]: unknown;
300
301
  [x: number]: unknown;
301
302
  [x: symbol]: unknown;
302
303
  };
303
- model: string;
304
304
  } | {
305
305
  where?: any[] | undefined;
306
- update: any;
307
306
  model: string;
307
+ update: any;
308
308
  };
309
309
  }, Promise<any>>;
310
310
  };
@@ -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-BpfS2FJi.js";
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-DdjN63Io.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";
package/dist/watcher.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { A as resolveConfiguredBackend, Ct as getConvexConfig, P as resolveRunDeps, St as generateMeta, wt as logger } from "./backend-core-Cf6h5gQc.mjs";
2
+ import { A as resolveConfiguredBackend, Ct as getConvexConfig, P as resolveRunDeps, St as generateMeta, wt as logger } from "./backend-core-7NEZ71jw.mjs";
3
3
  import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
 
@@ -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
- direction: ConvexTextBuilderInitial<""> & {
4401
+ cursor: ConvexTextBuilderInitial<""> & {
4402
4402
  _: {
4403
4403
  tableName: "migration_state";
4404
4404
  };
4405
4405
  } & {
4406
4406
  _: {
4407
- fieldName: "direction";
4407
+ fieldName: "cursor";
4408
4408
  };
4409
4409
  };
4410
- cursor: ConvexTextBuilderInitial<""> & {
4410
+ direction: ConvexTextBuilderInitial<""> & {
4411
4411
  _: {
4412
4412
  tableName: "migration_state";
4413
4413
  };
4414
4414
  } & {
4415
4415
  _: {
4416
- fieldName: "cursor";
4416
+ fieldName: "direction";
4417
4417
  };
4418
4418
  };
4419
4419
  status: ConvexTextBuilderInitial<""> & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitcn",
3
- "version": "0.12.12",
3
+ "version": "0.12.14",
4
4
  "description": "kitcn - React Query integration and CLI tools for Convex",
5
5
  "keywords": [
6
6
  "convex",