@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
@@ -146,22 +146,14 @@ describe("put", () => {
146
146
  await new Simple({ foo: "hi", bar: 42 }).put()
147
147
 
148
148
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
149
- Snapshot Diff:
150
- - First value
151
- + Second value
152
-
153
- - Object {}
154
- + Object {
155
- + "PK#hi__SK#42": Object {
156
- + "PK": "PK#hi",
157
- + "SK": "SK#42",
158
- + "_docVersion": 0,
159
- + "_tag": "Simple",
160
- + "bar": 42,
161
- + "foo": "hi",
162
- + },
163
- + }
164
- `)
149
+ + [PK#hi / SK#42]
150
+ + PK: "PK#hi"
151
+ + SK: "SK#42"
152
+ + _docVersion: 0
153
+ + _tag: "Simple"
154
+ + bar: 42
155
+ + foo: "hi"
156
+ `)
165
157
  })
166
158
 
167
159
  test("it inserts a model with single gsi", async () => {
@@ -170,24 +162,16 @@ describe("put", () => {
170
162
  await new SingleGSI({ foo: "yes", bar: 42 }).put()
171
163
 
172
164
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
173
- Snapshot Diff:
174
- - First value
175
- + Second value
176
-
177
- - Object {}
178
- + Object {
179
- + "PK#yes__SK#42": Object {
180
- + "GSI2PK": "GSI2PK#yesyes",
181
- + "GSI2SK": "GSI2SK#FIXED",
182
- + "PK": "PK#yes",
183
- + "SK": "SK#42",
184
- + "_docVersion": 0,
185
- + "_tag": "SingleGSI",
186
- + "bar": 42,
187
- + "foo": "yes",
188
- + },
189
- + }
190
- `)
165
+ + [PK#yes / SK#42]
166
+ + PK: "PK#yes"
167
+ + SK: "SK#42"
168
+ + GSI2PK: "GSI2PK#yesyes"
169
+ + GSI2SK: "GSI2SK#FIXED"
170
+ + _docVersion: 0
171
+ + _tag: "SingleGSI"
172
+ + bar: 42
173
+ + foo: "yes"
174
+ `)
191
175
  })
192
176
 
193
177
  test("it inserts a model with multiple gsi", async () => {
@@ -196,30 +180,22 @@ describe("put", () => {
196
180
  await new MultiGSI({ foo: "yes", bar: 42 }).put()
197
181
 
198
182
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
199
- Snapshot Diff:
200
- - First value
201
- + Second value
202
-
203
- - Object {}
204
- + Object {
205
- + "PK#yes__SK#42": Object {
206
- + "GSI2PK": "GSI2PK#yesyes",
207
- + "GSI2SK": "GSI2SK#FIXED",
208
- + "GSI3PK": "GSI3PK#FIXED",
209
- + "GSI3SK": "GSI3SK#4242",
210
- + "GSI4PK": "GSI4PK#FIXED",
211
- + "GSI4SK": "GSI4SK#4242",
212
- + "GSI5PK": "GSI5PK#FIXED",
213
- + "GSI5SK": "GSI5SK#4242",
214
- + "PK": "PK#yes",
215
- + "SK": "SK#42",
216
- + "_docVersion": 0,
217
- + "_tag": "MultiGSI",
218
- + "bar": 42,
219
- + "foo": "yes",
220
- + },
221
- + }
222
- `)
183
+ + [PK#yes / SK#42]
184
+ + PK: "PK#yes"
185
+ + SK: "SK#42"
186
+ + GSI2PK: "GSI2PK#yesyes"
187
+ + GSI2SK: "GSI2SK#FIXED"
188
+ + GSI3PK: "GSI3PK#FIXED"
189
+ + GSI3SK: "GSI3SK#4242"
190
+ + GSI4PK: "GSI4PK#FIXED"
191
+ + GSI4SK: "GSI4SK#4242"
192
+ + GSI5PK: "GSI5PK#FIXED"
193
+ + GSI5SK: "GSI5SK#4242"
194
+ + _docVersion: 0
195
+ + _tag: "MultiGSI"
196
+ + bar: 42
197
+ + foo: "yes"
198
+ `)
223
199
  })
224
200
 
225
201
  test("it throws KeyExistsError if item exists", async () => {
@@ -246,22 +222,14 @@ describe("put", () => {
246
222
  await Simple.put(new Simple({ foo: "hi", bar: 42 }))
247
223
 
248
224
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
249
- Snapshot Diff:
250
- - First value
251
- + Second value
252
-
253
- - Object {}
254
- + Object {
255
- + "PK#hi__SK#42": Object {
256
- + "PK": "PK#hi",
257
- + "SK": "SK#42",
258
- + "_docVersion": 0,
259
- + "_tag": "Simple",
260
- + "bar": 42,
261
- + "foo": "hi",
262
- + },
263
- + }
264
- `)
225
+ + [PK#hi / SK#42]
226
+ + PK: "PK#hi"
227
+ + SK: "SK#42"
228
+ + _docVersion: 0
229
+ + _tag: "Simple"
230
+ + bar: 42
231
+ + foo: "hi"
232
+ `)
265
233
  })
266
234
 
267
235
  test("it inserts a model with single gsi", async () => {
@@ -270,24 +238,16 @@ describe("put", () => {
270
238
  await SingleGSI.put(new SingleGSI({ foo: "yes", bar: 42 }))
271
239
 
272
240
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
273
- Snapshot Diff:
274
- - First value
275
- + Second value
276
-
277
- - Object {}
278
- + Object {
279
- + "PK#yes__SK#42": Object {
280
- + "GSI2PK": "GSI2PK#yesyes",
281
- + "GSI2SK": "GSI2SK#FIXED",
282
- + "PK": "PK#yes",
283
- + "SK": "SK#42",
284
- + "_docVersion": 0,
285
- + "_tag": "SingleGSI",
286
- + "bar": 42,
287
- + "foo": "yes",
288
- + },
289
- + }
290
- `)
241
+ + [PK#yes / SK#42]
242
+ + PK: "PK#yes"
243
+ + SK: "SK#42"
244
+ + GSI2PK: "GSI2PK#yesyes"
245
+ + GSI2SK: "GSI2SK#FIXED"
246
+ + _docVersion: 0
247
+ + _tag: "SingleGSI"
248
+ + bar: 42
249
+ + foo: "yes"
250
+ `)
291
251
  })
292
252
 
293
253
  test("it inserts a model with multiple gsi", async () => {
@@ -296,30 +256,22 @@ describe("put", () => {
296
256
  await MultiGSI.put(new MultiGSI({ foo: "yes", bar: 42 }))
297
257
 
298
258
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
299
- Snapshot Diff:
300
- - First value
301
- + Second value
302
-
303
- - Object {}
304
- + Object {
305
- + "PK#yes__SK#42": Object {
306
- + "GSI2PK": "GSI2PK#yesyes",
307
- + "GSI2SK": "GSI2SK#FIXED",
308
- + "GSI3PK": "GSI3PK#FIXED",
309
- + "GSI3SK": "GSI3SK#4242",
310
- + "GSI4PK": "GSI4PK#FIXED",
311
- + "GSI4SK": "GSI4SK#4242",
312
- + "GSI5PK": "GSI5PK#FIXED",
313
- + "GSI5SK": "GSI5SK#4242",
314
- + "PK": "PK#yes",
315
- + "SK": "SK#42",
316
- + "_docVersion": 0,
317
- + "_tag": "MultiGSI",
318
- + "bar": 42,
319
- + "foo": "yes",
320
- + },
321
- + }
322
- `)
259
+ + [PK#yes / SK#42]
260
+ + PK: "PK#yes"
261
+ + SK: "SK#42"
262
+ + GSI2PK: "GSI2PK#yesyes"
263
+ + GSI2SK: "GSI2SK#FIXED"
264
+ + GSI3PK: "GSI3PK#FIXED"
265
+ + GSI3SK: "GSI3SK#4242"
266
+ + GSI4PK: "GSI4PK#FIXED"
267
+ + GSI4SK: "GSI4SK#4242"
268
+ + GSI5PK: "GSI5PK#FIXED"
269
+ + GSI5SK: "GSI5SK#4242"
270
+ + _docVersion: 0
271
+ + _tag: "MultiGSI"
272
+ + bar: 42
273
+ + foo: "yes"
274
+ `)
323
275
  })
324
276
 
325
277
  test("it throws KeyExistsError if item exists", async () => {
@@ -428,22 +380,14 @@ describe("delete", () => {
428
380
  expect(result).toBeNull()
429
381
 
430
382
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
431
- Snapshot Diff:
432
- - First value
433
- + Second value
434
-
435
- - Object {
436
- - "PK#hi__SK#432": Object {
437
- - "PK": "PK#hi",
438
- - "SK": "SK#432",
439
- - "_docVersion": 0,
440
- - "_tag": "Simple",
441
- - "bar": 432,
442
- - "foo": "hi",
443
- - },
444
- - }
445
- + Object {}
446
- `)
383
+ - [PK#hi / SK#432]
384
+ - PK: "PK#hi"
385
+ - SK: "SK#432"
386
+ - _docVersion: 0
387
+ - _tag: "Simple"
388
+ - bar: 432
389
+ - foo: "hi"
390
+ `)
447
391
  })
448
392
  })
449
393
 
@@ -461,22 +405,14 @@ describe("delete", () => {
461
405
  expect(result).toBeNull()
462
406
 
463
407
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
464
- Snapshot Diff:
465
- - First value
466
- + Second value
467
-
468
- - Object {
469
- - "PK#hi__SK#432": Object {
470
- - "PK": "PK#hi",
471
- - "SK": "SK#432",
472
- - "_docVersion": 0,
473
- - "_tag": "Simple",
474
- - "bar": 432,
475
- - "foo": "hi",
476
- - },
477
- - }
478
- + Object {}
479
- `)
408
+ - [PK#hi / SK#432]
409
+ - PK: "PK#hi"
410
+ - SK: "SK#432"
411
+ - _docVersion: 0
412
+ - _tag: "Simple"
413
+ - bar: 432
414
+ - foo: "hi"
415
+ `)
480
416
  })
481
417
  })
482
418
 
@@ -491,22 +427,14 @@ describe("delete", () => {
491
427
  expect(result).toBeNull()
492
428
 
493
429
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
494
- Snapshot Diff:
495
- - First value
496
- + Second value
497
-
498
- - Object {
499
- - "PK#hi__SK#432": Object {
500
- - "PK": "PK#hi",
501
- - "SK": "SK#432",
502
- - "_docVersion": 0,
503
- - "_tag": "Simple",
504
- - "bar": 432,
505
- - "foo": "hi",
506
- - },
507
- - }
508
- + Object {}
509
- `)
430
+ - [PK#hi / SK#432]
431
+ - PK: "PK#hi"
432
+ - SK: "SK#432"
433
+ - _docVersion: 0
434
+ - _tag: "Simple"
435
+ - bar: 432
436
+ - foo: "hi"
437
+ `)
510
438
  })
511
439
  })
512
440
  })
@@ -536,53 +464,56 @@ describe("softDelete", () => {
536
464
  `)
537
465
 
538
466
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
539
- Snapshot Diff:
540
- - First value
541
- + Second value
542
-
543
- @@ -1,25 +1,27 @@
544
- Object {
545
- - "PK#hello__SK#42": Object {
546
- - "GSI2PK": "GSI2PK#hellohello",
547
- - "GSI2SK": "GSI2SK#FIXED",
548
- - "GSI3PK": "GSI3PK#FIXED",
549
- - "GSI3SK": "GSI3SK#4242",
550
- - "GSI4PK": "GSI4PK#FIXED",
551
- - "GSI4SK": "GSI4SK#4242",
552
- - "GSI5PK": "GSI5PK#FIXED",
553
- - "GSI5SK": "GSI5SK#4242",
554
- - "PK": "PK#hello",
555
- - "SK": "SK#42",
556
- + "$$DELETED$$PK#hello__$$DELETED$$SK#42": Object {
557
- + "GSI2PK": "$$DELETED$$GSI2PK#hellohello",
558
- + "GSI2SK": "$$DELETED$$GSI2SK#FIXED",
559
- + "GSI3PK": "$$DELETED$$GSI3PK#FIXED",
560
- + "GSI3SK": "$$DELETED$$GSI3SK#4242",
561
- + "GSI4PK": "$$DELETED$$GSI4PK#FIXED",
562
- + "GSI4SK": "$$DELETED$$GSI4SK#4242",
563
- + "GSI5PK": "$$DELETED$$GSI5PK#FIXED",
564
- + "GSI5SK": "$$DELETED$$GSI5SK#4242",
565
- + "PK": "$$DELETED$$PK#hello",
566
- + "SK": "$$DELETED$$SK#42",
567
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
568
- "_docVersion": 0,
569
- "_tag": "MultiGSI",
570
- "bar": 42,
571
- "foo": "hello",
572
- },
573
- - "PK#hi__SK#432": Object {
574
- - "PK": "PK#hi",
575
- - "SK": "SK#432",
576
- + "$$DELETED$$PK#hi__$$DELETED$$SK#432": Object {
577
- + "PK": "$$DELETED$$PK#hi",
578
- + "SK": "$$DELETED$$SK#432",
579
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
580
- "_docVersion": 0,
581
- "_tag": "Simple",
582
- "bar": 432,
583
- "foo": "hi",
584
- },
585
- `)
467
+ + [$$DELETED$$PK#hello / $$DELETED$$SK#42]
468
+ + PK: "$$DELETED$$PK#hello"
469
+ + SK: "$$DELETED$$SK#42"
470
+ + GSI2PK: "$$DELETED$$GSI2PK#hellohello"
471
+ + GSI2SK: "$$DELETED$$GSI2SK#FIXED"
472
+ + GSI3PK: "$$DELETED$$GSI3PK#FIXED"
473
+ + GSI3SK: "$$DELETED$$GSI3SK#4242"
474
+ + GSI4PK: "$$DELETED$$GSI4PK#FIXED"
475
+ + GSI4SK: "$$DELETED$$GSI4SK#4242"
476
+ + GSI5PK: "$$DELETED$$GSI5PK#FIXED"
477
+ + GSI5SK: "$$DELETED$$GSI5SK#4242"
478
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
479
+ + _docVersion: 0
480
+ + _tag: "MultiGSI"
481
+ + bar: 42
482
+ + foo: "hello"
483
+
484
+ + [$$DELETED$$PK#hi / $$DELETED$$SK#432]
485
+ + PK: "$$DELETED$$PK#hi"
486
+ + SK: "$$DELETED$$SK#432"
487
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
488
+ + _docVersion: 0
489
+ + _tag: "Simple"
490
+ + bar: 432
491
+ + foo: "hi"
492
+
493
+ - [PK#hello / SK#42]
494
+ - PK: "PK#hello"
495
+ - SK: "SK#42"
496
+ - GSI2PK: "GSI2PK#hellohello"
497
+ - GSI2SK: "GSI2SK#FIXED"
498
+ - GSI3PK: "GSI3PK#FIXED"
499
+ - GSI3SK: "GSI3SK#4242"
500
+ - GSI4PK: "GSI4PK#FIXED"
501
+ - GSI4SK: "GSI4SK#4242"
502
+ - GSI5PK: "GSI5PK#FIXED"
503
+ - GSI5SK: "GSI5SK#4242"
504
+ - _docVersion: 0
505
+ - _tag: "MultiGSI"
506
+ - bar: 42
507
+ - foo: "hello"
508
+
509
+ - [PK#hi / SK#432]
510
+ - PK: "PK#hi"
511
+ - SK: "SK#432"
512
+ - _docVersion: 0
513
+ - _tag: "Simple"
514
+ - bar: 432
515
+ - foo: "hi"
516
+ `)
586
517
  })
587
518
  })
588
519
 
@@ -602,25 +533,23 @@ describe("softDelete", () => {
602
533
  `)
603
534
 
604
535
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
605
- Snapshot Diff:
606
- - First value
607
- + Second value
608
-
609
- @@ -1,9 +1,10 @@
610
- Object {
611
- - "PK#hi__SK#432": Object {
612
- - "PK": "PK#hi",
613
- - "SK": "SK#432",
614
- + "$$DELETED$$PK#hi__$$DELETED$$SK#432": Object {
615
- + "PK": "$$DELETED$$PK#hi",
616
- + "SK": "$$DELETED$$SK#432",
617
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
618
- "_docVersion": 0,
619
- "_tag": "Simple",
620
- "bar": 432,
621
- "foo": "hi",
622
- },
623
- `)
536
+ + [$$DELETED$$PK#hi / $$DELETED$$SK#432]
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
+ - [PK#hi / SK#432]
546
+ - PK: "PK#hi"
547
+ - SK: "SK#432"
548
+ - _docVersion: 0
549
+ - _tag: "Simple"
550
+ - bar: 432
551
+ - foo: "hi"
552
+ `)
624
553
  })
625
554
  })
626
555
 
@@ -640,25 +569,23 @@ describe("softDelete", () => {
640
569
  `)
641
570
 
642
571
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
643
- Snapshot Diff:
644
- - First value
645
- + Second value
646
-
647
- @@ -1,9 +1,10 @@
648
- Object {
649
- - "PK#hi__SK#432": Object {
650
- - "PK": "PK#hi",
651
- - "SK": "SK#432",
652
- + "$$DELETED$$PK#hi__$$DELETED$$SK#432": Object {
653
- + "PK": "$$DELETED$$PK#hi",
654
- + "SK": "$$DELETED$$SK#432",
655
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
656
- "_docVersion": 0,
657
- "_tag": "Simple",
658
- "bar": 432,
659
- "foo": "hi",
660
- },
661
- `)
572
+ + [$$DELETED$$PK#hi / $$DELETED$$SK#432]
573
+ + PK: "$$DELETED$$PK#hi"
574
+ + SK: "$$DELETED$$SK#432"
575
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
576
+ + _docVersion: 0
577
+ + _tag: "Simple"
578
+ + bar: 432
579
+ + foo: "hi"
580
+
581
+ - [PK#hi / SK#432]
582
+ - PK: "PK#hi"
583
+ - SK: "SK#432"
584
+ - _docVersion: 0
585
+ - _tag: "Simple"
586
+ - bar: 432
587
+ - foo: "hi"
588
+ `)
662
589
  })
663
590
  })
664
591
  })
@@ -764,23 +691,16 @@ describe("update", () => {
764
691
  `)
765
692
 
766
693
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
767
- Snapshot Diff:
768
- - First value
769
- + Second value
770
-
771
- Object {
772
- "FIXEDPK__FIXEDSK": Object {
773
- "PK": "FIXEDPK",
774
- "SK": "FIXEDSK",
775
- - "_docVersion": 0,
776
- + "_docVersion": 1,
777
- "_tag": "InPlace",
778
- "bar": 1,
779
- - "foo": "hello",
780
- + "foo": "ciao",
781
- },
782
- }
783
- `)
694
+ [FIXEDPK / FIXEDSK]
695
+ PK: "FIXEDPK"
696
+ SK: "FIXEDSK"
697
+ - _docVersion: 0
698
+ + _docVersion: 1
699
+ _tag: "InPlace"
700
+ bar: 1
701
+ - foo: "hello"
702
+ + foo: "ciao"
703
+ `)
784
704
  })
785
705
  })
786
706
  })
@@ -803,114 +723,243 @@ describe("applyUpdate", () => {
803
723
  await client.bulk([updateOp])
804
724
 
805
725
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
806
- Snapshot Diff:
807
- - First value
808
- + Second value
809
-
810
- Object {
811
- "PK__SK": Object {
812
- "PK": "PK",
813
- "SK": "SK",
814
- - "_docVersion": 0,
815
- + "_docVersion": 1,
816
- "_tag": "A",
817
- - "a": 1,
818
- + "a": 2,
819
- "pk": "PK",
820
- "sk": "SK",
821
- },
822
- }
823
- `)
726
+ [PK / SK]
727
+ PK: "PK"
728
+ SK: "SK"
729
+ - _docVersion: 0
730
+ + _docVersion: 1
731
+ _tag: "A"
732
+ - a: 1
733
+ + a: 2
734
+ pk: "PK"
735
+ sk: "SK"
736
+ `)
824
737
  })
825
738
  })
826
739
 
827
740
  describe("query", () => {
828
- test("it returns empty results", async () => {
829
- expect(
830
- await client.query(
741
+ describe("via client", () => {
742
+ test("it returns empty results", async () => {
743
+ expect(
744
+ await client.query(
745
+ {
746
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
747
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
748
+ },
749
+ { a: A, b: B, union: Union }
750
+ )
751
+ ).toMatchInlineSnapshot(`
752
+ Object {
753
+ "_unknown": Array [],
754
+ "a": Array [],
755
+ "b": Array [],
756
+ "meta": Object {
757
+ "lastEvaluatedKey": undefined,
758
+ },
759
+ "union": Array [],
760
+ }
761
+ `)
762
+ })
763
+
764
+ test("it returns unknown results", async () => {
765
+ await sandbox.seed({ PK: "abc", SK: "SORT#1", doesnt: "match" })
766
+
767
+ expect(
768
+ await client.query(
769
+ {
770
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
771
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
772
+ },
773
+ { a: A, b: B, union: Union }
774
+ )
775
+ ).toMatchInlineSnapshot(`
776
+ Object {
777
+ "_unknown": Array [
778
+ Object {
779
+ "PK": "abc",
780
+ "SK": "SORT#1",
781
+ "doesnt": "match",
782
+ },
783
+ ],
784
+ "a": Array [],
785
+ "b": Array [],
786
+ "meta": Object {
787
+ "lastEvaluatedKey": undefined,
788
+ },
789
+ "union": Array [],
790
+ }
791
+ `)
792
+ })
793
+
794
+ test("it returns results", async () => {
795
+ await sandbox.seed(
796
+ new A({ pk: "abc", sk: "SORT#1", a: 1 }),
797
+ new A({ pk: "abc", sk: "SORT#2", a: 2 }),
798
+ new B({ pk: "abc", sk: "SORT#3", b: "hi" }),
799
+ { PK: "abc", SK: "SORT#4", probably: "unknown" },
800
+ new C({ pk: "abc", sk: "SORT#5", c: "hi" }),
801
+ new D({ pk: "abc", sk: "SORT#6", d: "hi" })
802
+ )
803
+
804
+ const { a, b, union, _unknown, meta } = await client.query(
831
805
  {
832
806
  KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
833
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
807
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
834
808
  },
835
809
  { a: A, b: B, union: Union }
836
810
  )
837
- ).toMatchInlineSnapshot(`
838
- Object {
839
- "_unknown": Array [],
840
- "a": Array [],
841
- "b": Array [],
842
- "meta": Object {
843
- "lastEvaluatedKey": undefined,
811
+
812
+ expect({
813
+ meta: meta,
814
+ _unknown: _unknown,
815
+ a: a.map(item => item.values()),
816
+ b: b.map(item => item.values()),
817
+ union: union.map(item => item.values())
818
+ }).toMatchInlineSnapshot(`
819
+ Object {
820
+ "_unknown": Array [
821
+ Object {
822
+ "PK": "abc",
823
+ "SK": "SORT#4",
824
+ "probably": "unknown",
825
+ },
826
+ ],
827
+ "a": Array [
828
+ Object {
829
+ "a": 1,
830
+ "pk": "abc",
831
+ "sk": "SORT#1",
832
+ },
833
+ Object {
834
+ "a": 2,
835
+ "pk": "abc",
836
+ "sk": "SORT#2",
837
+ },
838
+ ],
839
+ "b": Array [
840
+ Object {
841
+ "b": "hi",
842
+ "pk": "abc",
843
+ "sk": "SORT#3",
844
+ },
845
+ ],
846
+ "meta": Object {
847
+ "lastEvaluatedKey": undefined,
848
+ },
849
+ "union": Array [
850
+ Object {
851
+ "c": "hi",
852
+ "pk": "abc",
853
+ "sk": "SORT#5",
854
+ },
855
+ Object {
856
+ "d": "hi",
857
+ "pk": "abc",
858
+ "sk": "SORT#6",
859
+ },
860
+ ],
861
+ }
862
+ `)
863
+ })
864
+
865
+ test("it paginates", async () => {
866
+ await sandbox.seed(
867
+ ...Array.from({ length: 20 }).map(
868
+ (_, i) =>
869
+ new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })
870
+ ),
871
+ ...Array.from({ length: 20 }).map(
872
+ (_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })
873
+ )
874
+ )
875
+
876
+ const firstPage = await client.query(
877
+ {
878
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
879
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
880
+ Limit: 30
844
881
  },
845
- "union": Array [],
846
- }
847
- `)
848
- })
882
+ { a: A, b: B }
883
+ )
849
884
 
850
- test("it returns unknown results", async () => {
851
- await sandbox.seed({ PK: "abc", SK: "SORT#1", doesnt: "match" })
885
+ expect(firstPage.a.length).toBe(20)
886
+ expect(firstPage.b.length).toBe(10)
887
+ expect(firstPage._unknown.length).toBe(0)
888
+ expect(firstPage.meta.lastEvaluatedKey).not.toBeUndefined()
852
889
 
853
- expect(
854
- await client.query(
890
+ const secondPage = await client.query(
855
891
  {
856
892
  KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
857
- ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
893
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
894
+ Limit: 30,
895
+ ExclusiveStartKey: firstPage.meta.lastEvaluatedKey
858
896
  },
859
- { a: A, b: B, union: Union }
897
+ { a: A, b: B }
860
898
  )
861
- ).toMatchInlineSnapshot(`
862
- Object {
863
- "_unknown": Array [
864
- Object {
865
- "PK": "abc",
866
- "SK": "SORT#1",
867
- "doesnt": "match",
868
- },
869
- ],
870
- "a": Array [],
871
- "b": Array [],
872
- "meta": Object {
873
- "lastEvaluatedKey": undefined,
899
+
900
+ expect(secondPage.a.length).toBe(0)
901
+ expect(secondPage.b.length).toBe(10)
902
+ expect(secondPage._unknown.length).toBe(0)
903
+ expect(secondPage.meta.lastEvaluatedKey).toBeUndefined()
904
+ })
905
+
906
+ test("it fetches all pages automatically", async () => {
907
+ await sandbox.seed(
908
+ ...Array.from({ length: 20 }).map(
909
+ (_, i) =>
910
+ new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })
911
+ ),
912
+ ...Array.from({ length: 20 }).map(
913
+ (_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })
914
+ )
915
+ )
916
+
917
+ const { a, b, meta, _unknown } = await client.query(
918
+ {
919
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
920
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
921
+ FetchAllPages: true,
922
+ // You wouldn't set a limit in a real-world use case here to optimize fetching all items.
923
+ Limit: 10
874
924
  },
875
- "union": Array [],
876
- }
877
- `)
925
+ { a: A, b: B }
926
+ )
927
+
928
+ expect(a.length).toBe(20)
929
+ expect(b.length).toBe(20)
930
+ expect(_unknown.length).toBe(0)
931
+ expect(meta.lastEvaluatedKey).toBeUndefined()
932
+ })
878
933
  })
879
934
 
880
- test("it returns results", async () => {
881
- await sandbox.seed(
882
- new A({ pk: "abc", sk: "SORT#1", a: 1 }),
883
- new A({ pk: "abc", sk: "SORT#2", a: 2 }),
884
- new B({ pk: "abc", sk: "SORT#3", b: "hi" }),
885
- { PK: "abc", SK: "SORT#4", probably: "unknown" },
886
- new C({ pk: "abc", sk: "SORT#5", c: "hi" }),
887
- new D({ pk: "abc", sk: "SORT#6", d: "hi" })
888
- )
935
+ describe("via model", () => {
936
+ test("it returns empty results for specific model", async () => {
937
+ const result = await A.query({
938
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
939
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
940
+ })
889
941
 
890
- const { a, b, union, _unknown, meta } = await client.query(
891
- {
942
+ expect(result.length).toBe(0)
943
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined })
944
+ })
945
+
946
+ test("it returns only matching model items", async () => {
947
+ await sandbox.seed(
948
+ new A({ pk: "abc", sk: "SORT#1", a: 1 }),
949
+ new A({ pk: "abc", sk: "SORT#2", a: 2 }),
950
+ new B({ pk: "abc", sk: "SORT#3", b: "hi" }),
951
+ { PK: "abc", SK: "SORT#4", probably: "unknown" },
952
+ new C({ pk: "abc", sk: "SORT#5", c: "hi" })
953
+ )
954
+
955
+ const result = await A.query({
892
956
  KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
893
957
  ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
894
- },
895
- { a: A, b: B, union: Union }
896
- )
958
+ })
897
959
 
898
- expect({
899
- meta: meta,
900
- _unknown: _unknown,
901
- a: a.map(item => item.values()),
902
- b: b.map(item => item.values()),
903
- union: union.map(item => item.values())
904
- }).toMatchInlineSnapshot(`
905
- Object {
906
- "_unknown": Array [
907
- Object {
908
- "PK": "abc",
909
- "SK": "SORT#4",
910
- "probably": "unknown",
911
- },
912
- ],
913
- "a": Array [
960
+ expect(result.length).toBe(2)
961
+ expect(result.map(item => item.values())).toMatchInlineSnapshot(`
962
+ Array [
914
963
  Object {
915
964
  "a": 1,
916
965
  "pk": "abc",
@@ -921,100 +970,168 @@ describe("query", () => {
921
970
  "pk": "abc",
922
971
  "sk": "SORT#2",
923
972
  },
924
- ],
925
- "b": Array [
926
- Object {
927
- "b": "hi",
928
- "pk": "abc",
929
- "sk": "SORT#3",
930
- },
931
- ],
932
- "meta": Object {
933
- "lastEvaluatedKey": undefined,
934
- },
935
- "union": Array [
936
- Object {
937
- "c": "hi",
938
- "pk": "abc",
939
- "sk": "SORT#5",
940
- },
941
- Object {
942
- "d": "hi",
943
- "pk": "abc",
944
- "sk": "SORT#6",
945
- },
946
- ],
947
- }
948
- `)
949
- })
973
+ ]
974
+ `)
975
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined })
976
+ })
950
977
 
951
- test("it paginates", async () => {
952
- await sandbox.seed(
953
- ...Array.from({ length: 20 }).map(
954
- (_, i) =>
955
- new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })
956
- ),
957
- ...Array.from({ length: 20 }).map(
958
- (_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })
978
+ test("it respects query parameters", async () => {
979
+ await sandbox.seed(
980
+ new A({ pk: "abc", sk: "SORT#1", a: 1 }),
981
+ new A({ pk: "abc", sk: "SORT#2", a: 2 }),
982
+ new A({ pk: "abc", sk: "SORT#3", a: 3 }),
983
+ new A({ pk: "abc", sk: "SORT#4", a: 4 })
959
984
  )
960
- )
961
985
 
962
- const firstPage = await client.query(
963
- {
986
+ const result = await A.query({
964
987
  KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
965
988
  ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
966
- Limit: 30
967
- },
968
- { a: A, b: B }
969
- )
989
+ Limit: 2
990
+ })
970
991
 
971
- expect(firstPage.a.length).toBe(20)
972
- expect(firstPage.b.length).toBe(10)
973
- expect(firstPage._unknown.length).toBe(0)
974
- expect(firstPage.meta.lastEvaluatedKey).not.toBeUndefined()
992
+ expect(result.length).toBe(2)
993
+ expect(result[0].a).toBe(1)
994
+ expect(result[1].a).toBe(2)
995
+ expect(result.meta.lastEvaluatedKey).toBeDefined()
996
+ })
975
997
 
976
- const secondPage = await client.query(
977
- {
998
+ test("it fetches all pages when FetchAllPages is true", async () => {
999
+ await sandbox.seed(
1000
+ ...Array.from({ length: 15 }).map(
1001
+ (_, i) =>
1002
+ new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })
1003
+ ),
1004
+ // Add some B items that should be ignored
1005
+ new B({ pk: "abc", sk: "SORT#20", b: "ignored" }),
1006
+ new B({ pk: "abc", sk: "SORT#21", b: "ignored" })
1007
+ )
1008
+
1009
+ const result = await A.query({
978
1010
  KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
979
1011
  ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
980
- Limit: 30,
981
- ExclusiveStartKey: firstPage.meta.lastEvaluatedKey
982
- },
983
- { a: A, b: B }
984
- )
1012
+ FetchAllPages: true,
1013
+ Limit: 5 // Force pagination
1014
+ })
1015
+
1016
+ expect(result.length).toBe(15) // Only A items
1017
+ expect(result.map(item => item.a)).toEqual(
1018
+ Array.from({ length: 15 }, (_, i) => i)
1019
+ )
1020
+ expect(result.meta.lastEvaluatedKey).toBeUndefined()
1021
+ })
1022
+
1023
+ test("it works with different query conditions", async () => {
1024
+ await sandbox.seed(
1025
+ new A({ pk: "user1", sk: "post#1", a: 1 }),
1026
+ new A({ pk: "user1", sk: "post#2", a: 2 }),
1027
+ new A({ pk: "user1", sk: "comment#1", a: 3 }),
1028
+ new A({ pk: "user2", sk: "post#1", a: 4 })
1029
+ )
1030
+
1031
+ // Query for posts only
1032
+ const posts = await A.query({
1033
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
1034
+ ExpressionAttributeValues: { ":pk": "user1", ":sk": "post#" }
1035
+ })
1036
+
1037
+ expect(posts.length).toBe(2)
1038
+ expect(posts.map(item => item.a).sort()).toEqual([1, 2])
985
1039
 
986
- expect(secondPage.a.length).toBe(0)
987
- expect(secondPage.b.length).toBe(10)
988
- expect(secondPage._unknown.length).toBe(0)
989
- expect(secondPage.meta.lastEvaluatedKey).toBeUndefined()
1040
+ // Query for all user1 items
1041
+ const allUser1 = await A.query({
1042
+ KeyConditionExpression: `PK = :pk`,
1043
+ ExpressionAttributeValues: { ":pk": "user1" }
1044
+ })
1045
+
1046
+ expect(allUser1.length).toBe(3)
1047
+ expect(allUser1.map(item => item.a).sort()).toEqual([1, 2, 3])
1048
+ })
1049
+
1050
+ test("it works with FilterExpression", async () => {
1051
+ await sandbox.seed(
1052
+ new A({ pk: "test", sk: "item#1", a: 1 }),
1053
+ new A({ pk: "test", sk: "item#2", a: 2 }),
1054
+ new A({ pk: "test", sk: "item#3", a: 3 }),
1055
+ new A({ pk: "test", sk: "item#4", a: 4 })
1056
+ )
1057
+
1058
+ const result = await A.query({
1059
+ KeyConditionExpression: `PK = :pk`,
1060
+ FilterExpression: `a > :min`,
1061
+ ExpressionAttributeValues: { ":pk": "test", ":min": 2 }
1062
+ })
1063
+
1064
+ expect(result.length).toBe(2)
1065
+ expect(result.map(item => item.a).sort()).toEqual([3, 4])
1066
+ })
990
1067
  })
991
1068
 
992
- test("it fetches all pages automatically", async () => {
993
- await sandbox.seed(
994
- ...Array.from({ length: 20 }).map(
995
- (_, i) =>
996
- new A({ pk: "abc", sk: `SORT#${String(i).padStart(2, "0")}`, a: i })
997
- ),
998
- ...Array.from({ length: 20 }).map(
999
- (_, i) => new B({ pk: "abc", sk: `SORT#${i + 20}`, b: "bar" })
1069
+ describe("via union", () => {
1070
+ test("it returns empty results for union", async () => {
1071
+ const result = await Union.query({
1072
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
1073
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT" }
1074
+ })
1075
+
1076
+ expect(result.length).toBe(0)
1077
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined })
1078
+ })
1079
+
1080
+ test("it returns only union model items", async () => {
1081
+ await sandbox.seed(
1082
+ new A({ pk: "abc", sk: "SORT#1", a: 1 }),
1083
+ new B({ pk: "abc", sk: "SORT#2", b: "hi" }),
1084
+ new C({ pk: "abc", sk: "SORT#3", c: "c1" }),
1085
+ new D({ pk: "abc", sk: "SORT#4", d: "d1" }),
1086
+ { PK: "abc", SK: "SORT#5", unknown: "data" }
1000
1087
  )
1001
- )
1002
1088
 
1003
- const { a, b, meta, _unknown } = await client.query(
1004
- {
1089
+ const result = await Union.query({
1090
+ KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
1091
+ ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" }
1092
+ })
1093
+
1094
+ expect(result.length).toBe(2) // Only C and D items (union members)
1095
+ expect(result[0]).toBeInstanceOf(C)
1096
+ expect(result[1]).toBeInstanceOf(D)
1097
+ expect(result.meta).toEqual({ lastEvaluatedKey: undefined })
1098
+ })
1099
+
1100
+ test("it fetches all pages for union when FetchAllPages is true", async () => {
1101
+ await sandbox.seed(
1102
+ ...Array.from({ length: 10 }).map(
1103
+ (_, i) =>
1104
+ new C({
1105
+ pk: "abc",
1106
+ sk: `SORT#${String(i).padStart(2, "0")}`,
1107
+ c: `c${i}`
1108
+ })
1109
+ ),
1110
+ ...Array.from({ length: 10 }).map(
1111
+ (_, i) =>
1112
+ new D({
1113
+ pk: "abc",
1114
+ sk: `SORT#${String(i + 10).padStart(2, "0")}`,
1115
+ d: `d${i}`
1116
+ })
1117
+ ),
1118
+ // Add some non-union items that should be ignored
1119
+ new A({ pk: "abc", sk: "SORT#30", a: 1 }),
1120
+ new B({ pk: "abc", sk: "SORT#31", b: "ignored" })
1121
+ )
1122
+
1123
+ const result = await Union.query({
1005
1124
  KeyConditionExpression: `PK = :pk and begins_with(SK, :sk)`,
1006
1125
  ExpressionAttributeValues: { ":pk": "abc", ":sk": "SORT#" },
1007
1126
  FetchAllPages: true,
1008
- // You wouldn't set a limit in a real-world use case here to optimize fetching all items.
1009
- Limit: 10
1010
- },
1011
- { a: A, b: B }
1012
- )
1127
+ Limit: 5 // Force pagination
1128
+ })
1013
1129
 
1014
- expect(a.length).toBe(20)
1015
- expect(b.length).toBe(20)
1016
- expect(_unknown.length).toBe(0)
1017
- expect(meta.lastEvaluatedKey).toBeUndefined()
1130
+ expect(result.length).toBe(20) // Only union items (C and D)
1131
+ expect(result.filter((item: C | D) => item instanceof C).length).toBe(10)
1132
+ expect(result.filter((item: C | D) => item instanceof D).length).toBe(10)
1133
+ expect(result.meta.lastEvaluatedKey).toBeUndefined()
1134
+ })
1018
1135
  })
1019
1136
  })
1020
1137
 
@@ -1056,97 +1173,82 @@ describe("bulk", () => {
1056
1173
  ])
1057
1174
 
1058
1175
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
1059
- Snapshot Diff:
1060
- - First value
1061
- + Second value
1062
-
1063
- @@ -1,32 +1,24 @@
1064
- Object {
1065
- + "$$DELETED$$PK#3__$$DELETED$$SK#3": Object {
1066
- + "PK": "$$DELETED$$PK#3",
1067
- + "SK": "$$DELETED$$SK#3",
1068
- + "_deletedAt": "2021-05-01T08:00:00.000Z",
1069
- + "_docVersion": 0,
1070
- + "_tag": "B",
1071
- + "b": "bar",
1072
- + "pk": "PK#3",
1073
- + "sk": "SK#3",
1074
- + },
1075
- "PK#1__SK#1": Object {
1076
- "PK": "PK#1",
1077
- "SK": "SK#1",
1078
- "_docVersion": 0,
1079
- "_tag": "A",
1080
- - "a": 1,
1081
- + "a": -1,
1082
- "pk": "PK#1",
1083
- "sk": "SK#1",
1084
- - },
1085
- - "PK#2__SK#2": Object {
1086
- - "PK": "PK#2",
1087
- - "SK": "SK#2",
1088
- - "_docVersion": 0,
1089
- - "_tag": "A",
1090
- - "a": 2,
1091
- - "pk": "PK#2",
1092
- - "sk": "SK#2",
1093
- - },
1094
- - "PK#3__SK#3": Object {
1095
- - "PK": "PK#3",
1096
- - "SK": "SK#3",
1097
- - "_docVersion": 0,
1098
- - "_tag": "B",
1099
- - "b": "bar",
1100
- - "pk": "PK#3",
1101
- - "sk": "SK#3",
1102
- },
1103
- "PK#COND__SK#COND": Object {
1104
- "PK": "PK#COND",
1105
- "SK": "SK#COND",
1106
- "_docVersion": 0,
1107
- @@ -36,12 +28,39 @@
1108
- "sk": "SK#COND",
1109
- },
1110
- "PK#UPDATE__SK#UPDATE": Object {
1111
- "PK": "PK#UPDATE",
1112
- "SK": "SK#UPDATE",
1113
- - "_docVersion": 0,
1114
- + "_docVersion": 1,
1115
- "_tag": "B",
1116
- - "b": "bar",
1117
- + "b": "baz",
1118
- "pk": "PK#UPDATE",
1119
- "sk": "SK#UPDATE",
1120
- + },
1121
- + "PK4__PK4": Object {
1122
- + "PK": "PK4",
1123
- + "SK": "PK4",
1124
- + "_docVersion": 0,
1125
- + "_tag": "A",
1126
- + "a": 4,
1127
- + "pk": "PK4",
1128
- + "sk": "PK4",
1129
- + },
1130
- + "PK5__PK5": Object {
1131
- + "PK": "PK5",
1132
- + "SK": "PK5",
1133
- + "_docVersion": 0,
1134
- + "_tag": "A",
1135
- + "a": 5,
1136
- + "pk": "PK5",
1137
- + "sk": "PK5",
1138
- + },
1139
- + "PK6__SK6": Object {
1140
- + "PK": "PK6",
1141
- + "SK": "SK6",
1142
- + "_docVersion": 0,
1143
- + "_tag": "B",
1144
- + "b": "baz",
1145
- + "pk": "PK6",
1146
- + "sk": "SK6",
1147
- },
1148
- }
1149
- `)
1176
+ + [$$DELETED$$PK#3 / $$DELETED$$SK#3]
1177
+ + PK: "$$DELETED$$PK#3"
1178
+ + SK: "$$DELETED$$SK#3"
1179
+ + _deletedAt: "2021-05-01T08:00:00.000Z"
1180
+ + _docVersion: 0
1181
+ + _tag: "B"
1182
+ + b: "bar"
1183
+ + pk: "PK#3"
1184
+ + sk: "SK#3"
1185
+
1186
+ [PK#1 / SK#1]
1187
+ PK: "PK#1"
1188
+ SK: "SK#1"
1189
+ _docVersion: 0
1190
+ _tag: "A"
1191
+ - a: 1
1192
+ + a: -1
1193
+ pk: "PK#1"
1194
+ sk: "SK#1"
1195
+
1196
+ - [PK#2 / SK#2]
1197
+ - PK: "PK#2"
1198
+ - SK: "SK#2"
1199
+ - _docVersion: 0
1200
+ - _tag: "A"
1201
+ - a: 2
1202
+ - pk: "PK#2"
1203
+ - sk: "SK#2"
1204
+
1205
+ - [PK#3 / SK#3]
1206
+ - PK: "PK#3"
1207
+ - SK: "SK#3"
1208
+ - _docVersion: 0
1209
+ - _tag: "B"
1210
+ - b: "bar"
1211
+ - pk: "PK#3"
1212
+ - sk: "SK#3"
1213
+
1214
+ [PK#UPDATE / SK#UPDATE]
1215
+ PK: "PK#UPDATE"
1216
+ SK: "SK#UPDATE"
1217
+ - _docVersion: 0
1218
+ + _docVersion: 1
1219
+ _tag: "B"
1220
+ - b: "bar"
1221
+ + b: "baz"
1222
+ pk: "PK#UPDATE"
1223
+ sk: "SK#UPDATE"
1224
+
1225
+ + [PK4 / PK4]
1226
+ + PK: "PK4"
1227
+ + SK: "PK4"
1228
+ + _docVersion: 0
1229
+ + _tag: "A"
1230
+ + a: 4
1231
+ + pk: "PK4"
1232
+ + sk: "PK4"
1233
+
1234
+ + [PK5 / PK5]
1235
+ + PK: "PK5"
1236
+ + SK: "PK5"
1237
+ + _docVersion: 0
1238
+ + _tag: "A"
1239
+ + a: 5
1240
+ + pk: "PK5"
1241
+ + sk: "PK5"
1242
+
1243
+ + [PK6 / SK6]
1244
+ + PK: "PK6"
1245
+ + SK: "SK6"
1246
+ + _docVersion: 0
1247
+ + _tag: "B"
1248
+ + b: "baz"
1249
+ + pk: "PK6"
1250
+ + sk: "SK6"
1251
+ `)
1150
1252
  })
1151
1253
 
1152
1254
  test("it fails", async () => {
@@ -1209,970 +1311,970 @@ describe("bulk", () => {
1209
1311
 
1210
1312
  //#region snapshot
1211
1313
  expect(await sandbox.diff(before)).toMatchInlineSnapshot(`
1212
- Snapshot Diff:
1213
- - First value
1214
- + Second value
1215
-
1216
- @@ -2,28 +2,946 @@
1217
- "PK#1__SK#1": Object {
1218
- "PK": "PK#1",
1219
- "SK": "SK#1",
1220
- "_docVersion": 0,
1221
- "_tag": "A",
1222
- - "a": 1,
1223
- + "a": -1,
1224
- "pk": "PK#1",
1225
- "sk": "SK#1",
1226
- + },
1227
- + "PK#A0__SK#A0": Object {
1228
- + "PK": "PK#A0",
1229
- + "SK": "SK#A0",
1230
- + "_docVersion": 0,
1231
- + "_tag": "A",
1232
- + "a": 0,
1233
- + "pk": "PK#A0",
1234
- + "sk": "SK#A0",
1235
- + },
1236
- + "PK#A10__SK#A10": Object {
1237
- + "PK": "PK#A10",
1238
- + "SK": "SK#A10",
1239
- + "_docVersion": 0,
1240
- + "_tag": "A",
1241
- + "a": 10,
1242
- + "pk": "PK#A10",
1243
- + "sk": "SK#A10",
1244
- + },
1245
- + "PK#A11__SK#A11": Object {
1246
- + "PK": "PK#A11",
1247
- + "SK": "SK#A11",
1248
- + "_docVersion": 0,
1249
- + "_tag": "A",
1250
- + "a": 11,
1251
- + "pk": "PK#A11",
1252
- + "sk": "SK#A11",
1253
- + },
1254
- + "PK#A12__SK#A12": Object {
1255
- + "PK": "PK#A12",
1256
- + "SK": "SK#A12",
1257
- + "_docVersion": 0,
1258
- + "_tag": "A",
1259
- + "a": 12,
1260
- + "pk": "PK#A12",
1261
- + "sk": "SK#A12",
1262
- + },
1263
- + "PK#A13__SK#A13": Object {
1264
- + "PK": "PK#A13",
1265
- + "SK": "SK#A13",
1266
- + "_docVersion": 0,
1267
- + "_tag": "A",
1268
- + "a": 13,
1269
- + "pk": "PK#A13",
1270
- + "sk": "SK#A13",
1271
- },
1272
- - "PK#2__SK#2": Object {
1273
- - "PK": "PK#2",
1274
- - "SK": "SK#2",
1275
- + "PK#A14__SK#A14": Object {
1276
- + "PK": "PK#A14",
1277
- + "SK": "SK#A14",
1278
- + "_docVersion": 0,
1279
- + "_tag": "A",
1280
- + "a": 14,
1281
- + "pk": "PK#A14",
1282
- + "sk": "SK#A14",
1283
- + },
1284
- + "PK#A15__SK#A15": Object {
1285
- + "PK": "PK#A15",
1286
- + "SK": "SK#A15",
1287
- + "_docVersion": 0,
1288
- + "_tag": "A",
1289
- + "a": 15,
1290
- + "pk": "PK#A15",
1291
- + "sk": "SK#A15",
1292
- + },
1293
- + "PK#A16__SK#A16": Object {
1294
- + "PK": "PK#A16",
1295
- + "SK": "SK#A16",
1296
- + "_docVersion": 0,
1297
- + "_tag": "A",
1298
- + "a": 16,
1299
- + "pk": "PK#A16",
1300
- + "sk": "SK#A16",
1301
- + },
1302
- + "PK#A17__SK#A17": Object {
1303
- + "PK": "PK#A17",
1304
- + "SK": "SK#A17",
1305
- + "_docVersion": 0,
1306
- + "_tag": "A",
1307
- + "a": 17,
1308
- + "pk": "PK#A17",
1309
- + "sk": "SK#A17",
1310
- + },
1311
- + "PK#A18__SK#A18": Object {
1312
- + "PK": "PK#A18",
1313
- + "SK": "SK#A18",
1314
- + "_docVersion": 0,
1315
- + "_tag": "A",
1316
- + "a": 18,
1317
- + "pk": "PK#A18",
1318
- + "sk": "SK#A18",
1319
- + },
1320
- + "PK#A19__SK#A19": Object {
1321
- + "PK": "PK#A19",
1322
- + "SK": "SK#A19",
1323
- + "_docVersion": 0,
1324
- + "_tag": "A",
1325
- + "a": 19,
1326
- + "pk": "PK#A19",
1327
- + "sk": "SK#A19",
1328
- + },
1329
- + "PK#A1__SK#A1": Object {
1330
- + "PK": "PK#A1",
1331
- + "SK": "SK#A1",
1332
- + "_docVersion": 0,
1333
- + "_tag": "A",
1334
- + "a": 1,
1335
- + "pk": "PK#A1",
1336
- + "sk": "SK#A1",
1337
- + },
1338
- + "PK#A20__SK#A20": Object {
1339
- + "PK": "PK#A20",
1340
- + "SK": "SK#A20",
1341
- + "_docVersion": 0,
1342
- + "_tag": "A",
1343
- + "a": 20,
1344
- + "pk": "PK#A20",
1345
- + "sk": "SK#A20",
1346
- + },
1347
- + "PK#A21__SK#A21": Object {
1348
- + "PK": "PK#A21",
1349
- + "SK": "SK#A21",
1350
- + "_docVersion": 0,
1351
- + "_tag": "A",
1352
- + "a": 21,
1353
- + "pk": "PK#A21",
1354
- + "sk": "SK#A21",
1355
- + },
1356
- + "PK#A22__SK#A22": Object {
1357
- + "PK": "PK#A22",
1358
- + "SK": "SK#A22",
1359
- + "_docVersion": 0,
1360
- + "_tag": "A",
1361
- + "a": 22,
1362
- + "pk": "PK#A22",
1363
- + "sk": "SK#A22",
1364
- + },
1365
- + "PK#A23__SK#A23": Object {
1366
- + "PK": "PK#A23",
1367
- + "SK": "SK#A23",
1368
- + "_docVersion": 0,
1369
- + "_tag": "A",
1370
- + "a": 23,
1371
- + "pk": "PK#A23",
1372
- + "sk": "SK#A23",
1373
- + },
1374
- + "PK#A24__SK#A24": Object {
1375
- + "PK": "PK#A24",
1376
- + "SK": "SK#A24",
1377
- + "_docVersion": 0,
1378
- + "_tag": "A",
1379
- + "a": 24,
1380
- + "pk": "PK#A24",
1381
- + "sk": "SK#A24",
1382
- + },
1383
- + "PK#A25__SK#A25": Object {
1384
- + "PK": "PK#A25",
1385
- + "SK": "SK#A25",
1386
- + "_docVersion": 0,
1387
- + "_tag": "A",
1388
- + "a": 25,
1389
- + "pk": "PK#A25",
1390
- + "sk": "SK#A25",
1391
- + },
1392
- + "PK#A26__SK#A26": Object {
1393
- + "PK": "PK#A26",
1394
- + "SK": "SK#A26",
1395
- + "_docVersion": 0,
1396
- + "_tag": "A",
1397
- + "a": 26,
1398
- + "pk": "PK#A26",
1399
- + "sk": "SK#A26",
1400
- + },
1401
- + "PK#A27__SK#A27": Object {
1402
- + "PK": "PK#A27",
1403
- + "SK": "SK#A27",
1404
- + "_docVersion": 0,
1405
- + "_tag": "A",
1406
- + "a": 27,
1407
- + "pk": "PK#A27",
1408
- + "sk": "SK#A27",
1409
- + },
1410
- + "PK#A28__SK#A28": Object {
1411
- + "PK": "PK#A28",
1412
- + "SK": "SK#A28",
1413
- + "_docVersion": 0,
1414
- + "_tag": "A",
1415
- + "a": 28,
1416
- + "pk": "PK#A28",
1417
- + "sk": "SK#A28",
1418
- + },
1419
- + "PK#A29__SK#A29": Object {
1420
- + "PK": "PK#A29",
1421
- + "SK": "SK#A29",
1422
- + "_docVersion": 0,
1423
- + "_tag": "A",
1424
- + "a": 29,
1425
- + "pk": "PK#A29",
1426
- + "sk": "SK#A29",
1427
- + },
1428
- + "PK#A2__SK#A2": Object {
1429
- + "PK": "PK#A2",
1430
- + "SK": "SK#A2",
1431
- "_docVersion": 0,
1432
- "_tag": "A",
1433
- "a": 2,
1434
- - "pk": "PK#2",
1435
- - "sk": "SK#2",
1436
- + "pk": "PK#A2",
1437
- + "sk": "SK#A2",
1438
- + },
1439
- + "PK#A30__SK#A30": Object {
1440
- + "PK": "PK#A30",
1441
- + "SK": "SK#A30",
1442
- + "_docVersion": 0,
1443
- + "_tag": "A",
1444
- + "a": 30,
1445
- + "pk": "PK#A30",
1446
- + "sk": "SK#A30",
1447
- + },
1448
- + "PK#A31__SK#A31": Object {
1449
- + "PK": "PK#A31",
1450
- + "SK": "SK#A31",
1451
- + "_docVersion": 0,
1452
- + "_tag": "A",
1453
- + "a": 31,
1454
- + "pk": "PK#A31",
1455
- + "sk": "SK#A31",
1456
- + },
1457
- + "PK#A32__SK#A32": Object {
1458
- + "PK": "PK#A32",
1459
- + "SK": "SK#A32",
1460
- + "_docVersion": 0,
1461
- + "_tag": "A",
1462
- + "a": 32,
1463
- + "pk": "PK#A32",
1464
- + "sk": "SK#A32",
1465
- + },
1466
- + "PK#A33__SK#A33": Object {
1467
- + "PK": "PK#A33",
1468
- + "SK": "SK#A33",
1469
- + "_docVersion": 0,
1470
- + "_tag": "A",
1471
- + "a": 33,
1472
- + "pk": "PK#A33",
1473
- + "sk": "SK#A33",
1474
- + },
1475
- + "PK#A34__SK#A34": Object {
1476
- + "PK": "PK#A34",
1477
- + "SK": "SK#A34",
1478
- + "_docVersion": 0,
1479
- + "_tag": "A",
1480
- + "a": 34,
1481
- + "pk": "PK#A34",
1482
- + "sk": "SK#A34",
1483
- + },
1484
- + "PK#A35__SK#A35": Object {
1485
- + "PK": "PK#A35",
1486
- + "SK": "SK#A35",
1487
- + "_docVersion": 0,
1488
- + "_tag": "A",
1489
- + "a": 35,
1490
- + "pk": "PK#A35",
1491
- + "sk": "SK#A35",
1492
- + },
1493
- + "PK#A36__SK#A36": Object {
1494
- + "PK": "PK#A36",
1495
- + "SK": "SK#A36",
1496
- + "_docVersion": 0,
1497
- + "_tag": "A",
1498
- + "a": 36,
1499
- + "pk": "PK#A36",
1500
- + "sk": "SK#A36",
1501
- + },
1502
- + "PK#A37__SK#A37": Object {
1503
- + "PK": "PK#A37",
1504
- + "SK": "SK#A37",
1505
- + "_docVersion": 0,
1506
- + "_tag": "A",
1507
- + "a": 37,
1508
- + "pk": "PK#A37",
1509
- + "sk": "SK#A37",
1510
- + },
1511
- + "PK#A38__SK#A38": Object {
1512
- + "PK": "PK#A38",
1513
- + "SK": "SK#A38",
1514
- + "_docVersion": 0,
1515
- + "_tag": "A",
1516
- + "a": 38,
1517
- + "pk": "PK#A38",
1518
- + "sk": "SK#A38",
1519
- + },
1520
- + "PK#A39__SK#A39": Object {
1521
- + "PK": "PK#A39",
1522
- + "SK": "SK#A39",
1523
- + "_docVersion": 0,
1524
- + "_tag": "A",
1525
- + "a": 39,
1526
- + "pk": "PK#A39",
1527
- + "sk": "SK#A39",
1528
- + },
1529
- + "PK#A3__SK#A3": Object {
1530
- + "PK": "PK#A3",
1531
- + "SK": "SK#A3",
1532
- + "_docVersion": 0,
1533
- + "_tag": "A",
1534
- + "a": 3,
1535
- + "pk": "PK#A3",
1536
- + "sk": "SK#A3",
1537
- + },
1538
- + "PK#A40__SK#A40": Object {
1539
- + "PK": "PK#A40",
1540
- + "SK": "SK#A40",
1541
- + "_docVersion": 0,
1542
- + "_tag": "A",
1543
- + "a": 40,
1544
- + "pk": "PK#A40",
1545
- + "sk": "SK#A40",
1546
- + },
1547
- + "PK#A41__SK#A41": Object {
1548
- + "PK": "PK#A41",
1549
- + "SK": "SK#A41",
1550
- + "_docVersion": 0,
1551
- + "_tag": "A",
1552
- + "a": 41,
1553
- + "pk": "PK#A41",
1554
- + "sk": "SK#A41",
1555
- + },
1556
- + "PK#A42__SK#A42": Object {
1557
- + "PK": "PK#A42",
1558
- + "SK": "SK#A42",
1559
- + "_docVersion": 0,
1560
- + "_tag": "A",
1561
- + "a": 42,
1562
- + "pk": "PK#A42",
1563
- + "sk": "SK#A42",
1564
- + },
1565
- + "PK#A43__SK#A43": Object {
1566
- + "PK": "PK#A43",
1567
- + "SK": "SK#A43",
1568
- + "_docVersion": 0,
1569
- + "_tag": "A",
1570
- + "a": 43,
1571
- + "pk": "PK#A43",
1572
- + "sk": "SK#A43",
1573
- + },
1574
- + "PK#A44__SK#A44": Object {
1575
- + "PK": "PK#A44",
1576
- + "SK": "SK#A44",
1577
- + "_docVersion": 0,
1578
- + "_tag": "A",
1579
- + "a": 44,
1580
- + "pk": "PK#A44",
1581
- + "sk": "SK#A44",
1582
- + },
1583
- + "PK#A45__SK#A45": Object {
1584
- + "PK": "PK#A45",
1585
- + "SK": "SK#A45",
1586
- + "_docVersion": 0,
1587
- + "_tag": "A",
1588
- + "a": 45,
1589
- + "pk": "PK#A45",
1590
- + "sk": "SK#A45",
1591
- + },
1592
- + "PK#A46__SK#A46": Object {
1593
- + "PK": "PK#A46",
1594
- + "SK": "SK#A46",
1595
- + "_docVersion": 0,
1596
- + "_tag": "A",
1597
- + "a": 46,
1598
- + "pk": "PK#A46",
1599
- + "sk": "SK#A46",
1600
- + },
1601
- + "PK#A47__SK#A47": Object {
1602
- + "PK": "PK#A47",
1603
- + "SK": "SK#A47",
1604
- + "_docVersion": 0,
1605
- + "_tag": "A",
1606
- + "a": 47,
1607
- + "pk": "PK#A47",
1608
- + "sk": "SK#A47",
1609
- + },
1610
- + "PK#A48__SK#A48": Object {
1611
- + "PK": "PK#A48",
1612
- + "SK": "SK#A48",
1613
- + "_docVersion": 0,
1614
- + "_tag": "A",
1615
- + "a": 48,
1616
- + "pk": "PK#A48",
1617
- + "sk": "SK#A48",
1618
- + },
1619
- + "PK#A49__SK#A49": Object {
1620
- + "PK": "PK#A49",
1621
- + "SK": "SK#A49",
1622
- + "_docVersion": 0,
1623
- + "_tag": "A",
1624
- + "a": 49,
1625
- + "pk": "PK#A49",
1626
- + "sk": "SK#A49",
1627
- + },
1628
- + "PK#A4__SK#A4": Object {
1629
- + "PK": "PK#A4",
1630
- + "SK": "SK#A4",
1631
- + "_docVersion": 0,
1632
- + "_tag": "A",
1633
- + "a": 4,
1634
- + "pk": "PK#A4",
1635
- + "sk": "SK#A4",
1636
- + },
1637
- + "PK#A50__SK#A50": Object {
1638
- + "PK": "PK#A50",
1639
- + "SK": "SK#A50",
1640
- + "_docVersion": 0,
1641
- + "_tag": "A",
1642
- + "a": 50,
1643
- + "pk": "PK#A50",
1644
- + "sk": "SK#A50",
1645
- + },
1646
- + "PK#A51__SK#A51": Object {
1647
- + "PK": "PK#A51",
1648
- + "SK": "SK#A51",
1649
- + "_docVersion": 0,
1650
- + "_tag": "A",
1651
- + "a": 51,
1652
- + "pk": "PK#A51",
1653
- + "sk": "SK#A51",
1654
- + },
1655
- + "PK#A52__SK#A52": Object {
1656
- + "PK": "PK#A52",
1657
- + "SK": "SK#A52",
1658
- + "_docVersion": 0,
1659
- + "_tag": "A",
1660
- + "a": 52,
1661
- + "pk": "PK#A52",
1662
- + "sk": "SK#A52",
1663
- },
1664
- - "PK#3__SK#3": Object {
1665
- - "PK": "PK#3",
1666
- - "SK": "SK#3",
1667
- + "PK#A53__SK#A53": Object {
1668
- + "PK": "PK#A53",
1669
- + "SK": "SK#A53",
1670
- + "_docVersion": 0,
1671
- + "_tag": "A",
1672
- + "a": 53,
1673
- + "pk": "PK#A53",
1674
- + "sk": "SK#A53",
1675
- + },
1676
- + "PK#A54__SK#A54": Object {
1677
- + "PK": "PK#A54",
1678
- + "SK": "SK#A54",
1679
- + "_docVersion": 0,
1680
- + "_tag": "A",
1681
- + "a": 54,
1682
- + "pk": "PK#A54",
1683
- + "sk": "SK#A54",
1684
- + },
1685
- + "PK#A55__SK#A55": Object {
1686
- + "PK": "PK#A55",
1687
- + "SK": "SK#A55",
1688
- + "_docVersion": 0,
1689
- + "_tag": "A",
1690
- + "a": 55,
1691
- + "pk": "PK#A55",
1692
- + "sk": "SK#A55",
1693
- + },
1694
- + "PK#A56__SK#A56": Object {
1695
- + "PK": "PK#A56",
1696
- + "SK": "SK#A56",
1697
- + "_docVersion": 0,
1698
- + "_tag": "A",
1699
- + "a": 56,
1700
- + "pk": "PK#A56",
1701
- + "sk": "SK#A56",
1702
- + },
1703
- + "PK#A57__SK#A57": Object {
1704
- + "PK": "PK#A57",
1705
- + "SK": "SK#A57",
1706
- + "_docVersion": 0,
1707
- + "_tag": "A",
1708
- + "a": 57,
1709
- + "pk": "PK#A57",
1710
- + "sk": "SK#A57",
1711
- + },
1712
- + "PK#A58__SK#A58": Object {
1713
- + "PK": "PK#A58",
1714
- + "SK": "SK#A58",
1715
- + "_docVersion": 0,
1716
- + "_tag": "A",
1717
- + "a": 58,
1718
- + "pk": "PK#A58",
1719
- + "sk": "SK#A58",
1720
- + },
1721
- + "PK#A59__SK#A59": Object {
1722
- + "PK": "PK#A59",
1723
- + "SK": "SK#A59",
1724
- + "_docVersion": 0,
1725
- + "_tag": "A",
1726
- + "a": 59,
1727
- + "pk": "PK#A59",
1728
- + "sk": "SK#A59",
1729
- + },
1730
- + "PK#A5__SK#A5": Object {
1731
- + "PK": "PK#A5",
1732
- + "SK": "SK#A5",
1733
- + "_docVersion": 0,
1734
- + "_tag": "A",
1735
- + "a": 5,
1736
- + "pk": "PK#A5",
1737
- + "sk": "SK#A5",
1738
- + },
1739
- + "PK#A60__SK#A60": Object {
1740
- + "PK": "PK#A60",
1741
- + "SK": "SK#A60",
1742
- + "_docVersion": 0,
1743
- + "_tag": "A",
1744
- + "a": 60,
1745
- + "pk": "PK#A60",
1746
- + "sk": "SK#A60",
1747
- + },
1748
- + "PK#A61__SK#A61": Object {
1749
- + "PK": "PK#A61",
1750
- + "SK": "SK#A61",
1751
- + "_docVersion": 0,
1752
- + "_tag": "A",
1753
- + "a": 61,
1754
- + "pk": "PK#A61",
1755
- + "sk": "SK#A61",
1756
- + },
1757
- + "PK#A62__SK#A62": Object {
1758
- + "PK": "PK#A62",
1759
- + "SK": "SK#A62",
1760
- + "_docVersion": 0,
1761
- + "_tag": "A",
1762
- + "a": 62,
1763
- + "pk": "PK#A62",
1764
- + "sk": "SK#A62",
1765
- + },
1766
- + "PK#A63__SK#A63": Object {
1767
- + "PK": "PK#A63",
1768
- + "SK": "SK#A63",
1769
- + "_docVersion": 0,
1770
- + "_tag": "A",
1771
- + "a": 63,
1772
- + "pk": "PK#A63",
1773
- + "sk": "SK#A63",
1774
- + },
1775
- + "PK#A64__SK#A64": Object {
1776
- + "PK": "PK#A64",
1777
- + "SK": "SK#A64",
1778
- + "_docVersion": 0,
1779
- + "_tag": "A",
1780
- + "a": 64,
1781
- + "pk": "PK#A64",
1782
- + "sk": "SK#A64",
1783
- + },
1784
- + "PK#A65__SK#A65": Object {
1785
- + "PK": "PK#A65",
1786
- + "SK": "SK#A65",
1787
- + "_docVersion": 0,
1788
- + "_tag": "A",
1789
- + "a": 65,
1790
- + "pk": "PK#A65",
1791
- + "sk": "SK#A65",
1792
- + },
1793
- + "PK#A66__SK#A66": Object {
1794
- + "PK": "PK#A66",
1795
- + "SK": "SK#A66",
1796
- + "_docVersion": 0,
1797
- + "_tag": "A",
1798
- + "a": 66,
1799
- + "pk": "PK#A66",
1800
- + "sk": "SK#A66",
1801
- + },
1802
- + "PK#A67__SK#A67": Object {
1803
- + "PK": "PK#A67",
1804
- + "SK": "SK#A67",
1805
- + "_docVersion": 0,
1806
- + "_tag": "A",
1807
- + "a": 67,
1808
- + "pk": "PK#A67",
1809
- + "sk": "SK#A67",
1810
- + },
1811
- + "PK#A68__SK#A68": Object {
1812
- + "PK": "PK#A68",
1813
- + "SK": "SK#A68",
1814
- + "_docVersion": 0,
1815
- + "_tag": "A",
1816
- + "a": 68,
1817
- + "pk": "PK#A68",
1818
- + "sk": "SK#A68",
1819
- + },
1820
- + "PK#A69__SK#A69": Object {
1821
- + "PK": "PK#A69",
1822
- + "SK": "SK#A69",
1823
- + "_docVersion": 0,
1824
- + "_tag": "A",
1825
- + "a": 69,
1826
- + "pk": "PK#A69",
1827
- + "sk": "SK#A69",
1828
- + },
1829
- + "PK#A6__SK#A6": Object {
1830
- + "PK": "PK#A6",
1831
- + "SK": "SK#A6",
1832
- + "_docVersion": 0,
1833
- + "_tag": "A",
1834
- + "a": 6,
1835
- + "pk": "PK#A6",
1836
- + "sk": "SK#A6",
1837
- + },
1838
- + "PK#A70__SK#A70": Object {
1839
- + "PK": "PK#A70",
1840
- + "SK": "SK#A70",
1841
- + "_docVersion": 0,
1842
- + "_tag": "A",
1843
- + "a": 70,
1844
- + "pk": "PK#A70",
1845
- + "sk": "SK#A70",
1846
- + },
1847
- + "PK#A71__SK#A71": Object {
1848
- + "PK": "PK#A71",
1849
- + "SK": "SK#A71",
1850
- + "_docVersion": 0,
1851
- + "_tag": "A",
1852
- + "a": 71,
1853
- + "pk": "PK#A71",
1854
- + "sk": "SK#A71",
1855
- + },
1856
- + "PK#A72__SK#A72": Object {
1857
- + "PK": "PK#A72",
1858
- + "SK": "SK#A72",
1859
- + "_docVersion": 0,
1860
- + "_tag": "A",
1861
- + "a": 72,
1862
- + "pk": "PK#A72",
1863
- + "sk": "SK#A72",
1864
- + },
1865
- + "PK#A73__SK#A73": Object {
1866
- + "PK": "PK#A73",
1867
- + "SK": "SK#A73",
1868
- + "_docVersion": 0,
1869
- + "_tag": "A",
1870
- + "a": 73,
1871
- + "pk": "PK#A73",
1872
- + "sk": "SK#A73",
1873
- + },
1874
- + "PK#A74__SK#A74": Object {
1875
- + "PK": "PK#A74",
1876
- + "SK": "SK#A74",
1877
- + "_docVersion": 0,
1878
- + "_tag": "A",
1879
- + "a": 74,
1880
- + "pk": "PK#A74",
1881
- + "sk": "SK#A74",
1882
- + },
1883
- + "PK#A75__SK#A75": Object {
1884
- + "PK": "PK#A75",
1885
- + "SK": "SK#A75",
1886
- + "_docVersion": 0,
1887
- + "_tag": "A",
1888
- + "a": 75,
1889
- + "pk": "PK#A75",
1890
- + "sk": "SK#A75",
1891
- + },
1892
- + "PK#A76__SK#A76": Object {
1893
- + "PK": "PK#A76",
1894
- + "SK": "SK#A76",
1895
- + "_docVersion": 0,
1896
- + "_tag": "A",
1897
- + "a": 76,
1898
- + "pk": "PK#A76",
1899
- + "sk": "SK#A76",
1900
- + },
1901
- + "PK#A77__SK#A77": Object {
1902
- + "PK": "PK#A77",
1903
- + "SK": "SK#A77",
1904
- + "_docVersion": 0,
1905
- + "_tag": "A",
1906
- + "a": 77,
1907
- + "pk": "PK#A77",
1908
- + "sk": "SK#A77",
1909
- + },
1910
- + "PK#A78__SK#A78": Object {
1911
- + "PK": "PK#A78",
1912
- + "SK": "SK#A78",
1913
- + "_docVersion": 0,
1914
- + "_tag": "A",
1915
- + "a": 78,
1916
- + "pk": "PK#A78",
1917
- + "sk": "SK#A78",
1918
- + },
1919
- + "PK#A79__SK#A79": Object {
1920
- + "PK": "PK#A79",
1921
- + "SK": "SK#A79",
1922
- + "_docVersion": 0,
1923
- + "_tag": "A",
1924
- + "a": 79,
1925
- + "pk": "PK#A79",
1926
- + "sk": "SK#A79",
1927
- + },
1928
- + "PK#A7__SK#A7": Object {
1929
- + "PK": "PK#A7",
1930
- + "SK": "SK#A7",
1931
- + "_docVersion": 0,
1932
- + "_tag": "A",
1933
- + "a": 7,
1934
- + "pk": "PK#A7",
1935
- + "sk": "SK#A7",
1936
- + },
1937
- + "PK#A80__SK#A80": Object {
1938
- + "PK": "PK#A80",
1939
- + "SK": "SK#A80",
1940
- + "_docVersion": 0,
1941
- + "_tag": "A",
1942
- + "a": 80,
1943
- + "pk": "PK#A80",
1944
- + "sk": "SK#A80",
1945
- + },
1946
- + "PK#A81__SK#A81": Object {
1947
- + "PK": "PK#A81",
1948
- + "SK": "SK#A81",
1949
- + "_docVersion": 0,
1950
- + "_tag": "A",
1951
- + "a": 81,
1952
- + "pk": "PK#A81",
1953
- + "sk": "SK#A81",
1954
- + },
1955
- + "PK#A82__SK#A82": Object {
1956
- + "PK": "PK#A82",
1957
- + "SK": "SK#A82",
1958
- + "_docVersion": 0,
1959
- + "_tag": "A",
1960
- + "a": 82,
1961
- + "pk": "PK#A82",
1962
- + "sk": "SK#A82",
1963
- + },
1964
- + "PK#A83__SK#A83": Object {
1965
- + "PK": "PK#A83",
1966
- + "SK": "SK#A83",
1967
- + "_docVersion": 0,
1968
- + "_tag": "A",
1969
- + "a": 83,
1970
- + "pk": "PK#A83",
1971
- + "sk": "SK#A83",
1972
- + },
1973
- + "PK#A84__SK#A84": Object {
1974
- + "PK": "PK#A84",
1975
- + "SK": "SK#A84",
1976
- + "_docVersion": 0,
1977
- + "_tag": "A",
1978
- + "a": 84,
1979
- + "pk": "PK#A84",
1980
- + "sk": "SK#A84",
1981
- + },
1982
- + "PK#A85__SK#A85": Object {
1983
- + "PK": "PK#A85",
1984
- + "SK": "SK#A85",
1985
- + "_docVersion": 0,
1986
- + "_tag": "A",
1987
- + "a": 85,
1988
- + "pk": "PK#A85",
1989
- + "sk": "SK#A85",
1990
- + },
1991
- + "PK#A86__SK#A86": Object {
1992
- + "PK": "PK#A86",
1993
- + "SK": "SK#A86",
1994
- + "_docVersion": 0,
1995
- + "_tag": "A",
1996
- + "a": 86,
1997
- + "pk": "PK#A86",
1998
- + "sk": "SK#A86",
1999
- + },
2000
- + "PK#A87__SK#A87": Object {
2001
- + "PK": "PK#A87",
2002
- + "SK": "SK#A87",
2003
- + "_docVersion": 0,
2004
- + "_tag": "A",
2005
- + "a": 87,
2006
- + "pk": "PK#A87",
2007
- + "sk": "SK#A87",
2008
- + },
2009
- + "PK#A88__SK#A88": Object {
2010
- + "PK": "PK#A88",
2011
- + "SK": "SK#A88",
2012
- + "_docVersion": 0,
2013
- + "_tag": "A",
2014
- + "a": 88,
2015
- + "pk": "PK#A88",
2016
- + "sk": "SK#A88",
2017
- + },
2018
- + "PK#A89__SK#A89": Object {
2019
- + "PK": "PK#A89",
2020
- + "SK": "SK#A89",
2021
- + "_docVersion": 0,
2022
- + "_tag": "A",
2023
- + "a": 89,
2024
- + "pk": "PK#A89",
2025
- + "sk": "SK#A89",
2026
- + },
2027
- + "PK#A8__SK#A8": Object {
2028
- + "PK": "PK#A8",
2029
- + "SK": "SK#A8",
2030
- + "_docVersion": 0,
2031
- + "_tag": "A",
2032
- + "a": 8,
2033
- + "pk": "PK#A8",
2034
- + "sk": "SK#A8",
2035
- + },
2036
- + "PK#A90__SK#A90": Object {
2037
- + "PK": "PK#A90",
2038
- + "SK": "SK#A90",
2039
- + "_docVersion": 0,
2040
- + "_tag": "A",
2041
- + "a": 90,
2042
- + "pk": "PK#A90",
2043
- + "sk": "SK#A90",
2044
- + },
2045
- + "PK#A91__SK#A91": Object {
2046
- + "PK": "PK#A91",
2047
- + "SK": "SK#A91",
2048
- + "_docVersion": 0,
2049
- + "_tag": "A",
2050
- + "a": 91,
2051
- + "pk": "PK#A91",
2052
- + "sk": "SK#A91",
2053
- + },
2054
- + "PK#A92__SK#A92": Object {
2055
- + "PK": "PK#A92",
2056
- + "SK": "SK#A92",
2057
- + "_docVersion": 0,
2058
- + "_tag": "A",
2059
- + "a": 92,
2060
- + "pk": "PK#A92",
2061
- + "sk": "SK#A92",
2062
- + },
2063
- + "PK#A93__SK#A93": Object {
2064
- + "PK": "PK#A93",
2065
- + "SK": "SK#A93",
2066
- + "_docVersion": 0,
2067
- + "_tag": "A",
2068
- + "a": 93,
2069
- + "pk": "PK#A93",
2070
- + "sk": "SK#A93",
2071
- + },
2072
- + "PK#A94__SK#A94": Object {
2073
- + "PK": "PK#A94",
2074
- + "SK": "SK#A94",
2075
- + "_docVersion": 0,
2076
- + "_tag": "A",
2077
- + "a": 94,
2078
- + "pk": "PK#A94",
2079
- + "sk": "SK#A94",
2080
- + },
2081
- + "PK#A95__SK#A95": Object {
2082
- + "PK": "PK#A95",
2083
- + "SK": "SK#A95",
2084
- + "_docVersion": 0,
2085
- + "_tag": "A",
2086
- + "a": 95,
2087
- + "pk": "PK#A95",
2088
- + "sk": "SK#A95",
2089
- + },
2090
- + "PK#A96__SK#A96": Object {
2091
- + "PK": "PK#A96",
2092
- + "SK": "SK#A96",
2093
- + "_docVersion": 0,
2094
- + "_tag": "A",
2095
- + "a": 96,
2096
- + "pk": "PK#A96",
2097
- + "sk": "SK#A96",
2098
- + },
2099
- + "PK#A97__SK#A97": Object {
2100
- + "PK": "PK#A97",
2101
- + "SK": "SK#A97",
2102
- + "_docVersion": 0,
2103
- + "_tag": "A",
2104
- + "a": 97,
2105
- + "pk": "PK#A97",
2106
- + "sk": "SK#A97",
2107
- + },
2108
- + "PK#A98__SK#A98": Object {
2109
- + "PK": "PK#A98",
2110
- + "SK": "SK#A98",
2111
- + "_docVersion": 0,
2112
- + "_tag": "A",
2113
- + "a": 98,
2114
- + "pk": "PK#A98",
2115
- + "sk": "SK#A98",
2116
- + },
2117
- + "PK#A99__SK#A99": Object {
2118
- + "PK": "PK#A99",
2119
- + "SK": "SK#A99",
2120
- + "_docVersion": 0,
2121
- + "_tag": "A",
2122
- + "a": 99,
2123
- + "pk": "PK#A99",
2124
- + "sk": "SK#A99",
2125
- + },
2126
- + "PK#A9__SK#A9": Object {
2127
- + "PK": "PK#A9",
2128
- + "SK": "SK#A9",
2129
- "_docVersion": 0,
2130
- + "_tag": "A",
2131
- + "a": 9,
2132
- + "pk": "PK#A9",
2133
- + "sk": "SK#A9",
2134
- + },
2135
- + "PK#UPDATE__SK#UPDATE": Object {
2136
- + "PK": "PK#UPDATE",
2137
- + "SK": "SK#UPDATE",
2138
- + "_docVersion": 1,
2139
- "_tag": "B",
2140
- - "b": "bar",
2141
- - "pk": "PK#3",
2142
- - "sk": "SK#3",
2143
- + "b": "baz",
2144
- + "pk": "PK#UPDATE",
2145
- + "sk": "SK#UPDATE",
2146
- + },
2147
- + "PK4__PK4": Object {
2148
- + "PK": "PK4",
2149
- + "SK": "PK4",
2150
- + "_docVersion": 0,
2151
- + "_tag": "A",
2152
- + "a": 4,
2153
- + "pk": "PK4",
2154
- + "sk": "PK4",
2155
- + },
2156
- + "PK5__PK5": Object {
2157
- + "PK": "PK5",
2158
- + "SK": "PK5",
2159
- + "_docVersion": 0,
2160
- + "_tag": "A",
2161
- + "a": 5,
2162
- + "pk": "PK5",
2163
- + "sk": "PK5",
2164
- + },
2165
- + "PK6__SK6": Object {
2166
- + "PK": "PK6",
2167
- + "SK": "SK6",
2168
- + "_docVersion": 0,
2169
- + "_tag": "B",
2170
- + "b": "baz",
2171
- + "pk": "PK6",
2172
- + "sk": "SK6",
2173
- },
2174
- }
2175
- `)
1314
+ [PK#1 / SK#1]
1315
+ PK: "PK#1"
1316
+ SK: "SK#1"
1317
+ _docVersion: 0
1318
+ _tag: "A"
1319
+ - a: 1
1320
+ + a: -1
1321
+ pk: "PK#1"
1322
+ sk: "SK#1"
1323
+
1324
+ - [PK#2 / SK#2]
1325
+ - PK: "PK#2"
1326
+ - SK: "SK#2"
1327
+ - _docVersion: 0
1328
+ - _tag: "A"
1329
+ - a: 2
1330
+ - pk: "PK#2"
1331
+ - sk: "SK#2"
1332
+
1333
+ - [PK#3 / SK#3]
1334
+ - PK: "PK#3"
1335
+ - SK: "SK#3"
1336
+ - _docVersion: 0
1337
+ - _tag: "B"
1338
+ - b: "bar"
1339
+ - pk: "PK#3"
1340
+ - sk: "SK#3"
1341
+
1342
+ + [PK#A0 / SK#A0]
1343
+ + PK: "PK#A0"
1344
+ + SK: "SK#A0"
1345
+ + _docVersion: 0
1346
+ + _tag: "A"
1347
+ + a: 0
1348
+ + pk: "PK#A0"
1349
+ + sk: "SK#A0"
1350
+
1351
+ + [PK#A1 / SK#A1]
1352
+ + PK: "PK#A1"
1353
+ + SK: "SK#A1"
1354
+ + _docVersion: 0
1355
+ + _tag: "A"
1356
+ + a: 1
1357
+ + pk: "PK#A1"
1358
+ + sk: "SK#A1"
1359
+
1360
+ + [PK#A10 / SK#A10]
1361
+ + PK: "PK#A10"
1362
+ + SK: "SK#A10"
1363
+ + _docVersion: 0
1364
+ + _tag: "A"
1365
+ + a: 10
1366
+ + pk: "PK#A10"
1367
+ + sk: "SK#A10"
1368
+
1369
+ + [PK#A11 / SK#A11]
1370
+ + PK: "PK#A11"
1371
+ + SK: "SK#A11"
1372
+ + _docVersion: 0
1373
+ + _tag: "A"
1374
+ + a: 11
1375
+ + pk: "PK#A11"
1376
+ + sk: "SK#A11"
1377
+
1378
+ + [PK#A12 / SK#A12]
1379
+ + PK: "PK#A12"
1380
+ + SK: "SK#A12"
1381
+ + _docVersion: 0
1382
+ + _tag: "A"
1383
+ + a: 12
1384
+ + pk: "PK#A12"
1385
+ + sk: "SK#A12"
1386
+
1387
+ + [PK#A13 / SK#A13]
1388
+ + PK: "PK#A13"
1389
+ + SK: "SK#A13"
1390
+ + _docVersion: 0
1391
+ + _tag: "A"
1392
+ + a: 13
1393
+ + pk: "PK#A13"
1394
+ + sk: "SK#A13"
1395
+
1396
+ + [PK#A14 / SK#A14]
1397
+ + PK: "PK#A14"
1398
+ + SK: "SK#A14"
1399
+ + _docVersion: 0
1400
+ + _tag: "A"
1401
+ + a: 14
1402
+ + pk: "PK#A14"
1403
+ + sk: "SK#A14"
1404
+
1405
+ + [PK#A15 / SK#A15]
1406
+ + PK: "PK#A15"
1407
+ + SK: "SK#A15"
1408
+ + _docVersion: 0
1409
+ + _tag: "A"
1410
+ + a: 15
1411
+ + pk: "PK#A15"
1412
+ + sk: "SK#A15"
1413
+
1414
+ + [PK#A16 / SK#A16]
1415
+ + PK: "PK#A16"
1416
+ + SK: "SK#A16"
1417
+ + _docVersion: 0
1418
+ + _tag: "A"
1419
+ + a: 16
1420
+ + pk: "PK#A16"
1421
+ + sk: "SK#A16"
1422
+
1423
+ + [PK#A17 / SK#A17]
1424
+ + PK: "PK#A17"
1425
+ + SK: "SK#A17"
1426
+ + _docVersion: 0
1427
+ + _tag: "A"
1428
+ + a: 17
1429
+ + pk: "PK#A17"
1430
+ + sk: "SK#A17"
1431
+
1432
+ + [PK#A18 / SK#A18]
1433
+ + PK: "PK#A18"
1434
+ + SK: "SK#A18"
1435
+ + _docVersion: 0
1436
+ + _tag: "A"
1437
+ + a: 18
1438
+ + pk: "PK#A18"
1439
+ + sk: "SK#A18"
1440
+
1441
+ + [PK#A19 / SK#A19]
1442
+ + PK: "PK#A19"
1443
+ + SK: "SK#A19"
1444
+ + _docVersion: 0
1445
+ + _tag: "A"
1446
+ + a: 19
1447
+ + pk: "PK#A19"
1448
+ + sk: "SK#A19"
1449
+
1450
+ + [PK#A2 / SK#A2]
1451
+ + PK: "PK#A2"
1452
+ + SK: "SK#A2"
1453
+ + _docVersion: 0
1454
+ + _tag: "A"
1455
+ + a: 2
1456
+ + pk: "PK#A2"
1457
+ + sk: "SK#A2"
1458
+
1459
+ + [PK#A20 / SK#A20]
1460
+ + PK: "PK#A20"
1461
+ + SK: "SK#A20"
1462
+ + _docVersion: 0
1463
+ + _tag: "A"
1464
+ + a: 20
1465
+ + pk: "PK#A20"
1466
+ + sk: "SK#A20"
1467
+
1468
+ + [PK#A21 / SK#A21]
1469
+ + PK: "PK#A21"
1470
+ + SK: "SK#A21"
1471
+ + _docVersion: 0
1472
+ + _tag: "A"
1473
+ + a: 21
1474
+ + pk: "PK#A21"
1475
+ + sk: "SK#A21"
1476
+
1477
+ + [PK#A22 / SK#A22]
1478
+ + PK: "PK#A22"
1479
+ + SK: "SK#A22"
1480
+ + _docVersion: 0
1481
+ + _tag: "A"
1482
+ + a: 22
1483
+ + pk: "PK#A22"
1484
+ + sk: "SK#A22"
1485
+
1486
+ + [PK#A23 / SK#A23]
1487
+ + PK: "PK#A23"
1488
+ + SK: "SK#A23"
1489
+ + _docVersion: 0
1490
+ + _tag: "A"
1491
+ + a: 23
1492
+ + pk: "PK#A23"
1493
+ + sk: "SK#A23"
1494
+
1495
+ + [PK#A24 / SK#A24]
1496
+ + PK: "PK#A24"
1497
+ + SK: "SK#A24"
1498
+ + _docVersion: 0
1499
+ + _tag: "A"
1500
+ + a: 24
1501
+ + pk: "PK#A24"
1502
+ + sk: "SK#A24"
1503
+
1504
+ + [PK#A25 / SK#A25]
1505
+ + PK: "PK#A25"
1506
+ + SK: "SK#A25"
1507
+ + _docVersion: 0
1508
+ + _tag: "A"
1509
+ + a: 25
1510
+ + pk: "PK#A25"
1511
+ + sk: "SK#A25"
1512
+
1513
+ + [PK#A26 / SK#A26]
1514
+ + PK: "PK#A26"
1515
+ + SK: "SK#A26"
1516
+ + _docVersion: 0
1517
+ + _tag: "A"
1518
+ + a: 26
1519
+ + pk: "PK#A26"
1520
+ + sk: "SK#A26"
1521
+
1522
+ + [PK#A27 / SK#A27]
1523
+ + PK: "PK#A27"
1524
+ + SK: "SK#A27"
1525
+ + _docVersion: 0
1526
+ + _tag: "A"
1527
+ + a: 27
1528
+ + pk: "PK#A27"
1529
+ + sk: "SK#A27"
1530
+
1531
+ + [PK#A28 / SK#A28]
1532
+ + PK: "PK#A28"
1533
+ + SK: "SK#A28"
1534
+ + _docVersion: 0
1535
+ + _tag: "A"
1536
+ + a: 28
1537
+ + pk: "PK#A28"
1538
+ + sk: "SK#A28"
1539
+
1540
+ + [PK#A29 / SK#A29]
1541
+ + PK: "PK#A29"
1542
+ + SK: "SK#A29"
1543
+ + _docVersion: 0
1544
+ + _tag: "A"
1545
+ + a: 29
1546
+ + pk: "PK#A29"
1547
+ + sk: "SK#A29"
1548
+
1549
+ + [PK#A3 / SK#A3]
1550
+ + PK: "PK#A3"
1551
+ + SK: "SK#A3"
1552
+ + _docVersion: 0
1553
+ + _tag: "A"
1554
+ + a: 3
1555
+ + pk: "PK#A3"
1556
+ + sk: "SK#A3"
1557
+
1558
+ + [PK#A30 / SK#A30]
1559
+ + PK: "PK#A30"
1560
+ + SK: "SK#A30"
1561
+ + _docVersion: 0
1562
+ + _tag: "A"
1563
+ + a: 30
1564
+ + pk: "PK#A30"
1565
+ + sk: "SK#A30"
1566
+
1567
+ + [PK#A31 / SK#A31]
1568
+ + PK: "PK#A31"
1569
+ + SK: "SK#A31"
1570
+ + _docVersion: 0
1571
+ + _tag: "A"
1572
+ + a: 31
1573
+ + pk: "PK#A31"
1574
+ + sk: "SK#A31"
1575
+
1576
+ + [PK#A32 / SK#A32]
1577
+ + PK: "PK#A32"
1578
+ + SK: "SK#A32"
1579
+ + _docVersion: 0
1580
+ + _tag: "A"
1581
+ + a: 32
1582
+ + pk: "PK#A32"
1583
+ + sk: "SK#A32"
1584
+
1585
+ + [PK#A33 / SK#A33]
1586
+ + PK: "PK#A33"
1587
+ + SK: "SK#A33"
1588
+ + _docVersion: 0
1589
+ + _tag: "A"
1590
+ + a: 33
1591
+ + pk: "PK#A33"
1592
+ + sk: "SK#A33"
1593
+
1594
+ + [PK#A34 / SK#A34]
1595
+ + PK: "PK#A34"
1596
+ + SK: "SK#A34"
1597
+ + _docVersion: 0
1598
+ + _tag: "A"
1599
+ + a: 34
1600
+ + pk: "PK#A34"
1601
+ + sk: "SK#A34"
1602
+
1603
+ + [PK#A35 / SK#A35]
1604
+ + PK: "PK#A35"
1605
+ + SK: "SK#A35"
1606
+ + _docVersion: 0
1607
+ + _tag: "A"
1608
+ + a: 35
1609
+ + pk: "PK#A35"
1610
+ + sk: "SK#A35"
1611
+
1612
+ + [PK#A36 / SK#A36]
1613
+ + PK: "PK#A36"
1614
+ + SK: "SK#A36"
1615
+ + _docVersion: 0
1616
+ + _tag: "A"
1617
+ + a: 36
1618
+ + pk: "PK#A36"
1619
+ + sk: "SK#A36"
1620
+
1621
+ + [PK#A37 / SK#A37]
1622
+ + PK: "PK#A37"
1623
+ + SK: "SK#A37"
1624
+ + _docVersion: 0
1625
+ + _tag: "A"
1626
+ + a: 37
1627
+ + pk: "PK#A37"
1628
+ + sk: "SK#A37"
1629
+
1630
+ + [PK#A38 / SK#A38]
1631
+ + PK: "PK#A38"
1632
+ + SK: "SK#A38"
1633
+ + _docVersion: 0
1634
+ + _tag: "A"
1635
+ + a: 38
1636
+ + pk: "PK#A38"
1637
+ + sk: "SK#A38"
1638
+
1639
+ + [PK#A39 / SK#A39]
1640
+ + PK: "PK#A39"
1641
+ + SK: "SK#A39"
1642
+ + _docVersion: 0
1643
+ + _tag: "A"
1644
+ + a: 39
1645
+ + pk: "PK#A39"
1646
+ + sk: "SK#A39"
1647
+
1648
+ + [PK#A4 / SK#A4]
1649
+ + PK: "PK#A4"
1650
+ + SK: "SK#A4"
1651
+ + _docVersion: 0
1652
+ + _tag: "A"
1653
+ + a: 4
1654
+ + pk: "PK#A4"
1655
+ + sk: "SK#A4"
1656
+
1657
+ + [PK#A40 / SK#A40]
1658
+ + PK: "PK#A40"
1659
+ + SK: "SK#A40"
1660
+ + _docVersion: 0
1661
+ + _tag: "A"
1662
+ + a: 40
1663
+ + pk: "PK#A40"
1664
+ + sk: "SK#A40"
1665
+
1666
+ + [PK#A41 / SK#A41]
1667
+ + PK: "PK#A41"
1668
+ + SK: "SK#A41"
1669
+ + _docVersion: 0
1670
+ + _tag: "A"
1671
+ + a: 41
1672
+ + pk: "PK#A41"
1673
+ + sk: "SK#A41"
1674
+
1675
+ + [PK#A42 / SK#A42]
1676
+ + PK: "PK#A42"
1677
+ + SK: "SK#A42"
1678
+ + _docVersion: 0
1679
+ + _tag: "A"
1680
+ + a: 42
1681
+ + pk: "PK#A42"
1682
+ + sk: "SK#A42"
1683
+
1684
+ + [PK#A43 / SK#A43]
1685
+ + PK: "PK#A43"
1686
+ + SK: "SK#A43"
1687
+ + _docVersion: 0
1688
+ + _tag: "A"
1689
+ + a: 43
1690
+ + pk: "PK#A43"
1691
+ + sk: "SK#A43"
1692
+
1693
+ + [PK#A44 / SK#A44]
1694
+ + PK: "PK#A44"
1695
+ + SK: "SK#A44"
1696
+ + _docVersion: 0
1697
+ + _tag: "A"
1698
+ + a: 44
1699
+ + pk: "PK#A44"
1700
+ + sk: "SK#A44"
1701
+
1702
+ + [PK#A45 / SK#A45]
1703
+ + PK: "PK#A45"
1704
+ + SK: "SK#A45"
1705
+ + _docVersion: 0
1706
+ + _tag: "A"
1707
+ + a: 45
1708
+ + pk: "PK#A45"
1709
+ + sk: "SK#A45"
1710
+
1711
+ + [PK#A46 / SK#A46]
1712
+ + PK: "PK#A46"
1713
+ + SK: "SK#A46"
1714
+ + _docVersion: 0
1715
+ + _tag: "A"
1716
+ + a: 46
1717
+ + pk: "PK#A46"
1718
+ + sk: "SK#A46"
1719
+
1720
+ + [PK#A47 / SK#A47]
1721
+ + PK: "PK#A47"
1722
+ + SK: "SK#A47"
1723
+ + _docVersion: 0
1724
+ + _tag: "A"
1725
+ + a: 47
1726
+ + pk: "PK#A47"
1727
+ + sk: "SK#A47"
1728
+
1729
+ + [PK#A48 / SK#A48]
1730
+ + PK: "PK#A48"
1731
+ + SK: "SK#A48"
1732
+ + _docVersion: 0
1733
+ + _tag: "A"
1734
+ + a: 48
1735
+ + pk: "PK#A48"
1736
+ + sk: "SK#A48"
1737
+
1738
+ + [PK#A49 / SK#A49]
1739
+ + PK: "PK#A49"
1740
+ + SK: "SK#A49"
1741
+ + _docVersion: 0
1742
+ + _tag: "A"
1743
+ + a: 49
1744
+ + pk: "PK#A49"
1745
+ + sk: "SK#A49"
1746
+
1747
+ + [PK#A5 / SK#A5]
1748
+ + PK: "PK#A5"
1749
+ + SK: "SK#A5"
1750
+ + _docVersion: 0
1751
+ + _tag: "A"
1752
+ + a: 5
1753
+ + pk: "PK#A5"
1754
+ + sk: "SK#A5"
1755
+
1756
+ + [PK#A50 / SK#A50]
1757
+ + PK: "PK#A50"
1758
+ + SK: "SK#A50"
1759
+ + _docVersion: 0
1760
+ + _tag: "A"
1761
+ + a: 50
1762
+ + pk: "PK#A50"
1763
+ + sk: "SK#A50"
1764
+
1765
+ + [PK#A51 / SK#A51]
1766
+ + PK: "PK#A51"
1767
+ + SK: "SK#A51"
1768
+ + _docVersion: 0
1769
+ + _tag: "A"
1770
+ + a: 51
1771
+ + pk: "PK#A51"
1772
+ + sk: "SK#A51"
1773
+
1774
+ + [PK#A52 / SK#A52]
1775
+ + PK: "PK#A52"
1776
+ + SK: "SK#A52"
1777
+ + _docVersion: 0
1778
+ + _tag: "A"
1779
+ + a: 52
1780
+ + pk: "PK#A52"
1781
+ + sk: "SK#A52"
1782
+
1783
+ + [PK#A53 / SK#A53]
1784
+ + PK: "PK#A53"
1785
+ + SK: "SK#A53"
1786
+ + _docVersion: 0
1787
+ + _tag: "A"
1788
+ + a: 53
1789
+ + pk: "PK#A53"
1790
+ + sk: "SK#A53"
1791
+
1792
+ + [PK#A54 / SK#A54]
1793
+ + PK: "PK#A54"
1794
+ + SK: "SK#A54"
1795
+ + _docVersion: 0
1796
+ + _tag: "A"
1797
+ + a: 54
1798
+ + pk: "PK#A54"
1799
+ + sk: "SK#A54"
1800
+
1801
+ + [PK#A55 / SK#A55]
1802
+ + PK: "PK#A55"
1803
+ + SK: "SK#A55"
1804
+ + _docVersion: 0
1805
+ + _tag: "A"
1806
+ + a: 55
1807
+ + pk: "PK#A55"
1808
+ + sk: "SK#A55"
1809
+
1810
+ + [PK#A56 / SK#A56]
1811
+ + PK: "PK#A56"
1812
+ + SK: "SK#A56"
1813
+ + _docVersion: 0
1814
+ + _tag: "A"
1815
+ + a: 56
1816
+ + pk: "PK#A56"
1817
+ + sk: "SK#A56"
1818
+
1819
+ + [PK#A57 / SK#A57]
1820
+ + PK: "PK#A57"
1821
+ + SK: "SK#A57"
1822
+ + _docVersion: 0
1823
+ + _tag: "A"
1824
+ + a: 57
1825
+ + pk: "PK#A57"
1826
+ + sk: "SK#A57"
1827
+
1828
+ + [PK#A58 / SK#A58]
1829
+ + PK: "PK#A58"
1830
+ + SK: "SK#A58"
1831
+ + _docVersion: 0
1832
+ + _tag: "A"
1833
+ + a: 58
1834
+ + pk: "PK#A58"
1835
+ + sk: "SK#A58"
1836
+
1837
+ + [PK#A59 / SK#A59]
1838
+ + PK: "PK#A59"
1839
+ + SK: "SK#A59"
1840
+ + _docVersion: 0
1841
+ + _tag: "A"
1842
+ + a: 59
1843
+ + pk: "PK#A59"
1844
+ + sk: "SK#A59"
1845
+
1846
+ + [PK#A6 / SK#A6]
1847
+ + PK: "PK#A6"
1848
+ + SK: "SK#A6"
1849
+ + _docVersion: 0
1850
+ + _tag: "A"
1851
+ + a: 6
1852
+ + pk: "PK#A6"
1853
+ + sk: "SK#A6"
1854
+
1855
+ + [PK#A60 / SK#A60]
1856
+ + PK: "PK#A60"
1857
+ + SK: "SK#A60"
1858
+ + _docVersion: 0
1859
+ + _tag: "A"
1860
+ + a: 60
1861
+ + pk: "PK#A60"
1862
+ + sk: "SK#A60"
1863
+
1864
+ + [PK#A61 / SK#A61]
1865
+ + PK: "PK#A61"
1866
+ + SK: "SK#A61"
1867
+ + _docVersion: 0
1868
+ + _tag: "A"
1869
+ + a: 61
1870
+ + pk: "PK#A61"
1871
+ + sk: "SK#A61"
1872
+
1873
+ + [PK#A62 / SK#A62]
1874
+ + PK: "PK#A62"
1875
+ + SK: "SK#A62"
1876
+ + _docVersion: 0
1877
+ + _tag: "A"
1878
+ + a: 62
1879
+ + pk: "PK#A62"
1880
+ + sk: "SK#A62"
1881
+
1882
+ + [PK#A63 / SK#A63]
1883
+ + PK: "PK#A63"
1884
+ + SK: "SK#A63"
1885
+ + _docVersion: 0
1886
+ + _tag: "A"
1887
+ + a: 63
1888
+ + pk: "PK#A63"
1889
+ + sk: "SK#A63"
1890
+
1891
+ + [PK#A64 / SK#A64]
1892
+ + PK: "PK#A64"
1893
+ + SK: "SK#A64"
1894
+ + _docVersion: 0
1895
+ + _tag: "A"
1896
+ + a: 64
1897
+ + pk: "PK#A64"
1898
+ + sk: "SK#A64"
1899
+
1900
+ + [PK#A65 / SK#A65]
1901
+ + PK: "PK#A65"
1902
+ + SK: "SK#A65"
1903
+ + _docVersion: 0
1904
+ + _tag: "A"
1905
+ + a: 65
1906
+ + pk: "PK#A65"
1907
+ + sk: "SK#A65"
1908
+
1909
+ + [PK#A66 / SK#A66]
1910
+ + PK: "PK#A66"
1911
+ + SK: "SK#A66"
1912
+ + _docVersion: 0
1913
+ + _tag: "A"
1914
+ + a: 66
1915
+ + pk: "PK#A66"
1916
+ + sk: "SK#A66"
1917
+
1918
+ + [PK#A67 / SK#A67]
1919
+ + PK: "PK#A67"
1920
+ + SK: "SK#A67"
1921
+ + _docVersion: 0
1922
+ + _tag: "A"
1923
+ + a: 67
1924
+ + pk: "PK#A67"
1925
+ + sk: "SK#A67"
1926
+
1927
+ + [PK#A68 / SK#A68]
1928
+ + PK: "PK#A68"
1929
+ + SK: "SK#A68"
1930
+ + _docVersion: 0
1931
+ + _tag: "A"
1932
+ + a: 68
1933
+ + pk: "PK#A68"
1934
+ + sk: "SK#A68"
1935
+
1936
+ + [PK#A69 / SK#A69]
1937
+ + PK: "PK#A69"
1938
+ + SK: "SK#A69"
1939
+ + _docVersion: 0
1940
+ + _tag: "A"
1941
+ + a: 69
1942
+ + pk: "PK#A69"
1943
+ + sk: "SK#A69"
1944
+
1945
+ + [PK#A7 / SK#A7]
1946
+ + PK: "PK#A7"
1947
+ + SK: "SK#A7"
1948
+ + _docVersion: 0
1949
+ + _tag: "A"
1950
+ + a: 7
1951
+ + pk: "PK#A7"
1952
+ + sk: "SK#A7"
1953
+
1954
+ + [PK#A70 / SK#A70]
1955
+ + PK: "PK#A70"
1956
+ + SK: "SK#A70"
1957
+ + _docVersion: 0
1958
+ + _tag: "A"
1959
+ + a: 70
1960
+ + pk: "PK#A70"
1961
+ + sk: "SK#A70"
1962
+
1963
+ + [PK#A71 / SK#A71]
1964
+ + PK: "PK#A71"
1965
+ + SK: "SK#A71"
1966
+ + _docVersion: 0
1967
+ + _tag: "A"
1968
+ + a: 71
1969
+ + pk: "PK#A71"
1970
+ + sk: "SK#A71"
1971
+
1972
+ + [PK#A72 / SK#A72]
1973
+ + PK: "PK#A72"
1974
+ + SK: "SK#A72"
1975
+ + _docVersion: 0
1976
+ + _tag: "A"
1977
+ + a: 72
1978
+ + pk: "PK#A72"
1979
+ + sk: "SK#A72"
1980
+
1981
+ + [PK#A73 / SK#A73]
1982
+ + PK: "PK#A73"
1983
+ + SK: "SK#A73"
1984
+ + _docVersion: 0
1985
+ + _tag: "A"
1986
+ + a: 73
1987
+ + pk: "PK#A73"
1988
+ + sk: "SK#A73"
1989
+
1990
+ + [PK#A74 / SK#A74]
1991
+ + PK: "PK#A74"
1992
+ + SK: "SK#A74"
1993
+ + _docVersion: 0
1994
+ + _tag: "A"
1995
+ + a: 74
1996
+ + pk: "PK#A74"
1997
+ + sk: "SK#A74"
1998
+
1999
+ + [PK#A75 / SK#A75]
2000
+ + PK: "PK#A75"
2001
+ + SK: "SK#A75"
2002
+ + _docVersion: 0
2003
+ + _tag: "A"
2004
+ + a: 75
2005
+ + pk: "PK#A75"
2006
+ + sk: "SK#A75"
2007
+
2008
+ + [PK#A76 / SK#A76]
2009
+ + PK: "PK#A76"
2010
+ + SK: "SK#A76"
2011
+ + _docVersion: 0
2012
+ + _tag: "A"
2013
+ + a: 76
2014
+ + pk: "PK#A76"
2015
+ + sk: "SK#A76"
2016
+
2017
+ + [PK#A77 / SK#A77]
2018
+ + PK: "PK#A77"
2019
+ + SK: "SK#A77"
2020
+ + _docVersion: 0
2021
+ + _tag: "A"
2022
+ + a: 77
2023
+ + pk: "PK#A77"
2024
+ + sk: "SK#A77"
2025
+
2026
+ + [PK#A78 / SK#A78]
2027
+ + PK: "PK#A78"
2028
+ + SK: "SK#A78"
2029
+ + _docVersion: 0
2030
+ + _tag: "A"
2031
+ + a: 78
2032
+ + pk: "PK#A78"
2033
+ + sk: "SK#A78"
2034
+
2035
+ + [PK#A79 / SK#A79]
2036
+ + PK: "PK#A79"
2037
+ + SK: "SK#A79"
2038
+ + _docVersion: 0
2039
+ + _tag: "A"
2040
+ + a: 79
2041
+ + pk: "PK#A79"
2042
+ + sk: "SK#A79"
2043
+
2044
+ + [PK#A8 / SK#A8]
2045
+ + PK: "PK#A8"
2046
+ + SK: "SK#A8"
2047
+ + _docVersion: 0
2048
+ + _tag: "A"
2049
+ + a: 8
2050
+ + pk: "PK#A8"
2051
+ + sk: "SK#A8"
2052
+
2053
+ + [PK#A80 / SK#A80]
2054
+ + PK: "PK#A80"
2055
+ + SK: "SK#A80"
2056
+ + _docVersion: 0
2057
+ + _tag: "A"
2058
+ + a: 80
2059
+ + pk: "PK#A80"
2060
+ + sk: "SK#A80"
2061
+
2062
+ + [PK#A81 / SK#A81]
2063
+ + PK: "PK#A81"
2064
+ + SK: "SK#A81"
2065
+ + _docVersion: 0
2066
+ + _tag: "A"
2067
+ + a: 81
2068
+ + pk: "PK#A81"
2069
+ + sk: "SK#A81"
2070
+
2071
+ + [PK#A82 / SK#A82]
2072
+ + PK: "PK#A82"
2073
+ + SK: "SK#A82"
2074
+ + _docVersion: 0
2075
+ + _tag: "A"
2076
+ + a: 82
2077
+ + pk: "PK#A82"
2078
+ + sk: "SK#A82"
2079
+
2080
+ + [PK#A83 / SK#A83]
2081
+ + PK: "PK#A83"
2082
+ + SK: "SK#A83"
2083
+ + _docVersion: 0
2084
+ + _tag: "A"
2085
+ + a: 83
2086
+ + pk: "PK#A83"
2087
+ + sk: "SK#A83"
2088
+
2089
+ + [PK#A84 / SK#A84]
2090
+ + PK: "PK#A84"
2091
+ + SK: "SK#A84"
2092
+ + _docVersion: 0
2093
+ + _tag: "A"
2094
+ + a: 84
2095
+ + pk: "PK#A84"
2096
+ + sk: "SK#A84"
2097
+
2098
+ + [PK#A85 / SK#A85]
2099
+ + PK: "PK#A85"
2100
+ + SK: "SK#A85"
2101
+ + _docVersion: 0
2102
+ + _tag: "A"
2103
+ + a: 85
2104
+ + pk: "PK#A85"
2105
+ + sk: "SK#A85"
2106
+
2107
+ + [PK#A86 / SK#A86]
2108
+ + PK: "PK#A86"
2109
+ + SK: "SK#A86"
2110
+ + _docVersion: 0
2111
+ + _tag: "A"
2112
+ + a: 86
2113
+ + pk: "PK#A86"
2114
+ + sk: "SK#A86"
2115
+
2116
+ + [PK#A87 / SK#A87]
2117
+ + PK: "PK#A87"
2118
+ + SK: "SK#A87"
2119
+ + _docVersion: 0
2120
+ + _tag: "A"
2121
+ + a: 87
2122
+ + pk: "PK#A87"
2123
+ + sk: "SK#A87"
2124
+
2125
+ + [PK#A88 / SK#A88]
2126
+ + PK: "PK#A88"
2127
+ + SK: "SK#A88"
2128
+ + _docVersion: 0
2129
+ + _tag: "A"
2130
+ + a: 88
2131
+ + pk: "PK#A88"
2132
+ + sk: "SK#A88"
2133
+
2134
+ + [PK#A89 / SK#A89]
2135
+ + PK: "PK#A89"
2136
+ + SK: "SK#A89"
2137
+ + _docVersion: 0
2138
+ + _tag: "A"
2139
+ + a: 89
2140
+ + pk: "PK#A89"
2141
+ + sk: "SK#A89"
2142
+
2143
+ + [PK#A9 / SK#A9]
2144
+ + PK: "PK#A9"
2145
+ + SK: "SK#A9"
2146
+ + _docVersion: 0
2147
+ + _tag: "A"
2148
+ + a: 9
2149
+ + pk: "PK#A9"
2150
+ + sk: "SK#A9"
2151
+
2152
+ + [PK#A90 / SK#A90]
2153
+ + PK: "PK#A90"
2154
+ + SK: "SK#A90"
2155
+ + _docVersion: 0
2156
+ + _tag: "A"
2157
+ + a: 90
2158
+ + pk: "PK#A90"
2159
+ + sk: "SK#A90"
2160
+
2161
+ + [PK#A91 / SK#A91]
2162
+ + PK: "PK#A91"
2163
+ + SK: "SK#A91"
2164
+ + _docVersion: 0
2165
+ + _tag: "A"
2166
+ + a: 91
2167
+ + pk: "PK#A91"
2168
+ + sk: "SK#A91"
2169
+
2170
+ + [PK#A92 / SK#A92]
2171
+ + PK: "PK#A92"
2172
+ + SK: "SK#A92"
2173
+ + _docVersion: 0
2174
+ + _tag: "A"
2175
+ + a: 92
2176
+ + pk: "PK#A92"
2177
+ + sk: "SK#A92"
2178
+
2179
+ + [PK#A93 / SK#A93]
2180
+ + PK: "PK#A93"
2181
+ + SK: "SK#A93"
2182
+ + _docVersion: 0
2183
+ + _tag: "A"
2184
+ + a: 93
2185
+ + pk: "PK#A93"
2186
+ + sk: "SK#A93"
2187
+
2188
+ + [PK#A94 / SK#A94]
2189
+ + PK: "PK#A94"
2190
+ + SK: "SK#A94"
2191
+ + _docVersion: 0
2192
+ + _tag: "A"
2193
+ + a: 94
2194
+ + pk: "PK#A94"
2195
+ + sk: "SK#A94"
2196
+
2197
+ + [PK#A95 / SK#A95]
2198
+ + PK: "PK#A95"
2199
+ + SK: "SK#A95"
2200
+ + _docVersion: 0
2201
+ + _tag: "A"
2202
+ + a: 95
2203
+ + pk: "PK#A95"
2204
+ + sk: "SK#A95"
2205
+
2206
+ + [PK#A96 / SK#A96]
2207
+ + PK: "PK#A96"
2208
+ + SK: "SK#A96"
2209
+ + _docVersion: 0
2210
+ + _tag: "A"
2211
+ + a: 96
2212
+ + pk: "PK#A96"
2213
+ + sk: "SK#A96"
2214
+
2215
+ + [PK#A97 / SK#A97]
2216
+ + PK: "PK#A97"
2217
+ + SK: "SK#A97"
2218
+ + _docVersion: 0
2219
+ + _tag: "A"
2220
+ + a: 97
2221
+ + pk: "PK#A97"
2222
+ + sk: "SK#A97"
2223
+
2224
+ + [PK#A98 / SK#A98]
2225
+ + PK: "PK#A98"
2226
+ + SK: "SK#A98"
2227
+ + _docVersion: 0
2228
+ + _tag: "A"
2229
+ + a: 98
2230
+ + pk: "PK#A98"
2231
+ + sk: "SK#A98"
2232
+
2233
+ + [PK#A99 / SK#A99]
2234
+ + PK: "PK#A99"
2235
+ + SK: "SK#A99"
2236
+ + _docVersion: 0
2237
+ + _tag: "A"
2238
+ + a: 99
2239
+ + pk: "PK#A99"
2240
+ + sk: "SK#A99"
2241
+
2242
+ + [PK#UPDATE / SK#UPDATE]
2243
+ + PK: "PK#UPDATE"
2244
+ + SK: "SK#UPDATE"
2245
+ + _docVersion: 1
2246
+ + _tag: "B"
2247
+ + b: "baz"
2248
+ + pk: "PK#UPDATE"
2249
+ + sk: "SK#UPDATE"
2250
+
2251
+ + [PK4 / PK4]
2252
+ + PK: "PK4"
2253
+ + SK: "PK4"
2254
+ + _docVersion: 0
2255
+ + _tag: "A"
2256
+ + a: 4
2257
+ + pk: "PK4"
2258
+ + sk: "PK4"
2259
+
2260
+ + [PK5 / PK5]
2261
+ + PK: "PK5"
2262
+ + SK: "PK5"
2263
+ + _docVersion: 0
2264
+ + _tag: "A"
2265
+ + a: 5
2266
+ + pk: "PK5"
2267
+ + sk: "PK5"
2268
+
2269
+ + [PK6 / SK6]
2270
+ + PK: "PK6"
2271
+ + SK: "SK6"
2272
+ + _docVersion: 0
2273
+ + _tag: "B"
2274
+ + b: "baz"
2275
+ + pk: "PK6"
2276
+ + sk: "SK6"
2277
+ `)
2176
2278
  //#endregion
2177
2279
  })
2178
2280