@model-ts/dynamodb 3.0.4 → 4.0.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/__test__/client-with-cursor-encryption.test.js +1241 -1343
  3. package/dist/cjs/__test__/client-with-cursor-encryption.test.js.map +1 -1
  4. package/dist/cjs/__test__/client.test.js +1488 -1458
  5. package/dist/cjs/__test__/client.test.js.map +1 -1
  6. package/dist/cjs/__test__/diff.test.d.ts +1 -0
  7. package/dist/cjs/__test__/diff.test.js +160 -0
  8. package/dist/cjs/__test__/diff.test.js.map +1 -0
  9. package/dist/cjs/diff.d.ts +3 -0
  10. package/dist/cjs/diff.js +339 -0
  11. package/dist/cjs/diff.js.map +1 -0
  12. package/dist/cjs/provider.d.ts +149 -19
  13. package/dist/cjs/provider.js +131 -1
  14. package/dist/cjs/provider.js.map +1 -1
  15. package/dist/cjs/sandbox.js +2 -2
  16. package/dist/cjs/sandbox.js.map +1 -1
  17. package/dist/cjs/test-utils/setup.d.ts +1 -1
  18. package/dist/cjs/test-utils/setup.js +11 -5
  19. package/dist/cjs/test-utils/setup.js.map +1 -1
  20. package/dist/esm/__test__/client-with-cursor-encryption.test.js +1241 -1343
  21. package/dist/esm/__test__/client-with-cursor-encryption.test.js.map +1 -1
  22. package/dist/esm/__test__/client.test.js +1488 -1458
  23. package/dist/esm/__test__/client.test.js.map +1 -1
  24. package/dist/esm/__test__/diff.test.d.ts +1 -0
  25. package/dist/esm/__test__/diff.test.js +158 -0
  26. package/dist/esm/__test__/diff.test.js.map +1 -0
  27. package/dist/esm/diff.d.ts +3 -0
  28. package/dist/esm/diff.js +335 -0
  29. package/dist/esm/diff.js.map +1 -0
  30. package/dist/esm/provider.d.ts +149 -19
  31. package/dist/esm/provider.js +131 -1
  32. package/dist/esm/provider.js.map +1 -1
  33. package/dist/esm/sandbox.js +2 -2
  34. package/dist/esm/sandbox.js.map +1 -1
  35. package/dist/esm/test-utils/setup.d.ts +1 -1
  36. package/dist/esm/test-utils/setup.js +11 -5
  37. package/dist/esm/test-utils/setup.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/__test__/client-with-cursor-encryption.test.ts +1245 -1347
  40. package/src/__test__/client.test.ts +1584 -1482
  41. package/src/__test__/diff.test.ts +165 -0
  42. package/src/diff.ts +443 -0
  43. package/src/provider.ts +147 -3
  44. package/src/sandbox.ts +2 -2
  45. package/src/test-utils/setup.ts +9 -5
@@ -112,74 +112,50 @@ describe("put", () => {
112
112
  const before = yield sandbox.snapshot();
113
113
  yield new Simple({ foo: "hi", bar: 42 }).put();
114
114
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
115
- Snapshot Diff:
116
- - First value
117
- + Second value
118
-
119
- - Object {}
120
- + Object {
121
- + "PK#hi__SK#42": Object {
122
- + "PK": "PK#hi",
123
- + "SK": "SK#42",
124
- + "_docVersion": 0,
125
- + "_tag": "Simple",
126
- + "bar": 42,
127
- + "foo": "hi",
128
- + },
129
- + }
130
- `);
115
+ + [PK#hi / SK#42]
116
+ + PK: "PK#hi"
117
+ + SK: "SK#42"
118
+ + _docVersion: 0
119
+ + _tag: "Simple"
120
+ + bar: 42
121
+ + foo: "hi"
122
+ `);
131
123
  }));
132
124
  test("it inserts a model with single gsi", () => __awaiter(void 0, void 0, void 0, function* () {
133
125
  const before = yield sandbox.snapshot();
134
126
  yield new SingleGSI({ foo: "yes", bar: 42 }).put();
135
127
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
136
- Snapshot Diff:
137
- - First value
138
- + Second value
139
-
140
- - Object {}
141
- + Object {
142
- + "PK#yes__SK#42": Object {
143
- + "GSI2PK": "GSI2PK#yesyes",
144
- + "GSI2SK": "GSI2SK#FIXED",
145
- + "PK": "PK#yes",
146
- + "SK": "SK#42",
147
- + "_docVersion": 0,
148
- + "_tag": "SingleGSI",
149
- + "bar": 42,
150
- + "foo": "yes",
151
- + },
152
- + }
153
- `);
128
+ + [PK#yes / SK#42]
129
+ + PK: "PK#yes"
130
+ + SK: "SK#42"
131
+ + GSI2PK: "GSI2PK#yesyes"
132
+ + GSI2SK: "GSI2SK#FIXED"
133
+ + _docVersion: 0
134
+ + _tag: "SingleGSI"
135
+ + bar: 42
136
+ + foo: "yes"
137
+ `);
154
138
  }));
155
139
  test("it inserts a model with multiple gsi", () => __awaiter(void 0, void 0, void 0, function* () {
156
140
  const before = yield sandbox.snapshot();
157
141
  yield new MultiGSI({ foo: "yes", bar: 42 }).put();
158
142
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
159
- Snapshot Diff:
160
- - First value
161
- + Second value
162
-
163
- - Object {}
164
- + Object {
165
- + "PK#yes__SK#42": Object {
166
- + "GSI2PK": "GSI2PK#yesyes",
167
- + "GSI2SK": "GSI2SK#FIXED",
168
- + "GSI3PK": "GSI3PK#FIXED",
169
- + "GSI3SK": "GSI3SK#4242",
170
- + "GSI4PK": "GSI4PK#FIXED",
171
- + "GSI4SK": "GSI4SK#4242",
172
- + "GSI5PK": "GSI5PK#FIXED",
173
- + "GSI5SK": "GSI5SK#4242",
174
- + "PK": "PK#yes",
175
- + "SK": "SK#42",
176
- + "_docVersion": 0,
177
- + "_tag": "MultiGSI",
178
- + "bar": 42,
179
- + "foo": "yes",
180
- + },
181
- + }
182
- `);
143
+ + [PK#yes / SK#42]
144
+ + PK: "PK#yes"
145
+ + SK: "SK#42"
146
+ + GSI2PK: "GSI2PK#yesyes"
147
+ + GSI2SK: "GSI2SK#FIXED"
148
+ + GSI3PK: "GSI3PK#FIXED"
149
+ + GSI3SK: "GSI3SK#4242"
150
+ + GSI4PK: "GSI4PK#FIXED"
151
+ + GSI4SK: "GSI4SK#4242"
152
+ + GSI5PK: "GSI5PK#FIXED"
153
+ + GSI5SK: "GSI5SK#4242"
154
+ + _docVersion: 0
155
+ + _tag: "MultiGSI"
156
+ + bar: 42
157
+ + foo: "yes"
158
+ `);
183
159
  }));
184
160
  test("it throws KeyExistsError if item exists", () => __awaiter(void 0, void 0, void 0, function* () {
185
161
  yield new MultiGSI({ foo: "yes", bar: 42 }).put();
@@ -195,74 +171,50 @@ describe("put", () => {
195
171
  const before = yield sandbox.snapshot();
196
172
  yield Simple.put(new Simple({ foo: "hi", bar: 42 }));
197
173
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
198
- Snapshot Diff:
199
- - First value
200
- + Second value
201
-
202
- - Object {}
203
- + Object {
204
- + "PK#hi__SK#42": Object {
205
- + "PK": "PK#hi",
206
- + "SK": "SK#42",
207
- + "_docVersion": 0,
208
- + "_tag": "Simple",
209
- + "bar": 42,
210
- + "foo": "hi",
211
- + },
212
- + }
213
- `);
174
+ + [PK#hi / SK#42]
175
+ + PK: "PK#hi"
176
+ + SK: "SK#42"
177
+ + _docVersion: 0
178
+ + _tag: "Simple"
179
+ + bar: 42
180
+ + foo: "hi"
181
+ `);
214
182
  }));
215
183
  test("it inserts a model with single gsi", () => __awaiter(void 0, void 0, void 0, function* () {
216
184
  const before = yield sandbox.snapshot();
217
185
  yield SingleGSI.put(new SingleGSI({ foo: "yes", bar: 42 }));
218
186
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
219
- Snapshot Diff:
220
- - First value
221
- + Second value
222
-
223
- - Object {}
224
- + Object {
225
- + "PK#yes__SK#42": Object {
226
- + "GSI2PK": "GSI2PK#yesyes",
227
- + "GSI2SK": "GSI2SK#FIXED",
228
- + "PK": "PK#yes",
229
- + "SK": "SK#42",
230
- + "_docVersion": 0,
231
- + "_tag": "SingleGSI",
232
- + "bar": 42,
233
- + "foo": "yes",
234
- + },
235
- + }
236
- `);
187
+ + [PK#yes / SK#42]
188
+ + PK: "PK#yes"
189
+ + SK: "SK#42"
190
+ + GSI2PK: "GSI2PK#yesyes"
191
+ + GSI2SK: "GSI2SK#FIXED"
192
+ + _docVersion: 0
193
+ + _tag: "SingleGSI"
194
+ + bar: 42
195
+ + foo: "yes"
196
+ `);
237
197
  }));
238
198
  test("it inserts a model with multiple gsi", () => __awaiter(void 0, void 0, void 0, function* () {
239
199
  const before = yield sandbox.snapshot();
240
200
  yield MultiGSI.put(new MultiGSI({ foo: "yes", bar: 42 }));
241
201
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
242
- Snapshot Diff:
243
- - First value
244
- + Second value
245
-
246
- - Object {}
247
- + Object {
248
- + "PK#yes__SK#42": Object {
249
- + "GSI2PK": "GSI2PK#yesyes",
250
- + "GSI2SK": "GSI2SK#FIXED",
251
- + "GSI3PK": "GSI3PK#FIXED",
252
- + "GSI3SK": "GSI3SK#4242",
253
- + "GSI4PK": "GSI4PK#FIXED",
254
- + "GSI4SK": "GSI4SK#4242",
255
- + "GSI5PK": "GSI5PK#FIXED",
256
- + "GSI5SK": "GSI5SK#4242",
257
- + "PK": "PK#yes",
258
- + "SK": "SK#42",
259
- + "_docVersion": 0,
260
- + "_tag": "MultiGSI",
261
- + "bar": 42,
262
- + "foo": "yes",
263
- + },
264
- + }
265
- `);
202
+ + [PK#yes / SK#42]
203
+ + PK: "PK#yes"
204
+ + SK: "SK#42"
205
+ + GSI2PK: "GSI2PK#yesyes"
206
+ + GSI2SK: "GSI2SK#FIXED"
207
+ + GSI3PK: "GSI3PK#FIXED"
208
+ + GSI3SK: "GSI3SK#4242"
209
+ + GSI4PK: "GSI4PK#FIXED"
210
+ + GSI4SK: "GSI4SK#4242"
211
+ + GSI5PK: "GSI5PK#FIXED"
212
+ + GSI5SK: "GSI5SK#4242"
213
+ + _docVersion: 0
214
+ + _tag: "MultiGSI"
215
+ + bar: 42
216
+ + foo: "yes"
217
+ `);
266
218
  }));
267
219
  test("it throws KeyExistsError if item exists", () => __awaiter(void 0, void 0, void 0, function* () {
268
220
  yield MultiGSI.put(new MultiGSI({ foo: "yes", bar: 42 }));
@@ -337,22 +289,14 @@ describe("delete", () => {
337
289
  });
338
290
  expect(result).toBeNull();
339
291
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
340
- Snapshot Diff:
341
- - First value
342
- + Second value
343
-
344
- - Object {
345
- - "PK#hi__SK#432": Object {
346
- - "PK": "PK#hi",
347
- - "SK": "SK#432",
348
- - "_docVersion": 0,
349
- - "_tag": "Simple",
350
- - "bar": 432,
351
- - "foo": "hi",
352
- - },
353
- - }
354
- + Object {}
355
- `);
292
+ - [PK#hi / SK#432]
293
+ - PK: "PK#hi"
294
+ - SK: "SK#432"
295
+ - _docVersion: 0
296
+ - _tag: "Simple"
297
+ - bar: 432
298
+ - foo: "hi"
299
+ `);
356
300
  }));
357
301
  });
358
302
  describe("via model", () => {
@@ -365,22 +309,14 @@ describe("delete", () => {
365
309
  });
366
310
  expect(result).toBeNull();
367
311
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
368
- Snapshot Diff:
369
- - First value
370
- + Second value
371
-
372
- - Object {
373
- - "PK#hi__SK#432": Object {
374
- - "PK": "PK#hi",
375
- - "SK": "SK#432",
376
- - "_docVersion": 0,
377
- - "_tag": "Simple",
378
- - "bar": 432,
379
- - "foo": "hi",
380
- - },
381
- - }
382
- + Object {}
383
- `);
312
+ - [PK#hi / SK#432]
313
+ - PK: "PK#hi"
314
+ - SK: "SK#432"
315
+ - _docVersion: 0
316
+ - _tag: "Simple"
317
+ - bar: 432
318
+ - foo: "hi"
319
+ `);
384
320
  }));
385
321
  });
386
322
  describe("via instance", () => {
@@ -390,22 +326,14 @@ describe("delete", () => {
390
326
  const result = yield item.delete();
391
327
  expect(result).toBeNull();
392
328
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
393
- Snapshot Diff:
394
- - First value
395
- + Second value
396
-
397
- - Object {
398
- - "PK#hi__SK#432": Object {
399
- - "PK": "PK#hi",
400
- - "SK": "SK#432",
401
- - "_docVersion": 0,
402
- - "_tag": "Simple",
403
- - "bar": 432,
404
- - "foo": "hi",
405
- - },
406
- - }
407
- + Object {}
408
- `);
329
+ - [PK#hi / SK#432]
330
+ - PK: "PK#hi"
331
+ - SK: "SK#432"
332
+ - _docVersion: 0
333
+ - _tag: "Simple"
334
+ - bar: 432
335
+ - foo: "hi"
336
+ `);
409
337
  }));
410
338
  });
411
339
  });
@@ -430,53 +358,56 @@ describe("softDelete", () => {
430
358
  }
431
359
  `);
432
360
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
433
- Snapshot Diff:
434
- - First value
435
- + Second value
361
+ + [$$DELETED$$PK#hello / $$DELETED$$SK#42]
362
+ + PK: "$$DELETED$$PK#hello"
363
+ + SK: "$$DELETED$$SK#42"
364
+ + GSI2PK: "$$DELETED$$GSI2PK#hellohello"
365
+ + GSI2SK: "$$DELETED$$GSI2SK#FIXED"
366
+ + GSI3PK: "$$DELETED$$GSI3PK#FIXED"
367
+ + GSI3SK: "$$DELETED$$GSI3SK#4242"
368
+ + GSI4PK: "$$DELETED$$GSI4PK#FIXED"
369
+ + GSI4SK: "$$DELETED$$GSI4SK#4242"
370
+ + GSI5PK: "$$DELETED$$GSI5PK#FIXED"
371
+ + GSI5SK: "$$DELETED$$GSI5SK#4242"
372
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
373
+ + _docVersion: 0
374
+ + _tag: "MultiGSI"
375
+ + bar: 42
376
+ + foo: "hello"
436
377
 
437
- @@ -1,25 +1,27 @@
438
- Object {
439
- - "PK#hello__SK#42": Object {
440
- - "GSI2PK": "GSI2PK#hellohello",
441
- - "GSI2SK": "GSI2SK#FIXED",
442
- - "GSI3PK": "GSI3PK#FIXED",
443
- - "GSI3SK": "GSI3SK#4242",
444
- - "GSI4PK": "GSI4PK#FIXED",
445
- - "GSI4SK": "GSI4SK#4242",
446
- - "GSI5PK": "GSI5PK#FIXED",
447
- - "GSI5SK": "GSI5SK#4242",
448
- - "PK": "PK#hello",
449
- - "SK": "SK#42",
450
- + "$$DELETED$$PK#hello__$$DELETED$$SK#42": Object {
451
- + "GSI2PK": "$$DELETED$$GSI2PK#hellohello",
452
- + "GSI2SK": "$$DELETED$$GSI2SK#FIXED",
453
- + "GSI3PK": "$$DELETED$$GSI3PK#FIXED",
454
- + "GSI3SK": "$$DELETED$$GSI3SK#4242",
455
- + "GSI4PK": "$$DELETED$$GSI4PK#FIXED",
456
- + "GSI4SK": "$$DELETED$$GSI4SK#4242",
457
- + "GSI5PK": "$$DELETED$$GSI5PK#FIXED",
458
- + "GSI5SK": "$$DELETED$$GSI5SK#4242",
459
- + "PK": "$$DELETED$$PK#hello",
460
- + "SK": "$$DELETED$$SK#42",
461
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
462
- "_docVersion": 0,
463
- "_tag": "MultiGSI",
464
- "bar": 42,
465
- "foo": "hello",
466
- },
467
- - "PK#hi__SK#432": Object {
468
- - "PK": "PK#hi",
469
- - "SK": "SK#432",
470
- + "$$DELETED$$PK#hi__$$DELETED$$SK#432": Object {
471
- + "PK": "$$DELETED$$PK#hi",
472
- + "SK": "$$DELETED$$SK#432",
473
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
474
- "_docVersion": 0,
475
- "_tag": "Simple",
476
- "bar": 432,
477
- "foo": "hi",
478
- },
479
- `);
378
+ + [$$DELETED$$PK#hi / $$DELETED$$SK#432]
379
+ + PK: "$$DELETED$$PK#hi"
380
+ + SK: "$$DELETED$$SK#432"
381
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
382
+ + _docVersion: 0
383
+ + _tag: "Simple"
384
+ + bar: 432
385
+ + foo: "hi"
386
+
387
+ - [PK#hello / SK#42]
388
+ - PK: "PK#hello"
389
+ - SK: "SK#42"
390
+ - GSI2PK: "GSI2PK#hellohello"
391
+ - GSI2SK: "GSI2SK#FIXED"
392
+ - GSI3PK: "GSI3PK#FIXED"
393
+ - GSI3SK: "GSI3SK#4242"
394
+ - GSI4PK: "GSI4PK#FIXED"
395
+ - GSI4SK: "GSI4SK#4242"
396
+ - GSI5PK: "GSI5PK#FIXED"
397
+ - GSI5SK: "GSI5SK#4242"
398
+ - _docVersion: 0
399
+ - _tag: "MultiGSI"
400
+ - bar: 42
401
+ - foo: "hello"
402
+
403
+ - [PK#hi / SK#432]
404
+ - PK: "PK#hi"
405
+ - SK: "SK#432"
406
+ - _docVersion: 0
407
+ - _tag: "Simple"
408
+ - bar: 432
409
+ - foo: "hi"
410
+ `);
480
411
  }));
481
412
  });
482
413
  describe("via model", () => {
@@ -491,25 +422,23 @@ describe("softDelete", () => {
491
422
  }
492
423
  `);
493
424
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
494
- Snapshot Diff:
495
- - First value
496
- + Second value
425
+ + [$$DELETED$$PK#hi / $$DELETED$$SK#432]
426
+ + PK: "$$DELETED$$PK#hi"
427
+ + SK: "$$DELETED$$SK#432"
428
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
429
+ + _docVersion: 0
430
+ + _tag: "Simple"
431
+ + bar: 432
432
+ + foo: "hi"
497
433
 
498
- @@ -1,9 +1,10 @@
499
- Object {
500
- - "PK#hi__SK#432": Object {
501
- - "PK": "PK#hi",
502
- - "SK": "SK#432",
503
- + "$$DELETED$$PK#hi__$$DELETED$$SK#432": Object {
504
- + "PK": "$$DELETED$$PK#hi",
505
- + "SK": "$$DELETED$$SK#432",
506
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
507
- "_docVersion": 0,
508
- "_tag": "Simple",
509
- "bar": 432,
510
- "foo": "hi",
511
- },
512
- `);
434
+ - [PK#hi / SK#432]
435
+ - PK: "PK#hi"
436
+ - SK: "SK#432"
437
+ - _docVersion: 0
438
+ - _tag: "Simple"
439
+ - bar: 432
440
+ - foo: "hi"
441
+ `);
513
442
  }));
514
443
  });
515
444
  describe("via instance", () => {
@@ -524,25 +453,23 @@ describe("softDelete", () => {
524
453
  }
525
454
  `);
526
455
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
527
- Snapshot Diff:
528
- - First value
529
- + Second value
456
+ + [$$DELETED$$PK#hi / $$DELETED$$SK#432]
457
+ + PK: "$$DELETED$$PK#hi"
458
+ + SK: "$$DELETED$$SK#432"
459
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
460
+ + _docVersion: 0
461
+ + _tag: "Simple"
462
+ + bar: 432
463
+ + foo: "hi"
530
464
 
531
- @@ -1,9 +1,10 @@
532
- Object {
533
- - "PK#hi__SK#432": Object {
534
- - "PK": "PK#hi",
535
- - "SK": "SK#432",
536
- + "$$DELETED$$PK#hi__$$DELETED$$SK#432": Object {
537
- + "PK": "$$DELETED$$PK#hi",
538
- + "SK": "$$DELETED$$SK#432",
539
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
540
- "_docVersion": 0,
541
- "_tag": "Simple",
542
- "bar": 432,
543
- "foo": "hi",
544
- },
545
- `);
465
+ - [PK#hi / SK#432]
466
+ - PK: "PK#hi"
467
+ - SK: "SK#432"
468
+ - _docVersion: 0
469
+ - _tag: "Simple"
470
+ - bar: 432
471
+ - foo: "hi"
472
+ `);
546
473
  }));
547
474
  });
548
475
  });
@@ -615,23 +542,16 @@ describe("update", () => {
615
542
  }
616
543
  `);
617
544
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
618
- Snapshot Diff:
619
- - First value
620
- + Second value
621
-
622
- Object {
623
- "FIXEDPK__FIXEDSK": Object {
624
- "PK": "FIXEDPK",
625
- "SK": "FIXEDSK",
626
- - "_docVersion": 0,
627
- + "_docVersion": 1,
628
- "_tag": "InPlace",
629
- "bar": 1,
630
- - "foo": "hello",
631
- + "foo": "ciao",
632
- },
633
- }
634
- `);
545
+ [FIXEDPK / FIXEDSK]
546
+ PK: "FIXEDPK"
547
+ SK: "FIXEDSK"
548
+ - _docVersion: 0
549
+ + _docVersion: 1
550
+ _tag: "InPlace"
551
+ bar: 1
552
+ - foo: "hello"
553
+ + foo: "ciao"
554
+ `);
635
555
  }));
636
556
  });
637
557
  });
@@ -649,88 +569,173 @@ describe("applyUpdate", () => {
649
569
  `);
650
570
  yield client.bulk([updateOp]);
651
571
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
652
- Snapshot Diff:
653
- - First value
654
- + Second value
655
-
656
- Object {
657
- "PK__SK": Object {
658
- "PK": "PK",
659
- "SK": "SK",
660
- - "_docVersion": 0,
661
- + "_docVersion": 1,
662
- "_tag": "A",
663
- - "a": 1,
664
- + "a": 2,
665
- "pk": "PK",
666
- "sk": "SK",
667
- },
668
- }
669
- `);
572
+ [PK / SK]
573
+ PK: "PK"
574
+ SK: "SK"
575
+ - _docVersion: 0
576
+ + _docVersion: 1
577
+ _tag: "A"
578
+ - a: 1
579
+ + a: 2
580
+ pk: "PK"
581
+ sk: "SK"
582
+ `);
670
583
  }));
671
584
  });
672
585
  describe("query", () => {
673
- test("it returns empty results", () => __awaiter(void 0, void 0, void 0, function* () {
674
- expect(yield client.query({
675
- KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
676
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
677
- }, { a: A, b: B, union: Union })).toMatchInlineSnapshot(`
678
- Object {
679
- "_unknown": Array [],
680
- "a": Array [],
681
- "b": Array [],
682
- "meta": Object {
683
- "lastEvaluatedKey": undefined,
684
- },
685
- "union": Array [],
686
- }
687
- `);
688
- }));
689
- test("it returns unknown results", () => __awaiter(void 0, void 0, void 0, function* () {
690
- yield sandbox.seed({ PK: "abc", SK: "SORT#1", doesnt: "match" });
691
- expect(yield client.query({
692
- KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
693
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
694
- }, { a: A, b: B, union: Union })).toMatchInlineSnapshot(`
695
- Object {
696
- "_unknown": Array [
697
- Object {
698
- "PK": "abc",
699
- "SK": "SORT#1",
700
- "doesnt": "match",
701
- },
702
- ],
703
- "a": Array [],
704
- "b": Array [],
705
- "meta": Object {
706
- "lastEvaluatedKey": undefined,
707
- },
708
- "union": Array [],
709
- }
710
- `);
711
- }));
712
- test("it returns results", () => __awaiter(void 0, void 0, void 0, function* () {
713
- yield sandbox.seed(new A({ pk: "abc", sk: "SORT#1", a: 1 }), new A({ pk: "abc", sk: "SORT#2", a: 2 }), new B({ pk: "abc", sk: "SORT#3", b: "hi" }), { PK: "abc", SK: "SORT#4", probably: "unknown" }, new C({ pk: "abc", sk: "SORT#5", c: "hi" }), new D({ pk: "abc", sk: "SORT#6", d: "hi" }));
714
- const { a, b, union, _unknown, meta } = yield client.query({
715
- KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
716
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
717
- }, { a: A, b: B, union: Union });
718
- expect({
719
- meta: meta,
720
- _unknown: _unknown,
721
- a: a.map(item => item.values()),
722
- b: b.map(item => item.values()),
723
- union: union.map(item => item.values())
724
- }).toMatchInlineSnapshot(`
725
- Object {
726
- "_unknown": Array [
727
- Object {
728
- "PK": "abc",
729
- "SK": "SORT#4",
730
- "probably": "unknown",
731
- },
732
- ],
733
- "a": Array [
586
+ describe("via client", () => {
587
+ test("it returns empty results", () => __awaiter(void 0, void 0, void 0, function* () {
588
+ expect(yield client.query({
589
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
590
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
591
+ }, { a: A, b: B, union: Union })).toMatchInlineSnapshot(`
592
+ Object {
593
+ "_unknown": Array [],
594
+ "a": Array [],
595
+ "b": Array [],
596
+ "meta": Object {
597
+ "lastEvaluatedKey": undefined,
598
+ },
599
+ "union": Array [],
600
+ }
601
+ `);
602
+ }));
603
+ test("it returns unknown results", () => __awaiter(void 0, void 0, void 0, function* () {
604
+ yield sandbox.seed({ PK: "abc", SK: "SORT#1", doesnt: "match" });
605
+ expect(yield client.query({
606
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
607
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
608
+ }, { a: A, b: B, union: Union })).toMatchInlineSnapshot(`
609
+ Object {
610
+ "_unknown": Array [
611
+ Object {
612
+ "PK": "abc",
613
+ "SK": "SORT#1",
614
+ "doesnt": "match",
615
+ },
616
+ ],
617
+ "a": Array [],
618
+ "b": Array [],
619
+ "meta": Object {
620
+ "lastEvaluatedKey": undefined,
621
+ },
622
+ "union": Array [],
623
+ }
624
+ `);
625
+ }));
626
+ test("it returns results", () => __awaiter(void 0, void 0, void 0, function* () {
627
+ yield sandbox.seed(new A({ pk: "abc", sk: "SORT#1", a: 1 }), new A({ pk: "abc", sk: "SORT#2", a: 2 }), new B({ pk: "abc", sk: "SORT#3", b: "hi" }), { PK: "abc", SK: "SORT#4", probably: "unknown" }, new C({ pk: "abc", sk: "SORT#5", c: "hi" }), new D({ pk: "abc", sk: "SORT#6", d: "hi" }));
628
+ const { a, b, union, _unknown, meta } = yield client.query({
629
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
630
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
631
+ }, { a: A, b: B, union: Union });
632
+ expect({
633
+ meta: meta,
634
+ _unknown: _unknown,
635
+ a: a.map(item => item.values()),
636
+ b: b.map(item => item.values()),
637
+ union: union.map(item => item.values())
638
+ }).toMatchInlineSnapshot(`
639
+ Object {
640
+ "_unknown": Array [
641
+ Object {
642
+ "PK": "abc",
643
+ "SK": "SORT#4",
644
+ "probably": "unknown",
645
+ },
646
+ ],
647
+ "a": Array [
648
+ Object {
649
+ "a": 1,
650
+ "pk": "abc",
651
+ "sk": "SORT#1",
652
+ },
653
+ Object {
654
+ "a": 2,
655
+ "pk": "abc",
656
+ "sk": "SORT#2",
657
+ },
658
+ ],
659
+ "b": Array [
660
+ Object {
661
+ "b": "hi",
662
+ "pk": "abc",
663
+ "sk": "SORT#3",
664
+ },
665
+ ],
666
+ "meta": Object {
667
+ "lastEvaluatedKey": undefined,
668
+ },
669
+ "union": Array [
670
+ Object {
671
+ "c": "hi",
672
+ "pk": "abc",
673
+ "sk": "SORT#5",
674
+ },
675
+ Object {
676
+ "d": "hi",
677
+ "pk": "abc",
678
+ "sk": "SORT#6",
679
+ },
680
+ ],
681
+ }
682
+ `);
683
+ }));
684
+ test("it paginates", () => __awaiter(void 0, void 0, void 0, function* () {
685
+ yield sandbox.seed(...Array.from({ length: 20 }).map((_, i) => new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })), ...Array.from({ length: 20 }).map((_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })));
686
+ const firstPage = yield client.query({
687
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
688
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
689
+ Limit: 30
690
+ }, { a: A, b: B });
691
+ expect(firstPage.a.length).toBe(20);
692
+ expect(firstPage.b.length).toBe(10);
693
+ expect(firstPage._unknown.length).toBe(0);
694
+ expect(firstPage.meta.lastEvaluatedKey).not.toBeUndefined();
695
+ const secondPage = yield client.query({
696
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
697
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
698
+ Limit: 30,
699
+ ExclusiveStartKey: firstPage.meta.lastEvaluatedKey
700
+ }, { a: A, b: B });
701
+ expect(secondPage.a.length).toBe(0);
702
+ expect(secondPage.b.length).toBe(10);
703
+ expect(secondPage._unknown.length).toBe(0);
704
+ expect(secondPage.meta.lastEvaluatedKey).toBeUndefined();
705
+ }));
706
+ test("it fetches all pages automatically", () => __awaiter(void 0, void 0, void 0, function* () {
707
+ yield sandbox.seed(...Array.from({ length: 20 }).map((_, i) => new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })), ...Array.from({ length: 20 }).map((_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })));
708
+ const { a, b, meta, _unknown } = yield client.query({
709
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
710
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
711
+ FetchAllPages: true,
712
+ // You wouldn't set a limit in a real-world use case here to optimize fetching all items.
713
+ Limit: 10
714
+ }, { a: A, b: B });
715
+ expect(a.length).toBe(20);
716
+ expect(b.length).toBe(20);
717
+ expect(_unknown.length).toBe(0);
718
+ expect(meta.lastEvaluatedKey).toBeUndefined();
719
+ }));
720
+ });
721
+ describe("via model", () => {
722
+ test("it returns empty results for specific model", () => __awaiter(void 0, void 0, void 0, function* () {
723
+ const result = yield A.query({
724
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
725
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
726
+ });
727
+ expect(result.length).toBe(0);
728
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined });
729
+ }));
730
+ test("it returns only matching model items", () => __awaiter(void 0, void 0, void 0, function* () {
731
+ yield sandbox.seed(new A({ pk: "abc", sk: "SORT#1", a: 1 }), new A({ pk: "abc", sk: "SORT#2", a: 2 }), new B({ pk: "abc", sk: "SORT#3", b: "hi" }), { PK: "abc", SK: "SORT#4", probably: "unknown" }, new C({ pk: "abc", sk: "SORT#5", c: "hi" }));
732
+ const result = yield A.query({
733
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
734
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
735
+ });
736
+ expect(result.length).toBe(2);
737
+ expect(result.map(item => item.values())).toMatchInlineSnapshot(`
738
+ Array [
734
739
  Object {
735
740
  "a": 1,
736
741
  "pk": "abc",
@@ -741,68 +746,108 @@ describe("query", () => {
741
746
  "pk": "abc",
742
747
  "sk": "SORT#2",
743
748
  },
744
- ],
745
- "b": Array [
746
- Object {
747
- "b": "hi",
748
- "pk": "abc",
749
- "sk": "SORT#3",
750
- },
751
- ],
752
- "meta": Object {
753
- "lastEvaluatedKey": undefined,
754
- },
755
- "union": Array [
756
- Object {
757
- "c": "hi",
758
- "pk": "abc",
759
- "sk": "SORT#5",
760
- },
761
- Object {
762
- "d": "hi",
763
- "pk": "abc",
764
- "sk": "SORT#6",
765
- },
766
- ],
767
- }
768
- `);
769
- }));
770
- test("it paginates", () => __awaiter(void 0, void 0, void 0, function* () {
771
- yield sandbox.seed(...Array.from({ length: 20 }).map((_, i) => new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })), ...Array.from({ length: 20 }).map((_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })));
772
- const firstPage = yield client.query({
773
- KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
774
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
775
- Limit: 30
776
- }, { a: A, b: B });
777
- expect(firstPage.a.length).toBe(20);
778
- expect(firstPage.b.length).toBe(10);
779
- expect(firstPage._unknown.length).toBe(0);
780
- expect(firstPage.meta.lastEvaluatedKey).not.toBeUndefined();
781
- const secondPage = yield client.query({
782
- KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
783
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
784
- Limit: 30,
785
- ExclusiveStartKey: firstPage.meta.lastEvaluatedKey
786
- }, { a: A, b: B });
787
- expect(secondPage.a.length).toBe(0);
788
- expect(secondPage.b.length).toBe(10);
789
- expect(secondPage._unknown.length).toBe(0);
790
- expect(secondPage.meta.lastEvaluatedKey).toBeUndefined();
791
- }));
792
- test("it fetches all pages automatically", () => __awaiter(void 0, void 0, void 0, function* () {
793
- yield sandbox.seed(...Array.from({ length: 20 }).map((_, i) => new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })), ...Array.from({ length: 20 }).map((_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })));
794
- const { a, b, meta, _unknown } = yield client.query({
795
- KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
796
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
797
- FetchAllPages: true,
798
- // You wouldn't set a limit in a real-world use case here to optimize fetching all items.
799
- Limit: 10
800
- }, { a: A, b: B });
801
- expect(a.length).toBe(20);
802
- expect(b.length).toBe(20);
803
- expect(_unknown.length).toBe(0);
804
- expect(meta.lastEvaluatedKey).toBeUndefined();
805
- }));
749
+ ]
750
+ `);
751
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined });
752
+ }));
753
+ test("it respects query parameters", () => __awaiter(void 0, void 0, void 0, function* () {
754
+ yield sandbox.seed(new A({ pk: "abc", sk: "SORT#1", a: 1 }), new A({ pk: "abc", sk: "SORT#2", a: 2 }), new A({ pk: "abc", sk: "SORT#3", a: 3 }), new A({ pk: "abc", sk: "SORT#4", a: 4 }));
755
+ const result = yield A.query({
756
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
757
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
758
+ Limit: 2
759
+ });
760
+ expect(result.length).toBe(2);
761
+ expect(result[0].a).toBe(1);
762
+ expect(result[1].a).toBe(2);
763
+ expect(result.meta.lastEvaluatedKey).toBeDefined();
764
+ }));
765
+ test("it fetches all pages when FetchAllPages is true", () => __awaiter(void 0, void 0, void 0, function* () {
766
+ yield sandbox.seed(...Array.from({ length: 15 }).map((_, i) => new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })),
767
+ // Add some B items that should be ignored
768
+ new B({ pk: "abc", sk: "SORT#20", b: "ignored" }), new B({ pk: "abc", sk: "SORT#21", b: "ignored" }));
769
+ const result = yield A.query({
770
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
771
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
772
+ FetchAllPages: true,
773
+ Limit: 5 // Force pagination
774
+ });
775
+ expect(result.length).toBe(15); // Only A items
776
+ expect(result.map(item => item.a)).toEqual(Array.from({ length: 15 }, (_, i) => i));
777
+ expect(result.meta.lastEvaluatedKey).toBeUndefined();
778
+ }));
779
+ test("it works with different query conditions", () => __awaiter(void 0, void 0, void 0, function* () {
780
+ yield sandbox.seed(new A({ pk: "user1", sk: "post#1", a: 1 }), new A({ pk: "user1", sk: "post#2", a: 2 }), new A({ pk: "user1", sk: "comment#1", a: 3 }), new A({ pk: "user2", sk: "post#1", a: 4 }));
781
+ // Query for posts only
782
+ const posts = yield A.query({
783
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
784
+ ExpressionAttributeValues: { ":pk": "user1", ":sk": "post#" }
785
+ });
786
+ expect(posts.length).toBe(2);
787
+ expect(posts.map(item => item.a).sort()).toEqual([1, 2]);
788
+ // Query for all user1 items
789
+ const allUser1 = yield A.query({
790
+ KeyConditionExpression: `PK = :pk`,
791
+ ExpressionAttributeValues: { ":pk": "user1" }
792
+ });
793
+ expect(allUser1.length).toBe(3);
794
+ expect(allUser1.map(item => item.a).sort()).toEqual([1, 2, 3]);
795
+ }));
796
+ test("it works with FilterExpression", () => __awaiter(void 0, void 0, void 0, function* () {
797
+ yield sandbox.seed(new A({ pk: "test", sk: "item#1", a: 1 }), new A({ pk: "test", sk: "item#2", a: 2 }), new A({ pk: "test", sk: "item#3", a: 3 }), new A({ pk: "test", sk: "item#4", a: 4 }));
798
+ const result = yield A.query({
799
+ KeyConditionExpression: `PK = :pk`,
800
+ FilterExpression: `a > :min`,
801
+ ExpressionAttributeValues: { ":pk": "test", ":min": 2 }
802
+ });
803
+ expect(result.length).toBe(2);
804
+ expect(result.map(item => item.a).sort()).toEqual([3, 4]);
805
+ }));
806
+ });
807
+ describe("via union", () => {
808
+ test("it returns empty results for union", () => __awaiter(void 0, void 0, void 0, function* () {
809
+ const result = yield Union.query({
810
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
811
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
812
+ });
813
+ expect(result.length).toBe(0);
814
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined });
815
+ }));
816
+ test("it returns only union model items", () => __awaiter(void 0, void 0, void 0, function* () {
817
+ yield sandbox.seed(new A({ pk: "abc", sk: "SORT#1", a: 1 }), new B({ pk: "abc", sk: "SORT#2", b: "hi" }), new C({ pk: "abc", sk: "SORT#3", c: "c1" }), new D({ pk: "abc", sk: "SORT#4", d: "d1" }), { PK: "abc", SK: "SORT#5", unknown: "data" });
818
+ const result = yield Union.query({
819
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
820
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
821
+ });
822
+ expect(result.length).toBe(2); // Only C and D items (union members)
823
+ expect(result[0]).toBeInstanceOf(C);
824
+ expect(result[1]).toBeInstanceOf(D);
825
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined });
826
+ }));
827
+ test("it fetches all pages for union when FetchAllPages is true", () => __awaiter(void 0, void 0, void 0, function* () {
828
+ yield sandbox.seed(...Array.from({ length: 10 }).map((_, i) => new C({
829
+ pk: "abc",
830
+ sk: `SORT#${String(i).padStart(2, "0")}`,
831
+ c: `c${i}`
832
+ })), ...Array.from({ length: 10 }).map((_, i) => new D({
833
+ pk: "abc",
834
+ sk: `SORT#${String(i + 10).padStart(2, "0")}`,
835
+ d: `d${i}`
836
+ })),
837
+ // Add some non-union items that should be ignored
838
+ new A({ pk: "abc", sk: "SORT#30", a: 1 }), new B({ pk: "abc", sk: "SORT#31", b: "ignored" }));
839
+ const result = yield Union.query({
840
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
841
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
842
+ FetchAllPages: true,
843
+ Limit: 5 // Force pagination
844
+ });
845
+ expect(result.length).toBe(20); // Only union items (C and D)
846
+ expect(result.filter((item) => item instanceof C).length).toBe(10);
847
+ expect(result.filter((item) => item instanceof D).length).toBe(10);
848
+ expect(result.meta.lastEvaluatedKey).toBeUndefined();
849
+ }));
850
+ });
806
851
  });
807
852
  describe("bulk", () => {
808
853
  describe("< 100 elements (true transaction)", () => {
@@ -832,97 +877,82 @@ describe("bulk", () => {
832
877
  })
833
878
  ]);
834
879
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
835
- Snapshot Diff:
836
- - First value
837
- + Second value
880
+ + [$$DELETED$$PK#3 / $$DELETED$$SK#3]
881
+ + PK: "$$DELETED$$PK#3"
882
+ + SK: "$$DELETED$$SK#3"
883
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
884
+ + _docVersion: 0
885
+ + _tag: "B"
886
+ + b: "bar"
887
+ + pk: "PK#3"
888
+ + sk: "SK#3"
838
889
 
839
- @@ -1,32 +1,24 @@
840
- Object {
841
- + "$$DELETED$$PK#3__$$DELETED$$SK#3": Object {
842
- + "PK": "$$DELETED$$PK#3",
843
- + "SK": "$$DELETED$$SK#3",
844
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
845
- + "_docVersion": 0,
846
- + "_tag": "B",
847
- + "b": "bar",
848
- + "pk": "PK#3",
849
- + "sk": "SK#3",
850
- + },
851
- "PK#1__SK#1": Object {
852
- "PK": "PK#1",
853
- "SK": "SK#1",
854
- "_docVersion": 0,
855
- "_tag": "A",
856
- - "a": 1,
857
- + "a": -1,
858
- "pk": "PK#1",
859
- "sk": "SK#1",
860
- - },
861
- - "PK#2__SK#2": Object {
862
- - "PK": "PK#2",
863
- - "SK": "SK#2",
864
- - "_docVersion": 0,
865
- - "_tag": "A",
866
- - "a": 2,
867
- - "pk": "PK#2",
868
- - "sk": "SK#2",
869
- - },
870
- - "PK#3__SK#3": Object {
871
- - "PK": "PK#3",
872
- - "SK": "SK#3",
873
- - "_docVersion": 0,
874
- - "_tag": "B",
875
- - "b": "bar",
876
- - "pk": "PK#3",
877
- - "sk": "SK#3",
878
- },
879
- "PK#COND__SK#COND": Object {
880
- "PK": "PK#COND",
881
- "SK": "SK#COND",
882
- "_docVersion": 0,
883
- @@ -36,12 +28,39 @@
884
- "sk": "SK#COND",
885
- },
886
- "PK#UPDATE__SK#UPDATE": Object {
887
- "PK": "PK#UPDATE",
888
- "SK": "SK#UPDATE",
889
- - "_docVersion": 0,
890
- + "_docVersion": 1,
891
- "_tag": "B",
892
- - "b": "bar",
893
- + "b": "baz",
894
- "pk": "PK#UPDATE",
895
- "sk": "SK#UPDATE",
896
- + },
897
- + "PK4__PK4": Object {
898
- + "PK": "PK4",
899
- + "SK": "PK4",
900
- + "_docVersion": 0,
901
- + "_tag": "A",
902
- + "a": 4,
903
- + "pk": "PK4",
904
- + "sk": "PK4",
905
- + },
906
- + "PK5__PK5": Object {
907
- + "PK": "PK5",
908
- + "SK": "PK5",
909
- + "_docVersion": 0,
910
- + "_tag": "A",
911
- + "a": 5,
912
- + "pk": "PK5",
913
- + "sk": "PK5",
914
- + },
915
- + "PK6__SK6": Object {
916
- + "PK": "PK6",
917
- + "SK": "SK6",
918
- + "_docVersion": 0,
919
- + "_tag": "B",
920
- + "b": "baz",
921
- + "pk": "PK6",
922
- + "sk": "SK6",
923
- },
924
- }
925
- `);
890
+ [PK#1 / SK#1]
891
+ PK: "PK#1"
892
+ SK: "SK#1"
893
+ _docVersion: 0
894
+ _tag: "A"
895
+ - a: 1
896
+ + a: -1
897
+ pk: "PK#1"
898
+ sk: "SK#1"
899
+
900
+ - [PK#2 / SK#2]
901
+ - PK: "PK#2"
902
+ - SK: "SK#2"
903
+ - _docVersion: 0
904
+ - _tag: "A"
905
+ - a: 2
906
+ - pk: "PK#2"
907
+ - sk: "SK#2"
908
+
909
+ - [PK#3 / SK#3]
910
+ - PK: "PK#3"
911
+ - SK: "SK#3"
912
+ - _docVersion: 0
913
+ - _tag: "B"
914
+ - b: "bar"
915
+ - pk: "PK#3"
916
+ - sk: "SK#3"
917
+
918
+ [PK#UPDATE / SK#UPDATE]
919
+ PK: "PK#UPDATE"
920
+ SK: "SK#UPDATE"
921
+ - _docVersion: 0
922
+ + _docVersion: 1
923
+ _tag: "B"
924
+ - b: "bar"
925
+ + b: "baz"
926
+ pk: "PK#UPDATE"
927
+ sk: "SK#UPDATE"
928
+
929
+ + [PK4 / PK4]
930
+ + PK: "PK4"
931
+ + SK: "PK4"
932
+ + _docVersion: 0
933
+ + _tag: "A"
934
+ + a: 4
935
+ + pk: "PK4"
936
+ + sk: "PK4"
937
+
938
+ + [PK5 / PK5]
939
+ + PK: "PK5"
940
+ + SK: "PK5"
941
+ + _docVersion: 0
942
+ + _tag: "A"
943
+ + a: 5
944
+ + pk: "PK5"
945
+ + sk: "PK5"
946
+
947
+ + [PK6 / SK6]
948
+ + PK: "PK6"
949
+ + SK: "SK6"
950
+ + _docVersion: 0
951
+ + _tag: "B"
952
+ + b: "baz"
953
+ + pk: "PK6"
954
+ + sk: "SK6"
955
+ `);
926
956
  }));
927
957
  test("it fails", () => __awaiter(void 0, void 0, void 0, function* () {
928
958
  yield sandbox.seed(new A({ pk: "PK#1", sk: "SK#1", a: 1 }), new A({ pk: "PK#2", sk: "SK#2", a: 2 }), new B({ pk: "PK#3", sk: "SK#3", b: "bar" }), new B({ pk: "PK#UPDATE", sk: "SK#UPDATE", b: "bar" }), new B({ pk: "PK#COND", sk: "SK#COND", b: "cond" }));
@@ -958,970 +988,970 @@ describe("bulk", () => {
958
988
  ]);
959
989
  //#region snapshot
960
990
  expect(yield sandbox.diff(before)).toMatchInlineSnapshot(`
961
- Snapshot Diff:
962
- - First value
963
- + Second value
964
-
965
- @@ -2,28 +2,946 @@
966
- "PK#1__SK#1": Object {
967
- "PK": "PK#1",
968
- "SK": "SK#1",
969
- "_docVersion": 0,
970
- "_tag": "A",
971
- - "a": 1,
972
- + "a": -1,
973
- "pk": "PK#1",
974
- "sk": "SK#1",
975
- + },
976
- + "PK#A0__SK#A0": Object {
977
- + "PK": "PK#A0",
978
- + "SK": "SK#A0",
979
- + "_docVersion": 0,
980
- + "_tag": "A",
981
- + "a": 0,
982
- + "pk": "PK#A0",
983
- + "sk": "SK#A0",
984
- + },
985
- + "PK#A10__SK#A10": Object {
986
- + "PK": "PK#A10",
987
- + "SK": "SK#A10",
988
- + "_docVersion": 0,
989
- + "_tag": "A",
990
- + "a": 10,
991
- + "pk": "PK#A10",
992
- + "sk": "SK#A10",
993
- + },
994
- + "PK#A11__SK#A11": Object {
995
- + "PK": "PK#A11",
996
- + "SK": "SK#A11",
997
- + "_docVersion": 0,
998
- + "_tag": "A",
999
- + "a": 11,
1000
- + "pk": "PK#A11",
1001
- + "sk": "SK#A11",
1002
- + },
1003
- + "PK#A12__SK#A12": Object {
1004
- + "PK": "PK#A12",
1005
- + "SK": "SK#A12",
1006
- + "_docVersion": 0,
1007
- + "_tag": "A",
1008
- + "a": 12,
1009
- + "pk": "PK#A12",
1010
- + "sk": "SK#A12",
1011
- + },
1012
- + "PK#A13__SK#A13": Object {
1013
- + "PK": "PK#A13",
1014
- + "SK": "SK#A13",
1015
- + "_docVersion": 0,
1016
- + "_tag": "A",
1017
- + "a": 13,
1018
- + "pk": "PK#A13",
1019
- + "sk": "SK#A13",
1020
- },
1021
- - "PK#2__SK#2": Object {
1022
- - "PK": "PK#2",
1023
- - "SK": "SK#2",
1024
- + "PK#A14__SK#A14": Object {
1025
- + "PK": "PK#A14",
1026
- + "SK": "SK#A14",
1027
- + "_docVersion": 0,
1028
- + "_tag": "A",
1029
- + "a": 14,
1030
- + "pk": "PK#A14",
1031
- + "sk": "SK#A14",
1032
- + },
1033
- + "PK#A15__SK#A15": Object {
1034
- + "PK": "PK#A15",
1035
- + "SK": "SK#A15",
1036
- + "_docVersion": 0,
1037
- + "_tag": "A",
1038
- + "a": 15,
1039
- + "pk": "PK#A15",
1040
- + "sk": "SK#A15",
1041
- + },
1042
- + "PK#A16__SK#A16": Object {
1043
- + "PK": "PK#A16",
1044
- + "SK": "SK#A16",
1045
- + "_docVersion": 0,
1046
- + "_tag": "A",
1047
- + "a": 16,
1048
- + "pk": "PK#A16",
1049
- + "sk": "SK#A16",
1050
- + },
1051
- + "PK#A17__SK#A17": Object {
1052
- + "PK": "PK#A17",
1053
- + "SK": "SK#A17",
1054
- + "_docVersion": 0,
1055
- + "_tag": "A",
1056
- + "a": 17,
1057
- + "pk": "PK#A17",
1058
- + "sk": "SK#A17",
1059
- + },
1060
- + "PK#A18__SK#A18": Object {
1061
- + "PK": "PK#A18",
1062
- + "SK": "SK#A18",
1063
- + "_docVersion": 0,
1064
- + "_tag": "A",
1065
- + "a": 18,
1066
- + "pk": "PK#A18",
1067
- + "sk": "SK#A18",
1068
- + },
1069
- + "PK#A19__SK#A19": Object {
1070
- + "PK": "PK#A19",
1071
- + "SK": "SK#A19",
1072
- + "_docVersion": 0,
1073
- + "_tag": "A",
1074
- + "a": 19,
1075
- + "pk": "PK#A19",
1076
- + "sk": "SK#A19",
1077
- + },
1078
- + "PK#A1__SK#A1": Object {
1079
- + "PK": "PK#A1",
1080
- + "SK": "SK#A1",
1081
- + "_docVersion": 0,
1082
- + "_tag": "A",
1083
- + "a": 1,
1084
- + "pk": "PK#A1",
1085
- + "sk": "SK#A1",
1086
- + },
1087
- + "PK#A20__SK#A20": Object {
1088
- + "PK": "PK#A20",
1089
- + "SK": "SK#A20",
1090
- + "_docVersion": 0,
1091
- + "_tag": "A",
1092
- + "a": 20,
1093
- + "pk": "PK#A20",
1094
- + "sk": "SK#A20",
1095
- + },
1096
- + "PK#A21__SK#A21": Object {
1097
- + "PK": "PK#A21",
1098
- + "SK": "SK#A21",
1099
- + "_docVersion": 0,
1100
- + "_tag": "A",
1101
- + "a": 21,
1102
- + "pk": "PK#A21",
1103
- + "sk": "SK#A21",
1104
- + },
1105
- + "PK#A22__SK#A22": Object {
1106
- + "PK": "PK#A22",
1107
- + "SK": "SK#A22",
1108
- + "_docVersion": 0,
1109
- + "_tag": "A",
1110
- + "a": 22,
1111
- + "pk": "PK#A22",
1112
- + "sk": "SK#A22",
1113
- + },
1114
- + "PK#A23__SK#A23": Object {
1115
- + "PK": "PK#A23",
1116
- + "SK": "SK#A23",
1117
- + "_docVersion": 0,
1118
- + "_tag": "A",
1119
- + "a": 23,
1120
- + "pk": "PK#A23",
1121
- + "sk": "SK#A23",
1122
- + },
1123
- + "PK#A24__SK#A24": Object {
1124
- + "PK": "PK#A24",
1125
- + "SK": "SK#A24",
1126
- + "_docVersion": 0,
1127
- + "_tag": "A",
1128
- + "a": 24,
1129
- + "pk": "PK#A24",
1130
- + "sk": "SK#A24",
1131
- + },
1132
- + "PK#A25__SK#A25": Object {
1133
- + "PK": "PK#A25",
1134
- + "SK": "SK#A25",
1135
- + "_docVersion": 0,
1136
- + "_tag": "A",
1137
- + "a": 25,
1138
- + "pk": "PK#A25",
1139
- + "sk": "SK#A25",
1140
- + },
1141
- + "PK#A26__SK#A26": Object {
1142
- + "PK": "PK#A26",
1143
- + "SK": "SK#A26",
1144
- + "_docVersion": 0,
1145
- + "_tag": "A",
1146
- + "a": 26,
1147
- + "pk": "PK#A26",
1148
- + "sk": "SK#A26",
1149
- + },
1150
- + "PK#A27__SK#A27": Object {
1151
- + "PK": "PK#A27",
1152
- + "SK": "SK#A27",
1153
- + "_docVersion": 0,
1154
- + "_tag": "A",
1155
- + "a": 27,
1156
- + "pk": "PK#A27",
1157
- + "sk": "SK#A27",
1158
- + },
1159
- + "PK#A28__SK#A28": Object {
1160
- + "PK": "PK#A28",
1161
- + "SK": "SK#A28",
1162
- + "_docVersion": 0,
1163
- + "_tag": "A",
1164
- + "a": 28,
1165
- + "pk": "PK#A28",
1166
- + "sk": "SK#A28",
1167
- + },
1168
- + "PK#A29__SK#A29": Object {
1169
- + "PK": "PK#A29",
1170
- + "SK": "SK#A29",
1171
- + "_docVersion": 0,
1172
- + "_tag": "A",
1173
- + "a": 29,
1174
- + "pk": "PK#A29",
1175
- + "sk": "SK#A29",
1176
- + },
1177
- + "PK#A2__SK#A2": Object {
1178
- + "PK": "PK#A2",
1179
- + "SK": "SK#A2",
1180
- "_docVersion": 0,
1181
- "_tag": "A",
1182
- "a": 2,
1183
- - "pk": "PK#2",
1184
- - "sk": "SK#2",
1185
- + "pk": "PK#A2",
1186
- + "sk": "SK#A2",
1187
- + },
1188
- + "PK#A30__SK#A30": Object {
1189
- + "PK": "PK#A30",
1190
- + "SK": "SK#A30",
1191
- + "_docVersion": 0,
1192
- + "_tag": "A",
1193
- + "a": 30,
1194
- + "pk": "PK#A30",
1195
- + "sk": "SK#A30",
1196
- + },
1197
- + "PK#A31__SK#A31": Object {
1198
- + "PK": "PK#A31",
1199
- + "SK": "SK#A31",
1200
- + "_docVersion": 0,
1201
- + "_tag": "A",
1202
- + "a": 31,
1203
- + "pk": "PK#A31",
1204
- + "sk": "SK#A31",
1205
- + },
1206
- + "PK#A32__SK#A32": Object {
1207
- + "PK": "PK#A32",
1208
- + "SK": "SK#A32",
1209
- + "_docVersion": 0,
1210
- + "_tag": "A",
1211
- + "a": 32,
1212
- + "pk": "PK#A32",
1213
- + "sk": "SK#A32",
1214
- + },
1215
- + "PK#A33__SK#A33": Object {
1216
- + "PK": "PK#A33",
1217
- + "SK": "SK#A33",
1218
- + "_docVersion": 0,
1219
- + "_tag": "A",
1220
- + "a": 33,
1221
- + "pk": "PK#A33",
1222
- + "sk": "SK#A33",
1223
- + },
1224
- + "PK#A34__SK#A34": Object {
1225
- + "PK": "PK#A34",
1226
- + "SK": "SK#A34",
1227
- + "_docVersion": 0,
1228
- + "_tag": "A",
1229
- + "a": 34,
1230
- + "pk": "PK#A34",
1231
- + "sk": "SK#A34",
1232
- + },
1233
- + "PK#A35__SK#A35": Object {
1234
- + "PK": "PK#A35",
1235
- + "SK": "SK#A35",
1236
- + "_docVersion": 0,
1237
- + "_tag": "A",
1238
- + "a": 35,
1239
- + "pk": "PK#A35",
1240
- + "sk": "SK#A35",
1241
- + },
1242
- + "PK#A36__SK#A36": Object {
1243
- + "PK": "PK#A36",
1244
- + "SK": "SK#A36",
1245
- + "_docVersion": 0,
1246
- + "_tag": "A",
1247
- + "a": 36,
1248
- + "pk": "PK#A36",
1249
- + "sk": "SK#A36",
1250
- + },
1251
- + "PK#A37__SK#A37": Object {
1252
- + "PK": "PK#A37",
1253
- + "SK": "SK#A37",
1254
- + "_docVersion": 0,
1255
- + "_tag": "A",
1256
- + "a": 37,
1257
- + "pk": "PK#A37",
1258
- + "sk": "SK#A37",
1259
- + },
1260
- + "PK#A38__SK#A38": Object {
1261
- + "PK": "PK#A38",
1262
- + "SK": "SK#A38",
1263
- + "_docVersion": 0,
1264
- + "_tag": "A",
1265
- + "a": 38,
1266
- + "pk": "PK#A38",
1267
- + "sk": "SK#A38",
1268
- + },
1269
- + "PK#A39__SK#A39": Object {
1270
- + "PK": "PK#A39",
1271
- + "SK": "SK#A39",
1272
- + "_docVersion": 0,
1273
- + "_tag": "A",
1274
- + "a": 39,
1275
- + "pk": "PK#A39",
1276
- + "sk": "SK#A39",
1277
- + },
1278
- + "PK#A3__SK#A3": Object {
1279
- + "PK": "PK#A3",
1280
- + "SK": "SK#A3",
1281
- + "_docVersion": 0,
1282
- + "_tag": "A",
1283
- + "a": 3,
1284
- + "pk": "PK#A3",
1285
- + "sk": "SK#A3",
1286
- + },
1287
- + "PK#A40__SK#A40": Object {
1288
- + "PK": "PK#A40",
1289
- + "SK": "SK#A40",
1290
- + "_docVersion": 0,
1291
- + "_tag": "A",
1292
- + "a": 40,
1293
- + "pk": "PK#A40",
1294
- + "sk": "SK#A40",
1295
- + },
1296
- + "PK#A41__SK#A41": Object {
1297
- + "PK": "PK#A41",
1298
- + "SK": "SK#A41",
1299
- + "_docVersion": 0,
1300
- + "_tag": "A",
1301
- + "a": 41,
1302
- + "pk": "PK#A41",
1303
- + "sk": "SK#A41",
1304
- + },
1305
- + "PK#A42__SK#A42": Object {
1306
- + "PK": "PK#A42",
1307
- + "SK": "SK#A42",
1308
- + "_docVersion": 0,
1309
- + "_tag": "A",
1310
- + "a": 42,
1311
- + "pk": "PK#A42",
1312
- + "sk": "SK#A42",
1313
- + },
1314
- + "PK#A43__SK#A43": Object {
1315
- + "PK": "PK#A43",
1316
- + "SK": "SK#A43",
1317
- + "_docVersion": 0,
1318
- + "_tag": "A",
1319
- + "a": 43,
1320
- + "pk": "PK#A43",
1321
- + "sk": "SK#A43",
1322
- + },
1323
- + "PK#A44__SK#A44": Object {
1324
- + "PK": "PK#A44",
1325
- + "SK": "SK#A44",
1326
- + "_docVersion": 0,
1327
- + "_tag": "A",
1328
- + "a": 44,
1329
- + "pk": "PK#A44",
1330
- + "sk": "SK#A44",
1331
- + },
1332
- + "PK#A45__SK#A45": Object {
1333
- + "PK": "PK#A45",
1334
- + "SK": "SK#A45",
1335
- + "_docVersion": 0,
1336
- + "_tag": "A",
1337
- + "a": 45,
1338
- + "pk": "PK#A45",
1339
- + "sk": "SK#A45",
1340
- + },
1341
- + "PK#A46__SK#A46": Object {
1342
- + "PK": "PK#A46",
1343
- + "SK": "SK#A46",
1344
- + "_docVersion": 0,
1345
- + "_tag": "A",
1346
- + "a": 46,
1347
- + "pk": "PK#A46",
1348
- + "sk": "SK#A46",
1349
- + },
1350
- + "PK#A47__SK#A47": Object {
1351
- + "PK": "PK#A47",
1352
- + "SK": "SK#A47",
1353
- + "_docVersion": 0,
1354
- + "_tag": "A",
1355
- + "a": 47,
1356
- + "pk": "PK#A47",
1357
- + "sk": "SK#A47",
1358
- + },
1359
- + "PK#A48__SK#A48": Object {
1360
- + "PK": "PK#A48",
1361
- + "SK": "SK#A48",
1362
- + "_docVersion": 0,
1363
- + "_tag": "A",
1364
- + "a": 48,
1365
- + "pk": "PK#A48",
1366
- + "sk": "SK#A48",
1367
- + },
1368
- + "PK#A49__SK#A49": Object {
1369
- + "PK": "PK#A49",
1370
- + "SK": "SK#A49",
1371
- + "_docVersion": 0,
1372
- + "_tag": "A",
1373
- + "a": 49,
1374
- + "pk": "PK#A49",
1375
- + "sk": "SK#A49",
1376
- + },
1377
- + "PK#A4__SK#A4": Object {
1378
- + "PK": "PK#A4",
1379
- + "SK": "SK#A4",
1380
- + "_docVersion": 0,
1381
- + "_tag": "A",
1382
- + "a": 4,
1383
- + "pk": "PK#A4",
1384
- + "sk": "SK#A4",
1385
- + },
1386
- + "PK#A50__SK#A50": Object {
1387
- + "PK": "PK#A50",
1388
- + "SK": "SK#A50",
1389
- + "_docVersion": 0,
1390
- + "_tag": "A",
1391
- + "a": 50,
1392
- + "pk": "PK#A50",
1393
- + "sk": "SK#A50",
1394
- + },
1395
- + "PK#A51__SK#A51": Object {
1396
- + "PK": "PK#A51",
1397
- + "SK": "SK#A51",
1398
- + "_docVersion": 0,
1399
- + "_tag": "A",
1400
- + "a": 51,
1401
- + "pk": "PK#A51",
1402
- + "sk": "SK#A51",
1403
- + },
1404
- + "PK#A52__SK#A52": Object {
1405
- + "PK": "PK#A52",
1406
- + "SK": "SK#A52",
1407
- + "_docVersion": 0,
1408
- + "_tag": "A",
1409
- + "a": 52,
1410
- + "pk": "PK#A52",
1411
- + "sk": "SK#A52",
1412
- },
1413
- - "PK#3__SK#3": Object {
1414
- - "PK": "PK#3",
1415
- - "SK": "SK#3",
1416
- + "PK#A53__SK#A53": Object {
1417
- + "PK": "PK#A53",
1418
- + "SK": "SK#A53",
1419
- + "_docVersion": 0,
1420
- + "_tag": "A",
1421
- + "a": 53,
1422
- + "pk": "PK#A53",
1423
- + "sk": "SK#A53",
1424
- + },
1425
- + "PK#A54__SK#A54": Object {
1426
- + "PK": "PK#A54",
1427
- + "SK": "SK#A54",
1428
- + "_docVersion": 0,
1429
- + "_tag": "A",
1430
- + "a": 54,
1431
- + "pk": "PK#A54",
1432
- + "sk": "SK#A54",
1433
- + },
1434
- + "PK#A55__SK#A55": Object {
1435
- + "PK": "PK#A55",
1436
- + "SK": "SK#A55",
1437
- + "_docVersion": 0,
1438
- + "_tag": "A",
1439
- + "a": 55,
1440
- + "pk": "PK#A55",
1441
- + "sk": "SK#A55",
1442
- + },
1443
- + "PK#A56__SK#A56": Object {
1444
- + "PK": "PK#A56",
1445
- + "SK": "SK#A56",
1446
- + "_docVersion": 0,
1447
- + "_tag": "A",
1448
- + "a": 56,
1449
- + "pk": "PK#A56",
1450
- + "sk": "SK#A56",
1451
- + },
1452
- + "PK#A57__SK#A57": Object {
1453
- + "PK": "PK#A57",
1454
- + "SK": "SK#A57",
1455
- + "_docVersion": 0,
1456
- + "_tag": "A",
1457
- + "a": 57,
1458
- + "pk": "PK#A57",
1459
- + "sk": "SK#A57",
1460
- + },
1461
- + "PK#A58__SK#A58": Object {
1462
- + "PK": "PK#A58",
1463
- + "SK": "SK#A58",
1464
- + "_docVersion": 0,
1465
- + "_tag": "A",
1466
- + "a": 58,
1467
- + "pk": "PK#A58",
1468
- + "sk": "SK#A58",
1469
- + },
1470
- + "PK#A59__SK#A59": Object {
1471
- + "PK": "PK#A59",
1472
- + "SK": "SK#A59",
1473
- + "_docVersion": 0,
1474
- + "_tag": "A",
1475
- + "a": 59,
1476
- + "pk": "PK#A59",
1477
- + "sk": "SK#A59",
1478
- + },
1479
- + "PK#A5__SK#A5": Object {
1480
- + "PK": "PK#A5",
1481
- + "SK": "SK#A5",
1482
- + "_docVersion": 0,
1483
- + "_tag": "A",
1484
- + "a": 5,
1485
- + "pk": "PK#A5",
1486
- + "sk": "SK#A5",
1487
- + },
1488
- + "PK#A60__SK#A60": Object {
1489
- + "PK": "PK#A60",
1490
- + "SK": "SK#A60",
1491
- + "_docVersion": 0,
1492
- + "_tag": "A",
1493
- + "a": 60,
1494
- + "pk": "PK#A60",
1495
- + "sk": "SK#A60",
1496
- + },
1497
- + "PK#A61__SK#A61": Object {
1498
- + "PK": "PK#A61",
1499
- + "SK": "SK#A61",
1500
- + "_docVersion": 0,
1501
- + "_tag": "A",
1502
- + "a": 61,
1503
- + "pk": "PK#A61",
1504
- + "sk": "SK#A61",
1505
- + },
1506
- + "PK#A62__SK#A62": Object {
1507
- + "PK": "PK#A62",
1508
- + "SK": "SK#A62",
1509
- + "_docVersion": 0,
1510
- + "_tag": "A",
1511
- + "a": 62,
1512
- + "pk": "PK#A62",
1513
- + "sk": "SK#A62",
1514
- + },
1515
- + "PK#A63__SK#A63": Object {
1516
- + "PK": "PK#A63",
1517
- + "SK": "SK#A63",
1518
- + "_docVersion": 0,
1519
- + "_tag": "A",
1520
- + "a": 63,
1521
- + "pk": "PK#A63",
1522
- + "sk": "SK#A63",
1523
- + },
1524
- + "PK#A64__SK#A64": Object {
1525
- + "PK": "PK#A64",
1526
- + "SK": "SK#A64",
1527
- + "_docVersion": 0,
1528
- + "_tag": "A",
1529
- + "a": 64,
1530
- + "pk": "PK#A64",
1531
- + "sk": "SK#A64",
1532
- + },
1533
- + "PK#A65__SK#A65": Object {
1534
- + "PK": "PK#A65",
1535
- + "SK": "SK#A65",
1536
- + "_docVersion": 0,
1537
- + "_tag": "A",
1538
- + "a": 65,
1539
- + "pk": "PK#A65",
1540
- + "sk": "SK#A65",
1541
- + },
1542
- + "PK#A66__SK#A66": Object {
1543
- + "PK": "PK#A66",
1544
- + "SK": "SK#A66",
1545
- + "_docVersion": 0,
1546
- + "_tag": "A",
1547
- + "a": 66,
1548
- + "pk": "PK#A66",
1549
- + "sk": "SK#A66",
1550
- + },
1551
- + "PK#A67__SK#A67": Object {
1552
- + "PK": "PK#A67",
1553
- + "SK": "SK#A67",
1554
- + "_docVersion": 0,
1555
- + "_tag": "A",
1556
- + "a": 67,
1557
- + "pk": "PK#A67",
1558
- + "sk": "SK#A67",
1559
- + },
1560
- + "PK#A68__SK#A68": Object {
1561
- + "PK": "PK#A68",
1562
- + "SK": "SK#A68",
1563
- + "_docVersion": 0,
1564
- + "_tag": "A",
1565
- + "a": 68,
1566
- + "pk": "PK#A68",
1567
- + "sk": "SK#A68",
1568
- + },
1569
- + "PK#A69__SK#A69": Object {
1570
- + "PK": "PK#A69",
1571
- + "SK": "SK#A69",
1572
- + "_docVersion": 0,
1573
- + "_tag": "A",
1574
- + "a": 69,
1575
- + "pk": "PK#A69",
1576
- + "sk": "SK#A69",
1577
- + },
1578
- + "PK#A6__SK#A6": Object {
1579
- + "PK": "PK#A6",
1580
- + "SK": "SK#A6",
1581
- + "_docVersion": 0,
1582
- + "_tag": "A",
1583
- + "a": 6,
1584
- + "pk": "PK#A6",
1585
- + "sk": "SK#A6",
1586
- + },
1587
- + "PK#A70__SK#A70": Object {
1588
- + "PK": "PK#A70",
1589
- + "SK": "SK#A70",
1590
- + "_docVersion": 0,
1591
- + "_tag": "A",
1592
- + "a": 70,
1593
- + "pk": "PK#A70",
1594
- + "sk": "SK#A70",
1595
- + },
1596
- + "PK#A71__SK#A71": Object {
1597
- + "PK": "PK#A71",
1598
- + "SK": "SK#A71",
1599
- + "_docVersion": 0,
1600
- + "_tag": "A",
1601
- + "a": 71,
1602
- + "pk": "PK#A71",
1603
- + "sk": "SK#A71",
1604
- + },
1605
- + "PK#A72__SK#A72": Object {
1606
- + "PK": "PK#A72",
1607
- + "SK": "SK#A72",
1608
- + "_docVersion": 0,
1609
- + "_tag": "A",
1610
- + "a": 72,
1611
- + "pk": "PK#A72",
1612
- + "sk": "SK#A72",
1613
- + },
1614
- + "PK#A73__SK#A73": Object {
1615
- + "PK": "PK#A73",
1616
- + "SK": "SK#A73",
1617
- + "_docVersion": 0,
1618
- + "_tag": "A",
1619
- + "a": 73,
1620
- + "pk": "PK#A73",
1621
- + "sk": "SK#A73",
1622
- + },
1623
- + "PK#A74__SK#A74": Object {
1624
- + "PK": "PK#A74",
1625
- + "SK": "SK#A74",
1626
- + "_docVersion": 0,
1627
- + "_tag": "A",
1628
- + "a": 74,
1629
- + "pk": "PK#A74",
1630
- + "sk": "SK#A74",
1631
- + },
1632
- + "PK#A75__SK#A75": Object {
1633
- + "PK": "PK#A75",
1634
- + "SK": "SK#A75",
1635
- + "_docVersion": 0,
1636
- + "_tag": "A",
1637
- + "a": 75,
1638
- + "pk": "PK#A75",
1639
- + "sk": "SK#A75",
1640
- + },
1641
- + "PK#A76__SK#A76": Object {
1642
- + "PK": "PK#A76",
1643
- + "SK": "SK#A76",
1644
- + "_docVersion": 0,
1645
- + "_tag": "A",
1646
- + "a": 76,
1647
- + "pk": "PK#A76",
1648
- + "sk": "SK#A76",
1649
- + },
1650
- + "PK#A77__SK#A77": Object {
1651
- + "PK": "PK#A77",
1652
- + "SK": "SK#A77",
1653
- + "_docVersion": 0,
1654
- + "_tag": "A",
1655
- + "a": 77,
1656
- + "pk": "PK#A77",
1657
- + "sk": "SK#A77",
1658
- + },
1659
- + "PK#A78__SK#A78": Object {
1660
- + "PK": "PK#A78",
1661
- + "SK": "SK#A78",
1662
- + "_docVersion": 0,
1663
- + "_tag": "A",
1664
- + "a": 78,
1665
- + "pk": "PK#A78",
1666
- + "sk": "SK#A78",
1667
- + },
1668
- + "PK#A79__SK#A79": Object {
1669
- + "PK": "PK#A79",
1670
- + "SK": "SK#A79",
1671
- + "_docVersion": 0,
1672
- + "_tag": "A",
1673
- + "a": 79,
1674
- + "pk": "PK#A79",
1675
- + "sk": "SK#A79",
1676
- + },
1677
- + "PK#A7__SK#A7": Object {
1678
- + "PK": "PK#A7",
1679
- + "SK": "SK#A7",
1680
- + "_docVersion": 0,
1681
- + "_tag": "A",
1682
- + "a": 7,
1683
- + "pk": "PK#A7",
1684
- + "sk": "SK#A7",
1685
- + },
1686
- + "PK#A80__SK#A80": Object {
1687
- + "PK": "PK#A80",
1688
- + "SK": "SK#A80",
1689
- + "_docVersion": 0,
1690
- + "_tag": "A",
1691
- + "a": 80,
1692
- + "pk": "PK#A80",
1693
- + "sk": "SK#A80",
1694
- + },
1695
- + "PK#A81__SK#A81": Object {
1696
- + "PK": "PK#A81",
1697
- + "SK": "SK#A81",
1698
- + "_docVersion": 0,
1699
- + "_tag": "A",
1700
- + "a": 81,
1701
- + "pk": "PK#A81",
1702
- + "sk": "SK#A81",
1703
- + },
1704
- + "PK#A82__SK#A82": Object {
1705
- + "PK": "PK#A82",
1706
- + "SK": "SK#A82",
1707
- + "_docVersion": 0,
1708
- + "_tag": "A",
1709
- + "a": 82,
1710
- + "pk": "PK#A82",
1711
- + "sk": "SK#A82",
1712
- + },
1713
- + "PK#A83__SK#A83": Object {
1714
- + "PK": "PK#A83",
1715
- + "SK": "SK#A83",
1716
- + "_docVersion": 0,
1717
- + "_tag": "A",
1718
- + "a": 83,
1719
- + "pk": "PK#A83",
1720
- + "sk": "SK#A83",
1721
- + },
1722
- + "PK#A84__SK#A84": Object {
1723
- + "PK": "PK#A84",
1724
- + "SK": "SK#A84",
1725
- + "_docVersion": 0,
1726
- + "_tag": "A",
1727
- + "a": 84,
1728
- + "pk": "PK#A84",
1729
- + "sk": "SK#A84",
1730
- + },
1731
- + "PK#A85__SK#A85": Object {
1732
- + "PK": "PK#A85",
1733
- + "SK": "SK#A85",
1734
- + "_docVersion": 0,
1735
- + "_tag": "A",
1736
- + "a": 85,
1737
- + "pk": "PK#A85",
1738
- + "sk": "SK#A85",
1739
- + },
1740
- + "PK#A86__SK#A86": Object {
1741
- + "PK": "PK#A86",
1742
- + "SK": "SK#A86",
1743
- + "_docVersion": 0,
1744
- + "_tag": "A",
1745
- + "a": 86,
1746
- + "pk": "PK#A86",
1747
- + "sk": "SK#A86",
1748
- + },
1749
- + "PK#A87__SK#A87": Object {
1750
- + "PK": "PK#A87",
1751
- + "SK": "SK#A87",
1752
- + "_docVersion": 0,
1753
- + "_tag": "A",
1754
- + "a": 87,
1755
- + "pk": "PK#A87",
1756
- + "sk": "SK#A87",
1757
- + },
1758
- + "PK#A88__SK#A88": Object {
1759
- + "PK": "PK#A88",
1760
- + "SK": "SK#A88",
1761
- + "_docVersion": 0,
1762
- + "_tag": "A",
1763
- + "a": 88,
1764
- + "pk": "PK#A88",
1765
- + "sk": "SK#A88",
1766
- + },
1767
- + "PK#A89__SK#A89": Object {
1768
- + "PK": "PK#A89",
1769
- + "SK": "SK#A89",
1770
- + "_docVersion": 0,
1771
- + "_tag": "A",
1772
- + "a": 89,
1773
- + "pk": "PK#A89",
1774
- + "sk": "SK#A89",
1775
- + },
1776
- + "PK#A8__SK#A8": Object {
1777
- + "PK": "PK#A8",
1778
- + "SK": "SK#A8",
1779
- + "_docVersion": 0,
1780
- + "_tag": "A",
1781
- + "a": 8,
1782
- + "pk": "PK#A8",
1783
- + "sk": "SK#A8",
1784
- + },
1785
- + "PK#A90__SK#A90": Object {
1786
- + "PK": "PK#A90",
1787
- + "SK": "SK#A90",
1788
- + "_docVersion": 0,
1789
- + "_tag": "A",
1790
- + "a": 90,
1791
- + "pk": "PK#A90",
1792
- + "sk": "SK#A90",
1793
- + },
1794
- + "PK#A91__SK#A91": Object {
1795
- + "PK": "PK#A91",
1796
- + "SK": "SK#A91",
1797
- + "_docVersion": 0,
1798
- + "_tag": "A",
1799
- + "a": 91,
1800
- + "pk": "PK#A91",
1801
- + "sk": "SK#A91",
1802
- + },
1803
- + "PK#A92__SK#A92": Object {
1804
- + "PK": "PK#A92",
1805
- + "SK": "SK#A92",
1806
- + "_docVersion": 0,
1807
- + "_tag": "A",
1808
- + "a": 92,
1809
- + "pk": "PK#A92",
1810
- + "sk": "SK#A92",
1811
- + },
1812
- + "PK#A93__SK#A93": Object {
1813
- + "PK": "PK#A93",
1814
- + "SK": "SK#A93",
1815
- + "_docVersion": 0,
1816
- + "_tag": "A",
1817
- + "a": 93,
1818
- + "pk": "PK#A93",
1819
- + "sk": "SK#A93",
1820
- + },
1821
- + "PK#A94__SK#A94": Object {
1822
- + "PK": "PK#A94",
1823
- + "SK": "SK#A94",
1824
- + "_docVersion": 0,
1825
- + "_tag": "A",
1826
- + "a": 94,
1827
- + "pk": "PK#A94",
1828
- + "sk": "SK#A94",
1829
- + },
1830
- + "PK#A95__SK#A95": Object {
1831
- + "PK": "PK#A95",
1832
- + "SK": "SK#A95",
1833
- + "_docVersion": 0,
1834
- + "_tag": "A",
1835
- + "a": 95,
1836
- + "pk": "PK#A95",
1837
- + "sk": "SK#A95",
1838
- + },
1839
- + "PK#A96__SK#A96": Object {
1840
- + "PK": "PK#A96",
1841
- + "SK": "SK#A96",
1842
- + "_docVersion": 0,
1843
- + "_tag": "A",
1844
- + "a": 96,
1845
- + "pk": "PK#A96",
1846
- + "sk": "SK#A96",
1847
- + },
1848
- + "PK#A97__SK#A97": Object {
1849
- + "PK": "PK#A97",
1850
- + "SK": "SK#A97",
1851
- + "_docVersion": 0,
1852
- + "_tag": "A",
1853
- + "a": 97,
1854
- + "pk": "PK#A97",
1855
- + "sk": "SK#A97",
1856
- + },
1857
- + "PK#A98__SK#A98": Object {
1858
- + "PK": "PK#A98",
1859
- + "SK": "SK#A98",
1860
- + "_docVersion": 0,
1861
- + "_tag": "A",
1862
- + "a": 98,
1863
- + "pk": "PK#A98",
1864
- + "sk": "SK#A98",
1865
- + },
1866
- + "PK#A99__SK#A99": Object {
1867
- + "PK": "PK#A99",
1868
- + "SK": "SK#A99",
1869
- + "_docVersion": 0,
1870
- + "_tag": "A",
1871
- + "a": 99,
1872
- + "pk": "PK#A99",
1873
- + "sk": "SK#A99",
1874
- + },
1875
- + "PK#A9__SK#A9": Object {
1876
- + "PK": "PK#A9",
1877
- + "SK": "SK#A9",
1878
- "_docVersion": 0,
1879
- + "_tag": "A",
1880
- + "a": 9,
1881
- + "pk": "PK#A9",
1882
- + "sk": "SK#A9",
1883
- + },
1884
- + "PK#UPDATE__SK#UPDATE": Object {
1885
- + "PK": "PK#UPDATE",
1886
- + "SK": "SK#UPDATE",
1887
- + "_docVersion": 1,
1888
- "_tag": "B",
1889
- - "b": "bar",
1890
- - "pk": "PK#3",
1891
- - "sk": "SK#3",
1892
- + "b": "baz",
1893
- + "pk": "PK#UPDATE",
1894
- + "sk": "SK#UPDATE",
1895
- + },
1896
- + "PK4__PK4": Object {
1897
- + "PK": "PK4",
1898
- + "SK": "PK4",
1899
- + "_docVersion": 0,
1900
- + "_tag": "A",
1901
- + "a": 4,
1902
- + "pk": "PK4",
1903
- + "sk": "PK4",
1904
- + },
1905
- + "PK5__PK5": Object {
1906
- + "PK": "PK5",
1907
- + "SK": "PK5",
1908
- + "_docVersion": 0,
1909
- + "_tag": "A",
1910
- + "a": 5,
1911
- + "pk": "PK5",
1912
- + "sk": "PK5",
1913
- + },
1914
- + "PK6__SK6": Object {
1915
- + "PK": "PK6",
1916
- + "SK": "SK6",
1917
- + "_docVersion": 0,
1918
- + "_tag": "B",
1919
- + "b": "baz",
1920
- + "pk": "PK6",
1921
- + "sk": "SK6",
1922
- },
1923
- }
1924
- `);
991
+ [PK#1 / SK#1]
992
+ PK: "PK#1"
993
+ SK: "SK#1"
994
+ _docVersion: 0
995
+ _tag: "A"
996
+ - a: 1
997
+ + a: -1
998
+ pk: "PK#1"
999
+ sk: "SK#1"
1000
+
1001
+ - [PK#2 / SK#2]
1002
+ - PK: "PK#2"
1003
+ - SK: "SK#2"
1004
+ - _docVersion: 0
1005
+ - _tag: "A"
1006
+ - a: 2
1007
+ - pk: "PK#2"
1008
+ - sk: "SK#2"
1009
+
1010
+ - [PK#3 / SK#3]
1011
+ - PK: "PK#3"
1012
+ - SK: "SK#3"
1013
+ - _docVersion: 0
1014
+ - _tag: "B"
1015
+ - b: "bar"
1016
+ - pk: "PK#3"
1017
+ - sk: "SK#3"
1018
+
1019
+ + [PK#A0 / SK#A0]
1020
+ + PK: "PK#A0"
1021
+ + SK: "SK#A0"
1022
+ + _docVersion: 0
1023
+ + _tag: "A"
1024
+ + a: 0
1025
+ + pk: "PK#A0"
1026
+ + sk: "SK#A0"
1027
+
1028
+ + [PK#A1 / SK#A1]
1029
+ + PK: "PK#A1"
1030
+ + SK: "SK#A1"
1031
+ + _docVersion: 0
1032
+ + _tag: "A"
1033
+ + a: 1
1034
+ + pk: "PK#A1"
1035
+ + sk: "SK#A1"
1036
+
1037
+ + [PK#A10 / SK#A10]
1038
+ + PK: "PK#A10"
1039
+ + SK: "SK#A10"
1040
+ + _docVersion: 0
1041
+ + _tag: "A"
1042
+ + a: 10
1043
+ + pk: "PK#A10"
1044
+ + sk: "SK#A10"
1045
+
1046
+ + [PK#A11 / SK#A11]
1047
+ + PK: "PK#A11"
1048
+ + SK: "SK#A11"
1049
+ + _docVersion: 0
1050
+ + _tag: "A"
1051
+ + a: 11
1052
+ + pk: "PK#A11"
1053
+ + sk: "SK#A11"
1054
+
1055
+ + [PK#A12 / SK#A12]
1056
+ + PK: "PK#A12"
1057
+ + SK: "SK#A12"
1058
+ + _docVersion: 0
1059
+ + _tag: "A"
1060
+ + a: 12
1061
+ + pk: "PK#A12"
1062
+ + sk: "SK#A12"
1063
+
1064
+ + [PK#A13 / SK#A13]
1065
+ + PK: "PK#A13"
1066
+ + SK: "SK#A13"
1067
+ + _docVersion: 0
1068
+ + _tag: "A"
1069
+ + a: 13
1070
+ + pk: "PK#A13"
1071
+ + sk: "SK#A13"
1072
+
1073
+ + [PK#A14 / SK#A14]
1074
+ + PK: "PK#A14"
1075
+ + SK: "SK#A14"
1076
+ + _docVersion: 0
1077
+ + _tag: "A"
1078
+ + a: 14
1079
+ + pk: "PK#A14"
1080
+ + sk: "SK#A14"
1081
+
1082
+ + [PK#A15 / SK#A15]
1083
+ + PK: "PK#A15"
1084
+ + SK: "SK#A15"
1085
+ + _docVersion: 0
1086
+ + _tag: "A"
1087
+ + a: 15
1088
+ + pk: "PK#A15"
1089
+ + sk: "SK#A15"
1090
+
1091
+ + [PK#A16 / SK#A16]
1092
+ + PK: "PK#A16"
1093
+ + SK: "SK#A16"
1094
+ + _docVersion: 0
1095
+ + _tag: "A"
1096
+ + a: 16
1097
+ + pk: "PK#A16"
1098
+ + sk: "SK#A16"
1099
+
1100
+ + [PK#A17 / SK#A17]
1101
+ + PK: "PK#A17"
1102
+ + SK: "SK#A17"
1103
+ + _docVersion: 0
1104
+ + _tag: "A"
1105
+ + a: 17
1106
+ + pk: "PK#A17"
1107
+ + sk: "SK#A17"
1108
+
1109
+ + [PK#A18 / SK#A18]
1110
+ + PK: "PK#A18"
1111
+ + SK: "SK#A18"
1112
+ + _docVersion: 0
1113
+ + _tag: "A"
1114
+ + a: 18
1115
+ + pk: "PK#A18"
1116
+ + sk: "SK#A18"
1117
+
1118
+ + [PK#A19 / SK#A19]
1119
+ + PK: "PK#A19"
1120
+ + SK: "SK#A19"
1121
+ + _docVersion: 0
1122
+ + _tag: "A"
1123
+ + a: 19
1124
+ + pk: "PK#A19"
1125
+ + sk: "SK#A19"
1126
+
1127
+ + [PK#A2 / SK#A2]
1128
+ + PK: "PK#A2"
1129
+ + SK: "SK#A2"
1130
+ + _docVersion: 0
1131
+ + _tag: "A"
1132
+ + a: 2
1133
+ + pk: "PK#A2"
1134
+ + sk: "SK#A2"
1135
+
1136
+ + [PK#A20 / SK#A20]
1137
+ + PK: "PK#A20"
1138
+ + SK: "SK#A20"
1139
+ + _docVersion: 0
1140
+ + _tag: "A"
1141
+ + a: 20
1142
+ + pk: "PK#A20"
1143
+ + sk: "SK#A20"
1144
+
1145
+ + [PK#A21 / SK#A21]
1146
+ + PK: "PK#A21"
1147
+ + SK: "SK#A21"
1148
+ + _docVersion: 0
1149
+ + _tag: "A"
1150
+ + a: 21
1151
+ + pk: "PK#A21"
1152
+ + sk: "SK#A21"
1153
+
1154
+ + [PK#A22 / SK#A22]
1155
+ + PK: "PK#A22"
1156
+ + SK: "SK#A22"
1157
+ + _docVersion: 0
1158
+ + _tag: "A"
1159
+ + a: 22
1160
+ + pk: "PK#A22"
1161
+ + sk: "SK#A22"
1162
+
1163
+ + [PK#A23 / SK#A23]
1164
+ + PK: "PK#A23"
1165
+ + SK: "SK#A23"
1166
+ + _docVersion: 0
1167
+ + _tag: "A"
1168
+ + a: 23
1169
+ + pk: "PK#A23"
1170
+ + sk: "SK#A23"
1171
+
1172
+ + [PK#A24 / SK#A24]
1173
+ + PK: "PK#A24"
1174
+ + SK: "SK#A24"
1175
+ + _docVersion: 0
1176
+ + _tag: "A"
1177
+ + a: 24
1178
+ + pk: "PK#A24"
1179
+ + sk: "SK#A24"
1180
+
1181
+ + [PK#A25 / SK#A25]
1182
+ + PK: "PK#A25"
1183
+ + SK: "SK#A25"
1184
+ + _docVersion: 0
1185
+ + _tag: "A"
1186
+ + a: 25
1187
+ + pk: "PK#A25"
1188
+ + sk: "SK#A25"
1189
+
1190
+ + [PK#A26 / SK#A26]
1191
+ + PK: "PK#A26"
1192
+ + SK: "SK#A26"
1193
+ + _docVersion: 0
1194
+ + _tag: "A"
1195
+ + a: 26
1196
+ + pk: "PK#A26"
1197
+ + sk: "SK#A26"
1198
+
1199
+ + [PK#A27 / SK#A27]
1200
+ + PK: "PK#A27"
1201
+ + SK: "SK#A27"
1202
+ + _docVersion: 0
1203
+ + _tag: "A"
1204
+ + a: 27
1205
+ + pk: "PK#A27"
1206
+ + sk: "SK#A27"
1207
+
1208
+ + [PK#A28 / SK#A28]
1209
+ + PK: "PK#A28"
1210
+ + SK: "SK#A28"
1211
+ + _docVersion: 0
1212
+ + _tag: "A"
1213
+ + a: 28
1214
+ + pk: "PK#A28"
1215
+ + sk: "SK#A28"
1216
+
1217
+ + [PK#A29 / SK#A29]
1218
+ + PK: "PK#A29"
1219
+ + SK: "SK#A29"
1220
+ + _docVersion: 0
1221
+ + _tag: "A"
1222
+ + a: 29
1223
+ + pk: "PK#A29"
1224
+ + sk: "SK#A29"
1225
+
1226
+ + [PK#A3 / SK#A3]
1227
+ + PK: "PK#A3"
1228
+ + SK: "SK#A3"
1229
+ + _docVersion: 0
1230
+ + _tag: "A"
1231
+ + a: 3
1232
+ + pk: "PK#A3"
1233
+ + sk: "SK#A3"
1234
+
1235
+ + [PK#A30 / SK#A30]
1236
+ + PK: "PK#A30"
1237
+ + SK: "SK#A30"
1238
+ + _docVersion: 0
1239
+ + _tag: "A"
1240
+ + a: 30
1241
+ + pk: "PK#A30"
1242
+ + sk: "SK#A30"
1243
+
1244
+ + [PK#A31 / SK#A31]
1245
+ + PK: "PK#A31"
1246
+ + SK: "SK#A31"
1247
+ + _docVersion: 0
1248
+ + _tag: "A"
1249
+ + a: 31
1250
+ + pk: "PK#A31"
1251
+ + sk: "SK#A31"
1252
+
1253
+ + [PK#A32 / SK#A32]
1254
+ + PK: "PK#A32"
1255
+ + SK: "SK#A32"
1256
+ + _docVersion: 0
1257
+ + _tag: "A"
1258
+ + a: 32
1259
+ + pk: "PK#A32"
1260
+ + sk: "SK#A32"
1261
+
1262
+ + [PK#A33 / SK#A33]
1263
+ + PK: "PK#A33"
1264
+ + SK: "SK#A33"
1265
+ + _docVersion: 0
1266
+ + _tag: "A"
1267
+ + a: 33
1268
+ + pk: "PK#A33"
1269
+ + sk: "SK#A33"
1270
+
1271
+ + [PK#A34 / SK#A34]
1272
+ + PK: "PK#A34"
1273
+ + SK: "SK#A34"
1274
+ + _docVersion: 0
1275
+ + _tag: "A"
1276
+ + a: 34
1277
+ + pk: "PK#A34"
1278
+ + sk: "SK#A34"
1279
+
1280
+ + [PK#A35 / SK#A35]
1281
+ + PK: "PK#A35"
1282
+ + SK: "SK#A35"
1283
+ + _docVersion: 0
1284
+ + _tag: "A"
1285
+ + a: 35
1286
+ + pk: "PK#A35"
1287
+ + sk: "SK#A35"
1288
+
1289
+ + [PK#A36 / SK#A36]
1290
+ + PK: "PK#A36"
1291
+ + SK: "SK#A36"
1292
+ + _docVersion: 0
1293
+ + _tag: "A"
1294
+ + a: 36
1295
+ + pk: "PK#A36"
1296
+ + sk: "SK#A36"
1297
+
1298
+ + [PK#A37 / SK#A37]
1299
+ + PK: "PK#A37"
1300
+ + SK: "SK#A37"
1301
+ + _docVersion: 0
1302
+ + _tag: "A"
1303
+ + a: 37
1304
+ + pk: "PK#A37"
1305
+ + sk: "SK#A37"
1306
+
1307
+ + [PK#A38 / SK#A38]
1308
+ + PK: "PK#A38"
1309
+ + SK: "SK#A38"
1310
+ + _docVersion: 0
1311
+ + _tag: "A"
1312
+ + a: 38
1313
+ + pk: "PK#A38"
1314
+ + sk: "SK#A38"
1315
+
1316
+ + [PK#A39 / SK#A39]
1317
+ + PK: "PK#A39"
1318
+ + SK: "SK#A39"
1319
+ + _docVersion: 0
1320
+ + _tag: "A"
1321
+ + a: 39
1322
+ + pk: "PK#A39"
1323
+ + sk: "SK#A39"
1324
+
1325
+ + [PK#A4 / SK#A4]
1326
+ + PK: "PK#A4"
1327
+ + SK: "SK#A4"
1328
+ + _docVersion: 0
1329
+ + _tag: "A"
1330
+ + a: 4
1331
+ + pk: "PK#A4"
1332
+ + sk: "SK#A4"
1333
+
1334
+ + [PK#A40 / SK#A40]
1335
+ + PK: "PK#A40"
1336
+ + SK: "SK#A40"
1337
+ + _docVersion: 0
1338
+ + _tag: "A"
1339
+ + a: 40
1340
+ + pk: "PK#A40"
1341
+ + sk: "SK#A40"
1342
+
1343
+ + [PK#A41 / SK#A41]
1344
+ + PK: "PK#A41"
1345
+ + SK: "SK#A41"
1346
+ + _docVersion: 0
1347
+ + _tag: "A"
1348
+ + a: 41
1349
+ + pk: "PK#A41"
1350
+ + sk: "SK#A41"
1351
+
1352
+ + [PK#A42 / SK#A42]
1353
+ + PK: "PK#A42"
1354
+ + SK: "SK#A42"
1355
+ + _docVersion: 0
1356
+ + _tag: "A"
1357
+ + a: 42
1358
+ + pk: "PK#A42"
1359
+ + sk: "SK#A42"
1360
+
1361
+ + [PK#A43 / SK#A43]
1362
+ + PK: "PK#A43"
1363
+ + SK: "SK#A43"
1364
+ + _docVersion: 0
1365
+ + _tag: "A"
1366
+ + a: 43
1367
+ + pk: "PK#A43"
1368
+ + sk: "SK#A43"
1369
+
1370
+ + [PK#A44 / SK#A44]
1371
+ + PK: "PK#A44"
1372
+ + SK: "SK#A44"
1373
+ + _docVersion: 0
1374
+ + _tag: "A"
1375
+ + a: 44
1376
+ + pk: "PK#A44"
1377
+ + sk: "SK#A44"
1378
+
1379
+ + [PK#A45 / SK#A45]
1380
+ + PK: "PK#A45"
1381
+ + SK: "SK#A45"
1382
+ + _docVersion: 0
1383
+ + _tag: "A"
1384
+ + a: 45
1385
+ + pk: "PK#A45"
1386
+ + sk: "SK#A45"
1387
+
1388
+ + [PK#A46 / SK#A46]
1389
+ + PK: "PK#A46"
1390
+ + SK: "SK#A46"
1391
+ + _docVersion: 0
1392
+ + _tag: "A"
1393
+ + a: 46
1394
+ + pk: "PK#A46"
1395
+ + sk: "SK#A46"
1396
+
1397
+ + [PK#A47 / SK#A47]
1398
+ + PK: "PK#A47"
1399
+ + SK: "SK#A47"
1400
+ + _docVersion: 0
1401
+ + _tag: "A"
1402
+ + a: 47
1403
+ + pk: "PK#A47"
1404
+ + sk: "SK#A47"
1405
+
1406
+ + [PK#A48 / SK#A48]
1407
+ + PK: "PK#A48"
1408
+ + SK: "SK#A48"
1409
+ + _docVersion: 0
1410
+ + _tag: "A"
1411
+ + a: 48
1412
+ + pk: "PK#A48"
1413
+ + sk: "SK#A48"
1414
+
1415
+ + [PK#A49 / SK#A49]
1416
+ + PK: "PK#A49"
1417
+ + SK: "SK#A49"
1418
+ + _docVersion: 0
1419
+ + _tag: "A"
1420
+ + a: 49
1421
+ + pk: "PK#A49"
1422
+ + sk: "SK#A49"
1423
+
1424
+ + [PK#A5 / SK#A5]
1425
+ + PK: "PK#A5"
1426
+ + SK: "SK#A5"
1427
+ + _docVersion: 0
1428
+ + _tag: "A"
1429
+ + a: 5
1430
+ + pk: "PK#A5"
1431
+ + sk: "SK#A5"
1432
+
1433
+ + [PK#A50 / SK#A50]
1434
+ + PK: "PK#A50"
1435
+ + SK: "SK#A50"
1436
+ + _docVersion: 0
1437
+ + _tag: "A"
1438
+ + a: 50
1439
+ + pk: "PK#A50"
1440
+ + sk: "SK#A50"
1441
+
1442
+ + [PK#A51 / SK#A51]
1443
+ + PK: "PK#A51"
1444
+ + SK: "SK#A51"
1445
+ + _docVersion: 0
1446
+ + _tag: "A"
1447
+ + a: 51
1448
+ + pk: "PK#A51"
1449
+ + sk: "SK#A51"
1450
+
1451
+ + [PK#A52 / SK#A52]
1452
+ + PK: "PK#A52"
1453
+ + SK: "SK#A52"
1454
+ + _docVersion: 0
1455
+ + _tag: "A"
1456
+ + a: 52
1457
+ + pk: "PK#A52"
1458
+ + sk: "SK#A52"
1459
+
1460
+ + [PK#A53 / SK#A53]
1461
+ + PK: "PK#A53"
1462
+ + SK: "SK#A53"
1463
+ + _docVersion: 0
1464
+ + _tag: "A"
1465
+ + a: 53
1466
+ + pk: "PK#A53"
1467
+ + sk: "SK#A53"
1468
+
1469
+ + [PK#A54 / SK#A54]
1470
+ + PK: "PK#A54"
1471
+ + SK: "SK#A54"
1472
+ + _docVersion: 0
1473
+ + _tag: "A"
1474
+ + a: 54
1475
+ + pk: "PK#A54"
1476
+ + sk: "SK#A54"
1477
+
1478
+ + [PK#A55 / SK#A55]
1479
+ + PK: "PK#A55"
1480
+ + SK: "SK#A55"
1481
+ + _docVersion: 0
1482
+ + _tag: "A"
1483
+ + a: 55
1484
+ + pk: "PK#A55"
1485
+ + sk: "SK#A55"
1486
+
1487
+ + [PK#A56 / SK#A56]
1488
+ + PK: "PK#A56"
1489
+ + SK: "SK#A56"
1490
+ + _docVersion: 0
1491
+ + _tag: "A"
1492
+ + a: 56
1493
+ + pk: "PK#A56"
1494
+ + sk: "SK#A56"
1495
+
1496
+ + [PK#A57 / SK#A57]
1497
+ + PK: "PK#A57"
1498
+ + SK: "SK#A57"
1499
+ + _docVersion: 0
1500
+ + _tag: "A"
1501
+ + a: 57
1502
+ + pk: "PK#A57"
1503
+ + sk: "SK#A57"
1504
+
1505
+ + [PK#A58 / SK#A58]
1506
+ + PK: "PK#A58"
1507
+ + SK: "SK#A58"
1508
+ + _docVersion: 0
1509
+ + _tag: "A"
1510
+ + a: 58
1511
+ + pk: "PK#A58"
1512
+ + sk: "SK#A58"
1513
+
1514
+ + [PK#A59 / SK#A59]
1515
+ + PK: "PK#A59"
1516
+ + SK: "SK#A59"
1517
+ + _docVersion: 0
1518
+ + _tag: "A"
1519
+ + a: 59
1520
+ + pk: "PK#A59"
1521
+ + sk: "SK#A59"
1522
+
1523
+ + [PK#A6 / SK#A6]
1524
+ + PK: "PK#A6"
1525
+ + SK: "SK#A6"
1526
+ + _docVersion: 0
1527
+ + _tag: "A"
1528
+ + a: 6
1529
+ + pk: "PK#A6"
1530
+ + sk: "SK#A6"
1531
+
1532
+ + [PK#A60 / SK#A60]
1533
+ + PK: "PK#A60"
1534
+ + SK: "SK#A60"
1535
+ + _docVersion: 0
1536
+ + _tag: "A"
1537
+ + a: 60
1538
+ + pk: "PK#A60"
1539
+ + sk: "SK#A60"
1540
+
1541
+ + [PK#A61 / SK#A61]
1542
+ + PK: "PK#A61"
1543
+ + SK: "SK#A61"
1544
+ + _docVersion: 0
1545
+ + _tag: "A"
1546
+ + a: 61
1547
+ + pk: "PK#A61"
1548
+ + sk: "SK#A61"
1549
+
1550
+ + [PK#A62 / SK#A62]
1551
+ + PK: "PK#A62"
1552
+ + SK: "SK#A62"
1553
+ + _docVersion: 0
1554
+ + _tag: "A"
1555
+ + a: 62
1556
+ + pk: "PK#A62"
1557
+ + sk: "SK#A62"
1558
+
1559
+ + [PK#A63 / SK#A63]
1560
+ + PK: "PK#A63"
1561
+ + SK: "SK#A63"
1562
+ + _docVersion: 0
1563
+ + _tag: "A"
1564
+ + a: 63
1565
+ + pk: "PK#A63"
1566
+ + sk: "SK#A63"
1567
+
1568
+ + [PK#A64 / SK#A64]
1569
+ + PK: "PK#A64"
1570
+ + SK: "SK#A64"
1571
+ + _docVersion: 0
1572
+ + _tag: "A"
1573
+ + a: 64
1574
+ + pk: "PK#A64"
1575
+ + sk: "SK#A64"
1576
+
1577
+ + [PK#A65 / SK#A65]
1578
+ + PK: "PK#A65"
1579
+ + SK: "SK#A65"
1580
+ + _docVersion: 0
1581
+ + _tag: "A"
1582
+ + a: 65
1583
+ + pk: "PK#A65"
1584
+ + sk: "SK#A65"
1585
+
1586
+ + [PK#A66 / SK#A66]
1587
+ + PK: "PK#A66"
1588
+ + SK: "SK#A66"
1589
+ + _docVersion: 0
1590
+ + _tag: "A"
1591
+ + a: 66
1592
+ + pk: "PK#A66"
1593
+ + sk: "SK#A66"
1594
+
1595
+ + [PK#A67 / SK#A67]
1596
+ + PK: "PK#A67"
1597
+ + SK: "SK#A67"
1598
+ + _docVersion: 0
1599
+ + _tag: "A"
1600
+ + a: 67
1601
+ + pk: "PK#A67"
1602
+ + sk: "SK#A67"
1603
+
1604
+ + [PK#A68 / SK#A68]
1605
+ + PK: "PK#A68"
1606
+ + SK: "SK#A68"
1607
+ + _docVersion: 0
1608
+ + _tag: "A"
1609
+ + a: 68
1610
+ + pk: "PK#A68"
1611
+ + sk: "SK#A68"
1612
+
1613
+ + [PK#A69 / SK#A69]
1614
+ + PK: "PK#A69"
1615
+ + SK: "SK#A69"
1616
+ + _docVersion: 0
1617
+ + _tag: "A"
1618
+ + a: 69
1619
+ + pk: "PK#A69"
1620
+ + sk: "SK#A69"
1621
+
1622
+ + [PK#A7 / SK#A7]
1623
+ + PK: "PK#A7"
1624
+ + SK: "SK#A7"
1625
+ + _docVersion: 0
1626
+ + _tag: "A"
1627
+ + a: 7
1628
+ + pk: "PK#A7"
1629
+ + sk: "SK#A7"
1630
+
1631
+ + [PK#A70 / SK#A70]
1632
+ + PK: "PK#A70"
1633
+ + SK: "SK#A70"
1634
+ + _docVersion: 0
1635
+ + _tag: "A"
1636
+ + a: 70
1637
+ + pk: "PK#A70"
1638
+ + sk: "SK#A70"
1639
+
1640
+ + [PK#A71 / SK#A71]
1641
+ + PK: "PK#A71"
1642
+ + SK: "SK#A71"
1643
+ + _docVersion: 0
1644
+ + _tag: "A"
1645
+ + a: 71
1646
+ + pk: "PK#A71"
1647
+ + sk: "SK#A71"
1648
+
1649
+ + [PK#A72 / SK#A72]
1650
+ + PK: "PK#A72"
1651
+ + SK: "SK#A72"
1652
+ + _docVersion: 0
1653
+ + _tag: "A"
1654
+ + a: 72
1655
+ + pk: "PK#A72"
1656
+ + sk: "SK#A72"
1657
+
1658
+ + [PK#A73 / SK#A73]
1659
+ + PK: "PK#A73"
1660
+ + SK: "SK#A73"
1661
+ + _docVersion: 0
1662
+ + _tag: "A"
1663
+ + a: 73
1664
+ + pk: "PK#A73"
1665
+ + sk: "SK#A73"
1666
+
1667
+ + [PK#A74 / SK#A74]
1668
+ + PK: "PK#A74"
1669
+ + SK: "SK#A74"
1670
+ + _docVersion: 0
1671
+ + _tag: "A"
1672
+ + a: 74
1673
+ + pk: "PK#A74"
1674
+ + sk: "SK#A74"
1675
+
1676
+ + [PK#A75 / SK#A75]
1677
+ + PK: "PK#A75"
1678
+ + SK: "SK#A75"
1679
+ + _docVersion: 0
1680
+ + _tag: "A"
1681
+ + a: 75
1682
+ + pk: "PK#A75"
1683
+ + sk: "SK#A75"
1684
+
1685
+ + [PK#A76 / SK#A76]
1686
+ + PK: "PK#A76"
1687
+ + SK: "SK#A76"
1688
+ + _docVersion: 0
1689
+ + _tag: "A"
1690
+ + a: 76
1691
+ + pk: "PK#A76"
1692
+ + sk: "SK#A76"
1693
+
1694
+ + [PK#A77 / SK#A77]
1695
+ + PK: "PK#A77"
1696
+ + SK: "SK#A77"
1697
+ + _docVersion: 0
1698
+ + _tag: "A"
1699
+ + a: 77
1700
+ + pk: "PK#A77"
1701
+ + sk: "SK#A77"
1702
+
1703
+ + [PK#A78 / SK#A78]
1704
+ + PK: "PK#A78"
1705
+ + SK: "SK#A78"
1706
+ + _docVersion: 0
1707
+ + _tag: "A"
1708
+ + a: 78
1709
+ + pk: "PK#A78"
1710
+ + sk: "SK#A78"
1711
+
1712
+ + [PK#A79 / SK#A79]
1713
+ + PK: "PK#A79"
1714
+ + SK: "SK#A79"
1715
+ + _docVersion: 0
1716
+ + _tag: "A"
1717
+ + a: 79
1718
+ + pk: "PK#A79"
1719
+ + sk: "SK#A79"
1720
+
1721
+ + [PK#A8 / SK#A8]
1722
+ + PK: "PK#A8"
1723
+ + SK: "SK#A8"
1724
+ + _docVersion: 0
1725
+ + _tag: "A"
1726
+ + a: 8
1727
+ + pk: "PK#A8"
1728
+ + sk: "SK#A8"
1729
+
1730
+ + [PK#A80 / SK#A80]
1731
+ + PK: "PK#A80"
1732
+ + SK: "SK#A80"
1733
+ + _docVersion: 0
1734
+ + _tag: "A"
1735
+ + a: 80
1736
+ + pk: "PK#A80"
1737
+ + sk: "SK#A80"
1738
+
1739
+ + [PK#A81 / SK#A81]
1740
+ + PK: "PK#A81"
1741
+ + SK: "SK#A81"
1742
+ + _docVersion: 0
1743
+ + _tag: "A"
1744
+ + a: 81
1745
+ + pk: "PK#A81"
1746
+ + sk: "SK#A81"
1747
+
1748
+ + [PK#A82 / SK#A82]
1749
+ + PK: "PK#A82"
1750
+ + SK: "SK#A82"
1751
+ + _docVersion: 0
1752
+ + _tag: "A"
1753
+ + a: 82
1754
+ + pk: "PK#A82"
1755
+ + sk: "SK#A82"
1756
+
1757
+ + [PK#A83 / SK#A83]
1758
+ + PK: "PK#A83"
1759
+ + SK: "SK#A83"
1760
+ + _docVersion: 0
1761
+ + _tag: "A"
1762
+ + a: 83
1763
+ + pk: "PK#A83"
1764
+ + sk: "SK#A83"
1765
+
1766
+ + [PK#A84 / SK#A84]
1767
+ + PK: "PK#A84"
1768
+ + SK: "SK#A84"
1769
+ + _docVersion: 0
1770
+ + _tag: "A"
1771
+ + a: 84
1772
+ + pk: "PK#A84"
1773
+ + sk: "SK#A84"
1774
+
1775
+ + [PK#A85 / SK#A85]
1776
+ + PK: "PK#A85"
1777
+ + SK: "SK#A85"
1778
+ + _docVersion: 0
1779
+ + _tag: "A"
1780
+ + a: 85
1781
+ + pk: "PK#A85"
1782
+ + sk: "SK#A85"
1783
+
1784
+ + [PK#A86 / SK#A86]
1785
+ + PK: "PK#A86"
1786
+ + SK: "SK#A86"
1787
+ + _docVersion: 0
1788
+ + _tag: "A"
1789
+ + a: 86
1790
+ + pk: "PK#A86"
1791
+ + sk: "SK#A86"
1792
+
1793
+ + [PK#A87 / SK#A87]
1794
+ + PK: "PK#A87"
1795
+ + SK: "SK#A87"
1796
+ + _docVersion: 0
1797
+ + _tag: "A"
1798
+ + a: 87
1799
+ + pk: "PK#A87"
1800
+ + sk: "SK#A87"
1801
+
1802
+ + [PK#A88 / SK#A88]
1803
+ + PK: "PK#A88"
1804
+ + SK: "SK#A88"
1805
+ + _docVersion: 0
1806
+ + _tag: "A"
1807
+ + a: 88
1808
+ + pk: "PK#A88"
1809
+ + sk: "SK#A88"
1810
+
1811
+ + [PK#A89 / SK#A89]
1812
+ + PK: "PK#A89"
1813
+ + SK: "SK#A89"
1814
+ + _docVersion: 0
1815
+ + _tag: "A"
1816
+ + a: 89
1817
+ + pk: "PK#A89"
1818
+ + sk: "SK#A89"
1819
+
1820
+ + [PK#A9 / SK#A9]
1821
+ + PK: "PK#A9"
1822
+ + SK: "SK#A9"
1823
+ + _docVersion: 0
1824
+ + _tag: "A"
1825
+ + a: 9
1826
+ + pk: "PK#A9"
1827
+ + sk: "SK#A9"
1828
+
1829
+ + [PK#A90 / SK#A90]
1830
+ + PK: "PK#A90"
1831
+ + SK: "SK#A90"
1832
+ + _docVersion: 0
1833
+ + _tag: "A"
1834
+ + a: 90
1835
+ + pk: "PK#A90"
1836
+ + sk: "SK#A90"
1837
+
1838
+ + [PK#A91 / SK#A91]
1839
+ + PK: "PK#A91"
1840
+ + SK: "SK#A91"
1841
+ + _docVersion: 0
1842
+ + _tag: "A"
1843
+ + a: 91
1844
+ + pk: "PK#A91"
1845
+ + sk: "SK#A91"
1846
+
1847
+ + [PK#A92 / SK#A92]
1848
+ + PK: "PK#A92"
1849
+ + SK: "SK#A92"
1850
+ + _docVersion: 0
1851
+ + _tag: "A"
1852
+ + a: 92
1853
+ + pk: "PK#A92"
1854
+ + sk: "SK#A92"
1855
+
1856
+ + [PK#A93 / SK#A93]
1857
+ + PK: "PK#A93"
1858
+ + SK: "SK#A93"
1859
+ + _docVersion: 0
1860
+ + _tag: "A"
1861
+ + a: 93
1862
+ + pk: "PK#A93"
1863
+ + sk: "SK#A93"
1864
+
1865
+ + [PK#A94 / SK#A94]
1866
+ + PK: "PK#A94"
1867
+ + SK: "SK#A94"
1868
+ + _docVersion: 0
1869
+ + _tag: "A"
1870
+ + a: 94
1871
+ + pk: "PK#A94"
1872
+ + sk: "SK#A94"
1873
+
1874
+ + [PK#A95 / SK#A95]
1875
+ + PK: "PK#A95"
1876
+ + SK: "SK#A95"
1877
+ + _docVersion: 0
1878
+ + _tag: "A"
1879
+ + a: 95
1880
+ + pk: "PK#A95"
1881
+ + sk: "SK#A95"
1882
+
1883
+ + [PK#A96 / SK#A96]
1884
+ + PK: "PK#A96"
1885
+ + SK: "SK#A96"
1886
+ + _docVersion: 0
1887
+ + _tag: "A"
1888
+ + a: 96
1889
+ + pk: "PK#A96"
1890
+ + sk: "SK#A96"
1891
+
1892
+ + [PK#A97 / SK#A97]
1893
+ + PK: "PK#A97"
1894
+ + SK: "SK#A97"
1895
+ + _docVersion: 0
1896
+ + _tag: "A"
1897
+ + a: 97
1898
+ + pk: "PK#A97"
1899
+ + sk: "SK#A97"
1900
+
1901
+ + [PK#A98 / SK#A98]
1902
+ + PK: "PK#A98"
1903
+ + SK: "SK#A98"
1904
+ + _docVersion: 0
1905
+ + _tag: "A"
1906
+ + a: 98
1907
+ + pk: "PK#A98"
1908
+ + sk: "SK#A98"
1909
+
1910
+ + [PK#A99 / SK#A99]
1911
+ + PK: "PK#A99"
1912
+ + SK: "SK#A99"
1913
+ + _docVersion: 0
1914
+ + _tag: "A"
1915
+ + a: 99
1916
+ + pk: "PK#A99"
1917
+ + sk: "SK#A99"
1918
+
1919
+ + [PK#UPDATE / SK#UPDATE]
1920
+ + PK: "PK#UPDATE"
1921
+ + SK: "SK#UPDATE"
1922
+ + _docVersion: 1
1923
+ + _tag: "B"
1924
+ + b: "baz"
1925
+ + pk: "PK#UPDATE"
1926
+ + sk: "SK#UPDATE"
1927
+
1928
+ + [PK4 / PK4]
1929
+ + PK: "PK4"
1930
+ + SK: "PK4"
1931
+ + _docVersion: 0
1932
+ + _tag: "A"
1933
+ + a: 4
1934
+ + pk: "PK4"
1935
+ + sk: "PK4"
1936
+
1937
+ + [PK5 / PK5]
1938
+ + PK: "PK5"
1939
+ + SK: "PK5"
1940
+ + _docVersion: 0
1941
+ + _tag: "A"
1942
+ + a: 5
1943
+ + pk: "PK5"
1944
+ + sk: "PK5"
1945
+
1946
+ + [PK6 / SK6]
1947
+ + PK: "PK6"
1948
+ + SK: "SK6"
1949
+ + _docVersion: 0
1950
+ + _tag: "B"
1951
+ + b: "baz"
1952
+ + pk: "PK6"
1953
+ + sk: "SK6"
1954
+ `);
1925
1955
  //#endregion
1926
1956
  }));
1927
1957
  test("it fails and rolls back", () => __awaiter(void 0, void 0, void 0, function* () {