zodvex 0.7.5 → 0.7.6

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.
@@ -19,5 +19,6 @@ export { defineContext, initZodvex, type ZodvexActionCtx, type ZodvexBuilder, ty
19
19
  export type { DeleteRule, InsertRule, PatchRule, ReaderAuditConfig, ReadRule, ReplaceRule, TableRules, WriteEvent, WriterAuditConfig, ZodvexRules, ZodvexRulesConfig } from '../../internal/rules';
20
20
  export * from '../../internal/schema';
21
21
  export { addSystemFields } from '../../internal/schemaHelpers';
22
+ export { type ZodvexOrderedStreamQuery, type ZodvexQueryStream, type ZodvexStreamableSchema, type ZodvexStreamDatabaseReader, type ZodvexStreamQuery, type ZodvexStreamQueryInitializer, zodvexMergedStream, zodvexStream } from '../../internal/stream';
22
23
  export { zodDoc, zodDocOrNull, zodTable } from '../../legacy/tables';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,aAAa,EACb,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAI5B,YAAY,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;AAE7B,cAAc,uBAAuB,CAAA;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,aAAa,EACb,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAI5B,YAAY,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EAClB,MAAM,sBAAsB,CAAA;AAE7B,cAAc,uBAAuB,CAAA;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,kBAAkB,EAClB,YAAY,EACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import { NoOp } from 'convex-helpers/server/customFunctions';
2
2
  export { customCtx } from 'convex-helpers/server/customFunctions';
3
- import { $ZodObject, clone, $ZodType, parse, encode, $ZodOptional, $ZodUnion, $ZodDiscriminatedUnion, $ZodNullable, $ZodDefault, $ZodLazy, $ZodTuple, $ZodCodec, $ZodRecord, $ZodEnum, $ZodLiteral, $ZodArray, safeParse, $ZodError, $ZodCustom, $ZodDate } from 'zod/v4/core';
3
+ import { $ZodObject, clone, $ZodType, parse, encode, $ZodOptional, $ZodUnion, $ZodDiscriminatedUnion, $ZodNullable, $ZodCodec, $ZodDefault, $ZodLazy, $ZodTuple, $ZodRecord, $ZodEnum, $ZodLiteral, $ZodArray, safeParse, $ZodError, $ZodCustom, $ZodDate } from 'zod/v4/core';
4
4
  import { z } from 'zod';
5
5
  import { v, ConvexError } from 'convex/values';
6
6
  import { defineSchema, defineTable } from 'convex/server';
7
+ import { stream, mergedStream } from 'convex-helpers/server/stream';
7
8
  import { Table } from 'convex-helpers/server';
8
9
 
9
10
  // src/public/server/index.ts
@@ -2267,6 +2268,57 @@ function defineZodSchema(tables) {
2267
2268
  const result = Object.assign(convexSchema, { __zodTableMap: zodTableMap });
2268
2269
  return result;
2269
2270
  }
2271
+ function zodvexStream(db, schema) {
2272
+ const rawDb = db;
2273
+ return stream(rawDb, schema);
2274
+ }
2275
+ function zodvexMergedStream(streams, orderByIndexFields) {
2276
+ assertNoCodecOrderFields(streams, orderByIndexFields);
2277
+ return mergedStream(streams, orderByIndexFields);
2278
+ }
2279
+ function unwrapOuter2(schema) {
2280
+ let current = schema;
2281
+ for (let i = 0; i < 10; i++) {
2282
+ if (current instanceof $ZodOptional || current instanceof $ZodNullable || current instanceof $ZodDefault) {
2283
+ current = current._zod.def.innerType;
2284
+ continue;
2285
+ }
2286
+ break;
2287
+ }
2288
+ return current;
2289
+ }
2290
+ function fieldIsCodecBacked(schema, segments) {
2291
+ const current = unwrapOuter2(schema);
2292
+ if (current instanceof $ZodCodec) return true;
2293
+ if (segments.length === 0) return false;
2294
+ if (current instanceof $ZodObject) {
2295
+ const fieldSchema = current._zod.def.shape[segments[0]];
2296
+ return fieldSchema ? fieldIsCodecBacked(fieldSchema, segments.slice(1)) : false;
2297
+ }
2298
+ if (current instanceof $ZodUnion) {
2299
+ const options = current._zod.def.options;
2300
+ return options.some((option) => fieldIsCodecBacked(option, segments));
2301
+ }
2302
+ return false;
2303
+ }
2304
+ function assertNoCodecOrderFields(streams, orderByIndexFields) {
2305
+ for (const s of streams) {
2306
+ const reflect = s.reflect;
2307
+ if (typeof reflect !== "function") continue;
2308
+ const { schema, table } = reflect.call(s) ?? {};
2309
+ const tableMap = schema?.__zodTableMap;
2310
+ const docSchema = table ? tableMap?.[table]?.doc : void 0;
2311
+ if (!docSchema) continue;
2312
+ for (const field of orderByIndexFields) {
2313
+ if (field === "_creationTime" || field === "_id") continue;
2314
+ if (fieldIsCodecBacked(docSchema, field.split("."))) {
2315
+ throw new Error(
2316
+ `zodvexMergedStream: orderByIndexFields contains codec-backed field '${field}' (table '${table}'). The merge comparator reads decoded values off yielded docs, but the underlying index is ordered by wire values \u2014 codec-backed merge keys can mis-order results and produce invalid cursors. Pin codec fields with .eq() inside each substream and order by non-codec fields (e.g. '_creationTime') instead.`
2317
+ );
2318
+ }
2319
+ }
2320
+ }
2321
+ }
2270
2322
  function asTableValidator(validator) {
2271
2323
  return validator;
2272
2324
  }
@@ -2322,6 +2374,6 @@ function zodTable(name, schemaOrShape) {
2322
2374
  }
2323
2375
  }
2324
2376
 
2325
- export { ZodvexDatabaseReader, ZodvexDatabaseWriter, ZodvexQueryChain, addSystemFields, createZodDbReader, createZodDbWriter, createZodvexActionCtx, createZodvexCustomization, defineContext, defineZodSchema, initZodvex, zActionBuilder, zCustomAction, zCustomActionBuilder, zCustomMutation, zCustomMutationBuilder, zCustomQuery, zCustomQueryBuilder, zMutationBuilder, zQueryBuilder, zodDoc, zodDocOrNull, zodTable };
2377
+ export { ZodvexDatabaseReader, ZodvexDatabaseWriter, ZodvexQueryChain, addSystemFields, createZodDbReader, createZodDbWriter, createZodvexActionCtx, createZodvexCustomization, defineContext, defineZodSchema, initZodvex, zActionBuilder, zCustomAction, zCustomActionBuilder, zCustomMutation, zCustomMutationBuilder, zCustomQuery, zCustomQueryBuilder, zMutationBuilder, zQueryBuilder, zodDoc, zodDocOrNull, zodTable, zodvexMergedStream, zodvexStream };
2326
2378
  //# sourceMappingURL=index.js.map
2327
2379
  //# sourceMappingURL=index.js.map