dinah 0.9.2 → 0.11.0

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/dist/index.d.mts CHANGED
@@ -161,56 +161,56 @@ interface DbStreamEvent {
161
161
  type DbStreamEventListener = (event: DbStreamEvent) => void;
162
162
  //#endregion
163
163
  //#region src/repo.types.d.ts
164
- type RepoKey<R extends Repo<any>> = Partial<R["$schema"]> & ExtractKey<R["$schema"], R["$def"]>;
165
- type RepoPutItem<R extends Repo<any>> = DistPartialSome<R["$schema"], keyof R["defaultPutData"]>;
166
- type RepoUpdateItem<R extends Repo<any>> = DistPartialSome<R["$schema"], keyof R["defaultUpdateData"]>;
167
- type GsiNames<R extends Repo<any>> = keyof R["table"]["def"]["gsis"] & string;
164
+ type RepoKey<R extends RepoBase> = Partial<R["$schema"]> & ExtractKey<R["$schema"], R["$def"]>;
165
+ type RepoPutItem<R extends RepoBase> = Omit<DistPartialSome<R["$schema"], keyof R["defaultPutData"]>, R["$derivedAttributes"]>;
166
+ type RepoUpdateItem<R extends RepoBase> = DistPartialSome<Omit<R["$schema"], R["$derivedAttributes"] | R["$immutableAttributes"]>, keyof R["defaultUpdateData"]>;
167
+ type GsiNames<R extends RepoBase> = keyof R["table"]["def"]["gsis"] & string;
168
168
  type TableGsiNames<T extends Table> = keyof NonNullable<ExtractTableDef<T>["gsis"]> & string;
169
- type GsiKey<R extends Repo<any>, G extends GsiNames<R>> = ExtractKey<R["$schema"], GsiDef<R, G>>;
170
- type Projection<R extends Repo<any>> = AllKeys<R["$schema"]>[];
171
- type RepoOutput<R extends Repo<any>> = ReturnType<R["transformItem"]>;
172
- type ApplyProjection<R extends Repo<any>, O> = O extends {
169
+ type GsiKey<R extends RepoBase, G extends GsiNames<R>> = ExtractKey<R["$schema"], GsiDef<R, G>>;
170
+ type Projection<R extends RepoBase> = AllKeys<R["$schema"]>[];
171
+ type RepoOutput<R extends RepoBase> = ReturnType<R["transformOutput"]>;
172
+ type ApplyProjection<R extends RepoBase, O> = O extends {
173
173
  projection: Array<infer P extends AllKeys<R["$schema"]>>;
174
174
  } ? Pick<R["$schema"], P> : RepoOutput<R>;
175
- type GsiProjectionType<R extends Repo<any>, G extends string> = GsiDef<R, G> extends {
175
+ type GsiProjectionType<R extends RepoBase, G extends string> = GsiDef<R, G> extends {
176
176
  projection: infer P;
177
177
  } ? P : undefined;
178
- type GsiDef<R extends Repo<any>, G extends string> = NonNullable<R["table"]["def"]["gsis"]>[G];
179
- type TableKeyAttributes<R extends Repo<any>> = R["table"]["def"]["partitionKey"] | (R["table"]["def"]["sortKey"] & string);
180
- type GsiOwnKeyAttributes<R extends Repo<any>, G extends string> = (ToUnion<GsiDef<R, G>["partitionKey"]> & string) | (ToUnion<GsiDef<R, G>["sortKey"]> & string);
181
- type GsiAllKeyAttributes<R extends Repo<any>, G extends string> = TableKeyAttributes<R> | GsiOwnKeyAttributes<R, G>;
182
- type GsiIncludedAttributes<R extends Repo<any>, G extends string> = Extract<GsiDef<R, G>["projection"], readonly any[]>[number];
183
- type ApplyGsiProjection<R extends Repo<any>, O, G extends string> = O extends {
178
+ type GsiDef<R extends RepoBase, G extends string> = NonNullable<R["table"]["def"]["gsis"]>[G];
179
+ type TableKeyAttributes<R extends RepoBase> = R["table"]["def"]["partitionKey"] | (R["table"]["def"]["sortKey"] & string);
180
+ type GsiOwnKeyAttributes<R extends RepoBase, G extends string> = (ToUnion<GsiDef<R, G>["partitionKey"]> & string) | (ToUnion<GsiDef<R, G>["sortKey"]> & string);
181
+ type GsiAllKeyAttributes<R extends RepoBase, G extends string> = TableKeyAttributes<R> | GsiOwnKeyAttributes<R, G>;
182
+ type GsiIncludedAttributes<R extends RepoBase, G extends string> = Extract<GsiDef<R, G>["projection"], readonly any[]>[number];
183
+ type ApplyGsiProjection<R extends RepoBase, O, G extends string> = O extends {
184
184
  projection: Array<infer P extends AllKeys<R["$schema"]>>;
185
185
  } ? Pick<R["$schema"], P | Extract<GsiAllKeyAttributes<R, G>, keyof R["$schema"]>> : GsiProjectionType<R, G> extends "ALL" | undefined ? RepoOutput<R> : Pick<R["$schema"], Extract<GsiAllKeyAttributes<R, G> | GsiIncludedAttributes<R, G>, keyof R["$schema"]>>;
186
- interface RepoGetOptions<R extends Repo<any>> {
186
+ interface RepoGetOptions<R extends RepoBase> {
187
187
  consistent?: boolean;
188
188
  projection?: Projection<R>;
189
189
  filter?: (item: R["$schema"]) => boolean;
190
190
  }
191
- type RepoGetResult<R extends Repo<any>, O extends RepoGetOptions<R>> = undefined | ApplyProjection<R, O>;
192
- type RepoGetOrThrowResult<R extends Repo<any>, O extends RepoGetOptions<R>> = ApplyProjection<R, O>;
193
- interface RepoPutOptions<R extends Repo<any>> {
191
+ type RepoGetResult<R extends RepoBase, O extends RepoGetOptions<R>> = undefined | ApplyProjection<R, O>;
192
+ type RepoGetOrThrowResult<R extends RepoBase, O extends RepoGetOptions<R>> = ApplyProjection<R, O>;
193
+ interface RepoPutOptions<R extends RepoBase> {
194
194
  condition?: Condition<R["$schema"]>;
195
195
  }
196
- type RepoPutResult<R extends Repo<any>> = RepoOutput<R>;
197
- type RepoCreateItem<R extends Repo<any>> = RepoPutItem<R>;
198
- interface RepoCreateOptions<R extends Repo<any>> {
196
+ type RepoPutResult<R extends RepoBase> = RepoOutput<R>;
197
+ type RepoCreateItem<R extends RepoBase> = RepoPutItem<R>;
198
+ interface RepoCreateOptions<R extends RepoBase> {
199
199
  condition?: Condition<R["$schema"]>;
200
200
  }
201
- type RepoCreateResult<R extends Repo<any>> = RepoOutput<R>;
201
+ type RepoCreateResult<R extends RepoBase> = RepoOutput<R>;
202
202
  type RepoUpdateData<T = Obj> = UpdateExpression<T>;
203
- interface RepoUpdateOptions<R extends Repo<any>> {
203
+ interface RepoUpdateOptions<R extends RepoBase> {
204
204
  condition?: Condition<R["$schema"]>;
205
205
  }
206
- type RepoUpdateResult<R extends Repo<any>> = RepoOutput<R>;
207
- interface RepoDeleteOptions<R extends Repo<any>> {
206
+ type RepoUpdateResult<R extends RepoBase> = RepoOutput<R>;
207
+ interface RepoDeleteOptions<R extends RepoBase> {
208
208
  condition?: Condition<R["$schema"]>;
209
209
  }
210
- type RepoDeleteResult<R extends Repo<any>> = RepoOutput<R> | undefined;
211
- type RepoDeleteOrThrowResult<R extends Repo<any>> = RepoOutput<R>;
212
- type RepoQueryQuery<R extends Repo<any>> = Pick<R["$schema"], R["table"]["def"]["partitionKey"]> & SortKeyQuery<R["$schema"], R["table"]["def"]["sortKey"]>;
213
- interface RepoQueryOptions<R extends Repo<any>> {
210
+ type RepoDeleteResult<R extends RepoBase> = RepoOutput<R> | undefined;
211
+ type RepoDeleteOrThrowResult<R extends RepoBase> = RepoOutput<R>;
212
+ type RepoQueryQuery<R extends RepoBase> = Pick<R["$schema"], Extract<R["table"]["def"]["partitionKey"], keyof R["$schema"]>> & SortKeyQuery<R["$schema"], R["table"]["def"]["sortKey"]>;
213
+ interface RepoQueryOptions<R extends RepoBase> {
214
214
  startKey?: RepoKey<R>;
215
215
  filter?: Condition<R["$schema"]>;
216
216
  projection?: Projection<R>;
@@ -218,8 +218,8 @@ interface RepoQueryOptions<R extends Repo<any>> {
218
218
  consistent?: boolean;
219
219
  sort?: "ASC" | "DESC";
220
220
  }
221
- type RepoQueryResult<R extends Repo<any>, O extends RepoQueryOptions<R>> = ApplyProjection<R, O>[];
222
- type RepoQueryPagedResult<R extends Repo<any>, O extends RepoQueryOptions<R>> = AsyncGenerator<ApplyProjection<R, O>[]>;
221
+ type RepoQueryResult<R extends RepoBase, O extends RepoQueryOptions<R>> = ApplyProjection<R, O>[];
222
+ type RepoQueryPagedResult<R extends RepoBase, O extends RepoQueryOptions<R>> = AsyncGenerator<ApplyProjection<R, O>[]>;
223
223
  type RepoQueryGsiQuery<T extends Table, G extends string> = Pick<ExtractTableSchema<T>, ToUnion<NonNullable<ExtractTableDef<T>["gsis"]>[G]["partitionKey"]> & string> & SortKeyQuery<ExtractTableSchema<T>, NonNullable<ExtractTableDef<T>["gsis"]>[G]["sortKey"]>;
224
224
  type GsiSortKeyOf<T extends Table, G extends string> = ToUnion<NonNullable<ExtractTableDef<T>["gsis"]>[G] extends {
225
225
  sortKey: infer SK;
@@ -228,16 +228,16 @@ type TableSortKeyOf<T extends Table> = ExtractTableDef<T> extends {
228
228
  sortKey: infer SK extends string;
229
229
  } ? SK : never;
230
230
  type RepoGsiStartKey<T extends Table, G extends string> = Pick<ExtractTableSchema<T>, ExtractTableDef<T>["partitionKey"] | TableSortKeyOf<T> | (ToUnion<NonNullable<ExtractTableDef<T>["gsis"]>[G]["partitionKey"]> & string) | GsiSortKeyOf<T, G>>;
231
- interface RepoQueryGsiOptions<R extends Repo<any>, T extends Table = Table, G extends string = string> {
231
+ interface RepoQueryGsiOptions<R extends RepoBase, T extends Table = Table, G extends string = string> {
232
232
  startKey?: RepoGsiStartKey<T, G>;
233
233
  filter?: Condition<R["$schema"]>;
234
234
  projection?: Projection<R>;
235
235
  limit?: number;
236
236
  sort?: "ASC" | "DESC";
237
237
  }
238
- type RepoQueryGsiResult<R extends Repo<any>, O extends RepoQueryGsiOptions<R>, G extends string = string> = ApplyGsiProjection<R, O, G>[];
239
- type RepoQueryGsiPagedResult<R extends Repo<any>, O extends RepoQueryGsiOptions<R>, G extends string = string> = AsyncGenerator<ApplyGsiProjection<R, O, G>[]>;
240
- interface RepoScanOptions<R extends Repo<any>> {
238
+ type RepoQueryGsiResult<R extends RepoBase, O extends RepoQueryGsiOptions<R>, G extends string = string> = ApplyGsiProjection<R, O, G>[];
239
+ type RepoQueryGsiPagedResult<R extends RepoBase, O extends RepoQueryGsiOptions<R>, G extends string = string> = AsyncGenerator<ApplyGsiProjection<R, O, G>[]>;
240
+ interface RepoScanOptions<R extends RepoBase> {
241
241
  startKey?: RepoKey<R>;
242
242
  filter?: Condition<R["$schema"]>;
243
243
  projection?: Projection<R>;
@@ -245,104 +245,129 @@ interface RepoScanOptions<R extends Repo<any>> {
245
245
  consistent?: boolean;
246
246
  parallel?: number;
247
247
  }
248
- type RepoScanResult<R extends Repo<any>, O extends RepoScanOptions<R>> = ApplyProjection<R, O>[];
249
- type RepoScanPagedResult<R extends Repo<any>, O extends RepoScanOptions<R>> = AsyncGenerator<ApplyProjection<R, O>[]>;
250
- interface RepoScanGsiOptions<R extends Repo<any>, T extends Table = Table, G extends string = string> {
248
+ type RepoScanResult<R extends RepoBase, O extends RepoScanOptions<R>> = ApplyProjection<R, O>[];
249
+ type RepoScanPagedResult<R extends RepoBase, O extends RepoScanOptions<R>> = AsyncGenerator<ApplyProjection<R, O>[]>;
250
+ interface RepoScanGsiOptions<R extends RepoBase, T extends Table = Table, G extends string = string> {
251
251
  startKey?: RepoGsiStartKey<T, G>;
252
252
  filter?: Condition<R["$schema"]>;
253
253
  projection?: Projection<R>;
254
254
  limit?: number;
255
255
  parallel?: number;
256
256
  }
257
- type RepoScanGsiResult<R extends Repo<any>, O extends RepoScanGsiOptions<R>, G extends string = string> = ApplyGsiProjection<R, O, G>[];
258
- type RepoScanGsiPagedResult<R extends Repo<any>, O extends RepoScanGsiOptions<R>, G extends string = string> = AsyncGenerator<ApplyGsiProjection<R, O, G>[]>;
259
- interface RepoExistsOptions<R extends Repo<any>> {
257
+ type RepoScanGsiResult<R extends RepoBase, O extends RepoScanGsiOptions<R>, G extends string = string> = ApplyGsiProjection<R, O, G>[];
258
+ type RepoScanGsiPagedResult<R extends RepoBase, O extends RepoScanGsiOptions<R>, G extends string = string> = AsyncGenerator<ApplyGsiProjection<R, O, G>[]>;
259
+ interface RepoExistsOptions<R extends RepoBase> {
260
260
  query?: Obj;
261
261
  filter?: Condition<R["$schema"]>;
262
262
  consistent?: boolean;
263
263
  }
264
- interface RepoTrxGetOptions<R extends Repo<any>> {
264
+ interface RepoTrxGetOptions<R extends RepoBase> {
265
265
  projection?: Projection<R>;
266
266
  filter?: (item: R["$schema"]) => boolean;
267
267
  }
268
- type RepoTrxGetResult<R extends Repo<any>, O extends RepoTrxGetOptions<R>> = (ApplyProjection<R, O> | undefined)[];
269
- type RepoTrxGetOrThrowResult<R extends Repo<any>, O extends RepoTrxGetOptions<R>> = ApplyProjection<R, O>[];
268
+ type RepoTrxGetResult<R extends RepoBase, O extends RepoTrxGetOptions<R>> = (ApplyProjection<R, O> | undefined)[];
269
+ type RepoTrxGetOrThrowResult<R extends RepoBase, O extends RepoTrxGetOptions<R>> = ApplyProjection<R, O>[];
270
270
  type RepoTrxGetRequestResult = {
271
271
  table: string;
272
272
  };
273
- interface RepoTrxDeleteRequest<R extends Repo<any>> {
273
+ interface RepoTrxDeleteRequest<R extends RepoBase> {
274
274
  type: "DELETE";
275
275
  key: RepoKey<R>;
276
276
  condition?: Condition<R["$schema"]>;
277
277
  }
278
- interface RepoTrxPutRequest<R extends Repo<any>> {
278
+ interface RepoTrxPutRequest<R extends RepoBase> {
279
279
  type: "PUT";
280
280
  item: RepoPutItem<R>;
281
281
  condition?: Condition<R["$schema"]>;
282
282
  }
283
- interface RepoTrxUpdateRequest<R extends Repo<any>> {
283
+ interface RepoTrxUpdateRequest<R extends RepoBase> {
284
284
  table: string;
285
285
  type: "UPDATE";
286
286
  key: RepoKey<R>;
287
- update: RepoUpdateData<R["$schema"]>;
287
+ update: RepoUpdateData<Omit<R["$schema"], R["$derivedAttributes"] | R["$immutableAttributes"]>>;
288
288
  condition?: Condition<R["$schema"]>;
289
289
  }
290
- interface RepoTrxConditionRequest<R extends Repo<any>> {
290
+ interface RepoTrxConditionRequest<R extends RepoBase> {
291
291
  type: "CONDITION";
292
292
  key: RepoKey<R>;
293
293
  condition: Condition<R["$schema"]>;
294
294
  }
295
- type RepoTrxWriteRequest<R extends Repo<any>> = RepoTrxDeleteRequest<R> | RepoTrxPutRequest<R> | RepoTrxUpdateRequest<R> | RepoTrxConditionRequest<R>;
296
- interface RepoBatchGetOptions<R extends Repo<any>> {
295
+ type RepoTrxWriteRequest<R extends RepoBase> = RepoTrxDeleteRequest<R> | RepoTrxPutRequest<R> | RepoTrxUpdateRequest<R> | RepoTrxConditionRequest<R>;
296
+ interface RepoBatchGetOptions<R extends RepoBase> {
297
297
  consistent?: boolean;
298
298
  projection?: Projection<R>;
299
299
  filter?: (item: R["$schema"]) => boolean;
300
300
  }
301
- type RepoBatchGetResult<R extends Repo<any>, O extends RepoBatchGetOptions<R>> = {
301
+ type RepoBatchGetResult<R extends RepoBase, O extends RepoBatchGetOptions<R>> = {
302
302
  items: ApplyProjection<R, O>[];
303
303
  unprocessed?: RepoKey<R>[];
304
304
  };
305
- type RepoBatchGetOrThrowResult<R extends Repo<any>, O extends RepoBatchGetOptions<R>> = ApplyProjection<R, O>[];
306
- type RepoBatchWritePutRequest<R extends Repo<any>> = {
305
+ type RepoBatchGetOrThrowResult<R extends RepoBase, O extends RepoBatchGetOptions<R>> = ApplyProjection<R, O>[];
306
+ type RepoBatchWritePutRequest<R extends RepoBase> = {
307
307
  type: "PUT";
308
308
  item: RepoPutItem<R>;
309
309
  };
310
- type RepoBatchWriteDeleteRequest<R extends Repo<any>> = {
310
+ type RepoBatchWriteDeleteRequest<R extends RepoBase> = {
311
311
  type: "DELETE";
312
312
  key: RepoKey<R>;
313
313
  };
314
- type RepoBatchWrite<R extends Repo<any>> = (RepoBatchWritePutRequest<R> | RepoBatchWriteDeleteRequest<R>)[];
315
- type RepoBatchWriteResult<R extends Repo<any>> = {
314
+ type RepoBatchWrite<R extends RepoBase> = (RepoBatchWritePutRequest<R> | RepoBatchWriteDeleteRequest<R>)[];
315
+ type RepoBatchWriteResult<R extends RepoBase> = {
316
316
  items: RepoPutItem<R>[];
317
317
  unprocessed?: RepoBatchWrite<R>;
318
318
  };
319
- type RepoBatchPutRequest<R extends Repo<any>> = RepoPutItem<R>[];
320
- type RepoBatchPutResult<R extends Repo<any>> = {
319
+ type RepoBatchPutRequest<R extends RepoBase> = RepoPutItem<R>[];
320
+ type RepoBatchPutResult<R extends RepoBase> = {
321
321
  items: RepoPutItem<R>[];
322
322
  unprocessed?: RepoBatchPutRequest<R>;
323
323
  };
324
- type RepoBatchUpdateResult<R extends Repo<any>> = {
324
+ type RepoBatchUpdateResult<R extends RepoBase> = {
325
325
  unprocessed?: RepoKey<R>[];
326
326
  };
327
- type RepoBatchDeleteRequest<R extends Repo<any>> = RepoKey<R>[];
328
- type RepoBatchDeleteResponse<R extends Repo<any>> = RepoBatchDeleteRequest<R> | undefined;
327
+ type RepoBatchDeleteRequest<R extends RepoBase> = RepoKey<R>[];
328
+ type RepoBatchDeleteResponse<R extends RepoBase> = RepoBatchDeleteRequest<R> | undefined;
329
329
  //#endregion
330
330
  //#region src/repo.d.ts
331
- declare class Repo<T extends Table> {
331
+ interface RepoBase {
332
+ readonly $schema: object;
333
+ readonly $def: {
334
+ readonly partitionKey: string;
335
+ readonly sortKey?: string;
336
+ };
337
+ readonly $derivedAttributes: PropertyKey;
338
+ readonly $immutableAttributes: PropertyKey;
339
+ readonly table: Table;
340
+ readonly defaultPutData: object;
341
+ readonly defaultUpdateData: object;
342
+ transformOutput(item: never): unknown;
343
+ }
344
+ interface RepoConfig<TSchema extends object, TDefaults extends Partial<TSchema> = {}, TUpdateDefaults extends Partial<TSchema> = {}, TOutput = TSchema, TDerived extends keyof TSchema = never, TImmutable extends keyof TSchema = never> {
345
+ defaultPutData?: () => TDefaults;
346
+ defaultUpdateData?: () => TUpdateDefaults;
347
+ transformInput?: (item: Partial<TSchema>) => Partial<TSchema>;
348
+ transformOutput?: (item: TSchema) => TOutput;
349
+ derivedAttributes?: readonly TDerived[];
350
+ immutableAttributes?: readonly TImmutable[];
351
+ }
352
+ declare class Repo<T extends Table, TDefaults extends Partial<ExtractTableSchema<T>> = {}, TUpdateDefaults extends Partial<ExtractTableSchema<T>> = {}, TOutput = ExtractTableSchema<T>, TDerived extends keyof ExtractTableSchema<T> = never, TImmutable extends keyof ExtractTableSchema<T> = never> {
332
353
  readonly $schema: ExtractTableSchema<T>;
333
354
  readonly $def: ExtractTableDef<T>;
355
+ readonly $derivedAttributes: TDerived;
356
+ readonly $immutableAttributes: TImmutable;
334
357
  readonly table: T;
335
358
  readonly db: Db;
336
- constructor(db: Db, table: T);
359
+ private readonly config;
360
+ constructor(db: Db, table: T, config?: RepoConfig<ExtractTableSchema<T>, TDefaults, TUpdateDefaults, TOutput, TDerived, TImmutable>);
337
361
  get tableName(): string;
338
- get defaultPutData(): Partial<ExtractTableSchema<T>>;
339
- get defaultUpdateData(): Partial<ExtractTableSchema<T>>;
340
- transformItem(item: ExtractTableSchema<T>): ExtractTableSchema<T>;
362
+ get defaultPutData(): TDefaults;
363
+ get defaultUpdateData(): TUpdateDefaults;
364
+ transformOutput(item: ExtractTableSchema<T>): TOutput;
365
+ transformInput(item: Partial<ExtractTableSchema<T>>): Partial<ExtractTableSchema<T>>;
341
366
  extractKey(item: RepoKey<this>): RepoKey<this>;
342
367
  get<O extends RepoGetOptions<this>>(key: RepoKey<this>, options?: O): Promise<RepoGetResult<this, O>>;
343
368
  getOrThrow<O extends RepoGetOptions<this>>(key: RepoKey<this>, options?: O): Promise<RepoGetOrThrowResult<this, O>>;
344
369
  put(item: RepoPutItem<this>, options?: RepoPutOptions<this>): Promise<RepoPutResult<this>>;
345
- update(key: RepoKey<this>, update: RepoUpdateData<ExtractTableSchema<T>>, options?: RepoUpdateOptions<this>): Promise<RepoUpdateResult<this>>;
370
+ update(key: RepoKey<this>, update: RepoUpdateData<Omit<ExtractTableSchema<T>, TDerived | TImmutable>>, options?: RepoUpdateOptions<this>): Promise<RepoUpdateResult<this>>;
346
371
  create(item: RepoPutItem<this>, options?: RepoCreateOptions<this>): Promise<RepoCreateResult<this>>;
347
372
  delete(key: RepoKey<this>, options?: RepoDeleteOptions<this>): Promise<RepoDeleteResult<this>>;
348
373
  deleteOrThrow(key: RepoKey<this>, options?: Omit<RepoDeleteOptions<this>, "return">): Promise<RepoDeleteOrThrowResult<this>>;
@@ -359,20 +384,22 @@ declare class Repo<T extends Table> {
359
384
  batchGet<O extends RepoBatchGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoBatchGetResult<this, O>>;
360
385
  batchGetOrThrow<O extends RepoBatchGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoBatchGetOrThrowResult<this, O>>;
361
386
  batchWrite(requests: RepoBatchWrite<this>): Promise<RepoBatchWriteResult<this>>;
362
- batchUpdate(keys: RepoKey<this>[], update: RepoUpdateData<ExtractTableSchema<T>>): Promise<RepoBatchUpdateResult<this>>;
387
+ batchUpdate(keys: RepoKey<this>[], update: RepoUpdateData<Omit<ExtractTableSchema<T>, TDerived | TImmutable>>): Promise<RepoBatchUpdateResult<this>>;
363
388
  trxGet<O extends RepoTrxGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoTrxGetResult<this, O>>;
364
389
  trxGetOrThrow<O extends RepoTrxGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoTrxGetOrThrowResult<this, O>>;
365
390
  trxWrite(...requests: RepoTrxWriteRequest<this>[]): Promise<void>;
366
391
  trxDelete(keys: RepoKey<this>[], options?: Omit<RepoDeleteOptions<this>, "return">): Promise<void>;
367
392
  trxPut(items: RepoPutItem<this>[], options?: Omit<RepoPutOptions<this>, "return">): Promise<void>;
368
- trxUpdate(keys: RepoKey<this>[], update: RepoUpdateData<ExtractTableSchema<T>>, options?: Omit<RepoUpdateOptions<this>, "return">): Promise<void>;
393
+ trxUpdate(keys: RepoKey<this>[], update: RepoUpdateData<Omit<ExtractTableSchema<T>, TDerived | TImmutable>>, options?: Omit<RepoUpdateOptions<this>, "return">): Promise<void>;
369
394
  trxCreate(items: RepoCreateItem<this>[], options?: RepoCreateOptions<this>): Promise<void>;
370
395
  trxGetRequest<O extends RepoGetOptions<this>>(key: RepoKey<this>, options?: O): DbTrxGetRequest<RepoGetOrThrowResult<this, O>>;
371
396
  trxDeleteRequest(key: RepoKey<this>, options?: Omit<RepoDeleteOptions<this>, "return">): DbTrxWriteRequest;
372
397
  trxConditionRequest(key: RepoKey<this>, condition: Condition<ExtractTableSchema<T>>, options?: Omit<RepoDeleteOptions<this>, "return" | "condition">): DbTrxWriteRequest;
373
398
  trxPutRequest(item: RepoPutItem<this>, options?: Omit<RepoPutOptions<this>, "return">): DbTrxWriteRequest;
374
- trxUpdateRequest(key: RepoKey<this>, update: RepoUpdateData<ExtractTableSchema<T>>, options?: Omit<RepoUpdateOptions<this>, "return">): DbTrxWriteRequest;
399
+ trxUpdateRequest(key: RepoKey<this>, update: RepoUpdateData<Omit<ExtractTableSchema<T>, TDerived | TImmutable>>, options?: Omit<RepoUpdateOptions<this>, "return">): DbTrxWriteRequest;
375
400
  trxCreateRequest(item: RepoCreateItem<this>, options?: RepoCreateOptions<this>): DbTrxWriteRequest;
401
+ private applyPutTransforms;
402
+ private applyNormalizersToExpression;
376
403
  protected applyTransformsIfNeeded(items: Obj[], options?: {
377
404
  projection?: any[];
378
405
  gsi?: string;
@@ -382,11 +409,11 @@ declare class Repo<T extends Table> {
382
409
  gsi?: string;
383
410
  }): any;
384
411
  }
385
- interface MakeRepoResult<T extends Table> {
386
- new (db: Db): Repo<T>;
412
+ interface MakeRepoResult<T extends Table, TDefaults extends Partial<ExtractTableSchema<T>> = {}, TUpdateDefaults extends Partial<ExtractTableSchema<T>> = {}, TOutput = ExtractTableSchema<T>, TDerived extends keyof ExtractTableSchema<T> = never, TImmutable extends keyof ExtractTableSchema<T> = never> {
413
+ new (db: Db): Repo<T, TDefaults, TUpdateDefaults, TOutput, TDerived, TImmutable>;
387
414
  readonly table: T;
388
415
  }
389
- declare const makeRepo: <T extends Table>(table: T) => MakeRepoResult<T>;
416
+ declare const makeRepo: <T extends Table, TDefaults extends Partial<ExtractTableSchema<T>> = {}, TUpdateDefaults extends Partial<ExtractTableSchema<T>> = {}, TOutput = ExtractTableSchema<T>, const TDerived extends keyof ExtractTableSchema<T> = never, const TImmutable extends keyof ExtractTableSchema<T> = never>(table: T, config?: RepoConfig<ExtractTableSchema<T>, TDefaults, TUpdateDefaults, TOutput, TDerived, TImmutable>) => MakeRepoResult<T, TDefaults, TUpdateDefaults, TOutput, TDerived, TImmutable>;
390
417
  //#endregion
391
418
  //#region src/db.d.ts
392
419
  declare class Db {
@@ -423,5 +450,5 @@ declare const extractTableDesc: (table: Table) => CreateTableCommandInput;
423
450
  declare const chunk: <T = unknown>(arr: T[], chunkSize: number) => T[][];
424
451
  declare const removeUndefined: (obj: Obj) => Obj;
425
452
  //#endregion
426
- export { AllKeys, ApplyGsiProjection, ApplyProjection, Condition, Db, DbBatchDeleteRequest, DbBatchGet, DbBatchGetRequest, DbBatchGetResponse, DbBatchPutRequest, DbBatchUpdate, DbBatchUpdateRequest, DbBatchUpdateResponse, DbBatchWrite, DbBatchWriteResponse, DbConfig, DbCreate, DbDelete, DbDisableEventStreams, DbEnableEventStreams, DbExists, DbGet, DbListTables, DbPut, DbQuery, DbScan, DbStreamEvent, DbStreamEventListener, DbTrxConditionRequest, DbTrxDeleteRequest, DbTrxGetOrThrowResult, DbTrxGetRequest, DbTrxGetResult, DbTrxPutRequest, DbTrxUpdateRequest, DbTrxWriteRequest, DbUpdate, DbUpsert, DistPartialSome, ExtractKey, ExtractKeys, ExtractTableDef, ExtractTableSchema, Func, Gsi, GsiKey, GsiNames, GsiProjectionType, KeyCondition, MakeRepoResult, Obj, PartialSome, PathRef, PickTypeOf, Projection, Repo, RepoBatchDeleteRequest, RepoBatchDeleteResponse, RepoBatchGetOptions, RepoBatchGetOrThrowResult, RepoBatchGetResult, RepoBatchPutRequest, RepoBatchPutResult, RepoBatchUpdateResult, RepoBatchWrite, RepoBatchWriteResult, RepoCreateItem, RepoCreateOptions, RepoCreateResult, RepoDeleteOptions, RepoDeleteOrThrowResult, RepoDeleteResult, RepoExistsOptions, RepoGetOptions, RepoGetOrThrowResult, RepoGetResult, RepoGsiStartKey, RepoKey, RepoOutput, RepoPutItem, RepoPutOptions, RepoPutResult, RepoQueryGsiOptions, RepoQueryGsiPagedResult, RepoQueryGsiQuery, RepoQueryGsiResult, RepoQueryOptions, RepoQueryPagedResult, RepoQueryQuery, RepoQueryResult, RepoScanGsiOptions, RepoScanGsiPagedResult, RepoScanGsiResult, RepoScanOptions, RepoScanPagedResult, RepoScanResult, RepoTrxConditionRequest, RepoTrxDeleteRequest, RepoTrxGetOptions, RepoTrxGetOrThrowResult, RepoTrxGetRequestResult, RepoTrxGetResult, RepoTrxPutRequest, RepoTrxUpdateRequest, RepoTrxWriteRequest, RepoUpdateData, RepoUpdateItem, RepoUpdateOptions, RepoUpdateResult, ResolvedAttrType, SortKeyOps, SortKeyQuery, Table, TableDef, TableDesc, TableGsi, TableGsiNames, TableKey, ToUnion, UpdateExpression, ValidGsiKeys, ValidPrimaryKeys, ValidTtlKeys, ValueOfUnion, chunk, extractTableDesc, makeRepo, removeUndefined, resolveAttrType };
453
+ export { AllKeys, ApplyGsiProjection, ApplyProjection, Condition, Db, DbBatchDeleteRequest, DbBatchGet, DbBatchGetRequest, DbBatchGetResponse, DbBatchPutRequest, DbBatchUpdate, DbBatchUpdateRequest, DbBatchUpdateResponse, DbBatchWrite, DbBatchWriteResponse, DbConfig, DbCreate, DbDelete, DbDisableEventStreams, DbEnableEventStreams, DbExists, DbGet, DbListTables, DbPut, DbQuery, DbScan, DbStreamEvent, DbStreamEventListener, DbTrxConditionRequest, DbTrxDeleteRequest, DbTrxGetOrThrowResult, DbTrxGetRequest, DbTrxGetResult, DbTrxPutRequest, DbTrxUpdateRequest, DbTrxWriteRequest, DbUpdate, DbUpsert, DistPartialSome, ExtractKey, ExtractKeys, ExtractTableDef, ExtractTableSchema, Func, Gsi, GsiKey, GsiNames, GsiProjectionType, KeyCondition, MakeRepoResult, Obj, PartialSome, PathRef, PickTypeOf, Projection, Repo, RepoBase, RepoBatchDeleteRequest, RepoBatchDeleteResponse, RepoBatchGetOptions, RepoBatchGetOrThrowResult, RepoBatchGetResult, RepoBatchPutRequest, RepoBatchPutResult, RepoBatchUpdateResult, RepoBatchWrite, RepoBatchWriteResult, RepoConfig, RepoCreateItem, RepoCreateOptions, RepoCreateResult, RepoDeleteOptions, RepoDeleteOrThrowResult, RepoDeleteResult, RepoExistsOptions, RepoGetOptions, RepoGetOrThrowResult, RepoGetResult, RepoGsiStartKey, RepoKey, RepoOutput, RepoPutItem, RepoPutOptions, RepoPutResult, RepoQueryGsiOptions, RepoQueryGsiPagedResult, RepoQueryGsiQuery, RepoQueryGsiResult, RepoQueryOptions, RepoQueryPagedResult, RepoQueryQuery, RepoQueryResult, RepoScanGsiOptions, RepoScanGsiPagedResult, RepoScanGsiResult, RepoScanOptions, RepoScanPagedResult, RepoScanResult, RepoTrxConditionRequest, RepoTrxDeleteRequest, RepoTrxGetOptions, RepoTrxGetOrThrowResult, RepoTrxGetRequestResult, RepoTrxGetResult, RepoTrxPutRequest, RepoTrxUpdateRequest, RepoTrxWriteRequest, RepoUpdateData, RepoUpdateItem, RepoUpdateOptions, RepoUpdateResult, ResolvedAttrType, SortKeyOps, SortKeyQuery, Table, TableDef, TableDesc, TableGsi, TableGsiNames, TableKey, ToUnion, UpdateExpression, ValidGsiKeys, ValidPrimaryKeys, ValidTtlKeys, ValueOfUnion, chunk, extractTableDesc, makeRepo, removeUndefined, resolveAttrType };
427
454
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/db.types.ts","../src/repo.types.ts","../src/repo.ts","../src/db.ts","../src/util.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/db.types.ts","../src/repo.types.ts","../src/repo.ts","../src/db.ts","../src/util.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -214,21 +214,26 @@ var ExpressionBuilder = class {
214
214
  var Repo = class {
215
215
  table;
216
216
  db;
217
- constructor(db, table) {
217
+ config;
218
+ constructor(db, table, config) {
218
219
  this.db = db;
219
220
  this.table = table;
221
+ this.config = config ?? {};
220
222
  }
221
223
  get tableName() {
222
224
  return `${this.db.config?.tableNamePrefix ?? ""}${this.table.def.name}`;
223
225
  }
224
226
  get defaultPutData() {
225
- return {};
227
+ return this.config.defaultPutData?.() ?? {};
226
228
  }
227
229
  get defaultUpdateData() {
228
- return {};
230
+ return this.config.defaultUpdateData?.() ?? {};
229
231
  }
230
- transformItem(item) {
231
- return item;
232
+ transformOutput(item) {
233
+ return this.config.transformOutput?.(item) ?? item;
234
+ }
235
+ transformInput(item) {
236
+ return this.config.transformInput?.(item) ?? item;
232
237
  }
233
238
  extractKey(item) {
234
239
  const { partitionKey, sortKey } = this.table.def;
@@ -255,10 +260,7 @@ var Repo = class {
255
260
  return this.applyTransformIfNeeded(item, options);
256
261
  }
257
262
  async put(item, options) {
258
- const itemWithDefaults = {
259
- ...this.defaultPutData,
260
- ...item
261
- };
263
+ const itemWithDefaults = this.applyPutTransforms(item);
262
264
  const result = await this.db.put({
263
265
  table: this.tableName,
264
266
  item: itemWithDefaults,
@@ -267,10 +269,10 @@ var Repo = class {
267
269
  return this.applyTransformIfNeeded(result);
268
270
  }
269
271
  async update(key, update, options) {
270
- const updateWithDefaults = {
272
+ const updateWithDefaults = this.applyNormalizersToExpression({
271
273
  ...this.defaultUpdateData,
272
274
  ...update
273
- };
275
+ });
274
276
  const result = await this.db.update({
275
277
  table: this.tableName,
276
278
  key: this.extractKey(key),
@@ -417,10 +419,7 @@ var Repo = class {
417
419
  };
418
420
  else return {
419
421
  type: "PUT",
420
- item: {
421
- ...this.defaultPutData,
422
- ...request.item
423
- }
422
+ item: this.applyPutTransforms(request.item)
424
423
  };
425
424
  }) });
426
425
  return {
@@ -429,10 +428,10 @@ var Repo = class {
429
428
  };
430
429
  }
431
430
  async batchUpdate(keys, update) {
432
- const updateWithDefaults = {
431
+ const updateWithDefaults = this.applyNormalizersToExpression({
433
432
  ...this.defaultUpdateData,
434
433
  ...update
435
- };
434
+ });
436
435
  return { unprocessed: (await this.db.batchUpdate({ [this.tableName]: {
437
436
  keys: keys.map((key) => this.extractKey(key)),
438
437
  update: updateWithDefaults
@@ -513,10 +512,7 @@ var Repo = class {
513
512
  };
514
513
  }
515
514
  trxPutRequest(item, options) {
516
- const itemWithDefaults = {
517
- ...this.defaultPutData,
518
- ...item
519
- };
515
+ const itemWithDefaults = this.applyPutTransforms(item);
520
516
  return {
521
517
  table: this.tableName,
522
518
  type: "PUT",
@@ -525,10 +521,10 @@ var Repo = class {
525
521
  };
526
522
  }
527
523
  trxUpdateRequest(key, update, options) {
528
- const updateWithDefaults = {
524
+ const updateWithDefaults = this.applyNormalizersToExpression({
529
525
  ...this.defaultUpdateData,
530
526
  ...update
531
- };
527
+ });
532
528
  return {
533
529
  table: this.tableName,
534
530
  type: "UPDATE",
@@ -541,10 +537,7 @@ var Repo = class {
541
537
  const { condition: otherCondition, ...otherOptions } = options ?? {};
542
538
  const condition = { $and: [{ [this.table.def.partitionKey]: { $exists: false } }] };
543
539
  if (otherCondition) condition.$and.push(otherCondition);
544
- const itemWithDefaults = {
545
- ...this.defaultPutData,
546
- ...item
547
- };
540
+ const itemWithDefaults = this.applyPutTransforms(item);
548
541
  return {
549
542
  table: this.tableName,
550
543
  type: "PUT",
@@ -553,24 +546,59 @@ var Repo = class {
553
546
  ...otherOptions
554
547
  };
555
548
  }
549
+ applyPutTransforms(item) {
550
+ const result = { ...this.transformInput({
551
+ ...this.defaultPutData,
552
+ ...item
553
+ }) };
554
+ for (const key of this.config.derivedAttributes ?? []) delete result[key];
555
+ return result;
556
+ }
557
+ applyNormalizersToExpression(expression) {
558
+ const partial = {};
559
+ for (const [key, val] of Object.entries(expression)) if (val === void 0 || isOperation(val) && val.$remove === true) partial[key] = void 0;
560
+ else if (!isOperation(val)) partial[key] = val;
561
+ else if (val.$set !== void 0) partial[key] = val.$set;
562
+ else if (val.$ifNotExists !== void 0) partial[key] = Array.isArray(val.$ifNotExists) ? val.$ifNotExists[1] : val.$ifNotExists;
563
+ const normalized = this.transformInput(partial);
564
+ const result = { ...expression };
565
+ for (const [key, normalizedVal] of Object.entries(normalized)) {
566
+ if (normalizedVal === void 0) continue;
567
+ if (key in partial && partial[key] === void 0 || !(key in partial)) result[key] = normalizedVal;
568
+ else {
569
+ const original = expression[key];
570
+ if (!isOperation(original)) result[key] = normalizedVal;
571
+ else if (original.$set !== void 0) result[key] = {
572
+ ...original,
573
+ $set: normalizedVal
574
+ };
575
+ else if (original.$ifNotExists !== void 0) result[key] = {
576
+ ...original,
577
+ $ifNotExists: Array.isArray(original.$ifNotExists) ? [original.$ifNotExists[0], normalizedVal] : normalizedVal
578
+ };
579
+ }
580
+ }
581
+ for (const key of [...this.config.derivedAttributes ?? [], ...this.config.immutableAttributes ?? []]) delete result[key];
582
+ return result;
583
+ }
556
584
  applyTransformsIfNeeded(items, options) {
557
585
  if (options?.projection?.length) return items;
558
586
  if (options?.gsi) {
559
587
  const gsiProj = this.table.def.gsis?.[options.gsi]?.projection;
560
588
  if (gsiProj === "KEYS_ONLY" || Array.isArray(gsiProj)) return items;
561
589
  }
562
- return items.map((item) => this.transformItem(item));
590
+ return items.map((item) => this.transformOutput(item));
563
591
  }
564
592
  applyTransformIfNeeded(item, options) {
565
593
  const [transformedItem] = this.applyTransformsIfNeeded([item], options);
566
594
  return transformedItem;
567
595
  }
568
596
  };
569
- const makeRepo = (table) => {
597
+ const makeRepo = (table, config) => {
570
598
  return class extends Repo {
571
599
  static table = table;
572
600
  constructor(db) {
573
- super(db, table);
601
+ super(db, table, config);
574
602
  }
575
603
  };
576
604
  };