edinburgh 0.6.1 → 0.6.2

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
@@ -192,6 +192,22 @@ await E.transact(() => {
192
192
  });
193
193
  ```
194
194
 
195
+ If a primary key or named index includes a `link(...)` field, lookup helpers either accept the linked row's instance object or its primary key. For linked models with composite primary keys, pass the full tuple in that slot:
196
+
197
+ ```typescript
198
+ await E.transact(() => {
199
+ // So instead of..
200
+ const post1 = Post.getBy("author", Author.get(user.id), "Hello World");
201
+ // We can do..
202
+ const post2 = Post.getBy("author", user.id, "Hello World");
203
+ // Or..
204
+ const post3 = Post.getBy("author", [user.id], "Hello World");
205
+
206
+ // For an index that includes a link with a composite primary key..
207
+ const page = Comment.getBy("target", ["docs", "intro"], "overview");
208
+ });
209
+ ```
210
+
195
211
  #### Range Queries
196
212
 
197
213
  Primary-key queries use `.find()`. Named unique and secondary indexes use `.findBy(name, ...)`:
@@ -593,7 +609,7 @@ Prefer the `ModelClass` type alias for annotations and the result of
593
609
 
594
610
  **Type:** `typeof ModelClassRuntime`
595
611
 
596
- ### AnyModelClass · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L111)
612
+ ### AnyModelClass · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L113)
597
613
 
598
614
  A model constructor with its generic information erased.
599
615
 
@@ -841,7 +857,7 @@ for tests, local resets, or tooling that needs a completely empty database.
841
857
 
842
858
  **Signature:** `() => Promise<void>`
843
859
 
844
- ### field · [function](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L76)
860
+ ### field · [function](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L77)
845
861
 
846
862
  Create a field definition for a model property.
847
863
 
@@ -849,16 +865,16 @@ This function uses TypeScript magic to return the field configuration object
849
865
  while appearing to return the actual field value type to the type system.
850
866
  This allows for both runtime introspection and compile-time type safety.
851
867
 
852
- **Signature:** `<T>(type: TypeWrapper<T>, options?: Partial<FieldConfig<T>>) => T`
868
+ **Signature:** `<TYPE extends TypeWrapper<any>>(type: TYPE, options?: Partial<FieldConfig<FieldValue<TYPE>>>) => FieldValue<TYPE>`
853
869
 
854
870
  **Type Parameters:**
855
871
 
856
- - `T` - The field type.
872
+ - `TYPE extends TypeWrapper<any>` - The field type.
857
873
 
858
874
  **Parameters:**
859
875
 
860
- - `type: TypeWrapper<T>` - The type wrapper for this field.
861
- - `options: Partial<FieldConfig<T>>` (optional) - Additional field configuration options.
876
+ - `type: TYPE` - The type wrapper for this field.
877
+ - `options: Partial<FieldConfig<FieldValue<TYPE>>>` (optional) - Additional field configuration options.
862
878
 
863
879
  **Returns:** The field value (typed as T, but actually returns FieldConfig<T>).
864
880
 
@@ -1060,7 +1076,7 @@ const countType = E.literal(42);
1060
1076
 
1061
1077
  Create a link type wrapper for model relationships.
1062
1078
 
1063
- **Signature:** `{ <const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>>; <const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<...>; }`
1079
+ **Signature:** `{ <const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>> & QueryArgCarrier<InstanceType<T> | LinkPrimaryKeyInput<LinkTargetPKArgs<T>>>; <const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<...>; }`
1064
1080
 
1065
1081
  **Type Parameters:**
1066
1082
 
@@ -1090,7 +1106,7 @@ const Book = E.defineModel("Book", class {
1090
1106
 
1091
1107
  **Signature:** `() => void`
1092
1108
 
1093
- ### FindOptions · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L115)
1109
+ ### FindOptions · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L141)
1094
1110
 
1095
1111
  Range-query options accepted by `find()`, `findBy()`, `batchProcess()`, and `batchProcessBy()`.
1096
1112
 
@@ -1098,7 +1114,10 @@ Supports exact-match lookups via `is`, inclusive bounds via `from` / `to`,
1098
1114
  exclusive bounds via `after` / `before`, and reverse scans.
1099
1115
 
1100
1116
  For single-field indexes, values can be passed directly. For composite indexes,
1101
- pass tuples or partial tuples for prefix matching.
1117
+ pass tuples or partial tuples for prefix matching. If an index field is a
1118
+ `link(...)`, you may pass either the linked model instance or the linked
1119
+ model's primary key. Composite linked primary keys are passed as tuples in
1120
+ that slot.
1102
1121
 
1103
1122
  **Type:** `(
1104
1123
  (
@@ -1128,7 +1147,7 @@ pass tuples or partial tuples for prefix matching.
1128
1147
  & (FETCH extends undefined ? { fetch?: undefined } : { fetch: FETCH })
1129
1148
  )`
1130
1149
 
1131
- ### IndexRangeIterator · [class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L73)
1150
+ ### IndexRangeIterator · [class](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L90)
1132
1151
 
1133
1152
  Iterator for range queries on indexes.
1134
1153
  Handles common iteration logic for both primary and unique indexes.
@@ -1138,27 +1157,27 @@ Extends built-in Iterator to provide map/filter/reduce/toArray/etc.
1138
1157
 
1139
1158
  - `ITEM`
1140
1159
 
1141
- #### indexRangeIterator.[Symbol.iterator] · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L78)
1160
+ #### indexRangeIterator.[Symbol.iterator] · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L100)
1142
1161
 
1143
1162
  **Signature:** `() => this`
1144
1163
 
1145
- #### indexRangeIterator.next · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L80)
1164
+ #### indexRangeIterator.next · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L102)
1146
1165
 
1147
1166
  **Signature:** `() => IteratorResult<ITEM, any>`
1148
1167
 
1149
- #### indexRangeIterator.count · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L102)
1168
+ #### indexRangeIterator.count · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L110)
1150
1169
 
1151
1170
  **Signature:** `() => number`
1152
1171
 
1153
- #### indexRangeIterator.fetch · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L105)
1172
+ #### indexRangeIterator.fetch · [method](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L112)
1154
1173
 
1155
1174
  **Signature:** `() => ITEM`
1156
1175
 
1157
- ### Change · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L85)
1176
+ ### Change · [type](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L90)
1158
1177
 
1159
1178
  **Type:** `Record<any, any> | "created" | "deleted"`
1160
1179
 
1161
- ### FieldConfig · [interface](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L37)
1180
+ ### FieldConfig · [interface](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L40)
1162
1181
 
1163
1182
  Configuration interface for model fields.
1164
1183
 
@@ -1172,13 +1191,13 @@ The type wrapper that defines how this field is serialized/validated.
1172
1191
 
1173
1192
  **Type:** `TypeWrapper<T>`
1174
1193
 
1175
- #### fieldConfig.description · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L47)
1194
+ #### fieldConfig.description · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L48)
1176
1195
 
1177
1196
  Optional human-readable description of the field.
1178
1197
 
1179
1198
  **Type:** `string`
1180
1199
 
1181
- #### fieldConfig.default · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L49)
1200
+ #### fieldConfig.default · [member](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L50)
1182
1201
 
1183
1202
  Optional default value or function that generates default values.
1184
1203
 
@@ -1276,7 +1295,7 @@ Check if indexing should be skipped for this field value.
1276
1295
 
1277
1296
  **Signature:** `() => AnyModelClass`
1278
1297
 
1279
- ### DatabaseError · [constant](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L174)
1298
+ ### DatabaseError · [constant](https://github.com/vanviegen/edinburgh/blob/main/src/edinburgh.ts#L182)
1280
1299
 
1281
1300
  The DatabaseError class is used to represent errors that occur during database operations.
1282
1301
  It extends the built-in Error class and has a machine readable error code string property.
@@ -48,7 +48,10 @@ type ArrayOrOnlyItem<ARG_TYPES extends readonly any[]> = ARG_TYPES extends reado
48
48
  * exclusive bounds via `after` / `before`, and reverse scans.
49
49
  *
50
50
  * For single-field indexes, values can be passed directly. For composite indexes,
51
- * pass tuples or partial tuples for prefix matching.
51
+ * pass tuples or partial tuples for prefix matching. If an index field is a
52
+ * `link(...)`, you may pass either the linked model instance or the linked
53
+ * model's primary key. Composite linked primary keys are passed as tuples in
54
+ * that slot.
52
55
  *
53
56
  * @template ARG_TYPES - Tuple of index argument types.
54
57
  * @template FETCH - Optional fetch mode used by overloads that return one row.
@@ -4,6 +4,15 @@ import DataPack from "./datapack.js";
4
4
  import { currentTxn, transact } from "./edinburgh.js";
5
5
  import { assert, logLevel, dbGet, dbPut, dbDel, hashBytes, hashFunction, bytesEqual, toBuffer } from "./utils.js";
6
6
  import { deserializeType, serializeType } from "./types.js";
7
+ function serializeIndexArg(fieldType, arg, pack) {
8
+ const linkedModel = fieldType.getLinkedModel();
9
+ if (!linkedModel || arg instanceof linkedModel) {
10
+ fieldType.serialize(arg, pack);
11
+ return;
12
+ }
13
+ // Link lookups may pass the target row's primary key instead of a loaded instance.
14
+ pack.write(linkedModel._argsToKeyBytes(Array.isArray(arg) ? arg : [arg], false).toUint8Array());
15
+ }
7
16
  const MAX_INDEX_ID_PREFIX = -1;
8
17
  const INDEX_ID_PREFIX = -2;
9
18
  const VERSION_INFO_PREFIX = -3;
@@ -107,7 +116,7 @@ export class BaseIndex {
107
116
  for (const fieldType of this._indexFields.values()) {
108
117
  if (index >= args.length)
109
118
  break;
110
- fieldType.serialize(args[index++], bytes);
119
+ serializeIndexArg(fieldType, args[index++], bytes);
111
120
  }
112
121
  }
113
122
  return bytes;
@@ -1 +1 @@
1
- {"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexes.js","sourceRoot":"","sources":["../../src/indexes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import DataPack from "./datapack.js";
2
- import { TypeWrapper } from "./types.js";
2
+ import { TypeWrapper, type FieldQueryArg, type FieldValue } from "./types.js";
3
3
  import { type Transaction } from "./edinburgh.js";
4
4
  import { PrimaryKey, NonPrimaryIndex, IndexRangeIterator, FindOptions, VersionInfo } from "./indexes.js";
5
5
  /**
@@ -34,15 +34,15 @@ export interface FieldConfig<T> {
34
34
  * });
35
35
  * ```
36
36
  */
37
- export declare function field<T>(type: TypeWrapper<T>, options?: Partial<FieldConfig<T>>): T;
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
40
  type PKArgs<FIELDS, PK> = PK extends readonly (keyof FIELDS & string)[] ? {
41
- [I in keyof PK]: PK[I] extends keyof FIELDS ? FIELDS[PK[I]] : never;
42
- } : PK extends keyof FIELDS & string ? [FIELDS[PK]] : [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
43
  type IndexArgs<FIELDS, SPEC> = SPEC extends readonly (keyof FIELDS & string)[] ? {
44
- [I in keyof SPEC]: SPEC[I] extends keyof FIELDS ? FIELDS[SPEC[I]] : never;
45
- } : SPEC extends keyof FIELDS & string ? [FIELDS[SPEC]] : SPEC extends (instance: any) => infer R ? R extends (infer V)[] ? [V] : [R] : never;
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;
46
46
  /**
47
47
  * A model constructor with its generic information erased.
48
48
  *
@@ -71,12 +71,18 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
71
71
  _lazyLoad(model: Model<FIELDS>): void;
72
72
  /**
73
73
  * Load a model by primary key inside the current transaction.
74
+ *
75
+ * For `link(...)` primary-key fields, each argument may be the linked model
76
+ * instance or the linked model's primary key. Composite linked primary keys
77
+ * are passed as a tuple in that argument slot.
74
78
  *
75
79
  * @returns The matching model, or `undefined` if no row exists.
76
80
  */
77
81
  get(...args: PKA): Model<FIELDS> | undefined;
78
82
  /**
79
83
  * Load a model by primary key without fetching its non-key fields immediately.
84
+ *
85
+ * Link-valued primary-key fields accept the same shorthand as `get()`.
80
86
  *
81
87
  * Accessing a lazy field later will load the remaining fields transparently.
82
88
  */
@@ -95,7 +101,9 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
95
101
  * Look up a model through a named unique index.
96
102
  *
97
103
  * @param name The name from the model's `unique` definition.
98
- * @param args The unique-index key values.
104
+ * @param args The unique-index key values. For `link(...)` fields, pass
105
+ * either the linked model instance or the linked model's primary key. If the
106
+ * linked model uses a composite primary key, pass the full tuple in that slot.
99
107
  * @returns The matching model instance, if any.
100
108
  */
101
109
  getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<FIELDS, UNIQUE[K]>): Model<FIELDS> | undefined;
@@ -103,7 +111,8 @@ declare class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {},
103
111
  * Query rows through a named unique or secondary index.
104
112
  *
105
113
  * This mirrors `find()`, but targets a named entry from the model's `unique`
106
- * or `index` registration.
114
+ * or `index` registration. Link-valued index fields accept either the linked
115
+ * model instance or the linked model's primary key tuple/value.
107
116
  */
108
117
  findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<FIELDS> | undefined;
109
118
  findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<FIELDS>;
@@ -144,7 +144,7 @@ class ModelClassRuntime extends PrimaryKey {
144
144
  }
145
145
  else {
146
146
  key = this._argsToKeyBytes(args, false).toUint8Array();
147
- keyParts = args;
147
+ keyParts = this._pkToArray(key);
148
148
  }
149
149
  const keyHash = hashBytes(key);
150
150
  const cached = txn.instances.get(keyHash);
@@ -202,6 +202,10 @@ class ModelClassRuntime extends PrimaryKey {
202
202
  }
203
203
  /**
204
204
  * Load a model by primary key inside the current transaction.
205
+ *
206
+ * For `link(...)` primary-key fields, each argument may be the linked model
207
+ * instance or the linked model's primary key. Composite linked primary keys
208
+ * are passed as a tuple in that argument slot.
205
209
  *
206
210
  * @returns The matching model, or `undefined` if no row exists.
207
211
  */
@@ -210,6 +214,8 @@ class ModelClassRuntime extends PrimaryKey {
210
214
  }
211
215
  /**
212
216
  * Load a model by primary key without fetching its non-key fields immediately.
217
+ *
218
+ * Link-valued primary-key fields accept the same shorthand as `get()`.
213
219
  *
214
220
  * Accessing a lazy field later will load the remaining fields transparently.
215
221
  */
@@ -250,7 +256,9 @@ class ModelClassRuntime extends PrimaryKey {
250
256
  * Look up a model through a named unique index.
251
257
  *
252
258
  * @param name The name from the model's `unique` definition.
253
- * @param args The unique-index key values.
259
+ * @param args The unique-index key values. For `link(...)` fields, pass
260
+ * either the linked model instance or the linked model's primary key. If the
261
+ * linked model uses a composite primary key, pass the full tuple in that slot.
254
262
  * @returns The matching model instance, if any.
255
263
  */
256
264
  getBy(name, ...args) {
@@ -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":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAuC,MAAM,YAAY,CAAC;AAC1H,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAuC,WAAW,EAAE,cAAc,EAA4B,MAAM,cAAc,CAAC;AACtI,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1E,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;AAGxB,MAAM,0BAA0B,GAAG;IAC/B,GAAG;QACC,MAAM,IAAI,aAAa,CAAC,8CAA8C,EAAE,YAAY,CAAC,CAAC;IAC1F,CAAC;CACJ,CAAC;AAeF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,KAAK,CAAgC,IAAU,EAAE,UAAkD,EAAE;IACjH,6DAA6D;IAC7D,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,OAAO,OAAc,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AA+BD,SAAS,+BAA+B,CAAC,MAAc,EAAE,MAAgB;IACrE,KAAK,IAAI,OAAO,GAAQ,MAAM,EAAE,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAClH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,WAAW;gBAAE,SAAS;YACxE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;gBAAE,SAAS;YAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAE,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;AACL,CAAC;AAED,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAkC,EAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAiB,CAAC;AAE1D,gGAAgG;AAChG,qGAAqG;AACrG,MAAM,iBAA+E,SAAQ,UAAkE;IAO3J,kEAAkE;IAClE,aAAa,CAA6B;IAC1C,uEAAuE;IACvE,gBAAgB,GAAyD,EAAE,CAAC;IAC5E,4EAA4E;IAC5E,iBAAiB,GAAyD,EAAE,CAAC;IAC7E,8EAA8E;IAC9E,4BAA4B,GAAyD,EAAE,CAAC;IACxF,mDAAmD;IACnD,eAAe,CAAU;IACzB,6DAA6D;IAC7D,mBAAmB,CAAU;IAC7B,oEAAoE;IACpE,SAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;IAEhD,sBAAsB;QAClB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,QAAQ,EAAE,CAAC,KAAK,CAAC;YACxB,WAAW,EAAE,IAAI,CAAC,mBAAmB;YACrC,MAAM;YACN,aAAa,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAW,CAAC,CAAC;SAC7F,CAAC,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK;QAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,EAA4B,CAAC;QAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEnD,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAQ,CAAC;YACnH,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;YAEvC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG;oBAC/B,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,IAAI;oBAChB,GAAG;wBACC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACjC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC3B,CAAC;oBACD,GAAG,CAAsB,KAAU;wBAC/B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACjC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;oBAC5B,CAAC;iBACJ,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG;oBAChC,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;iBACnB,CAAC;YACN,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,GAAG;oBAC3C,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,IAAI;iBACnB,CAAC;YACN,CAAC;QACL,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAI,IAAY,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC;IACvF,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,kBAAkB,IAAI,eAAe,IAAI,CAAC,SAAS,GAAG,EAAE,YAAY,CAAC,CAAC;QAC1G,OAAO,KAAK,CAAC;IACjB,CAAC;IAID,IAAI,CAAC,GAAgB,EAAE,IAAsB,EAAE,OAA6B;QACxE,IAAI,GAAe,CAAC;QACpB,IAAI,QAAoC,CAAC;QACzC,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC7B,GAAG,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,CAAC;YACJ,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC;YACvD,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAA8B,CAAC;QACvE,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACxD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,WAAmC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnB,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACjC,IAAI,CAAC,WAAW;oBAAE,OAAO;YAC7B,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,OAAO,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAE,IAAY,CAAC,SAAS,CAAkB,CAAC;QACtE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QACjB,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QACtB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAElC,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC/D,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,KAAoB;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAY,CAAC;QAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,aAAa,CAAC,eAAe,IAAI,CAAC,SAAS,IAAI,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC9G,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,GAAG,IAAS;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,IAAS;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,eAAe,CAAC,GAAgB,EAAE,SAAsB,EAAE,WAAwB;QAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAE,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,GAAoB;QAC5B,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,CAAC,SAAS,IAAK,GAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,aAAa,CAAC,2CAA2C,SAAS,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAC5G,CAAC;YACD,OAAO,CAAC,IAAI,CAAE,GAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAc,CAA8B,CAAC;QAC1E,IAAI,QAAQ,EAAE,CAAC;YACX,KAAK,MAAM,GAAG,IAAI,GAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAU,CAAC,EAAE,CAAC;oBACpC,QAAgB,CAAC,GAAG,CAAC,GAAI,GAAW,CAAC,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC;QACD,OAAO,IAAK,IAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAkC,IAAO,EAAE,GAAG,IAAkC;QACjF,OAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,CAAC;IAYD,MAAM,CAAC,IAAY,EAAE,IAAU;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,cAAc,CACV,IAAO,EACP,IAAyG,EACzG,QAAqC;QAErC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;IACxE,CAAC;IAED,gBAAgB,CAAC,KAAoB,EAAE,UAAsB;QACzD,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;QAEvC,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzC,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,OAAe;QAC3C,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,aAAa,CAAC,WAAW,OAAO,6BAA6B,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAE9G,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAS,CAAC;QAC5C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,YAAY,GAAG,CAAC,EAAE,CAAC;YACnH,MAAM,IAAI,aAAa,CAAC,WAAW,OAAO,gCAAgC,IAAI,EAAE,EAAE,mBAAmB,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACzC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,CAAC,aAA4B,EAAE,CAAC;QACvG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,KAAoB,EAAE,OAAe,EAAE,SAAmB;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAClE,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,GAAI,KAAa,CAAC,IAAI,CAAC,CAAC;QACtF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAI,IAAY,CAAC,OAAO,CAAC;QACxC,IAAI,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC5B,KAAK,CAAC,eAAe,CAAC,SAAS,EAAG,KAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,aAAa,CAAC,SAAS,SAAS,oCAAoC,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAC9G,CAAC;QACL,CAAC;IACL,CAAC;IAED,eAAe,CAAC,IAAyB;QACrC,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAyB,CAAC;YACnE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,UAAU,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AA4B5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAMvB,SAAiB,EACjB,GAAM,EACN,IAAsE;IAEtE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,UAAoB,OAA6B,EAAE,MAAmB,UAAU,EAAE;QAChG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAQ,CAAC;IAET,MAAM,aAAa,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,MAAM,mBAAmB,GAAG,GAAG,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,CAAC,GAAgB,EAAE,UAAsB,EAAE,OAA6B,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAE1I,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9D,SAAS,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IACpC,+BAA+B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAEhD,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC;IAEhC,IAAI,SAAS,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,0BAA0B,SAAS,CAAC,SAAS,sBAAsB,EAAE,YAAY,CAAC,CAAC;QAC/G,CAAC;QACD,OAAO,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAC5B,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAyB,CAAC;QACpD,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,YAAY,WAAW,EAAE,CAAC;YAC7C,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;YAC3B,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC5B,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC5C,GAAG;wBACC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;oBAChD,CAAC;oBACD,GAAG,CAAC,GAAQ;wBACR,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE;4BAC7B,KAAK,EAAE,GAAG;4BACV,YAAY,EAAE,IAAI;4BAClB,QAAQ,EAAE,IAAI;4BACd,UAAU,EAAE,IAAI;yBACnB,CAAC,CAAC;oBACP,CAAC;oBACD,YAAY,EAAE,IAAI;iBACrB,CAAC,CAAC;YACP,CAAC;iBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzF,SAAS,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CAAC,8BAA8B,SAAS,eAAe,SAAS,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9G,CAAC;QACD,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;IAC5B,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAChC,SAAS,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACjC,SAAS,CAAC,4BAA4B,GAAG,EAAE,CAAC;IAC5C,SAAS,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAEhC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACrH,CAAC;IACL,CAAC;IACD,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACxH,CAAC;IACL,CAAC;IAED,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;IAC/C,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,OAAgB,SAAS;IAwB3B;;;;OAIG;IAEH;;;;;;OAMG;IACH,UAAU,CAAiD;IAC3D,WAAW,CAAyB;IACpC,eAAe,CAAqB;IACpC,IAAI,CAAe;IA2BnB,eAAe,CAAC,SAAiB,EAAE,KAAU;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAkC,CAAC;QAC1D,IAAI,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,iDAAiD;QAEjG,IAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAA0B,CAAC,IAAI,CAAC;YACpF,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,oCAAoC;YACpC,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;IACL,CAAC;IAED,kBAAkB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO;QAC7C,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACvD,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa;QACT,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK;gBAAE,MAAM,IAAI,aAAa,CAAC,8CAA8C,EAAE,YAAY,CAAC,CAAC;YACrH,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;YACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,cAAc,CAAC,GAAe,EAAE,IAAa;QACzC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC,eAAgB,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,KAAiB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACjI,CAAC;IAED,MAAM,CAAC,GAAgB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAElC,IAAI,SAAS,KAAK,KAAK;YAAE,OAAO,CAAC,8BAA8B;QAE/D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC,CAAC,kBAAkB;YACxC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,4EAA4E;YAC5E,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAG,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAG,EAAE,IAAI,CAAC,CAAC;YAE3C,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC,kBAAkB;YAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEpB,mDAAmD;YACnD,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,aAAa,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC;YAChF,CAAC;YAED,2BAA2B;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAG,EAAE,IAAI,CAAC,CAAC;YAE1C,yBAAyB;YACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAG,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,0BAA0B;QAC1B,8FAA8F;QAC9F,qDAAqD;QAErD,iDAAiD;QACjD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,KAAI,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAA4B,CAAC,CAAC;YACpD,IAAI,QAAQ,KAAK,QAAQ,IAAK,CAAE,MAAM,CAAC,SAAS,CAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACzG,OAAO,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAClC,CAAC;QACL,CAAC;QAED,IAAI,aAAa,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,4BAA4B;QAEhE,yCAAyC;QACzC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,aAAa,CAAC,oCAAoC,KAAK,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC;QAED,qGAAqG;QAErG,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEpB,2BAA2B;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,WAAY,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAE5B,6CAA6C;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,cAAc;QACV,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAClE,MAAM,IAAI,aAAa,CAAC,gDAAgD,EAAE,SAAS,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,mDAAmD;QACnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,0BAA0B,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM;QACF,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,MAAM,IAAI,aAAa,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;QACxG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAiB,KAAK;QAC3B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAE,IAAY,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,EAAE,CAAC;gBACJ,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,GAAC,GAAG,GAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,KAAK;oBAAE,MAAM,CAAC,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,CAAU,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAC/C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACpD,KAAI,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACzE,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC5F,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,OAAO,UAAU,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;IAC/D,CAAC;IAED,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,QAAQ,CAAC,GAAG,EAAE;YAChB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;YAClC,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,CAAC;gBACD,OAAO,IAAI,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;wBACP,IAAI,GAAG,IAAI,CAAC;wBACZ,MAAM;oBACV,CAAC;oBACD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC9B,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;wBAAE,MAAM;gBACzD,CAAC;YACL,CAAC;oBAAS,CAAC;gBACP,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/C,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;AACL,CAAC;AAOD,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC"}
@@ -59,6 +59,21 @@ export interface TypeWrapper<T> {
59
59
  */
60
60
  default?(model: any): T;
61
61
  }
62
+ export declare const QUERY_ARG: unique symbol;
63
+ export type LinkTargetPKArgs<T extends new (...args: any) => any> = T extends {
64
+ get(...args: infer PKA): any;
65
+ } ? PKA : never;
66
+ export type LinkPrimaryKeyInput<PKA extends readonly any[]> = PKA extends readonly [infer ONLY] ? ONLY | PKA : PKA;
67
+ type QueryArgCarrier<QUERY> = {
68
+ readonly [QUERY_ARG]?: QUERY;
69
+ };
70
+ type QueryAnnotated<T, QUERY> = T & QueryArgCarrier<QUERY>;
71
+ export type FieldValue<TYPE extends TypeWrapper<any>> = TYPE extends TypeWrapper<infer T> ? TYPE extends {
72
+ readonly [QUERY_ARG]?: infer QUERY;
73
+ } ? QueryAnnotated<T, Exclude<QUERY, undefined>> : T : never;
74
+ export type FieldQueryArg<T> = T extends {
75
+ readonly [QUERY_ARG]?: infer QUERY;
76
+ } ? Exclude<QUERY, undefined> : T;
62
77
  /**
63
78
  * @internal Type wrapper for array values with optional length constraints.
64
79
  * @template T - The type of array elements.
@@ -232,7 +247,7 @@ export declare function record<const T>(inner: TypeWrapper<T>): TypeWrapper<Reco
232
247
  * }, { pk: "id" });
233
248
  * ```
234
249
  */
235
- export declare function link<const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>>;
250
+ export declare function link<const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>> & QueryArgCarrier<InstanceType<T> | LinkPrimaryKeyInput<LinkTargetPKArgs<T>>>;
236
251
  export declare function link<const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<InstanceType<T>>;
237
252
  export type BasicType = string | number | boolean | undefined | null;
238
253
  export type UnwrapTypes<T extends (TypeWrapper<unknown> | BasicType)[]> = {
@@ -251,3 +266,4 @@ export declare function serializeType(arg: TypeWrapper<any>, pack: DataPack): vo
251
266
  * @returns The deserialized type wrapper.
252
267
  */
253
268
  export declare function deserializeType(pack: DataPack, featureFlags: number): TypeWrapper<any>;
269
+ export {};
@@ -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.1",
3
+ "version": "0.6.2",
4
4
  "author": "Frank van Viegen",
5
5
  "devDependencies": {
6
6
  "@types/bun": "^1.2.16",
@@ -56,6 +56,6 @@
56
56
  ],
57
57
  "type": "module",
58
58
  "dependencies": {
59
- "olmdb": "^0.4.2"
59
+ "olmdb": "^0.5.0"
60
60
  }
61
61
  }
@@ -6,7 +6,10 @@ Supports exact-match lookups via `is`, inclusive bounds via `from` / `to`,
6
6
  exclusive bounds via `after` / `before`, and reverse scans.
7
7
 
8
8
  For single-field indexes, values can be passed directly. For composite indexes,
9
- pass tuples or partial tuples for prefix matching.
9
+ pass tuples or partial tuples for prefix matching. If an index field is a
10
+ `link(...)`, you may pass either the linked model instance or the linked
11
+ model's primary key. Composite linked primary keys are passed as tuples in
12
+ that slot.
10
13
 
11
14
  **Type:** `(
12
15
  (
package/skill/SKILL.md CHANGED
@@ -196,6 +196,22 @@ await E.transact(() => {
196
196
  });
197
197
  ```
198
198
 
199
+ If a primary key or named index includes a `link(...)` field, lookup helpers either accept the linked row's instance object or its primary key. For linked models with composite primary keys, pass the full tuple in that slot:
200
+
201
+ ```typescript
202
+ await E.transact(() => {
203
+ // So instead of..
204
+ const post1 = Post.getBy("author", Author.get(user.id), "Hello World");
205
+ // We can do..
206
+ const post2 = Post.getBy("author", user.id, "Hello World");
207
+ // Or..
208
+ const post3 = Post.getBy("author", [user.id], "Hello World");
209
+
210
+ // For an index that includes a link with a composite primary key..
211
+ const page = Comment.getBy("target", ["docs", "intro"], "overview");
212
+ });
213
+ ```
214
+
199
215
  #### Range Queries
200
216
 
201
217
  Primary-key queries use `.find()`. Named unique and secondary indexes use `.findBy(name, ...)`:
package/skill/field.md CHANGED
@@ -6,16 +6,16 @@ This function uses TypeScript magic to return the field configuration object
6
6
  while appearing to return the actual field value type to the type system.
7
7
  This allows for both runtime introspection and compile-time type safety.
8
8
 
9
- **Signature:** `<T>(type: TypeWrapper<T>, options?: Partial<FieldConfig<T>>) => T`
9
+ **Signature:** `<TYPE extends TypeWrapper<any>>(type: TYPE, options?: Partial<FieldConfig<FieldValue<TYPE>>>) => FieldValue<TYPE>`
10
10
 
11
11
  **Type Parameters:**
12
12
 
13
- - `T` - The field type.
13
+ - `TYPE extends TypeWrapper<any>` - The field type.
14
14
 
15
15
  **Parameters:**
16
16
 
17
- - `type: TypeWrapper<T>` - The type wrapper for this field.
18
- - `options: Partial<FieldConfig<T>>` (optional) - Additional field configuration options.
17
+ - `type: TYPE` - The type wrapper for this field.
18
+ - `options: Partial<FieldConfig<FieldValue<TYPE>>>` (optional) - Additional field configuration options.
19
19
 
20
20
  **Returns:** The field value (typed as T, but actually returns FieldConfig<T>).
21
21
 
package/skill/link.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Create a link type wrapper for model relationships.
4
4
 
5
- **Signature:** `{ <const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>>; <const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<...>; }`
5
+ **Signature:** `{ <const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>> & QueryArgCarrier<InstanceType<T> | LinkPrimaryKeyInput<LinkTargetPKArgs<T>>>; <const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<...>; }`
6
6
 
7
7
  **Type Parameters:**
8
8
 
package/src/indexes.ts CHANGED
@@ -22,6 +22,17 @@ type IndexArgTypes<ITEM, F extends readonly (keyof ITEM & string)[]> = {
22
22
  [I in keyof F]: ITEM[F[I]]
23
23
  };
24
24
 
25
+ function serializeIndexArg(fieldType: TypeWrapper<any>, arg: any, pack: DataPack) {
26
+ const linkedModel = fieldType.getLinkedModel();
27
+ if (!linkedModel || arg instanceof linkedModel) {
28
+ fieldType.serialize(arg, pack);
29
+ return;
30
+ }
31
+
32
+ // Link lookups may pass the target row's primary key instead of a loaded instance.
33
+ pack.write(linkedModel._argsToKeyBytes(Array.isArray(arg) ? arg : [arg], false).toUint8Array());
34
+ }
35
+
25
36
  const MAX_INDEX_ID_PREFIX = -1;
26
37
  const INDEX_ID_PREFIX = -2;
27
38
  const VERSION_INFO_PREFIX = -3;
@@ -88,7 +99,10 @@ type ArrayOrOnlyItem<ARG_TYPES extends readonly any[]> = ARG_TYPES extends reado
88
99
  * exclusive bounds via `after` / `before`, and reverse scans.
89
100
  *
90
101
  * For single-field indexes, values can be passed directly. For composite indexes,
91
- * pass tuples or partial tuples for prefix matching.
102
+ * pass tuples or partial tuples for prefix matching. If an index field is a
103
+ * `link(...)`, you may pass either the linked model instance or the linked
104
+ * model's primary key. Composite linked primary keys are passed as tuples in
105
+ * that slot.
92
106
  *
93
107
  * @template ARG_TYPES - Tuple of index argument types.
94
108
  * @template FETCH - Optional fetch mode used by overloads that return one row.
@@ -182,7 +196,7 @@ export abstract class BaseIndex<ITEM, const F extends readonly (keyof ITEM & str
182
196
  let index = 0;
183
197
  for (const fieldType of this._indexFields.values()) {
184
198
  if (index >= args.length) break;
185
- fieldType.serialize(args[index++], bytes);
199
+ serializeIndexArg(fieldType, args[index++], bytes);
186
200
  }
187
201
  }
188
202
  return bytes;
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 } from "./types.js";
4
+ import { deserializeType, serializeType, TypeWrapper, identifier, type FieldQueryArg, type FieldValue } 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";
@@ -49,7 +49,7 @@ export interface FieldConfig<T> {
49
49
  * });
50
50
  * ```
51
51
  */
52
- export function field<T>(type: TypeWrapper<T>, options: Partial<FieldConfig<T>> = {}): T {
52
+ export function field<TYPE extends TypeWrapper<any>>(type: TYPE, options: Partial<FieldConfig<FieldValue<TYPE>>> = {}): FieldValue<TYPE> {
53
53
  // Return the config object, but TypeScript sees it as type T
54
54
  options.type = type;
55
55
  return options as any;
@@ -68,16 +68,16 @@ type FieldsOf<T> = T extends new () => infer I ? I : never;
68
68
 
69
69
  type PKArgs<FIELDS, PK> =
70
70
  PK extends readonly (keyof FIELDS & string)[]
71
- ? { [I in keyof PK]: PK[I] extends keyof FIELDS ? FIELDS[PK[I]] : never }
71
+ ? { [I in keyof PK]: PK[I] extends keyof FIELDS ? FieldQueryArg<FIELDS[PK[I]]> : never }
72
72
  : PK extends keyof FIELDS & string
73
- ? [FIELDS[PK]]
73
+ ? [FieldQueryArg<FIELDS[PK]>]
74
74
  : [string];
75
75
 
76
76
  type IndexArgs<FIELDS, SPEC> =
77
77
  SPEC extends readonly (keyof FIELDS & string)[]
78
- ? { [I in keyof SPEC]: SPEC[I] extends keyof FIELDS ? FIELDS[SPEC[I]] : never }
78
+ ? { [I in keyof SPEC]: SPEC[I] extends keyof FIELDS ? FieldQueryArg<FIELDS[SPEC[I]]> : never }
79
79
  : SPEC extends keyof FIELDS & string
80
- ? [FIELDS[SPEC]]
80
+ ? [FieldQueryArg<FIELDS[SPEC]>]
81
81
  : SPEC extends (instance: any) => infer R
82
82
  ? R extends (infer V)[] ? [V] : [R]
83
83
  : never;
@@ -209,7 +209,7 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
209
209
  key = args;
210
210
  } else {
211
211
  key = this._argsToKeyBytes(args, false).toUint8Array();
212
- keyParts = args;
212
+ keyParts = this._pkToArray(key);
213
213
  }
214
214
 
215
215
  const keyHash = hashBytes(key);
@@ -269,6 +269,10 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
269
269
 
270
270
  /**
271
271
  * Load a model by primary key inside the current transaction.
272
+ *
273
+ * For `link(...)` primary-key fields, each argument may be the linked model
274
+ * instance or the linked model's primary key. Composite linked primary keys
275
+ * are passed as a tuple in that argument slot.
272
276
  *
273
277
  * @returns The matching model, or `undefined` if no row exists.
274
278
  */
@@ -278,6 +282,8 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
278
282
 
279
283
  /**
280
284
  * Load a model by primary key without fetching its non-key fields immediately.
285
+ *
286
+ * Link-valued primary-key fields accept the same shorthand as `get()`.
281
287
  *
282
288
  * Accessing a lazy field later will load the remaining fields transparently.
283
289
  */
@@ -321,7 +327,9 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
321
327
  * Look up a model through a named unique index.
322
328
  *
323
329
  * @param name The name from the model's `unique` definition.
324
- * @param args The unique-index key values.
330
+ * @param args The unique-index key values. For `link(...)` fields, pass
331
+ * either the linked model instance or the linked model's primary key. If the
332
+ * linked model uses a composite primary key, pass the full tuple in that slot.
325
333
  * @returns The matching model instance, if any.
326
334
  */
327
335
  getBy<K extends string & keyof UNIQUE>(name: K, ...args: IndexArgs<FIELDS, UNIQUE[K]>): Model<FIELDS> | undefined {
@@ -332,7 +340,8 @@ class ModelClassRuntime<FIELDS, PKA extends readonly any[], UNIQUE = {}, INDEX =
332
340
  * Query rows through a named unique or secondary index.
333
341
  *
334
342
  * This mirrors `find()`, but targets a named entry from the model's `unique`
335
- * or `index` registration.
343
+ * or `index` registration. Link-valued index fields accept either the linked
344
+ * model instance or the linked model's primary key tuple/value.
336
345
  */
337
346
  findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'first'>): Model<FIELDS> | undefined;
338
347
  findBy<K extends string & keyof (UNIQUE & INDEX)>(name: K, opts: FindOptions<IndexArgs<FIELDS, (UNIQUE & INDEX)[K]>, 'single'>): Model<FIELDS>;
package/src/types.ts CHANGED
@@ -87,6 +87,35 @@ export interface TypeWrapper<T> {
87
87
  default?(model: any): T;
88
88
  }
89
89
 
90
+ // Hidden type-only metadata used to widen lookup arguments without widening assignment types.
91
+ export declare const QUERY_ARG: unique symbol;
92
+
93
+ export type LinkTargetPKArgs<T extends new (...args: any) => any> =
94
+ T extends { get(...args: infer PKA): any } ? PKA : never;
95
+
96
+ export type LinkPrimaryKeyInput<PKA extends readonly any[]> =
97
+ PKA extends readonly [infer ONLY]
98
+ ? ONLY | PKA
99
+ : PKA;
100
+
101
+ type QueryArgCarrier<QUERY> = {
102
+ readonly [QUERY_ARG]?: QUERY;
103
+ };
104
+
105
+ type QueryAnnotated<T, QUERY> = T & QueryArgCarrier<QUERY>;
106
+
107
+ export type FieldValue<TYPE extends TypeWrapper<any>> =
108
+ TYPE extends TypeWrapper<infer T>
109
+ ? TYPE extends { readonly [QUERY_ARG]?: infer QUERY }
110
+ ? QueryAnnotated<T, Exclude<QUERY, undefined>>
111
+ : T
112
+ : never;
113
+
114
+ export type FieldQueryArg<T> =
115
+ T extends { readonly [QUERY_ARG]?: infer QUERY }
116
+ ? Exclude<QUERY, undefined>
117
+ : T;
118
+
90
119
 
91
120
  class StringType extends TypeWrapper<string> {
92
121
  kind = 'string';
@@ -620,7 +649,7 @@ export class LinkType<T extends new (...args: any[]) => Model<any>> extends Type
620
649
  }
621
650
 
622
651
  getLinkedModel(): AnyModelClass {
623
- if (!('getLazy' in this.TargetModel)) this.TargetModel = (this.TargetModel as unknown as () => T)();
652
+ if (!('getLazy' in (this.TargetModel as any))) this.TargetModel = (this.TargetModel as unknown as () => T)();
624
653
  return this.TargetModel as any;
625
654
  }
626
655
 
@@ -795,7 +824,9 @@ export function record<const T>(inner: TypeWrapper<T>): TypeWrapper<Record<strin
795
824
  * }, { pk: "id" });
796
825
  * ```
797
826
  */
798
- export function link<const T extends new (...args: any[]) => Model<any>>(TargetModel: T): TypeWrapper<InstanceType<T>>;
827
+ export function link<const T extends new (...args: any[]) => Model<any>>(
828
+ TargetModel: T,
829
+ ): TypeWrapper<InstanceType<T>> & QueryArgCarrier<InstanceType<T> | LinkPrimaryKeyInput<LinkTargetPKArgs<T>>>;
799
830
  export function link<const T extends new (...args: any[]) => Model<any>>(TargetModel: () => T): TypeWrapper<InstanceType<T>>;
800
831
  export function link(TargetModel: any): TypeWrapper<any> {
801
832
  return new LinkType(TargetModel);