dinah 0.10.0 → 0.11.1

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["transformOutput"]>;
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,105 +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
- transformOutput(item: ExtractTableSchema<T>): ExtractTableSchema<T>;
362
+ get defaultPutData(): TDefaults;
363
+ get defaultUpdateData(): TUpdateDefaults;
364
+ transformOutput(item: ExtractTableSchema<T>): TOutput;
341
365
  transformInput(item: Partial<ExtractTableSchema<T>>): Partial<ExtractTableSchema<T>>;
342
366
  extractKey(item: RepoKey<this>): RepoKey<this>;
343
367
  get<O extends RepoGetOptions<this>>(key: RepoKey<this>, options?: O): Promise<RepoGetResult<this, O>>;
344
368
  getOrThrow<O extends RepoGetOptions<this>>(key: RepoKey<this>, options?: O): Promise<RepoGetOrThrowResult<this, O>>;
345
369
  put(item: RepoPutItem<this>, options?: RepoPutOptions<this>): Promise<RepoPutResult<this>>;
346
- 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>>;
347
371
  create(item: RepoPutItem<this>, options?: RepoCreateOptions<this>): Promise<RepoCreateResult<this>>;
348
372
  delete(key: RepoKey<this>, options?: RepoDeleteOptions<this>): Promise<RepoDeleteResult<this>>;
349
373
  deleteOrThrow(key: RepoKey<this>, options?: Omit<RepoDeleteOptions<this>, "return">): Promise<RepoDeleteOrThrowResult<this>>;
@@ -360,20 +384,21 @@ declare class Repo<T extends Table> {
360
384
  batchGet<O extends RepoBatchGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoBatchGetResult<this, O>>;
361
385
  batchGetOrThrow<O extends RepoBatchGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoBatchGetOrThrowResult<this, O>>;
362
386
  batchWrite(requests: RepoBatchWrite<this>): Promise<RepoBatchWriteResult<this>>;
363
- 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>>;
364
388
  trxGet<O extends RepoTrxGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoTrxGetResult<this, O>>;
365
389
  trxGetOrThrow<O extends RepoTrxGetOptions<this>>(keys: RepoKey<this>[], options?: O): Promise<RepoTrxGetOrThrowResult<this, O>>;
366
390
  trxWrite(...requests: RepoTrxWriteRequest<this>[]): Promise<void>;
367
391
  trxDelete(keys: RepoKey<this>[], options?: Omit<RepoDeleteOptions<this>, "return">): Promise<void>;
368
392
  trxPut(items: RepoPutItem<this>[], options?: Omit<RepoPutOptions<this>, "return">): Promise<void>;
369
- 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>;
370
394
  trxCreate(items: RepoCreateItem<this>[], options?: RepoCreateOptions<this>): Promise<void>;
371
395
  trxGetRequest<O extends RepoGetOptions<this>>(key: RepoKey<this>, options?: O): DbTrxGetRequest<RepoGetOrThrowResult<this, O>>;
372
396
  trxDeleteRequest(key: RepoKey<this>, options?: Omit<RepoDeleteOptions<this>, "return">): DbTrxWriteRequest;
373
397
  trxConditionRequest(key: RepoKey<this>, condition: Condition<ExtractTableSchema<T>>, options?: Omit<RepoDeleteOptions<this>, "return" | "condition">): DbTrxWriteRequest;
374
398
  trxPutRequest(item: RepoPutItem<this>, options?: Omit<RepoPutOptions<this>, "return">): DbTrxWriteRequest;
375
- 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;
376
400
  trxCreateRequest(item: RepoCreateItem<this>, options?: RepoCreateOptions<this>): DbTrxWriteRequest;
401
+ private applyPutTransforms;
377
402
  private applyNormalizersToExpression;
378
403
  protected applyTransformsIfNeeded(items: Obj[], options?: {
379
404
  projection?: any[];
@@ -384,18 +409,18 @@ declare class Repo<T extends Table> {
384
409
  gsi?: string;
385
410
  }): any;
386
411
  }
387
- interface MakeRepoResult<T extends Table> {
388
- 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>;
389
414
  readonly table: T;
390
415
  }
391
- 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>;
392
417
  //#endregion
393
418
  //#region src/db.d.ts
394
419
  declare class Db {
395
420
  readonly client: Lib.DynamoDBDocumentClient;
396
421
  readonly config: DbConfig | undefined;
397
422
  constructor(clientOrConfig: DynamoDBClient | DynamoDB | DynamoDBClientConfig, dbConfig?: DbConfig);
398
- createRepo<T extends Table>(table: T): Repo<T>;
423
+ 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>): Repo<T, TDefaults, TUpdateDefaults, TOutput, TDerived, TImmutable>;
399
424
  createTable(table: Table): Promise<void>;
400
425
  deleteTable(tableName: string): Promise<void>;
401
426
  listTables(data?: DbListTables): Promise<string[]>;
@@ -425,5 +450,5 @@ declare const extractTableDesc: (table: Table) => CreateTableCommandInput;
425
450
  declare const chunk: <T = unknown>(arr: T[], chunkSize: number) => T[][];
426
451
  declare const removeUndefined: (obj: Obj) => Obj;
427
452
  //#endregion
428
- 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 };
429
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,24 +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
232
  transformOutput(item) {
231
- return item;
233
+ return this.config.transformOutput?.(item) ?? item;
232
234
  }
233
235
  transformInput(item) {
234
- return item;
236
+ return this.config.transformInput?.(item) ?? item;
235
237
  }
236
238
  extractKey(item) {
237
239
  const { partitionKey, sortKey } = this.table.def;
@@ -258,10 +260,7 @@ var Repo = class {
258
260
  return this.applyTransformIfNeeded(item, options);
259
261
  }
260
262
  async put(item, options) {
261
- const itemWithDefaults = this.transformInput({
262
- ...this.defaultPutData,
263
- ...item
264
- });
263
+ const itemWithDefaults = this.applyPutTransforms(item);
265
264
  const result = await this.db.put({
266
265
  table: this.tableName,
267
266
  item: itemWithDefaults,
@@ -420,10 +419,7 @@ var Repo = class {
420
419
  };
421
420
  else return {
422
421
  type: "PUT",
423
- item: this.transformInput({
424
- ...this.defaultPutData,
425
- ...request.item
426
- })
422
+ item: this.applyPutTransforms(request.item)
427
423
  };
428
424
  }) });
429
425
  return {
@@ -516,10 +512,7 @@ var Repo = class {
516
512
  };
517
513
  }
518
514
  trxPutRequest(item, options) {
519
- const itemWithDefaults = this.transformInput({
520
- ...this.defaultPutData,
521
- ...item
522
- });
515
+ const itemWithDefaults = this.applyPutTransforms(item);
523
516
  return {
524
517
  table: this.tableName,
525
518
  type: "PUT",
@@ -544,10 +537,7 @@ var Repo = class {
544
537
  const { condition: otherCondition, ...otherOptions } = options ?? {};
545
538
  const condition = { $and: [{ [this.table.def.partitionKey]: { $exists: false } }] };
546
539
  if (otherCondition) condition.$and.push(otherCondition);
547
- const itemWithDefaults = this.transformInput({
548
- ...this.defaultPutData,
549
- ...item
550
- });
540
+ const itemWithDefaults = this.applyPutTransforms(item);
551
541
  return {
552
542
  table: this.tableName,
553
543
  type: "PUT",
@@ -556,28 +546,39 @@ var Repo = class {
556
546
  ...otherOptions
557
547
  };
558
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
+ }
559
557
  applyNormalizersToExpression(expression) {
560
558
  const partial = {};
561
- for (const [key, val] of Object.entries(expression)) {
562
- if (val === void 0) continue;
563
- if (!isOperation(val)) partial[key] = val;
564
- else if (val.$set !== void 0) partial[key] = val.$set;
565
- else if (val.$ifNotExists !== void 0) partial[key] = Array.isArray(val.$ifNotExists) ? val.$ifNotExists[1] : val.$ifNotExists;
566
- }
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;
567
563
  const normalized = this.transformInput(partial);
568
564
  const result = { ...expression };
569
- for (const [key, normalizedVal] of Object.entries(normalized)) if (key in partial) {
570
- const original = expression[key];
571
- if (!isOperation(original)) result[key] = normalizedVal;
572
- else if (original.$set !== void 0) result[key] = {
573
- ...original,
574
- $set: normalizedVal
575
- };
576
- else if (original.$ifNotExists !== void 0) result[key] = {
577
- ...original,
578
- $ifNotExists: Array.isArray(original.$ifNotExists) ? [original.$ifNotExists[0], normalizedVal] : normalizedVal
579
- };
580
- } else if (normalizedVal !== void 0) result[key] = normalizedVal;
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];
581
582
  return result;
582
583
  }
583
584
  applyTransformsIfNeeded(items, options) {
@@ -593,11 +594,11 @@ var Repo = class {
593
594
  return transformedItem;
594
595
  }
595
596
  };
596
- const makeRepo = (table) => {
597
+ const makeRepo = (table, config) => {
597
598
  return class extends Repo {
598
599
  static table = table;
599
600
  constructor(db) {
600
- super(db, table);
601
+ super(db, table, config);
601
602
  }
602
603
  };
603
604
  };
@@ -617,8 +618,8 @@ var Db = class {
617
618
  }
618
619
  this.config = dbConfig;
619
620
  }
620
- createRepo(table) {
621
- return new Repo(this, table);
621
+ makeRepo(table, config) {
622
+ return new Repo(this, table, config);
622
623
  }
623
624
  async createTable(table) {
624
625
  await this.client.send(new CreateTableCommand(extractTableDesc(table)));