kitcn 0.25.1 → 0.25.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.
Files changed (29) hide show
  1. package/dist/aggregate/index.d.ts +2 -2
  2. package/dist/auth/generated/index.d.ts +1 -1
  3. package/dist/auth/index.d.ts +5 -5
  4. package/dist/auth/nextjs/index.d.ts +1 -1
  5. package/dist/{builder-C6JSHkRK.js → builder-DoeyW4Vq.js} +64 -64
  6. package/dist/{capabilities-Bem7xvGK.d.ts → capabilities-DtDfpdcH.d.ts} +20 -1
  7. package/dist/cli.mjs +118 -20
  8. package/dist/{generated-contract-disabled-BEc4d98x.d.ts → generated-contract-disabled-SzH57bhp.d.ts} +1 -1
  9. package/dist/{middleware-CdqNVyp8.js → middleware-DIj-bwVi.js} +1 -1
  10. package/dist/orm/aggregate-index/index.d.ts +1 -1
  11. package/dist/orm/aggregate-index/index.js +15 -4
  12. package/dist/orm/index.d.ts +2 -2
  13. package/dist/orm/index.js +89 -19
  14. package/dist/orm/migrations/index.d.ts +2 -2
  15. package/dist/plugins/index.js +1 -1
  16. package/dist/{procedure-caller-CgLWu5F9.js → procedure-caller-Dxae9DW5.js} +3 -3
  17. package/dist/{procedure-name-Bjw1JDIS.d.ts → procedure-name-l2YusEZI.d.ts} +52 -52
  18. package/dist/ratelimit/index.js +2 -2
  19. package/dist/{schema-BQd2Xrfb.js → schema-D8sVYuYO.js} +25 -11
  20. package/dist/server/index.d.ts +1 -1
  21. package/dist/server/index.js +2 -2
  22. package/dist/{where-clause-compiler-Dmq4HMrK.d.ts → where-clause-compiler-Bke7ULoY.d.ts} +74 -74
  23. package/package.json +1 -1
  24. package/skills/kitcn/SKILL.md +1 -1
  25. package/skills/kitcn/references/features/aggregates.md +3 -0
  26. package/skills/kitcn/references/features/auth-polar.md +2 -2
  27. package/skills/kitcn/references/features/scheduling.md +1 -1
  28. package/skills/kitcn/references/setup/auth.md +1 -1
  29. package/skills/kitcn/references/setup/index.md +3 -3
@@ -1,4 +1,4 @@
1
- import { Bn as ConvexTextBuilderInitial, Dr as SystemFieldAliases, F as DeleteMode, Gn as OrmRuntimeDefaults, H as EdgeMetadata, Hn as ConvexColumnBuilder, Hr as entityKind, Ht as RelationsConfigWithSchema, I as SerializedFilterExpression, Jn as OrmSchemaExtensionTriggers, Kn as OrmSchemaExtensionRelations, L as getChecks, M as OrmReader, Mr as ColumnBuilderBaseConfig, N as OrmWriter, Nt as AnyRelationsBuilderConfig, Or as SystemFields, P as CascadeMode, Pt as ExtractTablesFromSchema, Qt as OrmLifecycleChange, R as getForeignKeys, Rr as HasDefault, Rt as RelationsBuilder, St as OrderByClause, Ut as TableRelationalConfig, Vt as RelationsBuilderConfigValue, Wn as Columns, Wt as TablesRelationalConfig, Xn as OrmSchemaRelations, Xt as ConvexTableWithColumns, Yt as ConvexTable, Zn as OrmSchemaTriggers, b as MigrationSet, ft as InferSelectModel, in as RlsPolicy, jr as ColumnBuilder, jt as VectorSearchProvider, k as CreateDatabaseOptions, kr as $Type, nr as FilterExpression$1, r as OrmCapability, ut as InferInsertModel, z as getUniqueIndexes } from "./capabilities-Bem7xvGK.js";
1
+ import { Bn as ConvexTextBuilderInitial, Dr as SystemFieldAliases, F as DeleteMode, Gn as OrmRuntimeDefaults, H as EdgeMetadata, Hn as ConvexColumnBuilder, Hr as entityKind, Ht as RelationsConfigWithSchema, I as SerializedFilterExpression, Jn as OrmSchemaExtensionTriggers, Kn as OrmSchemaExtensionRelations, L as getChecks, M as OrmReader, Mr as ColumnBuilderBaseConfig, N as OrmWriter, Nt as AnyRelationsBuilderConfig, Or as SystemFields, P as CascadeMode, Pt as ExtractTablesFromSchema, Qt as OrmLifecycleChange, R as getForeignKeys, Rr as HasDefault, Rt as RelationsBuilder, St as OrderByClause, Ut as TableRelationalConfig, Vt as RelationsBuilderConfigValue, Wn as Columns, Wt as TablesRelationalConfig, Xn as OrmSchemaRelations, Xt as ConvexTableWithColumns, Yt as ConvexTable, Zn as OrmSchemaTriggers, b as MigrationSet, ft as InferSelectModel, in as RlsPolicy, jr as ColumnBuilder, jt as VectorSearchProvider, k as CreateDatabaseOptions, kr as $Type, nr as FilterExpression$1, r as OrmCapability, ut as InferInsertModel, z as getUniqueIndexes } from "./capabilities-DtDfpdcH.js";
2
2
  import * as convex_values0 from "convex/values";
3
3
  import { GenericId, Validator, Value } from "convex/values";
4
4
  import { DefineSchemaOptions, GenericDatabaseReader, GenericDatabaseWriter, GenericSchema, SchedulableFunctionReference, Scheduler, SchemaDefinition, internalActionGeneric, internalMutationGeneric } from "convex/server";
@@ -102,25 +102,20 @@ declare const migrationStorageTables: {
102
102
  fieldName: "status";
103
103
  };
104
104
  };
105
- cursor: ConvexTextBuilderInitial<""> & {
105
+ migrationId: ConvexTextBuilderInitial<""> & {
106
106
  _: {
107
- tableName: "migration_state";
107
+ notNull: true;
108
108
  };
109
109
  } & {
110
- _: {
111
- fieldName: "cursor";
112
- };
113
- };
114
- direction: ConvexTextBuilderInitial<""> & {
115
110
  _: {
116
111
  tableName: "migration_state";
117
112
  };
118
113
  } & {
119
114
  _: {
120
- fieldName: "direction";
115
+ fieldName: "migrationId";
121
116
  };
122
117
  };
123
- migrationId: ConvexTextBuilderInitial<""> & {
118
+ checksum: ConvexTextBuilderInitial<""> & {
124
119
  _: {
125
120
  notNull: true;
126
121
  };
@@ -130,10 +125,10 @@ declare const migrationStorageTables: {
130
125
  };
131
126
  } & {
132
127
  _: {
133
- fieldName: "migrationId";
128
+ fieldName: "checksum";
134
129
  };
135
130
  };
136
- checksum: ConvexTextBuilderInitial<""> & {
131
+ applied: ConvexBooleanBuilderInitial<""> & {
137
132
  _: {
138
133
  notNull: true;
139
134
  };
@@ -143,29 +138,34 @@ declare const migrationStorageTables: {
143
138
  };
144
139
  } & {
145
140
  _: {
146
- fieldName: "checksum";
141
+ fieldName: "applied";
147
142
  };
148
143
  };
149
- applied: ConvexBooleanBuilderInitial<""> & {
144
+ direction: ConvexTextBuilderInitial<""> & {
150
145
  _: {
151
- notNull: true;
146
+ tableName: "migration_state";
152
147
  };
153
148
  } & {
149
+ _: {
150
+ fieldName: "direction";
151
+ };
152
+ };
153
+ runId: ConvexTextBuilderInitial<""> & {
154
154
  _: {
155
155
  tableName: "migration_state";
156
156
  };
157
157
  } & {
158
158
  _: {
159
- fieldName: "applied";
159
+ fieldName: "runId";
160
160
  };
161
161
  };
162
- runId: ConvexTextBuilderInitial<""> & {
162
+ cursor: ConvexTextBuilderInitial<""> & {
163
163
  _: {
164
164
  tableName: "migration_state";
165
165
  };
166
166
  } & {
167
167
  _: {
168
- fieldName: "runId";
168
+ fieldName: "cursor";
169
169
  };
170
170
  };
171
171
  processed: ConvexNumberBuilderInitial<""> & {
@@ -1034,7 +1034,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1034
1034
  fieldName: "count";
1035
1035
  };
1036
1036
  };
1037
- tableKey: ConvexTextBuilderInitial<""> & {
1037
+ indexName: ConvexTextBuilderInitial<""> & {
1038
1038
  _: {
1039
1039
  notNull: true;
1040
1040
  };
@@ -1044,10 +1044,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1044
1044
  };
1045
1045
  } & {
1046
1046
  _: {
1047
- fieldName: "tableKey";
1047
+ fieldName: "indexName";
1048
1048
  };
1049
1049
  };
1050
- indexName: ConvexTextBuilderInitial<""> & {
1050
+ tableKey: ConvexTextBuilderInitial<""> & {
1051
1051
  _: {
1052
1052
  notNull: true;
1053
1053
  };
@@ -1057,7 +1057,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1057
1057
  };
1058
1058
  } & {
1059
1059
  _: {
1060
- fieldName: "indexName";
1060
+ fieldName: "tableKey";
1061
1061
  };
1062
1062
  };
1063
1063
  keyHash: ConvexTextBuilderInitial<""> & {
@@ -1133,7 +1133,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1133
1133
  readonly aggregate_member: ConvexTableWithColumns<{
1134
1134
  name: "aggregate_member";
1135
1135
  columns: {
1136
- kind: ConvexTextBuilderInitial<""> & {
1136
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1137
1137
  _: {
1138
1138
  notNull: true;
1139
1139
  };
@@ -1143,10 +1143,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1143
1143
  };
1144
1144
  } & {
1145
1145
  _: {
1146
- fieldName: "kind";
1146
+ fieldName: "updatedAt";
1147
1147
  };
1148
1148
  };
1149
- updatedAt: ConvexNumberBuilderInitial<""> & {
1149
+ kind: ConvexTextBuilderInitial<""> & {
1150
1150
  _: {
1151
1151
  notNull: true;
1152
1152
  };
@@ -1156,10 +1156,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1156
1156
  };
1157
1157
  } & {
1158
1158
  _: {
1159
- fieldName: "updatedAt";
1159
+ fieldName: "kind";
1160
1160
  };
1161
1161
  };
1162
- tableKey: ConvexTextBuilderInitial<""> & {
1162
+ indexName: ConvexTextBuilderInitial<""> & {
1163
1163
  _: {
1164
1164
  notNull: true;
1165
1165
  };
@@ -1169,10 +1169,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1169
1169
  };
1170
1170
  } & {
1171
1171
  _: {
1172
- fieldName: "tableKey";
1172
+ fieldName: "indexName";
1173
1173
  };
1174
1174
  };
1175
- indexName: ConvexTextBuilderInitial<""> & {
1175
+ tableKey: ConvexTextBuilderInitial<""> & {
1176
1176
  _: {
1177
1177
  notNull: true;
1178
1178
  };
@@ -1182,7 +1182,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1182
1182
  };
1183
1183
  } & {
1184
1184
  _: {
1185
- fieldName: "indexName";
1185
+ fieldName: "tableKey";
1186
1186
  };
1187
1187
  };
1188
1188
  keyHash: ConvexTextBuilderInitial<""> & {
@@ -1323,11 +1323,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1323
1323
  readonly aggregate_extrema: ConvexTableWithColumns<{
1324
1324
  name: "aggregate_extrema";
1325
1325
  columns: {
1326
- value: ConvexCustomBuilderInitial<"", convex_values0.VAny<any, "required", string>> & {
1327
- _: {
1328
- $type: convex_values0.Value;
1329
- };
1330
- } & {
1326
+ updatedAt: ConvexNumberBuilderInitial<""> & {
1331
1327
  _: {
1332
1328
  notNull: true;
1333
1329
  };
@@ -1337,10 +1333,14 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1337
1333
  };
1338
1334
  } & {
1339
1335
  _: {
1340
- fieldName: "value";
1336
+ fieldName: "updatedAt";
1341
1337
  };
1342
1338
  };
1343
- updatedAt: ConvexNumberBuilderInitial<""> & {
1339
+ value: ConvexCustomBuilderInitial<"", convex_values0.VAny<any, "required", string>> & {
1340
+ _: {
1341
+ $type: convex_values0.Value;
1342
+ };
1343
+ } & {
1344
1344
  _: {
1345
1345
  notNull: true;
1346
1346
  };
@@ -1350,7 +1350,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1350
1350
  };
1351
1351
  } & {
1352
1352
  _: {
1353
- fieldName: "updatedAt";
1353
+ fieldName: "value";
1354
1354
  };
1355
1355
  };
1356
1356
  count: ConvexNumberBuilderInitial<""> & {
@@ -1366,7 +1366,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1366
1366
  fieldName: "count";
1367
1367
  };
1368
1368
  };
1369
- tableKey: ConvexTextBuilderInitial<""> & {
1369
+ indexName: ConvexTextBuilderInitial<""> & {
1370
1370
  _: {
1371
1371
  notNull: true;
1372
1372
  };
@@ -1376,10 +1376,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1376
1376
  };
1377
1377
  } & {
1378
1378
  _: {
1379
- fieldName: "tableKey";
1379
+ fieldName: "indexName";
1380
1380
  };
1381
1381
  };
1382
- indexName: ConvexTextBuilderInitial<""> & {
1382
+ tableKey: ConvexTextBuilderInitial<""> & {
1383
1383
  _: {
1384
1384
  notNull: true;
1385
1385
  };
@@ -1389,7 +1389,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1389
1389
  };
1390
1390
  } & {
1391
1391
  _: {
1392
- fieldName: "indexName";
1392
+ fieldName: "tableKey";
1393
1393
  };
1394
1394
  };
1395
1395
  keyHash: ConvexTextBuilderInitial<""> & {
@@ -1589,19 +1589,6 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1589
1589
  fieldName: "status";
1590
1590
  };
1591
1591
  };
1592
- kind: ConvexTextBuilderInitial<""> & {
1593
- _: {
1594
- notNull: true;
1595
- };
1596
- } & {
1597
- _: {
1598
- tableName: "aggregate_state";
1599
- };
1600
- } & {
1601
- _: {
1602
- fieldName: "kind";
1603
- };
1604
- };
1605
1592
  cursor: ConvexTextBuilderInitial<""> & {
1606
1593
  _: {
1607
1594
  tableName: "aggregate_state";
@@ -1668,7 +1655,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1668
1655
  fieldName: "lastError";
1669
1656
  };
1670
1657
  };
1671
- tableKey: ConvexTextBuilderInitial<""> & {
1658
+ kind: ConvexTextBuilderInitial<""> & {
1672
1659
  _: {
1673
1660
  notNull: true;
1674
1661
  };
@@ -1678,7 +1665,7 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1678
1665
  };
1679
1666
  } & {
1680
1667
  _: {
1681
- fieldName: "tableKey";
1668
+ fieldName: "kind";
1682
1669
  };
1683
1670
  };
1684
1671
  indexName: ConvexTextBuilderInitial<""> & {
@@ -1720,6 +1707,19 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1720
1707
  fieldName: "metricDefinitionHash";
1721
1708
  };
1722
1709
  };
1710
+ tableKey: ConvexTextBuilderInitial<""> & {
1711
+ _: {
1712
+ notNull: true;
1713
+ };
1714
+ } & {
1715
+ _: {
1716
+ tableName: "aggregate_state";
1717
+ };
1718
+ } & {
1719
+ _: {
1720
+ fieldName: "tableKey";
1721
+ };
1722
+ };
1723
1723
  };
1724
1724
  }, {
1725
1725
  by_creation_time: ["_creationTime"];
@@ -1744,25 +1744,20 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1744
1744
  fieldName: "status";
1745
1745
  };
1746
1746
  };
1747
- cursor: ConvexTextBuilderInitial<""> & {
1747
+ migrationId: ConvexTextBuilderInitial<""> & {
1748
1748
  _: {
1749
- tableName: "migration_state";
1749
+ notNull: true;
1750
1750
  };
1751
1751
  } & {
1752
- _: {
1753
- fieldName: "cursor";
1754
- };
1755
- };
1756
- direction: ConvexTextBuilderInitial<""> & {
1757
1752
  _: {
1758
1753
  tableName: "migration_state";
1759
1754
  };
1760
1755
  } & {
1761
1756
  _: {
1762
- fieldName: "direction";
1757
+ fieldName: "migrationId";
1763
1758
  };
1764
1759
  };
1765
- migrationId: ConvexTextBuilderInitial<""> & {
1760
+ checksum: ConvexTextBuilderInitial<""> & {
1766
1761
  _: {
1767
1762
  notNull: true;
1768
1763
  };
@@ -1772,10 +1767,10 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1772
1767
  };
1773
1768
  } & {
1774
1769
  _: {
1775
- fieldName: "migrationId";
1770
+ fieldName: "checksum";
1776
1771
  };
1777
1772
  };
1778
- checksum: ConvexTextBuilderInitial<""> & {
1773
+ applied: ConvexBooleanBuilderInitial<""> & {
1779
1774
  _: {
1780
1775
  notNull: true;
1781
1776
  };
@@ -1785,29 +1780,34 @@ declare const BUILTIN_SCHEMA_EXTENSIONS: readonly [SchemaExtension<{
1785
1780
  };
1786
1781
  } & {
1787
1782
  _: {
1788
- fieldName: "checksum";
1783
+ fieldName: "applied";
1789
1784
  };
1790
1785
  };
1791
- applied: ConvexBooleanBuilderInitial<""> & {
1786
+ direction: ConvexTextBuilderInitial<""> & {
1792
1787
  _: {
1793
- notNull: true;
1788
+ tableName: "migration_state";
1794
1789
  };
1795
1790
  } & {
1791
+ _: {
1792
+ fieldName: "direction";
1793
+ };
1794
+ };
1795
+ runId: ConvexTextBuilderInitial<""> & {
1796
1796
  _: {
1797
1797
  tableName: "migration_state";
1798
1798
  };
1799
1799
  } & {
1800
1800
  _: {
1801
- fieldName: "applied";
1801
+ fieldName: "runId";
1802
1802
  };
1803
1803
  };
1804
- runId: ConvexTextBuilderInitial<""> & {
1804
+ cursor: ConvexTextBuilderInitial<""> & {
1805
1805
  _: {
1806
1806
  tableName: "migration_state";
1807
1807
  };
1808
1808
  } & {
1809
1809
  _: {
1810
- fieldName: "runId";
1810
+ fieldName: "cursor";
1811
1811
  };
1812
1812
  };
1813
1813
  processed: ConvexNumberBuilderInitial<""> & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kitcn",
3
- "version": "0.25.1",
3
+ "version": "0.25.3",
4
4
  "description": "kitcn - React Query integration and CLI tools for Convex",
5
5
  "keywords": [
6
6
  "convex",
@@ -231,7 +231,7 @@ Builder rules that matter:
231
231
  ### 3) Query + Mutation Procedure Template
232
232
 
233
233
  ```ts
234
- import { z } from "zod";
234
+ import * as z from "zod";
235
235
  import { eq } from "kitcn/orm";
236
236
  import { CRPCError } from "kitcn/server";
237
237
  import { authMutation, authQuery } from "../lib/crpc";
@@ -67,6 +67,8 @@ const total = await ctx.orm.query.todos.count({ where: { projectId } });
67
67
  Unfiltered `count()` uses native Convex count syscall (no aggregateIndex required).
68
68
  Filtered `count()` accepts `eq`, `in`, `isNull`, `gt`, `gte`, `lt`, `lte`, conjunction via `AND`, and bounded finite DNF `OR` when every branch is index-plannable on one `aggregateIndex`. Requires matching `aggregateIndex`.
69
69
 
70
+ `isNull: true` matches an explicitly-`null` column and an absent column (a nullable column is optional, so a row inserted without it stores it absent). Matching `null` exactly (`{ status: null }` or `{ status: { eq: null } }`) matches only explicitly-`null` rows. `count()`, `aggregate()`, `groupBy()`, and relation `_count` use the same null semantics as `findMany()`.
71
+
70
72
  Windowed count: `count({ where, orderBy, skip, take, cursor })` counts rows within a window.
71
73
 
72
74
  - `skip`/`take` for pagination windows, `cursor` for "after this value" counting (requires `orderBy`, single field in v1)
@@ -102,6 +104,7 @@ Windowed aggregate:
102
104
 
103
105
  - `by` is required
104
106
  - every `by` field must be constrained in `where` via `eq`/`in`/`isNull`
107
+ - an `isNull`-constrained `by` field emits one group keyed `null`, covering both explicitly-`null` and absent rows
105
108
  - `orderBy` supports `by` fields and selected metric fields
106
109
  - `skip`/`take`/`cursor` require explicit `orderBy`
107
110
  - `having` supports conjunction filters on `by` fields and selected metrics
@@ -388,7 +388,7 @@ webhooks({
388
388
  // convex/functions/polarCustomer.ts
389
389
  import '../lib/polar-polyfills';
390
390
  import { CRPCError } from 'kitcn/server';
391
- import { z } from 'zod';
391
+ import * as z from 'zod';
392
392
  import { privateAction, privateMutation } from '../lib/crpc';
393
393
  import { getPolarClient } from '../lib/polar-client';
394
394
 
@@ -434,7 +434,7 @@ export const updateUserPolarCustomerId = privateMutation
434
434
  // convex/functions/polarSubscription.ts
435
435
  import '../lib/polar-polyfills';
436
436
  import { CRPCError } from 'kitcn/server';
437
- import { z } from 'zod';
437
+ import * as z from 'zod';
438
438
  import { privateMutation, privateQuery } from '../lib/crpc';
439
439
  import { authAction } from '../lib/crpc-action';
440
440
  import { getPolarClient } from '../lib/polar-client';
@@ -66,7 +66,7 @@ Format: `minute hour day-of-month month day-of-week`. Runs in **UTC**. Minimum i
66
66
 
67
67
  ```ts
68
68
  // convex/functions/crons.ts
69
- import { z } from 'zod';
69
+ import * as z from 'zod';
70
70
  import { privateMutation, privateAction } from '../lib/crpc';
71
71
  import { createAnalyticsCaller } from './generated/analytics.runtime';
72
72
  import { createReportsCaller } from './generated/reports.runtime';
@@ -98,7 +98,7 @@ Ordering note:
98
98
  **Create:** `convex/functions/user.ts`
99
99
 
100
100
  ```ts
101
- import { z } from "zod";
101
+ import * as z from "zod";
102
102
  import { getHeaders } from "kitcn/auth";
103
103
 
104
104
  import { getAuth } from "./generated/auth";
@@ -397,7 +397,7 @@ When multiple Convex functions and libs share env values (auth, billing, dev gua
397
397
 
398
398
  ```ts
399
399
  import { createEnv } from "kitcn/server";
400
- import { z } from "zod";
400
+ import * as z from "zod";
401
401
 
402
402
  export const getEnv = createEnv({
403
403
  schema: z.object({
@@ -447,7 +447,7 @@ If you want the same operational model as the scaffolded baseline, use these can
447
447
  **Create:** `convex/functions/init.ts`
448
448
 
449
449
  ```ts
450
- import { z } from "zod";
450
+ import * as z from "zod";
451
451
 
452
452
  import { createUser } from "../lib/auth/auth-helpers";
453
453
  import { privateMutation } from "../lib/crpc";
@@ -499,7 +499,7 @@ export default privateMutation
499
499
  /** biome-ignore-all lint/suspicious/noExplicitAny: dev */
500
500
  import { eq } from "kitcn/orm";
501
501
  import { CRPCError } from "kitcn/server";
502
- import { z } from "zod";
502
+ import * as z from "zod";
503
503
 
504
504
  import { privateAction, privateMutation } from "../lib/crpc";
505
505
  import { getEnv } from "../lib/get-env";