edinburgh 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -609,13 +609,13 @@ Prefer the `ModelClass` type alias for annotations and the result of
609
609
 
610
610
  **Type:** `typeof ModelClassRuntime`
611
611
 
612
- ### AnyModelClass · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L113)
612
+ ### AnyModelClass · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L132)
613
613
 
614
614
  A model constructor with its generic information erased.
615
615
 
616
616
  Useful when accepting or storing arbitrary registered model classes.
617
617
 
618
- **Type:** `ModelClass<new () => any, readonly any[], any, any>`
618
+ **Type:** `ModelClass<object, any, any, readonly any[], any, any>`
619
619
 
620
620
  ### ModelBase · [abstract class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L252)
621
621
 
@@ -831,14 +831,14 @@ Register a model class with the Edinburgh ORM system.
831
831
  Converts a plain class into a fully-featured model with database persistence,
832
832
  typed fields, primary key access, and optional secondary and unique indexes.
833
833
 
834
- **Signature:** `<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>, const INDEX extends Record<string, (keyof FieldsOf<T> & string) | ...`
834
+ **Signature:** `<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, IndexSpec<T>>, const INDEX extends Record<string, IndexSpec<T>>>(tableName: string, cls: T, opts?: { ...; }) => ModelClass<...>`
835
835
 
836
836
  **Type Parameters:**
837
837
 
838
838
  - `T extends new () => any`
839
839
  - `PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[]`
840
- - `UNIQUE extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>`
841
- - `INDEX extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>`
840
+ - `UNIQUE extends Record<string, IndexSpec<T>>`
841
+ - `INDEX extends Record<string, IndexSpec<T>>`
842
842
 
843
843
  **Parameters:**
844
844
 
@@ -1173,7 +1173,7 @@ Extends built-in Iterator to provide map/filter/reduce/toArray/etc.
1173
1173
 
1174
1174
  **Signature:** `() => ITEM`
1175
1175
 
1176
- ### Change · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L90)
1176
+ ### Change · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L93)
1177
1177
 
1178
1178
  **Type:** `Record<any, any> | "created" | "deleted"`
1179
1179
 
@@ -1197,19 +1197,19 @@ Optional human-readable description of the field.
1197
1197
 
1198
1198
  **Type:** `string`
1199
1199
 
1200
- #### fieldConfig.default · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L50)
1200
+ #### fieldConfig.default · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L51)
1201
1201
 
1202
1202
  Optional default value or function that generates default values.
1203
1203
 
1204
1204
  **Type:** `T | ((model: Record<string, any>) => T)`
1205
1205
 
1206
- ### TypeWrapper · [abstract class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L33)
1206
+ ### TypeWrapper · [abstract class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L36)
1207
1207
 
1208
1208
  **Type Parameters:**
1209
1209
 
1210
1210
  - `T` - The TypeScript type this wrapper represents.
1211
1211
 
1212
- #### typeWrapper.kind · [abstract property](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L47)
1212
+ #### typeWrapper.kind · [abstract property](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L48)
1213
1213
 
1214
1214
  A string identifier for this type, used during serialization
1215
1215
 
@@ -1236,7 +1236,7 @@ Deserialize a value from a Pack into an object property.
1236
1236
 
1237
1237
  - `pack: DataPack` - The Pack instance to read from.
1238
1238
 
1239
- #### typeWrapper.getError · [abstract method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L64)
1239
+ #### typeWrapper.getError · [abstract method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L66)
1240
1240
 
1241
1241
  Validate a value.
1242
1242
 
@@ -1258,7 +1258,7 @@ Serialize type metadata to a Pack (for schema serialization).
1258
1258
 
1259
1259
  - `pack: DataPack` - The Pack instance to write to.
1260
1260
 
1261
- #### typeWrapper.containsNull · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L77)
1261
+ #### typeWrapper.containsNull · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L78)
1262
1262
 
1263
1263
  Check if indexing should be skipped for this field value.
1264
1264
 
@@ -1270,11 +1270,11 @@ Check if indexing should be skipped for this field value.
1270
1270
 
1271
1271
  **Returns:** true if indexing should be skipped.
1272
1272
 
1273
- #### typeWrapper.toString · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L78)
1273
+ #### typeWrapper.toString · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L79)
1274
1274
 
1275
1275
  **Signature:** `() => string`
1276
1276
 
1277
- #### typeWrapper.clone · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L81)
1277
+ #### typeWrapper.clone · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L83)
1278
1278
 
1279
1279
  **Signature:** `(value: T) => T`
1280
1280
 
@@ -1282,7 +1282,7 @@ Check if indexing should be skipped for this field value.
1282
1282
 
1283
1283
  - `value: T`
1284
1284
 
1285
- #### typeWrapper.equals · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L85)
1285
+ #### typeWrapper.equals · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L86)
1286
1286
 
1287
1287
  **Signature:** `(value1: T, value2: T) => boolean`
1288
1288
 
@@ -1,5 +1,5 @@
1
1
  import DataPack from "./datapack.js";
2
- import { TypeWrapper, type FieldQueryArg, type FieldValue } from "./types.js";
2
+ import { TypeWrapper, type FieldQueryArg, type FieldValue, type StripQueryArg } from "./types.js";
3
3
  import { type Transaction } from "./edinburgh.js";
4
4
  import { PrimaryKey, NonPrimaryIndex, IndexRangeIterator, FindOptions, VersionInfo } from "./indexes.js";
5
5
  /**
@@ -37,26 +37,39 @@ export interface FieldConfig<T> {
37
37
  export declare function field<TYPE extends TypeWrapper<any>>(type: TYPE, options?: Partial<FieldConfig<FieldValue<TYPE>>>): FieldValue<TYPE>;
38
38
  export type Change = Record<any, any> | "created" | "deleted";
39
39
  type FieldsOf<T> = T extends new () => infer I ? I : never;
40
- type PKArgs<FIELDS, PK> = PK extends readonly (keyof FIELDS & string)[] ? {
41
- [I in keyof PK]: PK[I] extends keyof FIELDS ? FieldQueryArg<FIELDS[PK[I]]> : never;
42
- } : PK extends keyof FIELDS & string ? [FieldQueryArg<FIELDS[PK]>] : [string];
43
- type IndexArgs<FIELDS, SPEC> = SPEC extends readonly (keyof FIELDS & string)[] ? {
44
- [I in keyof SPEC]: SPEC[I] extends keyof FIELDS ? FieldQueryArg<FIELDS[SPEC[I]]> : never;
45
- } : SPEC extends keyof FIELDS & string ? [FieldQueryArg<FIELDS[SPEC]>] : SPEC extends (instance: any) => infer R ? R extends (infer V)[] ? [V] : [R] : never;
40
+ type PublicFields<FIELDS> = {
41
+ [K in keyof FIELDS]: StripQueryArg<FIELDS[K]>;
42
+ };
43
+ type QueryFields<FIELDS> = {
44
+ [K in keyof FIELDS]: FieldQueryArg<FIELDS[K]>;
45
+ };
46
+ type PublicModelOf<T extends new () => any> = Model<PublicFields<FieldsOf<T>>>;
47
+ type IndexSpec<T extends new () => any> = (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: PublicModelOf<T>) => any);
48
+ type PKArgs<QUERY_FIELDS, PK> = PK extends readonly (keyof QUERY_FIELDS & string)[] ? {
49
+ [I in keyof PK]: PK[I] extends keyof QUERY_FIELDS ? QUERY_FIELDS[PK[I]] : never;
50
+ } : PK extends keyof QUERY_FIELDS & string ? [QUERY_FIELDS[PK]] : [string];
51
+ type IndexArgs<QUERY_FIELDS, SPEC> = SPEC extends readonly (keyof QUERY_FIELDS & string)[] ? {
52
+ [I in keyof SPEC]: SPEC[I] extends keyof QUERY_FIELDS ? QUERY_FIELDS[SPEC[I]] : never;
53
+ } : SPEC extends keyof QUERY_FIELDS & string ? [QUERY_FIELDS[SPEC]] : SPEC extends (instance: any) => infer R ? R extends (infer V)[] ? [V] : [R] : never;
54
+ type PublicIndexSpec<SPEC> = SPEC extends (instance: infer INSTANCE) => infer R ? (instance: INSTANCE) => R : SPEC;
55
+ type PublicIndexSpecs<SPECS> = {
56
+ [K in keyof SPECS]: PublicIndexSpec<SPECS[K]>;
57
+ };
46
58
  /**
47
59
  * A model constructor with its generic information erased.
48
60
  *
49
61
  * Useful when accepting or storing arbitrary registered model classes.
50
62
  */
51
- export type AnyModelClass = ModelClass<new () => any, readonly any[], any, any>;
63
+ export type AnyModelClass = ModelClass<object, any, any, readonly any[], any, any>;
64
+ type StaticMembers<T extends new () => any> = Pick<T, Exclude<keyof T, 'prototype'>>;
52
65
  type SecondaryRegistry<FIELDS> = Record<string, NonPrimaryIndex<Model<FIELDS>, readonly (keyof FIELDS & string)[], readonly any[]>>;
53
66
  export declare const modelRegistry: Record<string, AnyModelClass>;
54
67
  export declare const pendingModelInits: Set<AnyModelClass>;
55
- declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> extends PrimaryKey<Model<FIELDS>, readonly (keyof FIELDS & string)[], PKA> {
68
+ declare class ModelClassRuntime<PUBLIC_FIELDS, QUERY_FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> extends PrimaryKey<Model<PUBLIC_FIELDS>, readonly (keyof PUBLIC_FIELDS & string)[], PKA> {
56
69
  tableName: string;
57
70
  fields: Record<string | symbol | number, FieldConfig<unknown>>;
58
- _secondaries?: SecondaryRegistry<FIELDS>;
59
- _nonKeyFields: (keyof FIELDS & string)[];
71
+ _secondaries?: SecondaryRegistry<PUBLIC_FIELDS>;
72
+ _nonKeyFields: (keyof PUBLIC_FIELDS & string)[];
60
73
  _lazyDescriptors: Record<string | symbol | number, PropertyDescriptor>;
61
74
  _resetDescriptors: Record<string | symbol | number, PropertyDescriptor>;
62
75
  _freezePrimaryKeyDescriptors: Record<string | symbol | number, PropertyDescriptor>;
@@ -65,10 +78,10 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
65
78
  _versions: Map<number, VersionInfo>;
66
79
  _serializeVersionValue(): Uint8Array;
67
80
  _initialize(reset?: boolean): Promise<void>;
68
- _getSecondary(name: string): NonPrimaryIndex<Model<FIELDS>, readonly (keyof FIELDS & string)[], readonly any[]>;
69
- _get(txn: Transaction, args: PKA | Uint8Array, loadNow: false | Uint8Array): Model<FIELDS>;
70
- _get(txn: Transaction, args: PKA | Uint8Array, loadNow: true): Model<FIELDS> | undefined;
71
- _lazyLoad(model: Model<FIELDS>): void;
81
+ _getSecondary(name: string): NonPrimaryIndex<Model<PUBLIC_FIELDS>, readonly (keyof PUBLIC_FIELDS & string)[], readonly any[]>;
82
+ _get(txn: Transaction, args: PKA | Uint8Array, loadNow: false | Uint8Array): Model<PUBLIC_FIELDS>;
83
+ _get(txn: Transaction, args: PKA | Uint8Array, loadNow: true): Model<PUBLIC_FIELDS> | undefined;
84
+ _lazyLoad(model: Model<PUBLIC_FIELDS>): void;
72
85
  /**
73
86
  * Load a model by primary key inside the current transaction.
74
87
  *
@@ -78,7 +91,7 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
78
91
  *
79
92
  * @returns The matching model, or `undefined` if no row exists.
80
93
  */
81
- get(...args: PKA): Model<FIELDS> | undefined;
94
+ get(...args: PKA): Model<PUBLIC_FIELDS> | undefined;
82
95
  /**
83
96
  * Load a model by primary key without fetching its non-key fields immediately.
84
97
  *
@@ -86,8 +99,8 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
86
99
  *
87
100
  * Accessing a lazy field later will load the remaining fields transparently.
88
101
  */
89
- getLazy(...args: PKA): Model<FIELDS>;
90
- _pairToInstance(txn: Transaction, keyBuffer: ArrayBuffer, valueBuffer: ArrayBuffer): Model<FIELDS>;
102
+ getLazy(...args: PKA): Model<PUBLIC_FIELDS>;
103
+ _pairToInstance(txn: Transaction, keyBuffer: ArrayBuffer, valueBuffer: ArrayBuffer): Model<PUBLIC_FIELDS>;
91
104
  /**
92
105
  * Load an existing instance by primary key and update it, or create a new one.
93
106
  * If a row already exists, its non-primary-key fields are updated in place.
@@ -96,7 +109,7 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
96
109
  * @param obj Partial model data that **must** include every primary key field.
97
110
  * @returns The loaded-and-updated or newly created instance.
98
111
  */
99
- replaceInto(obj: Partial<FIELDS>): Model<FIELDS>;
112
+ replaceInto(obj: Partial<PUBLIC_FIELDS>): Model<PUBLIC_FIELDS>;
100
113
  /**
101
114
  * Look up a model through a named unique index.
102
115
  *
@@ -106,7 +119,7 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
106
119
  * linked model uses a composite primary key, pass the full tuple in that slot.
107
120
  * @returns The matching model instance, if any.
108
121
  */
109
- getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<FIELDS, UNIQUE[K]>): Model<FIELDS> | undefined;
122
+ getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<QUERY_FIELDS, UNIQUE[K]>): Model<PUBLIC_FIELDS> | undefined;
110
123
  /**
111
124
  * Query rows through a named unique or secondary index.
112
125
  *
@@ -114,21 +127,21 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
114
127
  * or `index` registration. Link-valued index fields accept either the linked
115
128
  * model instance or the linked model's primary key tuple/value.
116
129
  */
117
- findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<FIELDS> | undefined;
118
- findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<FIELDS>;
119
- findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts?: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>>): IndexRangeIterator<Model<FIELDS>>;
130
+ findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<PUBLIC_FIELDS> | undefined;
131
+ findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<PUBLIC_FIELDS>;
132
+ findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts?: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>>): IndexRangeIterator<Model<PUBLIC_FIELDS>>;
120
133
  /**
121
134
  * Process rows from a named unique or secondary index in batched transactions.
122
135
  *
123
136
  * Uses the same range options as `findBy()`, plus batch limits.
124
137
  */
125
- batchProcessBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>> & {
138
+ batchProcessBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>> & {
126
139
  limitSeconds?: number;
127
140
  limitRows?: number;
128
- }, callback: (row: Model<FIELDS>) => any): Promise<void>;
129
- _loadValueFields(model: Model<FIELDS>, valueArray: Uint8Array): void;
141
+ }, callback: (row: Model<PUBLIC_FIELDS>) => any): Promise<void>;
142
+ _loadValueFields(model: Model<PUBLIC_FIELDS>, valueArray: Uint8Array): void;
130
143
  _loadVersionInfo(txnId: number, version: number): VersionInfo;
131
- _migrateValueFields(model: Model<FIELDS>, version: number, valuePack: DataPack): void;
144
+ _migrateValueFields(model: Model<PUBLIC_FIELDS>, version: number, valuePack: DataPack): void;
132
145
  _serializeValue(data: Record<string, any>): Uint8Array;
133
146
  }
134
147
  /**
@@ -150,8 +163,8 @@ export declare const ModelClass: typeof ModelClassRuntime;
150
163
  * @template UNIQUE - Named unique-index specifications.
151
164
  * @template INDEX - Named secondary-index specifications.
152
165
  */
153
- export type ModelClass<T extends new () => any, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> = T & ModelClassRuntime<FieldsOf<T>, PKA, UNIQUE, INDEX> & {
154
- new (initial?: Partial<FieldsOf<T>>, txn?: Transaction): Model<FieldsOf<T>>;
166
+ export type ModelClass<STATICS, PUBLIC_FIELDS, QUERY_FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> = STATICS & ModelClassRuntime<PUBLIC_FIELDS, QUERY_FIELDS, PKA, UNIQUE, INDEX> & {
167
+ new (initial?: Partial<PUBLIC_FIELDS>, txn?: Transaction): Model<PUBLIC_FIELDS>;
155
168
  };
156
169
  /**
157
170
  * Minimal instance-side model shape used for typing the constructor property.
@@ -174,12 +187,12 @@ export interface ModelBase {
174
187
  * @param opts.override Replace a previous model with the same table name.
175
188
  * @returns The enhanced model constructor.
176
189
  */
177
- export declare function defineModel<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>, const INDEX extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>>(tableName: string, cls: T, opts?: {
190
+ export declare function defineModel<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, IndexSpec<T>>, const INDEX extends Record<string, IndexSpec<T>>>(tableName: string, cls: T, opts?: {
178
191
  pk?: PK;
179
192
  unique?: UNIQUE;
180
193
  index?: INDEX;
181
194
  override?: boolean;
182
- }): ModelClass<T, PKArgs<FieldsOf<T>, PK>, UNIQUE, INDEX>;
195
+ }): ModelClass<StaticMembers<T>, PublicFields<FieldsOf<T>>, QueryFields<FieldsOf<T>>, PKArgs<QueryFields<FieldsOf<T>>, PK>, PublicIndexSpecs<UNIQUE>, PublicIndexSpecs<INDEX>>;
183
196
  /**
184
197
  * Base class for all database models in the Edinburgh ORM.
185
198
  *
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import DataPack from "./datapack.js";
2
2
  import { DatabaseError } from "olmdb/lowlevel";
3
3
  import { Model } from "./models.js";
4
- import type { AnyModelClass } from "./models.js";
4
+ import type { AnyModelClass, ModelBase as ModelInstanceBase } from "./models.js";
5
5
  /**
6
6
  * @internal Abstract base class for all type wrappers in the Edinburgh ORM system.
7
7
  *
@@ -71,6 +71,15 @@ type QueryAnnotated<T, QUERY> = T & QueryArgCarrier<QUERY>;
71
71
  export type FieldValue<TYPE extends TypeWrapper<any>> = TYPE extends TypeWrapper<infer T> ? TYPE extends {
72
72
  readonly [QUERY_ARG]?: infer QUERY;
73
73
  } ? QueryAnnotated<T, Exclude<QUERY, undefined>> : T : never;
74
+ export type StripQueryArg<T> = T extends ModelInstanceBase & {
75
+ readonly [QUERY_ARG]?: any;
76
+ } ? Model<{
77
+ [K in Exclude<keyof T, keyof ModelInstanceBase | typeof QUERY_ARG>]: T[K];
78
+ }> : T extends {
79
+ readonly [QUERY_ARG]?: any;
80
+ } ? {
81
+ [K in keyof T as K extends typeof QUERY_ARG ? never : K]: T[K];
82
+ } : T;
74
83
  export type FieldQueryArg<T> = T extends {
75
84
  readonly [QUERY_ARG]?: infer QUERY;
76
85
  } ? Exclude<QUERY, undefined> : T;
@@ -118,7 +127,7 @@ export declare class LinkType<T extends new (...args: any[]) => Model<any>> exte
118
127
  constructor(TargetModel: T | (() => T));
119
128
  getLinkedModel(): AnyModelClass;
120
129
  serialize(model: InstanceType<T>, pack: DataPack): void;
121
- deserialize(pack: DataPack): any;
130
+ deserialize(pack: DataPack): InstanceType<T>;
122
131
  getError(value: InstanceType<T>): DatabaseError | undefined;
123
132
  serializeType(pack: DataPack): void;
124
133
  static deserializeType(pack: DataPack, featureFlags: number): LinkType<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edinburgh",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "author": "Frank van Viegen",
5
5
  "devDependencies": {
6
6
  "@types/bun": "^1.2.16",
@@ -4,4 +4,4 @@ A model constructor with its generic information erased.
4
4
 
5
5
  Useful when accepting or storing arbitrary registered model classes.
6
6
 
7
- **Type:** `ModelClass<new () => any, readonly any[], any, any>`
7
+ **Type:** `ModelClass<object, any, any, readonly any[], any, any>`
@@ -5,14 +5,14 @@ Register a model class with the Edinburgh ORM system.
5
5
  Converts a plain class into a fully-featured model with database persistence,
6
6
  typed fields, primary key access, and optional secondary and unique indexes.
7
7
 
8
- **Signature:** `<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>, const INDEX extends Record<string, (keyof FieldsOf<T> & string) | ...`
8
+ **Signature:** `<T extends new () => any, const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[], const UNIQUE extends Record<string, IndexSpec<T>>, const INDEX extends Record<string, IndexSpec<T>>>(tableName: string, cls: T, opts?: { ...; }) => ModelClass<...>`
9
9
 
10
10
  **Type Parameters:**
11
11
 
12
12
  - `T extends new () => any`
13
13
  - `PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[]`
14
- - `UNIQUE extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>`
15
- - `INDEX extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>`
14
+ - `UNIQUE extends Record<string, IndexSpec<T>>`
15
+ - `INDEX extends Record<string, IndexSpec<T>>`
16
16
 
17
17
  **Parameters:**
18
18
 
package/src/models.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as lowlevel from "olmdb/lowlevel";
2
2
  import { DatabaseError } from "olmdb/lowlevel";
3
3
  import DataPack from "./datapack.js";
4
- import { deserializeType, serializeType, TypeWrapper, identifier, type FieldQueryArg, type FieldValue } from "./types.js";
4
+ import { deserializeType, serializeType, TypeWrapper, identifier, type FieldQueryArg, type FieldValue, type StripQueryArg } from "./types.js";
5
5
  import { transact, currentTxn, type Transaction } from "./edinburgh.js";
6
6
 
7
7
  import { PrimaryKey, NonPrimaryIndex, IndexRangeIterator, UniqueIndex, SecondaryIndex, FindOptions, VersionInfo } from "./indexes.js";
@@ -66,28 +66,54 @@ export type Change = Record<any, any> | "created" | "deleted";
66
66
 
67
67
  type FieldsOf<T> = T extends new () => infer I ? I : never;
68
68
 
69
- type PKArgs<FIELDS, PK> =
70
- PK extends readonly (keyof FIELDS & string)[]
71
- ? { [I in keyof PK]: PK[I] extends keyof FIELDS ? FieldQueryArg<FIELDS[PK[I]]> : never }
72
- : PK extends keyof FIELDS & string
73
- ? [FieldQueryArg<FIELDS[PK]>]
69
+ type PublicFields<FIELDS> = {
70
+ [K in keyof FIELDS]: StripQueryArg<FIELDS[K]>;
71
+ };
72
+
73
+ type QueryFields<FIELDS> = {
74
+ [K in keyof FIELDS]: FieldQueryArg<FIELDS[K]>;
75
+ };
76
+
77
+ type PublicModelOf<T extends new () => any> = Model<PublicFields<FieldsOf<T>>>;
78
+
79
+ type IndexSpec<T extends new () => any> =
80
+ | (keyof FieldsOf<T> & string)
81
+ | readonly (keyof FieldsOf<T> & string)[]
82
+ | ((instance: PublicModelOf<T>) => any);
83
+
84
+ type PKArgs<QUERY_FIELDS, PK> =
85
+ PK extends readonly (keyof QUERY_FIELDS & string)[]
86
+ ? { [I in keyof PK]: PK[I] extends keyof QUERY_FIELDS ? QUERY_FIELDS[PK[I]] : never }
87
+ : PK extends keyof QUERY_FIELDS & string
88
+ ? [QUERY_FIELDS[PK]]
74
89
  : [string];
75
90
 
76
- type IndexArgs<FIELDS, SPEC> =
77
- SPEC extends readonly (keyof FIELDS & string)[]
78
- ? { [I in keyof SPEC]: SPEC[I] extends keyof FIELDS ? FieldQueryArg<FIELDS[SPEC[I]]> : never }
79
- : SPEC extends keyof FIELDS & string
80
- ? [FieldQueryArg<FIELDS[SPEC]>]
91
+ type IndexArgs<QUERY_FIELDS, SPEC> =
92
+ SPEC extends readonly (keyof QUERY_FIELDS & string)[]
93
+ ? { [I in keyof SPEC]: SPEC[I] extends keyof QUERY_FIELDS ? QUERY_FIELDS[SPEC[I]] : never }
94
+ : SPEC extends keyof QUERY_FIELDS & string
95
+ ? [QUERY_FIELDS[SPEC]]
81
96
  : SPEC extends (instance: any) => infer R
82
97
  ? R extends (infer V)[] ? [V] : [R]
83
98
  : never;
84
99
 
100
+ type PublicIndexSpec<SPEC> =
101
+ SPEC extends (instance: infer INSTANCE) => infer R
102
+ ? (instance: INSTANCE) => R
103
+ : SPEC;
104
+
105
+ type PublicIndexSpecs<SPECS> = {
106
+ [K in keyof SPECS]: PublicIndexSpec<SPECS[K]>;
107
+ };
108
+
85
109
  /**
86
110
  * A model constructor with its generic information erased.
87
111
  *
88
112
  * Useful when accepting or storing arbitrary registered model classes.
89
113
  */
90
- export type AnyModelClass = ModelClass<new () => any, readonly any[], any, any>;
114
+ export type AnyModelClass = ModelClass<object, any, any, readonly any[], any, any>;
115
+
116
+ type StaticMembers<T extends new () => any> = Pick<T, Exclude<keyof T, 'prototype'>>;
91
117
 
92
118
  type SecondaryRegistry<FIELDS> = Record<string, NonPrimaryIndex<Model<FIELDS>, readonly (keyof FIELDS & string)[], readonly any[]>>;
93
119
 
@@ -107,15 +133,15 @@ export const pendingModelInits = new Set<AnyModelClass>();
107
133
 
108
134
  // These static members are attached dynamically in defineModel(), so 'declare' tells TypeScript
109
135
  // they exist at runtime without emitting duplicate class fields that would shadow those assignments.
110
- class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> extends PrimaryKey<Model<FIELDS>, readonly (keyof FIELDS & string)[], PKA> {
136
+ class ModelClassRuntime<PUBLIC_FIELDS, QUERY_FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> extends PrimaryKey<Model<PUBLIC_FIELDS>, readonly (keyof PUBLIC_FIELDS & string)[], PKA> {
111
137
  // Runtime table identifier used for index naming and diagnostics.
112
138
  declare tableName: string;
113
139
  // Field schema map used for validation and serialization.
114
140
  declare fields: Record<string | symbol | number, FieldConfig<unknown>>;
115
141
  // Registered unique/secondary indexes for this model.
116
- declare _secondaries?: SecondaryRegistry<FIELDS>;
142
+ declare _secondaries?: SecondaryRegistry<PUBLIC_FIELDS>;
117
143
  // Cached list of non-primary fields used for value serialization.
118
- _nonKeyFields!: (keyof FIELDS & string)[];
144
+ _nonKeyFields!: (keyof PUBLIC_FIELDS & string)[];
119
145
  // Lazy getter/setter descriptors installed on unloaded non-key fields.
120
146
  _lazyDescriptors: Record<string | symbol | number, PropertyDescriptor> = {};
121
147
  // Writable descriptors temporarily installed before hydrating value fields.
@@ -160,13 +186,13 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
160
186
  this._lazyDescriptors[fieldName] = {
161
187
  configurable: true,
162
188
  enumerable: true,
163
- get(this: Model<FIELDS>) {
189
+ get(this: Model<PUBLIC_FIELDS>) {
164
190
  this.constructor._lazyLoad(this);
165
- return this[fieldName];
191
+ return (this as any)[fieldName];
166
192
  },
167
- set(this: Model<FIELDS>, value: any) {
193
+ set(this: Model<PUBLIC_FIELDS>, value: any) {
168
194
  this.constructor._lazyLoad(this);
169
- this[fieldName] = value;
195
+ (this as any)[fieldName] = value;
170
196
  },
171
197
  };
172
198
  this._resetDescriptors[fieldName] = {
@@ -200,9 +226,9 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
200
226
  return index;
201
227
  }
202
228
 
203
- _get(txn: Transaction, args: PKA | Uint8Array, loadNow: false | Uint8Array): Model<FIELDS>;
204
- _get(txn: Transaction, args: PKA | Uint8Array, loadNow: true): Model<FIELDS> | undefined;
205
- _get(txn: Transaction, args: PKA | Uint8Array, loadNow: boolean | Uint8Array): Model<FIELDS> | undefined {
229
+ _get(txn: Transaction, args: PKA | Uint8Array, loadNow: false | Uint8Array): Model<PUBLIC_FIELDS>;
230
+ _get(txn: Transaction, args: PKA | Uint8Array, loadNow: true): Model<PUBLIC_FIELDS> | undefined;
231
+ _get(txn: Transaction, args: PKA | Uint8Array, loadNow: boolean | Uint8Array): Model<PUBLIC_FIELDS> | undefined {
206
232
  let key: Uint8Array;
207
233
  let keyParts: readonly any[] | undefined;
208
234
  if (args instanceof Uint8Array) {
@@ -213,7 +239,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
213
239
  }
214
240
 
215
241
  const keyHash = hashBytes(key);
216
- const cached = txn.instances.get(keyHash) as Model<FIELDS> | undefined;
242
+ const cached = txn.instances.get(keyHash) as Model<PUBLIC_FIELDS> | undefined;
217
243
  if (cached) {
218
244
  if (loadNow && loadNow !== true) {
219
245
  Object.defineProperties(cached, this._resetDescriptors);
@@ -232,7 +258,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
232
258
  }
233
259
  }
234
260
 
235
- const model = Object.create((this as any).prototype) as Model<FIELDS>;
261
+ const model = Object.create((this as any).prototype) as Model<PUBLIC_FIELDS>;
236
262
  model._txn = txn;
237
263
  model._oldValues = {};
238
264
  txn.instances.set(keyHash, model);
@@ -259,7 +285,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
259
285
  return model;
260
286
  }
261
287
 
262
- _lazyLoad(model: Model<FIELDS>) {
288
+ _lazyLoad(model: Model<PUBLIC_FIELDS>) {
263
289
  const key = model._primaryKey!;
264
290
  const valueBuffer = dbGet(model._txn.id, key);
265
291
  if (!valueBuffer) throw new DatabaseError(`Lazy-loaded ${this.tableName}#${key} does not exist`, 'LAZY_FAIL');
@@ -276,7 +302,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
276
302
  *
277
303
  * @returns The matching model, or `undefined` if no row exists.
278
304
  */
279
- get(...args: PKA): Model<FIELDS> | undefined {
305
+ get(...args: PKA): Model<PUBLIC_FIELDS> | undefined {
280
306
  return this._get(currentTxn(), args, true);
281
307
  }
282
308
 
@@ -287,11 +313,11 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
287
313
  *
288
314
  * Accessing a lazy field later will load the remaining fields transparently.
289
315
  */
290
- getLazy(...args: PKA): Model<FIELDS> {
316
+ getLazy(...args: PKA): Model<PUBLIC_FIELDS> {
291
317
  return this._get(currentTxn(), args, false);
292
318
  }
293
319
 
294
- _pairToInstance(txn: Transaction, keyBuffer: ArrayBuffer, valueBuffer: ArrayBuffer): Model<FIELDS> {
320
+ _pairToInstance(txn: Transaction, keyBuffer: ArrayBuffer, valueBuffer: ArrayBuffer): Model<PUBLIC_FIELDS> {
295
321
  return this._get(txn, new Uint8Array(keyBuffer), new Uint8Array(valueBuffer))!;
296
322
  }
297
323
 
@@ -303,7 +329,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
303
329
  * @param obj Partial model data that **must** include every primary key field.
304
330
  * @returns The loaded-and-updated or newly created instance.
305
331
  */
306
- replaceInto(obj: Partial<FIELDS>): Model<FIELDS> {
332
+ replaceInto(obj: Partial<PUBLIC_FIELDS>): Model<PUBLIC_FIELDS> {
307
333
  const keyArgs: any[] = [];
308
334
  for (const fieldName of this._indexFields.keys()) {
309
335
  if (!(fieldName in (obj as any))) {
@@ -311,7 +337,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
311
337
  }
312
338
  keyArgs.push((obj as any)[fieldName]);
313
339
  }
314
- const existing = this.get(...keyArgs as any) as Model<FIELDS> | undefined;
340
+ const existing = this.get(...keyArgs as any) as Model<PUBLIC_FIELDS> | undefined;
315
341
  if (existing) {
316
342
  for (const key in obj as any) {
317
343
  if (!this._indexFields.has(key as any)) {
@@ -332,7 +358,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
332
358
  * linked model uses a composite primary key, pass the full tuple in that slot.
333
359
  * @returns The matching model instance, if any.
334
360
  */
335
- getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<FIELDS, UNIQUE[K]>): Model<FIELDS> | undefined {
361
+ getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<QUERY_FIELDS, UNIQUE[K]>): Model<PUBLIC_FIELDS> | undefined {
336
362
  return (this._getSecondary(name) as any).getPK(...args);
337
363
  }
338
364
 
@@ -343,9 +369,9 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
343
369
  * or `index` registration. Link-valued index fields accept either the linked
344
370
  * model instance or the linked model's primary key tuple/value.
345
371
  */
346
- findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<FIELDS> | undefined;
347
- findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<FIELDS>;
348
- findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts?: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>>): IndexRangeIterator<Model<FIELDS>>;
372
+ findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<PUBLIC_FIELDS> | undefined;
373
+ findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<PUBLIC_FIELDS>;
374
+ findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts?: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>>): IndexRangeIterator<Model<PUBLIC_FIELDS>>;
349
375
  findBy(name: string, opts?: any): any {
350
376
  return this._getSecondary(name).find(opts);
351
377
  }
@@ -357,13 +383,13 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
357
383
  */
358
384
  batchProcessBy<K extends string & keyof (UNIQUE & INDEX)>(
359
385
  name: K,
360
- opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>> & { limitSeconds?: number; limitRows?: number },
361
- callback: (row: Model<FIELDS>) => any,
386
+ opts: FindOptions<IndexArgs<QUERY_FIELDS, (UNIQUE & INDEX)[K]>> & { limitSeconds?: number; limitRows?: number },
387
+ callback: (row: Model<PUBLIC_FIELDS>) => any,
362
388
  ): Promise<void> {
363
389
  return this._getSecondary(name).batchProcess(opts, callback as any);
364
390
  }
365
391
 
366
- _loadValueFields(model: Model<FIELDS>, valueArray: Uint8Array) {
392
+ _loadValueFields(model: Model<PUBLIC_FIELDS>, valueArray: Uint8Array) {
367
393
  const valuePack = new DataPack(valueArray);
368
394
  const version = valuePack.readNumber();
369
395
 
@@ -399,7 +425,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
399
425
  return info;
400
426
  }
401
427
 
402
- _migrateValueFields(model: Model<FIELDS>, version: number, valuePack: DataPack) {
428
+ _migrateValueFields(model: Model<PUBLIC_FIELDS>, version: number, valuePack: DataPack) {
403
429
  const versionInfo = this._loadVersionInfo(model._txn.id, version);
404
430
  const record: Record<string, any> = {};
405
431
  for (const [name] of this._indexFields.entries()) record[name] = (model as any)[name];
@@ -452,11 +478,11 @@ export const ModelClass = ModelClassRuntime;
452
478
  * @template UNIQUE - Named unique-index specifications.
453
479
  * @template INDEX - Named secondary-index specifications.
454
480
  */
455
- export type ModelClass<T extends new () => any, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> =
456
- T
457
- & ModelClassRuntime<FieldsOf<T>, PKA, UNIQUE, INDEX>
481
+ export type ModelClass<STATICS, PUBLIC_FIELDS, QUERY_FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX = {}> =
482
+ STATICS
483
+ & ModelClassRuntime<PUBLIC_FIELDS, QUERY_FIELDS, PKA, UNIQUE, INDEX>
458
484
  & {
459
- new (initial?: Partial<FieldsOf<T>>, txn?: Transaction): Model<FieldsOf<T>>;
485
+ new (initial?: Partial<PUBLIC_FIELDS>, txn?: Transaction): Model<PUBLIC_FIELDS>;
460
486
  };
461
487
 
462
488
  /**
@@ -484,13 +510,20 @@ export interface ModelBase {
484
510
  export function defineModel<
485
511
  T extends new () => any,
486
512
  const PK extends (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[],
487
- const UNIQUE extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>,
488
- const INDEX extends Record<string, (keyof FieldsOf<T> & string) | readonly (keyof FieldsOf<T> & string)[] | ((instance: any) => any)>,
513
+ const UNIQUE extends Record<string, IndexSpec<T>>,
514
+ const INDEX extends Record<string, IndexSpec<T>>,
489
515
  >(
490
516
  tableName: string,
491
517
  cls: T,
492
518
  opts?: { pk?: PK, unique?: UNIQUE, index?: INDEX, override?: boolean }
493
- ): ModelClass<T, PKArgs<FieldsOf<T>, PK>, UNIQUE, INDEX> {
519
+ ): ModelClass<
520
+ StaticMembers<T>,
521
+ PublicFields<FieldsOf<T>>,
522
+ QueryFields<FieldsOf<T>>,
523
+ PKArgs<QueryFields<FieldsOf<T>>, PK>,
524
+ PublicIndexSpecs<UNIQUE>,
525
+ PublicIndexSpecs<INDEX>
526
+ > {
494
527
  Object.setPrototypeOf(cls.prototype, ModelBase.prototype);
495
528
  const MockModel = function(this: any, initial?: Record<string, any>, txn: Transaction = currentTxn()) {
496
529
  this._txn = txn;
package/src/types.ts CHANGED
@@ -2,7 +2,7 @@ import DataPack from "./datapack.js";
2
2
  import { DatabaseError } from "olmdb/lowlevel";
3
3
  import { currentTxn } from "./edinburgh.js";
4
4
  import { Model, modelRegistry } from "./models.js";
5
- import type { AnyModelClass } from "./models.js";
5
+ import type { AnyModelClass, ModelBase as ModelInstanceBase } from "./models.js";
6
6
  import { assert, addErrorPath, dbGet } from "./utils.js";
7
7
 
8
8
 
@@ -111,6 +111,15 @@ export type FieldValue<TYPE extends TypeWrapper<any>> =
111
111
  : T
112
112
  : never;
113
113
 
114
+ export type StripQueryArg<T> =
115
+ T extends ModelInstanceBase & { readonly [QUERY_ARG]?: any }
116
+ ? Model<{
117
+ [K in Exclude<keyof T, keyof ModelInstanceBase | typeof QUERY_ARG>]: T[K]
118
+ }>
119
+ : T extends { readonly [QUERY_ARG]?: any }
120
+ ? { [K in keyof T as K extends typeof QUERY_ARG ? never : K]: T[K] }
121
+ : T;
122
+
114
123
  export type FieldQueryArg<T> =
115
124
  T extends { readonly [QUERY_ARG]?: infer QUERY }
116
125
  ? Exclude<QUERY, undefined>
@@ -657,8 +666,8 @@ export class LinkType<T extends new (...args: any[]) => Model<any>> extends Type
657
666
  pack.write(model.getPrimaryKey());
658
667
  }
659
668
 
660
- deserialize(pack: DataPack) {
661
- return this.getLinkedModel()._get(currentTxn(), pack.readUint8Array(), false);
669
+ deserialize(pack: DataPack): InstanceType<T> {
670
+ return this.getLinkedModel()._get(currentTxn(), pack.readUint8Array(), false) as InstanceType<T>;
662
671
  }
663
672
 
664
673
  getError(value: InstanceType<T>) {