ugly-app 0.1.842 → 0.1.843

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,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.842";
1
+ export declare const CLI_VERSION = "0.1.843";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.842";
2
+ export const CLI_VERSION = "0.1.843";
3
3
  //# sourceMappingURL=version.js.map
@@ -14,7 +14,5 @@ export declare class UnindexedQueryError extends Error {
14
14
  }
15
15
  /** Every field named in any declared index (composite indexes credit all fields). */
16
16
  export declare function coveredFields(indexes?: IndexDef[]): Set<string>;
17
- export declare function assertIndexed(collection: string, indexes: IndexDef[] | undefined, filter?: Record<string, unknown>, sort?: Record<string, 1 | -1>, opts?: {
18
- allowScan?: boolean;
19
- }): void;
17
+ export declare function assertIndexed(collection: string, indexes: IndexDef[] | undefined, filter?: Record<string, unknown>, sort?: Record<string, 1 | -1>): void;
20
18
  //# sourceMappingURL=assertIndexed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assertIndexed.d.ts","sourceRoot":"","sources":["../../../src/server/sqlite/assertIndexed.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,MAAM;gBADb,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM;CAShC;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/D;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,EAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAC7B,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,IAAI,CAeN"}
1
+ {"version":3,"file":"assertIndexed.d.ts","sourceRoot":"","sources":["../../../src/server/sqlite/assertIndexed.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,qBAAa,mBAAoB,SAAQ,KAAK;aAE1B,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,MAAM;gBADb,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM;CAShC;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAM/D;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,EAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAC5B,IAAI,CAcN"}
@@ -5,8 +5,8 @@ export class UnindexedQueryError extends Error {
5
5
  field;
6
6
  constructor(collection, field) {
7
7
  super(`Collection "${collection}" filters/sorts on "${field}" which has no index. ` +
8
- `Add to meta.indexes: { fields: { ${field}: 1 } } — or pass { allowScan: true } ` +
9
- `for a deliberate full scan.`);
8
+ `Add to meta.indexes: { fields: { ${field}: 1 } } — or use db.getQuery(...) ` +
9
+ `for a deliberate unindexed scan.`);
10
10
  this.collection = collection;
11
11
  this.field = field;
12
12
  this.name = 'UnindexedQueryError';
@@ -21,9 +21,7 @@ export function coveredFields(indexes) {
21
21
  }
22
22
  return covered;
23
23
  }
24
- export function assertIndexed(collection, indexes, filter, sort, opts) {
25
- if (opts?.allowScan)
26
- return;
24
+ export function assertIndexed(collection, indexes, filter, sort) {
27
25
  const covered = coveredFields(indexes);
28
26
  const fields = new Set();
29
27
  if (filter)
@@ -1 +1 @@
1
- {"version":3,"file":"assertIndexed.js","sourceRoot":"","sources":["../../../src/server/sqlite/assertIndexed.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IAFlB,YACkB,UAAkB,EAClB,KAAa;QAE7B,KAAK,CACH,eAAe,UAAU,uBAAuB,KAAK,wBAAwB;YAC3E,oCAAoC,KAAK,wCAAwC;YACjF,6BAA6B,CAChC,CAAC;QAPc,eAAU,GAAV,UAAU,CAAQ;QAClB,UAAK,GAAL,KAAK,CAAQ;QAO7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,OAA+B,EAC/B,MAAgC,EAChC,IAA6B,EAC7B,IAA8B;IAE9B,IAAI,IAAI,EAAE,SAAS;QAAE,OAAO;IAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,MAAM;QAAE,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"assertIndexed.js","sourceRoot":"","sources":["../../../src/server/sqlite/assertIndexed.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAE1B;IACA;IAFlB,YACkB,UAAkB,EAClB,KAAa;QAE7B,KAAK,CACH,eAAe,UAAU,uBAAuB,KAAK,wBAAwB;YAC3E,oCAAoC,KAAK,oCAAoC;YAC7E,kCAAkC,CACrC,CAAC;QAPc,eAAU,GAAV,UAAU,CAAQ;QAClB,UAAK,GAAL,KAAK,CAAQ;QAO7B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,OAA+B,EAC/B,MAAgC,EAChC,IAA6B;IAE7B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,IAAI,MAAM;QAAE,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -57,8 +57,8 @@ export declare function profilesGetter(ids: string[]): Promise<Record<string, Us
57
57
  * });
58
58
  */
59
59
  export declare const userPublicCollections: import("../shared/DB.js").DefinedCollections<{
60
- userPublic: {
61
- schema: z.ZodObject<{
60
+ readonly userPublic: {
61
+ readonly schema: z.ZodObject<{
62
62
  name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
63
63
  avatar: z.ZodOptional<z.ZodNullable<z.ZodObject<{
64
64
  id: z.ZodString;
@@ -93,15 +93,15 @@ export declare const userPublicCollections: import("../shared/DB.js").DefinedCol
93
93
  backgroundUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
94
94
  avatarGlbUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
95
95
  }, z.core.$catchall<z.ZodUnknown>>;
96
- meta: {
97
- public: true;
98
- trackable: false;
99
- cache: {
100
- ttlMs: number;
96
+ readonly meta: {
97
+ readonly public: true;
98
+ readonly trackable: false;
99
+ readonly cache: {
100
+ readonly ttlMs: number;
101
101
  };
102
- getter: typeof profilesGetter;
103
- cascadeFrom: null;
104
- db: import("../shared/DB.js").Backend;
102
+ readonly getter: typeof profilesGetter;
103
+ readonly cascadeFrom: null;
104
+ readonly db: import("../shared/DB.js").Backend;
105
105
  };
106
106
  };
107
107
  }>;
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import type { DocOf, IndexedFilter, IndexedSort, ValidateTrackKeys } from './dbIndexTypes.js';
2
3
  export interface DBObject {
3
4
  /**
4
5
  * GLOBAL primary key for the collection. A collection is ONE table shared by
@@ -148,12 +149,12 @@ export interface GetDocsOptions {
148
149
  /** Derive the document type from a Zod schema, adding DBObject base fields. */
149
150
  export type InferDocType<S extends z.ZodObject<any>> = z.infer<S> & DBObject;
150
151
  /** What developers pass to defineCollections (schema + meta, no name or type). */
151
- export interface CollectionDefInput<Keys extends readonly string[] = readonly string[]> {
152
+ export interface CollectionDefInput<Keys extends readonly string[] = readonly string[], Idx extends readonly IndexDef[] = readonly IndexDef[]> {
152
153
  schema: z.ZodObject<z.ZodRawShape>;
153
154
  meta: CollectionMeta & {
154
155
  trackKeys?: Keys;
155
156
  };
156
- indexes?: IndexDef[];
157
+ indexes?: Idx;
157
158
  search?: {
158
159
  fields: string[];
159
160
  language?: string;
@@ -161,10 +162,12 @@ export interface CollectionDefInput<Keys extends readonly string[] = readonly st
161
162
  vector?: VectorMeta;
162
163
  }
163
164
  /** Internal collection definition with inferred T. Created by defineCollections. */
164
- export interface CollectionDef<T = any, Keys extends readonly string[] = readonly string[]> {
165
+ export interface CollectionDef<T = any, Keys extends readonly string[] = readonly string[], Idx extends readonly IndexDef[] = readonly IndexDef[]> {
165
166
  readonly name: string;
166
167
  /** @internal phantom field — anchors T for structural type inference. Never set by users. */
167
168
  readonly _type?: T;
169
+ /** @internal phantom — anchors the literal index tuple for CollectionIndexedFields. Never set. */
170
+ readonly _idx?: Idx;
168
171
  schema: z.ZodObject<z.ZodRawShape>;
169
172
  meta: CollectionMeta & {
170
173
  trackKeys?: Keys;
@@ -180,7 +183,7 @@ export interface CollectionDef<T = any, Keys extends readonly string[] = readonl
180
183
  export type DeleteHandlers<Defs extends CollectionDefRegistry = CollectionDefRegistry> = {
181
184
  [K in keyof Defs]?: (doc: Defs[K] extends CollectionDef<infer T> ? T : never, db: TypedDB<any>) => Promise<void>;
182
185
  };
183
- export type CollectionDefInputRegistry = Record<string, CollectionDefInput>;
186
+ export type CollectionDefInputRegistry = Record<string, CollectionDefInput<any, any>>;
184
187
  export type CollectionDefRegistry = Record<string, Omit<CollectionDef, 'name'>>;
185
188
  export type TrackKeyOf<C extends CollectionDef<any, any>> = C extends CollectionDef<any, infer K> ? K[number] : never;
186
189
  /**
@@ -291,8 +294,14 @@ export interface TypedDB<_Map extends Record<string, DBObject> = Record<never, D
291
294
  setDocOpOrIgnore<T>(collection: CollectionDef<T>, id: string, op: MongoUpdateOp<T>): Promise<T | null>;
292
295
  /** Delete a document and cascade-delete all children declared via cascadeFrom. */
293
296
  deleteDoc(collection: CollectionDef, id: string): Promise<void>;
294
- /** Query documents (optionally with full-text `search` and/or vector `near`). */
295
- getDocs<T>(collection: CollectionDef<T>, filter?: Record<string, unknown>, options?: GetDocsOptions): Promise<T[]>;
297
+ /**
298
+ * Query documents (optionally with full-text `search` and/or vector `near`).
299
+ * Filter and sort KEYS are constrained to the collection's indexed fields —
300
+ * an unindexed field is a compile error (add the index, or use `getQuery`).
301
+ */
302
+ getDocs<C extends CollectionDef>(collection: C, filter?: IndexedFilter<C>, options?: Omit<GetDocsOptions, 'sort'> & {
303
+ sort?: IndexedSort<C>;
304
+ }): Promise<DocOf<C>[]>;
296
305
  /**
297
306
  * Run a sequence of writes as one trackDocs "transaction": the writes happen
298
307
  * immediately, but their change/delete NOTIFICATIONS are coalesced and flushed
@@ -317,12 +326,16 @@ export interface TypedDB<_Map extends Record<string, DBObject> = Record<never, D
317
326
  }): Promise<T[]>;
318
327
  /** Bulk delete documents matching `match`, cascade-deleting children and calling onDelete. */
319
328
  deleteQuery(collection: CollectionDef, match: Record<string, unknown>): Promise<void>;
320
- /** Query documents with a fully typed filter. */
321
- find<T extends DBObject>(collection: CollectionDef<T>, filter?: TypedFilter<T>, options?: FindOptions<T>): Promise<T[]>;
322
- /** Count documents matching a typed filter. */
323
- findCount<T extends DBObject>(collection: CollectionDef<T>, filter?: TypedFilter<T>): Promise<number>;
324
- /** Fetch a random sample of documents matching a typed filter. */
325
- findRandom<T extends DBObject>(collection: CollectionDef<T>, filter?: TypedFilter<T>, limit?: number): Promise<T[]>;
329
+ /** Query documents. Filter/sort keys are constrained to indexed fields. */
330
+ find<C extends CollectionDef>(collection: C, filter?: IndexedFilter<C>, options?: {
331
+ sort?: IndexedSort<C>;
332
+ limit?: number;
333
+ skip?: number;
334
+ }): Promise<DocOf<C>[]>;
335
+ /** Count documents. Filter keys are constrained to indexed fields. */
336
+ findCount<C extends CollectionDef>(collection: C, filter?: IndexedFilter<C>): Promise<number>;
337
+ /** Fetch a random sample. Filter keys are constrained to indexed fields. */
338
+ findRandom<C extends CollectionDef>(collection: C, filter?: IndexedFilter<C>, limit?: number): Promise<DocOf<C>[]>;
326
339
  /** Bulk delete documents matching a typed filter, with cascade deletes and onDelete hooks. */
327
340
  deleteWhere<T extends DBObject>(collection: CollectionDef<T>, filter: TypedFilter<T>): Promise<void>;
328
341
  /** Fetch a single document by collection name (dynamic/untyped access). */
@@ -383,13 +396,17 @@ export interface TypedDB<_Map extends Record<string, DBObject> = Record<never, D
383
396
  export type InjectableDb = Pick<TypedDB, 'getDoc' | 'getByIds' | 'getDocs' | 'getQuery' | 'setDoc' | 'setDocFields' | 'setDocFieldsOrIgnore' | 'setDocFieldsOrCreate' | 'setDocOp' | 'deleteDoc' | 'deleteQuery' | 'batch'>;
384
397
  /** Return shape of {@link defineCollections}: each input key mapped to a fully-typed CollectionDef. */
385
398
  export type DefinedCollections<Defs extends CollectionDefInputRegistry> = {
386
- [K in keyof Defs & string]: CollectionDef<InferDocType<Defs[K]['schema']>> & {
399
+ [K in keyof Defs & string]: CollectionDef<InferDocType<Defs[K]['schema']>, Defs[K]['meta'] extends {
400
+ trackKeys?: infer TK;
401
+ } ? TK extends readonly string[] ? TK : readonly string[] : readonly string[], Defs[K]['indexes'] extends readonly IndexDef[] ? Defs[K]['indexes'] : readonly []> & {
387
402
  name: K;
388
403
  schema: Defs[K]['schema'];
389
404
  meta: Defs[K]['meta'];
390
405
  };
391
406
  };
392
- export declare function defineCollections<Defs extends CollectionDefInputRegistry>(defs: Defs): DefinedCollections<Defs>;
407
+ export declare function defineCollections<const Defs extends CollectionDefInputRegistry>(defs: Defs & {
408
+ [K in keyof Defs]: ValidateTrackKeys<Defs[K]>;
409
+ }): DefinedCollections<Defs>;
393
410
  export interface IndexDef {
394
411
  fields: Record<string, 1 | -1>;
395
412
  unique?: boolean;
@@ -664,8 +681,8 @@ export interface EventLog {
664
681
  experimentBranches: Record<string, string>;
665
682
  }
666
683
  export declare const BUILTIN_DEFS: DefinedCollections<{
667
- authMagicLink: {
668
- schema: z.ZodObject<{
684
+ readonly authMagicLink: {
685
+ readonly schema: z.ZodObject<{
669
686
  email: z.ZodString;
670
687
  tokenHash: z.ZodString;
671
688
  expiresAt: z.ZodNumber;
@@ -673,29 +690,26 @@ export declare const BUILTIN_DEFS: DefinedCollections<{
673
690
  requestIp: z.ZodNullable<z.ZodString>;
674
691
  requestedAt: z.ZodNumber;
675
692
  }, z.core.$strip>;
676
- meta: {
677
- cache: false;
678
- trackable: false;
679
- public: false;
680
- cascadeFrom: null;
681
- db: Backend;
693
+ readonly meta: {
694
+ readonly cache: false;
695
+ readonly trackable: false;
696
+ readonly public: false;
697
+ readonly cascadeFrom: null;
698
+ readonly db: Backend;
682
699
  };
683
- indexes: ({
684
- fields: {
685
- email: 1;
686
- expiresAt?: never;
700
+ readonly indexes: readonly [{
701
+ readonly fields: {
702
+ readonly email: 1;
687
703
  };
688
- ttl?: never;
689
- } | {
690
- fields: {
691
- expiresAt: 1;
692
- email?: never;
704
+ }, {
705
+ readonly fields: {
706
+ readonly expiresAt: 1;
693
707
  };
694
- ttl: number;
695
- })[];
708
+ readonly ttl: 86400;
709
+ }];
696
710
  };
697
- authIdentity: {
698
- schema: z.ZodObject<{
711
+ readonly authIdentity: {
712
+ readonly schema: z.ZodObject<{
699
713
  provider: z.ZodEnum<{
700
714
  "magic-link": "magic-link";
701
715
  google: "google";
@@ -708,27 +722,25 @@ export declare const BUILTIN_DEFS: DefinedCollections<{
708
722
  createdAt: z.ZodNumber;
709
723
  lastLoginAt: z.ZodNumber;
710
724
  }, z.core.$strip>;
711
- meta: {
712
- cache: false;
713
- trackable: false;
714
- public: false;
715
- cascadeFrom: null;
716
- db: Backend;
725
+ readonly meta: {
726
+ readonly cache: false;
727
+ readonly trackable: false;
728
+ readonly public: false;
729
+ readonly cascadeFrom: null;
730
+ readonly db: Backend;
717
731
  };
718
- indexes: ({
719
- fields: {
720
- providerKey: 1;
721
- userId?: never;
732
+ readonly indexes: readonly [{
733
+ readonly fields: {
734
+ readonly providerKey: 1;
722
735
  };
723
- } | {
724
- fields: {
725
- userId: 1;
726
- providerKey?: never;
736
+ }, {
737
+ readonly fields: {
738
+ readonly userId: 1;
727
739
  };
728
- })[];
740
+ }];
729
741
  };
730
- debugLogSession: {
731
- schema: z.ZodObject<{
742
+ readonly debugLogSession: {
743
+ readonly schema: z.ZodObject<{
732
744
  userId: z.ZodString;
733
745
  projectId: z.ZodDefault<z.ZodString>;
734
746
  active: z.ZodDefault<z.ZodBoolean>;
@@ -750,45 +762,42 @@ export declare const BUILTIN_DEFS: DefinedCollections<{
750
762
  expiresAt: z.ZodDefault<z.ZodNumber>;
751
763
  updatedAt: z.ZodDefault<z.ZodNumber>;
752
764
  }, z.core.$strip>;
753
- meta: {
754
- cache: false;
755
- trackable: true;
756
- public: false;
757
- cascadeFrom: null;
758
- trackKeys: string[];
759
- db: Backend;
765
+ readonly meta: {
766
+ readonly cache: false;
767
+ readonly trackable: true;
768
+ readonly public: false;
769
+ readonly cascadeFrom: null;
770
+ readonly trackKeys: readonly ["userId"];
771
+ readonly db: Backend;
760
772
  };
761
- indexes: ({
762
- fields: {
763
- userId: 1;
764
- expiresAt?: never;
773
+ readonly indexes: readonly [{
774
+ readonly fields: {
775
+ readonly userId: 1;
765
776
  };
766
- ttl?: never;
767
- } | {
768
- fields: {
769
- expiresAt: 1;
770
- userId?: never;
777
+ }, {
778
+ readonly fields: {
779
+ readonly expiresAt: 1;
771
780
  };
772
- ttl: number;
773
- })[];
781
+ readonly ttl: 3600;
782
+ }];
774
783
  };
775
- debugLogStream: {
776
- schema: z.ZodObject<{
784
+ readonly debugLogStream: {
785
+ readonly schema: z.ZodObject<{
777
786
  userId: z.ZodString;
778
787
  }, z.core.$strip>;
779
- meta: {
780
- cache: false;
781
- trackable: true;
782
- public: false;
783
- cascadeFrom: null;
784
- trackKeys: string[];
785
- db: Backend;
788
+ readonly meta: {
789
+ readonly cache: false;
790
+ readonly trackable: true;
791
+ readonly public: false;
792
+ readonly cascadeFrom: null;
793
+ readonly trackKeys: readonly ["userId"];
794
+ readonly db: Backend;
786
795
  };
787
- indexes: {
788
- fields: {
789
- userId: 1;
796
+ readonly indexes: readonly [{
797
+ readonly fields: {
798
+ readonly userId: 1;
790
799
  };
791
- }[];
800
+ }];
792
801
  };
793
802
  }>;
794
803
  //# sourceMappingURL=DB.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DB.d.ts","sourceRoot":"","sources":["../../src/shared/DB.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DB.d.ts","sourceRoot":"","sources":["../../src/shared/DB.ts"],"names":[],"mappings":"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"}
package/dist/shared/DB.js CHANGED
@@ -26,7 +26,11 @@ export function isCacheEnabled(meta) {
26
26
  export function cacheTtlMs(meta) {
27
27
  return meta && meta.cache && typeof meta.cache === 'object' ? meta.cache.ttlMs : undefined;
28
28
  }
29
- export function defineCollections(defs) {
29
+ export function defineCollections(
30
+ // The intersection re-applies the per-collection `trackKeys ⊆ indexed` check
31
+ // that the `CollectionDefInputRegistry` (any, any) constraint would otherwise
32
+ // erase — see ValidateTrackKeys.
33
+ defs) {
30
34
  return Object.fromEntries(Object.entries(defs).map(([k, v]) => [k, { ...v, name: k }]));
31
35
  }
32
36
  export function dbDefaults() {
@@ -1 +1 @@
1
- {"version":3,"file":"DB.js","sourceRoot":"","sources":["../../src/shared/DB.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DB.js","sourceRoot":"","sources":["../../src/shared/DB.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Type-level derivation of a collection's indexed fields, mirroring the runtime
3
+ * `coveredFields` rule in src/server/sqlite/assertIndexed.ts: every field named
4
+ * in ANY index is covered (a composite credits all its fields — no prefix rule).
5
+ */
6
+ /** Columns that always exist and never need a declared index. */
7
+ export type TopLevelColumns = '_id' | 'created' | 'updated' | 'version';
8
+ /** Shape an index entry must have for field extraction. */
9
+ export interface IndexLike {
10
+ fields: Record<string, 1 | -1>;
11
+ }
12
+ /**
13
+ * Union of every field name across an index tuple. Mapped over the tuple
14
+ * per-element because `keyof (A | B)` is the INTERSECTION — mapping then
15
+ * `[number]`-indexing recovers the UNION.
16
+ */
17
+ export type IndexedFieldsOf<Idx extends readonly IndexLike[] | undefined> = Idx extends readonly IndexLike[] ? {
18
+ [I in keyof Idx]: Idx[I] extends IndexLike ? keyof Idx[I]['fields'] : never;
19
+ }[number] & string : never;
20
+ import type { CollectionDef, IndexDef } from './DB.js';
21
+ /**
22
+ * Per-collection validation applied by `defineCollections` via an intersection
23
+ * on its parameter (the registry constraint widens the per-collection generics
24
+ * to `any`, so the trackKeys⊆indexed check must be re-applied here). Returns a
25
+ * constraint fragment requiring every `trackKey` to be an indexed field; a
26
+ * trackKey outside the index union makes the value unassignable → compile error.
27
+ */
28
+ export type ValidateTrackKeys<C> = C extends {
29
+ meta: infer M;
30
+ indexes?: infer Idx;
31
+ } ? M extends {
32
+ trackKeys?: infer TK;
33
+ } ? TK extends readonly string[] ? Idx extends readonly IndexDef[] ? {
34
+ meta: {
35
+ trackKeys?: readonly IndexedFieldsOf<Idx>[];
36
+ };
37
+ } : unknown : unknown : unknown : unknown;
38
+ /**
39
+ * Fields a collection may be filtered/sorted on: its declared index fields plus
40
+ * the always-present top-level columns. Mirrors the runtime `assertIndexed` rule.
41
+ */
42
+ export type CollectionIndexedFields<C> = C extends CollectionDef<any, any, infer Idx> ? IndexedFieldsOf<Idx> | TopLevelColumns : TopLevelColumns;
43
+ /** The document type carried by a collection def. */
44
+ export type DocOf<C> = C extends CollectionDef<infer T, any, any> ? T : never;
45
+ /**
46
+ * A field match value: equality, or a Mongo-style operator object. Mirrors the
47
+ * operator surface the runtime SqliteFilter / PostgresOperators support. Values
48
+ * stay permissive (`unknown`) in v1 — the safety win is the KEY constraint.
49
+ */
50
+ export type FieldMatch<V = unknown> = V | {
51
+ $ne?: V;
52
+ $in?: readonly V[];
53
+ $nin?: readonly V[];
54
+ $gt?: V;
55
+ $gte?: V;
56
+ $lt?: V;
57
+ $lte?: V;
58
+ $exists?: boolean;
59
+ };
60
+ /** Filter whose KEYS are restricted to a collection's indexed fields. */
61
+ export type IndexedFilter<C> = {
62
+ [K in CollectionIndexedFields<C>]?: FieldMatch;
63
+ } & {
64
+ $and?: IndexedFilter<C>[];
65
+ $or?: IndexedFilter<C>[];
66
+ };
67
+ /** Sort whose keys are restricted to a collection's indexed fields. */
68
+ export type IndexedSort<C> = {
69
+ [K in CollectionIndexedFields<C>]?: 1 | -1;
70
+ };
71
+ //# sourceMappingURL=dbIndexTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbIndexTypes.d.ts","sourceRoot":"","sources":["../../src/shared/dbIndexTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAExE,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,SAAS,SAAS,EAAE,GAAG,SAAS,IACtE,GAAG,SAAS,SAAS,SAAS,EAAE,GAC5B;KACG,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK;CAC5E,CAAC,MAAM,CAAC,GAAG,MAAM,GAClB,KAAK,CAAC;AAEZ,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC7B,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAA;CAAE,GAC5C,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAChC,EAAE,SAAS,SAAS,MAAM,EAAE,GAC1B,GAAG,SAAS,SAAS,QAAQ,EAAE,GAC7B;IAAE,IAAI,EAAE;QAAE,SAAS,CAAC,EAAE,SAAS,eAAe,CAAC,GAAG,CAAC,EAAE,CAAA;KAAE,CAAA;CAAE,GACzD,OAAO,GACT,OAAO,GACT,OAAO,GACT,OAAO,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAEnC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GACxC,eAAe,CAAC,GAAG,CAAC,GAAG,eAAe,GACtC,eAAe,CAAC;AAEtB,qDAAqD;AACrD,MAAM,MAAM,KAAK,CAAC,CAAC,IAEjB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAC9B,CAAC,GACD;IACE,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEN,yEAAyE;AACzE,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC5B,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU;CAC/C,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;CAAE,CAAC;AAE5D,uEAAuE;AACvE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Type-level derivation of a collection's indexed fields, mirroring the runtime
3
+ * `coveredFields` rule in src/server/sqlite/assertIndexed.ts: every field named
4
+ * in ANY index is covered (a composite credits all its fields — no prefix rule).
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=dbIndexTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbIndexTypes.js","sourceRoot":"","sources":["../../src/shared/dbIndexTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,171 @@
1
+ import type { IndexedFieldsOf, TopLevelColumns } from './dbIndexTypes.js';
2
+ type Expect<T extends true> = T;
3
+ type Equal<A, B> = (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? true : false;
4
+ type Idx = readonly [{
5
+ fields: {
6
+ conversationId: 1;
7
+ };
8
+ }, {
9
+ fields: {
10
+ userId: 1;
11
+ };
12
+ }];
13
+ type _t1 = Expect<Equal<IndexedFieldsOf<Idx>, 'conversationId' | 'userId'>>;
14
+ type IdxComposite = readonly [{
15
+ fields: {
16
+ a: 1;
17
+ b: -1;
18
+ };
19
+ }];
20
+ type _t2 = Expect<Equal<IndexedFieldsOf<IdxComposite>, 'a' | 'b'>>;
21
+ type _t3 = Expect<Equal<IndexedFieldsOf<readonly []>, never>>;
22
+ type _t4 = Expect<Equal<TopLevelColumns, '_id' | 'created' | 'updated' | 'version'>>;
23
+ import { z } from 'zod';
24
+ import type { CollectionIndexedFields } from './dbIndexTypes.js';
25
+ declare const _defs: import("./DB.js").DefinedCollections<{
26
+ readonly conversationUser: {
27
+ readonly schema: z.ZodObject<{
28
+ conversationId: z.ZodString;
29
+ userId: z.ZodString;
30
+ role: z.ZodString;
31
+ }, z.core.$strip>;
32
+ readonly meta: {
33
+ readonly cache: false;
34
+ readonly trackable: true;
35
+ readonly public: false;
36
+ readonly cascadeFrom: null;
37
+ readonly db: import("./DB.js").Backend;
38
+ };
39
+ readonly indexes: readonly [{
40
+ readonly fields: {
41
+ readonly conversationId: 1;
42
+ };
43
+ }, {
44
+ readonly fields: {
45
+ readonly userId: 1;
46
+ };
47
+ }];
48
+ };
49
+ }>;
50
+ type _CIF = CollectionIndexedFields<typeof _defs.conversationUser>;
51
+ type _t5 = Expect<Equal<_CIF, 'conversationId' | 'userId' | TopLevelColumns>>;
52
+ import type { IndexedFilter, IndexedSort } from './dbIndexTypes.js';
53
+ export type __IndexSafetyChecks = [_t1, _t2, _t3, _t4, _t5];
54
+ export declare const __indexSafetyRuntime: (import("./DB.js").DefinedCollections<{
55
+ readonly conversationUser: {
56
+ readonly schema: z.ZodObject<{
57
+ conversationId: z.ZodString;
58
+ userId: z.ZodString;
59
+ role: z.ZodString;
60
+ }, z.core.$strip>;
61
+ readonly meta: {
62
+ readonly cache: false;
63
+ readonly trackable: true;
64
+ readonly public: false;
65
+ readonly cascadeFrom: null;
66
+ readonly db: import("./DB.js").Backend;
67
+ };
68
+ readonly indexes: readonly [{
69
+ readonly fields: {
70
+ readonly conversationId: 1;
71
+ };
72
+ }, {
73
+ readonly fields: {
74
+ readonly userId: 1;
75
+ };
76
+ }];
77
+ };
78
+ }> | import("./DB.js").DefinedCollections<{
79
+ readonly ok: {
80
+ readonly schema: z.ZodObject<{
81
+ userId: z.ZodString;
82
+ }, z.core.$strip>;
83
+ readonly meta: {
84
+ readonly cache: false;
85
+ readonly trackable: true;
86
+ readonly public: false;
87
+ readonly cascadeFrom: null;
88
+ readonly db: import("./DB.js").Backend;
89
+ readonly trackKeys: readonly ["userId"];
90
+ };
91
+ readonly indexes: readonly [{
92
+ readonly fields: {
93
+ readonly userId: 1;
94
+ };
95
+ }];
96
+ };
97
+ }> | import("./DB.js").DefinedCollections<{
98
+ readonly bad: {
99
+ readonly schema: z.ZodObject<{
100
+ conversationId: z.ZodString;
101
+ userId: z.ZodString;
102
+ }, z.core.$strip>;
103
+ readonly meta: {
104
+ readonly cache: false;
105
+ readonly trackable: true;
106
+ readonly public: false;
107
+ readonly cascadeFrom: null;
108
+ readonly db: import("./DB.js").Backend;
109
+ readonly trackKeys: readonly ["conversationId", "userId"];
110
+ };
111
+ readonly indexes: readonly [{
112
+ readonly fields: {
113
+ readonly conversationId: 1;
114
+ };
115
+ }];
116
+ };
117
+ }> | IndexedFilter<import("./DB.js").CollectionDef<import("./DB.js").InferDocType<z.ZodObject<{
118
+ conversationId: z.ZodString;
119
+ userId: z.ZodString;
120
+ role: z.ZodString;
121
+ }, z.core.$strip>>, readonly string[], readonly [{
122
+ readonly fields: {
123
+ readonly conversationId: 1;
124
+ };
125
+ }, {
126
+ readonly fields: {
127
+ readonly userId: 1;
128
+ };
129
+ }]> & {
130
+ name: "conversationUser";
131
+ schema: z.ZodObject<{
132
+ conversationId: z.ZodString;
133
+ userId: z.ZodString;
134
+ role: z.ZodString;
135
+ }, z.core.$strip>;
136
+ meta: {
137
+ readonly cache: false;
138
+ readonly trackable: true;
139
+ readonly public: false;
140
+ readonly cascadeFrom: null;
141
+ readonly db: import("./DB.js").Backend;
142
+ };
143
+ }> | IndexedSort<import("./DB.js").CollectionDef<import("./DB.js").InferDocType<z.ZodObject<{
144
+ conversationId: z.ZodString;
145
+ userId: z.ZodString;
146
+ role: z.ZodString;
147
+ }, z.core.$strip>>, readonly string[], readonly [{
148
+ readonly fields: {
149
+ readonly conversationId: 1;
150
+ };
151
+ }, {
152
+ readonly fields: {
153
+ readonly userId: 1;
154
+ };
155
+ }]> & {
156
+ name: "conversationUser";
157
+ schema: z.ZodObject<{
158
+ conversationId: z.ZodString;
159
+ userId: z.ZodString;
160
+ role: z.ZodString;
161
+ }, z.core.$strip>;
162
+ meta: {
163
+ readonly cache: false;
164
+ readonly trackable: true;
165
+ readonly public: false;
166
+ readonly cascadeFrom: null;
167
+ readonly db: import("./DB.js").Backend;
168
+ };
169
+ }>)[];
170
+ export {};
171
+ //# sourceMappingURL=dbTypeChecks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbTypeChecks.d.ts","sourceRoot":"","sources":["../../src/shared/dbTypeChecks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG1E,KAAK,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAChC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IACb,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAEvF,KAAK,GAAG,GAAG,SAAS,CAAC;IAAE,MAAM,EAAE;QAAE,cAAc,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE,EAAE;IAAE,MAAM,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAEnF,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC;AAE5E,KAAK,YAAY,GAAG,SAAS,CAAC;IAAE,MAAM,EAAE;QAAE,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAC3D,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAEnE,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;AAGrF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;EAOT,CAAC;AACH,KAAK,IAAI,GAAG,uBAAuB,CAAC,OAAO,KAAK,CAAC,gBAAgB,CAAC,CAAC;AACnE,KAAK,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC;AAuB9E,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA4BpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAgE,CAAC"}
@@ -0,0 +1,49 @@
1
+ // ── Task 2: CollectionIndexedFields on a real defineCollections result ──────
2
+ import { z } from 'zod';
3
+ import { defineCollections, d1 } from './DB.js';
4
+ const _defs = defineCollections({
5
+ conversationUser: {
6
+ schema: z.object({ conversationId: z.string(), userId: z.string(), role: z.string() }),
7
+ meta: { cache: false, trackable: true, public: false, cascadeFrom: null, db: d1 },
8
+ // Inline indexes — the `const` type param preserves the literal field keys.
9
+ indexes: [{ fields: { conversationId: 1 } }, { fields: { userId: 1 } }],
10
+ },
11
+ });
12
+ // ── Task 3: trackKeys must be a subset of the indexed fields ────────────────
13
+ // GOOD: every trackKey is indexed → compiles.
14
+ const _okDefs = defineCollections({
15
+ ok: {
16
+ schema: z.object({ userId: z.string() }),
17
+ meta: { cache: false, trackable: true, public: false, cascadeFrom: null, db: d1, trackKeys: ['userId'] },
18
+ indexes: [{ fields: { userId: 1 } }],
19
+ },
20
+ });
21
+ // BAD: trackKey `userId` is NOT in any index → must be a compile error.
22
+ const _badDefs = defineCollections({
23
+ bad: {
24
+ schema: z.object({ conversationId: z.string(), userId: z.string() }),
25
+ // @ts-expect-error trackKey "userId" is not present in meta.indexes
26
+ meta: { cache: false, trackable: true, public: false, cascadeFrom: null, db: d1, trackKeys: ['conversationId', 'userId'] },
27
+ indexes: [{ fields: { conversationId: 1 } }],
28
+ },
29
+ });
30
+ // indexed field → allowed (equality or operator object)
31
+ const _f1 = { userId: 'u1' };
32
+ const _f2 = { userId: { $ne: 'u1' } };
33
+ const _f3 = { _id: 'x' }; // top-level always OK
34
+ // @ts-expect-error `role` is not indexed
35
+ const _f4 = { role: 'admin' };
36
+ // $or recurses under the same key constraint
37
+ const _f5 = { $or: [{ userId: 'u1' }, { conversationId: 'c1' }] };
38
+ const _s1 = { userId: 1 };
39
+ // @ts-expect-error `role` is not indexed
40
+ const _s2 = { role: -1 };
41
+ // indexed → OK
42
+ void db.getDocs(_defs.conversationUser, { userId: 'u1' });
43
+ void db.getDocs(_defs.conversationUser, { userId: 'u1' }, { sort: { conversationId: 1 } });
44
+ // @ts-expect-error filtering an unindexed field must not compile
45
+ void db.getDocs(_defs.conversationUser, { role: 'admin' });
46
+ // @ts-expect-error sorting an unindexed field must not compile
47
+ void db.getDocs(_defs.conversationUser, { userId: 'u1' }, { sort: { role: 1 } });
48
+ export const __indexSafetyRuntime = [_defs, _okDefs, _badDefs, _f1, _f2, _f3, _f4, _f5, _s1, _s2];
49
+ //# sourceMappingURL=dbTypeChecks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbTypeChecks.js","sourceRoot":"","sources":["../../src/shared/dbTypeChecks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.842",
3
+ "version": "0.1.843",
4
4
  "type": "module",
5
5
  "comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
6
6
  "files": [
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.842";
2
+ export const CLI_VERSION = "0.1.843";
@@ -46,12 +46,6 @@ describe('assertIndexed', () => {
46
46
  expect(() => assertIndexed('c', IDX, { other: { $exists: true } })).not.toThrow();
47
47
  });
48
48
 
49
- it('allowScan bypasses the check', () => {
50
- expect(() =>
51
- assertIndexed('c', IDX, { other: 1 }, undefined, { allowScan: true }),
52
- ).not.toThrow();
53
- });
54
-
55
49
  it('no filter/sort → no-op', () => {
56
50
  expect(() => assertIndexed('c', IDX)).not.toThrow();
57
51
  });
@@ -18,8 +18,8 @@ export class UnindexedQueryError extends Error {
18
18
  ) {
19
19
  super(
20
20
  `Collection "${collection}" filters/sorts on "${field}" which has no index. ` +
21
- `Add to meta.indexes: { fields: { ${field}: 1 } } — or pass { allowScan: true } ` +
22
- `for a deliberate full scan.`,
21
+ `Add to meta.indexes: { fields: { ${field}: 1 } } — or use db.getQuery(...) ` +
22
+ `for a deliberate unindexed scan.`,
23
23
  );
24
24
  this.name = 'UnindexedQueryError';
25
25
  }
@@ -39,9 +39,7 @@ export function assertIndexed(
39
39
  indexes: IndexDef[] | undefined,
40
40
  filter?: Record<string, unknown>,
41
41
  sort?: Record<string, 1 | -1>,
42
- opts?: { allowScan?: boolean },
43
42
  ): void {
44
- if (opts?.allowScan) return;
45
43
  const covered = coveredFields(indexes);
46
44
 
47
45
  const fields = new Set<string>();
package/src/shared/DB.ts CHANGED
@@ -1,4 +1,10 @@
1
1
  import { z } from 'zod';
2
+ import type {
3
+ DocOf,
4
+ IndexedFilter,
5
+ IndexedSort,
6
+ ValidateTrackKeys,
7
+ } from './dbIndexTypes.js';
2
8
 
3
9
  export interface DBObject {
4
10
  /**
@@ -179,22 +185,33 @@ export interface GetDocsOptions {
179
185
  export type InferDocType<S extends z.ZodObject<any>> = z.infer<S> & DBObject;
180
186
 
181
187
  /** What developers pass to defineCollections (schema + meta, no name or type). */
182
- export interface CollectionDefInput<Keys extends readonly string[] = readonly string[]> {
188
+ export interface CollectionDefInput<
189
+ Keys extends readonly string[] = readonly string[],
190
+ Idx extends readonly IndexDef[] = readonly IndexDef[],
191
+ > {
183
192
  schema: z.ZodObject<z.ZodRawShape>;
184
193
  meta: CollectionMeta & { trackKeys?: Keys };
185
- indexes?: IndexDef[];
194
+ indexes?: Idx;
186
195
  search?: { fields: string[]; language?: string };
187
196
  vector?: VectorMeta;
188
197
  }
189
198
 
190
199
  /** Internal collection definition with inferred T. Created by defineCollections. */
191
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
- export interface CollectionDef<T = any, Keys extends readonly string[] = readonly string[]> {
200
+ export interface CollectionDef<
201
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
202
+ T = any,
203
+ Keys extends readonly string[] = readonly string[],
204
+ Idx extends readonly IndexDef[] = readonly IndexDef[],
205
+ > {
193
206
  readonly name: string; // injected by defineCollections from the object key
194
207
  /** @internal phantom field — anchors T for structural type inference. Never set by users. */
195
208
  readonly _type?: T;
209
+ /** @internal phantom — anchors the literal index tuple for CollectionIndexedFields. Never set. */
210
+ readonly _idx?: Idx;
196
211
  schema: z.ZodObject<z.ZodRawShape>;
197
212
  meta: CollectionMeta & { trackKeys?: Keys };
213
+ // Stays a mutable IndexDef[] for internal consumers; the literal tuple is
214
+ // captured phantom-only in `_idx`, so widening here doesn't lose the type info.
198
215
  indexes?: IndexDef[];
199
216
  search?: { fields: string[]; language?: string };
200
217
  vector?: VectorMeta;
@@ -207,7 +224,8 @@ export type DeleteHandlers<Defs extends CollectionDefRegistry = CollectionDefReg
207
224
  [K in keyof Defs]?: (doc: Defs[K] extends CollectionDef<infer T> ? T : never, db: TypedDB<any>) => Promise<void>;
208
225
  };
209
226
 
210
- export type CollectionDefInputRegistry = Record<string, CollectionDefInput>;
227
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
228
+ export type CollectionDefInputRegistry = Record<string, CollectionDefInput<any, any>>;
211
229
  export type CollectionDefRegistry = Record<string, Omit<CollectionDef, 'name'>>;
212
230
 
213
231
  // Extract union of trackable key names from a CollectionDef
@@ -367,8 +385,16 @@ export interface TypedDB<
367
385
  /** Delete a document and cascade-delete all children declared via cascadeFrom. */
368
386
  deleteDoc(collection: CollectionDef, id: string): Promise<void>;
369
387
 
370
- /** Query documents (optionally with full-text `search` and/or vector `near`). */
371
- getDocs<T>(collection: CollectionDef<T>, filter?: Record<string, unknown>, options?: GetDocsOptions): Promise<T[]>;
388
+ /**
389
+ * Query documents (optionally with full-text `search` and/or vector `near`).
390
+ * Filter and sort KEYS are constrained to the collection's indexed fields —
391
+ * an unindexed field is a compile error (add the index, or use `getQuery`).
392
+ */
393
+ getDocs<C extends CollectionDef>(
394
+ collection: C,
395
+ filter?: IndexedFilter<C>,
396
+ options?: Omit<GetDocsOptions, 'sort'> & { sort?: IndexedSort<C> },
397
+ ): Promise<DocOf<C>[]>;
372
398
 
373
399
  /**
374
400
  * Run a sequence of writes as one trackDocs "transaction": the writes happen
@@ -406,25 +432,25 @@ export interface TypedDB<
406
432
 
407
433
  // ─── Typed SQL-native query methods ───────────────────────────────────────
408
434
 
409
- /** Query documents with a fully typed filter. */
410
- find<T extends DBObject>(
411
- collection: CollectionDef<T>,
412
- filter?: TypedFilter<T>,
413
- options?: FindOptions<T>,
414
- ): Promise<T[]>;
415
-
416
- /** Count documents matching a typed filter. */
417
- findCount<T extends DBObject>(
418
- collection: CollectionDef<T>,
419
- filter?: TypedFilter<T>,
435
+ /** Query documents. Filter/sort keys are constrained to indexed fields. */
436
+ find<C extends CollectionDef>(
437
+ collection: C,
438
+ filter?: IndexedFilter<C>,
439
+ options?: { sort?: IndexedSort<C>; limit?: number; skip?: number },
440
+ ): Promise<DocOf<C>[]>;
441
+
442
+ /** Count documents. Filter keys are constrained to indexed fields. */
443
+ findCount<C extends CollectionDef>(
444
+ collection: C,
445
+ filter?: IndexedFilter<C>,
420
446
  ): Promise<number>;
421
447
 
422
- /** Fetch a random sample of documents matching a typed filter. */
423
- findRandom<T extends DBObject>(
424
- collection: CollectionDef<T>,
425
- filter?: TypedFilter<T>,
448
+ /** Fetch a random sample. Filter keys are constrained to indexed fields. */
449
+ findRandom<C extends CollectionDef>(
450
+ collection: C,
451
+ filter?: IndexedFilter<C>,
426
452
  limit?: number,
427
- ): Promise<T[]>;
453
+ ): Promise<DocOf<C>[]>;
428
454
 
429
455
  /** Bulk delete documents matching a typed filter, with cascade deletes and onDelete hooks. */
430
456
  deleteWhere<T extends DBObject>(
@@ -515,15 +541,26 @@ export type InjectableDb = Pick<
515
541
 
516
542
  /** Return shape of {@link defineCollections}: each input key mapped to a fully-typed CollectionDef. */
517
543
  export type DefinedCollections<Defs extends CollectionDefInputRegistry> = {
518
- [K in keyof Defs & string]: CollectionDef<InferDocType<Defs[K]['schema']>> & {
544
+ [K in keyof Defs & string]: CollectionDef<
545
+ InferDocType<Defs[K]['schema']>,
546
+ Defs[K]['meta'] extends { trackKeys?: infer TK }
547
+ ? TK extends readonly string[]
548
+ ? TK
549
+ : readonly string[]
550
+ : readonly string[],
551
+ Defs[K]['indexes'] extends readonly IndexDef[] ? Defs[K]['indexes'] : readonly []
552
+ > & {
519
553
  name: K;
520
554
  schema: Defs[K]['schema'];
521
555
  meta: Defs[K]['meta'];
522
556
  };
523
557
  };
524
558
 
525
- export function defineCollections<Defs extends CollectionDefInputRegistry>(
526
- defs: Defs,
559
+ export function defineCollections<const Defs extends CollectionDefInputRegistry>(
560
+ // The intersection re-applies the per-collection `trackKeys ⊆ indexed` check
561
+ // that the `CollectionDefInputRegistry` (any, any) constraint would otherwise
562
+ // erase — see ValidateTrackKeys.
563
+ defs: Defs & { [K in keyof Defs]: ValidateTrackKeys<Defs[K]> },
527
564
  ): DefinedCollections<Defs> {
528
565
  return Object.fromEntries(
529
566
  Object.entries(defs).map(([k, v]) => [k, { ...v, name: k }]),
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Type-level derivation of a collection's indexed fields, mirroring the runtime
3
+ * `coveredFields` rule in src/server/sqlite/assertIndexed.ts: every field named
4
+ * in ANY index is covered (a composite credits all its fields — no prefix rule).
5
+ */
6
+
7
+ /** Columns that always exist and never need a declared index. */
8
+ export type TopLevelColumns = '_id' | 'created' | 'updated' | 'version';
9
+
10
+ /** Shape an index entry must have for field extraction. */
11
+ export interface IndexLike {
12
+ fields: Record<string, 1 | -1>;
13
+ }
14
+
15
+ /**
16
+ * Union of every field name across an index tuple. Mapped over the tuple
17
+ * per-element because `keyof (A | B)` is the INTERSECTION — mapping then
18
+ * `[number]`-indexing recovers the UNION.
19
+ */
20
+ export type IndexedFieldsOf<Idx extends readonly IndexLike[] | undefined> =
21
+ Idx extends readonly IndexLike[]
22
+ ? {
23
+ [I in keyof Idx]: Idx[I] extends IndexLike ? keyof Idx[I]['fields'] : never;
24
+ }[number] & string
25
+ : never;
26
+
27
+ import type { CollectionDef, IndexDef } from './DB.js';
28
+
29
+ /**
30
+ * Per-collection validation applied by `defineCollections` via an intersection
31
+ * on its parameter (the registry constraint widens the per-collection generics
32
+ * to `any`, so the trackKeys⊆indexed check must be re-applied here). Returns a
33
+ * constraint fragment requiring every `trackKey` to be an indexed field; a
34
+ * trackKey outside the index union makes the value unassignable → compile error.
35
+ */
36
+ export type ValidateTrackKeys<C> =
37
+ C extends { meta: infer M; indexes?: infer Idx }
38
+ ? M extends { trackKeys?: infer TK }
39
+ ? TK extends readonly string[]
40
+ ? Idx extends readonly IndexDef[]
41
+ ? { meta: { trackKeys?: readonly IndexedFieldsOf<Idx>[] } }
42
+ : unknown
43
+ : unknown
44
+ : unknown
45
+ : unknown;
46
+
47
+ /**
48
+ * Fields a collection may be filtered/sorted on: its declared index fields plus
49
+ * the always-present top-level columns. Mirrors the runtime `assertIndexed` rule.
50
+ */
51
+ export type CollectionIndexedFields<C> =
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ C extends CollectionDef<any, any, infer Idx>
54
+ ? IndexedFieldsOf<Idx> | TopLevelColumns
55
+ : TopLevelColumns;
56
+
57
+ /** The document type carried by a collection def. */
58
+ export type DocOf<C> =
59
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
+ C extends CollectionDef<infer T, any, any> ? T : never;
61
+
62
+ /**
63
+ * A field match value: equality, or a Mongo-style operator object. Mirrors the
64
+ * operator surface the runtime SqliteFilter / PostgresOperators support. Values
65
+ * stay permissive (`unknown`) in v1 — the safety win is the KEY constraint.
66
+ */
67
+ export type FieldMatch<V = unknown> =
68
+ | V
69
+ | {
70
+ $ne?: V;
71
+ $in?: readonly V[];
72
+ $nin?: readonly V[];
73
+ $gt?: V;
74
+ $gte?: V;
75
+ $lt?: V;
76
+ $lte?: V;
77
+ $exists?: boolean;
78
+ };
79
+
80
+ /** Filter whose KEYS are restricted to a collection's indexed fields. */
81
+ export type IndexedFilter<C> = {
82
+ [K in CollectionIndexedFields<C>]?: FieldMatch;
83
+ } & { $and?: IndexedFilter<C>[]; $or?: IndexedFilter<C>[] };
84
+
85
+ /** Sort whose keys are restricted to a collection's indexed fields. */
86
+ export type IndexedSort<C> = {
87
+ [K in CollectionIndexedFields<C>]?: 1 | -1;
88
+ };
@@ -0,0 +1,87 @@
1
+ // Compile-checked assertions for the index-safety types. This file is included
2
+ // in tsc (it is NOT a *.test.ts, which tsconfig excludes). A wrong type surfaces
3
+ // as a tsc error, so `npx tsc --noEmit` is the test for the index-safety types.
4
+ import type { IndexedFieldsOf, TopLevelColumns } from './dbIndexTypes.js';
5
+
6
+ // Assert two types are exactly equal (compile error otherwise).
7
+ type Expect<T extends true> = T;
8
+ type Equal<A, B> =
9
+ (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? true : false;
10
+
11
+ type Idx = readonly [{ fields: { conversationId: 1 } }, { fields: { userId: 1 } }];
12
+ // Union of all fields across all indexes (NOT the keyof-intersection `never`).
13
+ type _t1 = Expect<Equal<IndexedFieldsOf<Idx>, 'conversationId' | 'userId'>>;
14
+ // Composite index credits all its fields.
15
+ type IdxComposite = readonly [{ fields: { a: 1; b: -1 } }];
16
+ type _t2 = Expect<Equal<IndexedFieldsOf<IdxComposite>, 'a' | 'b'>>;
17
+ // Empty indexes → never.
18
+ type _t3 = Expect<Equal<IndexedFieldsOf<readonly []>, never>>;
19
+ type _t4 = Expect<Equal<TopLevelColumns, '_id' | 'created' | 'updated' | 'version'>>;
20
+
21
+ // ── Task 2: CollectionIndexedFields on a real defineCollections result ──────
22
+ import { z } from 'zod';
23
+ import { defineCollections, d1 } from './DB.js';
24
+ import type { CollectionIndexedFields } from './dbIndexTypes.js';
25
+
26
+ const _defs = defineCollections({
27
+ conversationUser: {
28
+ schema: z.object({ conversationId: z.string(), userId: z.string(), role: z.string() }),
29
+ meta: { cache: false, trackable: true, public: false, cascadeFrom: null, db: d1 },
30
+ // Inline indexes — the `const` type param preserves the literal field keys.
31
+ indexes: [{ fields: { conversationId: 1 } }, { fields: { userId: 1 } }],
32
+ },
33
+ });
34
+ type _CIF = CollectionIndexedFields<typeof _defs.conversationUser>;
35
+ type _t5 = Expect<Equal<_CIF, 'conversationId' | 'userId' | TopLevelColumns>>;
36
+
37
+ // ── Task 3: trackKeys must be a subset of the indexed fields ────────────────
38
+ // GOOD: every trackKey is indexed → compiles.
39
+ const _okDefs = defineCollections({
40
+ ok: {
41
+ schema: z.object({ userId: z.string() }),
42
+ meta: { cache: false, trackable: true, public: false, cascadeFrom: null, db: d1, trackKeys: ['userId'] },
43
+ indexes: [{ fields: { userId: 1 } }],
44
+ },
45
+ });
46
+
47
+ // BAD: trackKey `userId` is NOT in any index → must be a compile error.
48
+ const _badDefs = defineCollections({
49
+ bad: {
50
+ schema: z.object({ conversationId: z.string(), userId: z.string() }),
51
+ // @ts-expect-error trackKey "userId" is not present in meta.indexes
52
+ meta: { cache: false, trackable: true, public: false, cascadeFrom: null, db: d1, trackKeys: ['conversationId', 'userId'] },
53
+ indexes: [{ fields: { conversationId: 1 } }],
54
+ },
55
+ });
56
+
57
+ // ── Task 5: IndexedFilter / IndexedSort key constraints ─────────────────────
58
+ import type { IndexedFilter, IndexedSort } from './dbIndexTypes.js';
59
+
60
+ // indexed field → allowed (equality or operator object)
61
+ const _f1: IndexedFilter<typeof _defs.conversationUser> = { userId: 'u1' };
62
+ const _f2: IndexedFilter<typeof _defs.conversationUser> = { userId: { $ne: 'u1' } };
63
+ const _f3: IndexedFilter<typeof _defs.conversationUser> = { _id: 'x' }; // top-level always OK
64
+ // @ts-expect-error `role` is not indexed
65
+ const _f4: IndexedFilter<typeof _defs.conversationUser> = { role: 'admin' };
66
+ // $or recurses under the same key constraint
67
+ const _f5: IndexedFilter<typeof _defs.conversationUser> = { $or: [{ userId: 'u1' }, { conversationId: 'c1' }] };
68
+
69
+ const _s1: IndexedSort<typeof _defs.conversationUser> = { userId: 1 };
70
+ // @ts-expect-error `role` is not indexed
71
+ const _s2: IndexedSort<typeof _defs.conversationUser> = { role: -1 };
72
+
73
+ // ── Task 6: enforced read methods reject unindexed filter/sort keys ─────────
74
+ import type { TypedDB } from './DB.js';
75
+ declare const db: TypedDB;
76
+
77
+ // indexed → OK
78
+ void db.getDocs(_defs.conversationUser, { userId: 'u1' });
79
+ void db.getDocs(_defs.conversationUser, { userId: 'u1' }, { sort: { conversationId: 1 } });
80
+ // @ts-expect-error filtering an unindexed field must not compile
81
+ void db.getDocs(_defs.conversationUser, { role: 'admin' });
82
+ // @ts-expect-error sorting an unindexed field must not compile
83
+ void db.getDocs(_defs.conversationUser, { userId: 'u1' }, { sort: { role: 1 } });
84
+
85
+ // Reference the aliases so unused-local lint/tsc noUnusedLocals doesn't trip.
86
+ export type __IndexSafetyChecks = [_t1, _t2, _t3, _t4, _t5];
87
+ export const __indexSafetyRuntime = [_defs, _okDefs, _badDefs, _f1, _f2, _f3, _f4, _f5, _s1, _s2];