@fireproof/core 0.20.0-dev-preview-40 → 0.20.0-dev-preview-50

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/README.md +6 -4
  2. package/deno/index.js +2 -2
  3. package/deno/index.js.map +1 -1
  4. package/deno.json +3 -2
  5. package/index.cjs +955 -599
  6. package/index.cjs.map +1 -1
  7. package/index.d.cts +334 -127
  8. package/index.d.ts +334 -127
  9. package/index.js +939 -582
  10. package/index.js.map +1 -1
  11. package/indexeddb/index.cjs.map +1 -1
  12. package/indexeddb/index.js.map +1 -1
  13. package/indexeddb/metafile-cjs.json +1 -1
  14. package/indexeddb/metafile-esm.json +1 -1
  15. package/metafile-cjs.json +1 -1
  16. package/metafile-esm.json +1 -1
  17. package/package.json +7 -5
  18. package/react/index.cjs +17 -9
  19. package/react/index.cjs.map +1 -1
  20. package/react/index.d.cts +5 -4
  21. package/react/index.d.ts +5 -4
  22. package/react/index.js +17 -9
  23. package/react/index.js.map +1 -1
  24. package/react/metafile-cjs.json +1 -1
  25. package/react/metafile-esm.json +1 -1
  26. package/tests/blockstore/interceptor-gateway.test.ts +15 -1
  27. package/tests/blockstore/keyed-crypto-indexeddb-file.test.ts +8 -18
  28. package/tests/blockstore/keyed-crypto.test.ts +31 -53
  29. package/tests/blockstore/loader.test.ts +21 -19
  30. package/tests/blockstore/store.test.ts +52 -56
  31. package/tests/blockstore/transaction.test.ts +13 -11
  32. package/tests/fireproof/all-gateway.test.ts +53 -50
  33. package/tests/fireproof/attachable.test.ts +356 -0
  34. package/tests/fireproof/crdt.test.ts +100 -60
  35. package/tests/fireproof/database.test.ts +95 -54
  36. package/tests/fireproof/fireproof.test.ts +58 -55
  37. package/tests/fireproof/hello.test.ts +4 -4
  38. package/tests/fireproof/indexer.test.ts +44 -44
  39. package/tests/fireproof/stable-cid.test.ts +69 -0
  40. package/tests/fireproof/utils.test.ts +21 -10
  41. package/tests/gateway/file/loader-config.test.ts +25 -25
  42. package/tests/gateway/fp-envelope-serialize.test.ts +8 -8
  43. package/tests/gateway/indexeddb/loader-config.test.ts +6 -6
  44. package/tests/helpers.ts +81 -2
  45. package/tests/react/useFireproof.test.tsx +59 -17
@@ -59,19 +59,19 @@ describe("basic Ledger with record", function () {
59
59
  await db.close();
60
60
  await db.destroy();
61
61
  });
62
- beforeEach(async function () {
62
+ beforeEach(async () => {
63
63
  await sthis.start();
64
64
  db = fireproof("factory-name");
65
65
  const ok = await db.put<Doc>({ _id: "hello", value: "world" });
66
66
  expect(ok.id).toBe("hello");
67
67
  });
68
- it("should get", async function () {
68
+ it("should get", async () => {
69
69
  const doc = await db.get<Doc>("hello");
70
70
  expect(doc).toBeTruthy();
71
71
  expect(doc._id).toBe("hello");
72
72
  expect(doc.value).toBe("world");
73
73
  });
74
- it("should update", async function () {
74
+ it("should update", async () => {
75
75
  const ok = await db.put({ _id: "hello", value: "universe" });
76
76
  expect(ok.id).toBe("hello");
77
77
  const doc = await db.get<Doc>("hello");
@@ -79,20 +79,20 @@ describe("basic Ledger with record", function () {
79
79
  expect(doc._id).toBe("hello");
80
80
  expect(doc.value).toBe("universe");
81
81
  });
82
- it("should del last record", async function () {
82
+ it("should del last record", async () => {
83
83
  const ok = await db.del("hello");
84
84
  expect(ok.id).toBe("hello");
85
85
 
86
86
  const e = await db.get("hello").catch((e) => e);
87
87
  expect(e.message).toMatch(/Not found/);
88
88
  });
89
- it("has changes", async function () {
89
+ it("has changes", async () => {
90
90
  const { rows } = await db.changes([]);
91
91
  expect(rows.length).toBe(1);
92
92
  expect(rows[0].key).toBe("hello");
93
93
  expect(rows[0].value._id).toBe("hello");
94
94
  });
95
- it("is not persisted", async function () {
95
+ it("is not persisted", async () => {
96
96
  const db2 = fireproof("factory-name");
97
97
  const { rows } = await db2.changes([]);
98
98
  expect(rows.length).toBe(1);
@@ -114,7 +114,7 @@ describe("named Ledger with record", function () {
114
114
  await db.close();
115
115
  await db.destroy();
116
116
  });
117
- beforeEach(async function () {
117
+ beforeEach(async () => {
118
118
  await sthis.start();
119
119
  db = fireproof("test-db-name");
120
120
  /** @type {Doc} */
@@ -122,13 +122,13 @@ describe("named Ledger with record", function () {
122
122
  const ok = await db.put(doc);
123
123
  expect(ok.id).toBe("hello");
124
124
  });
125
- it("should get", async function () {
125
+ it("should get", async () => {
126
126
  const doc = await db.get<Doc>("hello");
127
127
  expect(doc).toBeTruthy();
128
128
  expect(doc._id).toBe("hello");
129
129
  expect(doc.value).toBe("world");
130
130
  });
131
- it("should update", async function () {
131
+ it("should update", async () => {
132
132
  const ok = await db.put({ _id: "hello", value: "universe" });
133
133
  expect(ok.id).toBe("hello");
134
134
  const doc = await db.get<Doc>("hello");
@@ -136,20 +136,61 @@ describe("named Ledger with record", function () {
136
136
  expect(doc._id).toBe("hello");
137
137
  expect(doc.value).toBe("universe");
138
138
  });
139
- it("should del last record", async function () {
139
+ it("should update with null value", async function () {
140
+ const ok = await db.put({ _id: "hello", value: null });
141
+ expect(ok.id).toBe("hello");
142
+ const doc = await db.get<Doc>("hello");
143
+ expect(doc).toBeTruthy();
144
+ expect(doc._id).toBe("hello");
145
+ expect(doc.value).toBeNull();
146
+ expect(Object.keys(doc).includes("value")).toBeTruthy();
147
+ });
148
+ it("should update with undefined value", async function () {
149
+ const ok = await db.put({ _id: "hello", value: undefined });
150
+ expect(ok.id).toBe("hello");
151
+ const doc = await db.get<Doc>("hello");
152
+ expect(doc).toBeTruthy();
153
+ expect(doc._id).toBe("hello");
154
+
155
+ // expect 'value' not to be in keys
156
+ expect(Object.keys(doc).includes("value")).toBeFalsy();
157
+ });
158
+ it("should update with NaN value", async function () {
159
+ const ok = await db.put({ _id: "hello", value: NaN });
160
+ expect(ok.id).toBe("hello");
161
+ const doc = await db.get<Doc>("hello");
162
+ expect(doc).toBeTruthy();
163
+ expect(doc._id).toBe("hello");
164
+
165
+ // expect 'value' not to be in keys
166
+ expect(Object.keys(doc).includes("value")).toBeFalsy();
167
+ });
168
+ it("should not update with Infinity value", async function () {
169
+ const ok = await db.put({ _id: "hello", value: Infinity }).catch((e) => e);
170
+ expect(ok.message).toMatch(/IPLD/);
171
+ });
172
+ it("should not update with undefined array value", async function () {
173
+ const ok = await db.put({ _id: "hello", value: [undefined] }).catch((e) => e);
174
+ expect(ok.message).toMatch(/IPLD/);
175
+ });
176
+ it("should not update with NaN array value", async function () {
177
+ const ok = await db.put({ _id: "hello", value: [NaN] }).catch((e) => e);
178
+ expect(ok.message).toMatch(/IPLD/);
179
+ });
180
+ it("should del last record", async () => {
140
181
  const ok = await db.del("hello");
141
182
  expect(ok.id).toBe("hello");
142
183
 
143
184
  const e = await db.get("hello").catch((e) => e);
144
185
  expect(e.message).toMatch(/Not found/);
145
186
  });
146
- it("has changes", async function () {
187
+ it("has changes", async () => {
147
188
  const { rows } = await db.changes([]);
148
189
  expect(rows.length).toBe(1);
149
190
  expect(rows[0].key).toBe("hello");
150
191
  expect(rows[0].value._id).toBe("hello");
151
192
  });
152
- it("should have a key", async function () {
193
+ it("should have a key", async () => {
153
194
  const { rows } = await db.changes([]);
154
195
  expect(rows.length).toBe(1);
155
196
  const blocks = db.ledger.crdt.blockstore as bs.EncryptedBlockstore;
@@ -161,7 +202,7 @@ describe("named Ledger with record", function () {
161
202
  // expect(loader.keyId?.length).toBe(64);
162
203
  // expect(loader.key).not.toBe(loader.keyId);
163
204
  });
164
- it("should work right with a sequence of changes", async function () {
205
+ it("should work right with a sequence of changes", async () => {
165
206
  const numDocs = 10;
166
207
  for (let i = 0; i < numDocs; i++) {
167
208
  const doc = { _id: `id-${i}`, hello: "world" };
@@ -198,7 +239,7 @@ describe("named Ledger with record", function () {
198
239
  expect(rows4.length).toBe(5);
199
240
  });
200
241
 
201
- it("should work right after compaction", async function () {
242
+ it("should work right after compaction", async () => {
202
243
  const numDocs = 10;
203
244
  for (let i = 0; i < numDocs; i++) {
204
245
  const doc = { _id: `id-${i}`, hello: "world" };
@@ -222,7 +263,7 @@ describe("named Ledger with record", function () {
222
263
  // /** @type {Ledger} */
223
264
  // let db
224
265
  // const writes = []
225
- // beforeEach(async function () {
266
+ // beforeEach(async () =>{
226
267
  // await resetDirectory(dataDir, 'test-parallel-writes')
227
268
  // db = new Ledger('test-parallel-writes', { public: true })
228
269
  // /** @type {Doc} */
@@ -256,7 +297,7 @@ describe("basic Ledger parallel writes / public ordered", () => {
256
297
  expect(crdt.clock.head.length).toBe(1);
257
298
  });
258
299
 
259
- it("has changes ordered", async function () {
300
+ it("has changes ordered", async () => {
260
301
  const { rows, clock } = await db.changes([]);
261
302
  expect(clock[0]).toBe(db.ledger.crdt.clock.head[0]);
262
303
  expect(rows.length).toBe(10);
@@ -299,7 +340,7 @@ describe("basic Ledger parallel writes / public", () => {
299
340
  expect(doc.hello).toBe("world");
300
341
  }
301
342
  });
302
- it("should del all", async function () {
343
+ it("should del all", async () => {
303
344
  for (let i = 0; i < 10; i++) {
304
345
  const id = `id-${i}`;
305
346
  const ok = await db.del(id);
@@ -309,7 +350,7 @@ describe("basic Ledger parallel writes / public", () => {
309
350
  expect(e.message).toMatch(/Not found/);
310
351
  }
311
352
  });
312
- it("should delete all in parallel", async function () {
353
+ it("should delete all in parallel", async () => {
313
354
  const deletes: Promise<DocResponse>[] = [];
314
355
  for (let i = 0; i < 10; i++) {
315
356
  const id = `id-${i}`;
@@ -322,7 +363,7 @@ describe("basic Ledger parallel writes / public", () => {
322
363
  expect(e.message).toMatch(/Not found/);
323
364
  }
324
365
  });
325
- it("has changes not ordered", async function () {
366
+ it("has changes not ordered", async () => {
326
367
  const { rows, clock } = await db.changes([]);
327
368
  expect(clock[0]).toBe(db.ledger.crdt.clock.head[0]);
328
369
  expect(rows.length).toBe(10);
@@ -333,7 +374,7 @@ describe("basic Ledger parallel writes / public", () => {
333
374
  expect(rows[i].clock).toBeTruthy();
334
375
  }
335
376
  });
336
- it("should not have a key", async function () {
377
+ it("should not have a key", async () => {
337
378
  const { rows } = await db.changes([]);
338
379
  expect(rows.length).toBe(10);
339
380
  // expect(db.opts.public).toBeTruthy();
@@ -358,7 +399,7 @@ describe("basic Ledger with subscription", function () {
358
399
  await db.close();
359
400
  await db.destroy();
360
401
  });
361
- beforeEach(async function () {
402
+ beforeEach(async () => {
362
403
  await sthis.start();
363
404
  db = fireproof("factory-name");
364
405
  didRun = 0;
@@ -371,7 +412,7 @@ describe("basic Ledger with subscription", function () {
371
412
  }, true);
372
413
  });
373
414
  });
374
- it("should run on put", async function () {
415
+ it("should run on put", async () => {
375
416
  const all = await db.allDocs();
376
417
  expect(all.rows.length).toBe(0);
377
418
  const doc = { _id: "hello", message: "world" };
@@ -384,7 +425,7 @@ describe("basic Ledger with subscription", function () {
384
425
  expect(ok.id).toBe("hello");
385
426
  expect(didRun).toBe(1);
386
427
  });
387
- it("should unsubscribe", async function () {
428
+ it("should unsubscribe", async () => {
388
429
  unsubscribe();
389
430
  const doc = { _id: "hello", message: "again" };
390
431
  const ok = await db.put(doc);
@@ -402,14 +443,14 @@ describe("basic Ledger with no update subscription", function () {
402
443
  await db.close();
403
444
  await db.destroy();
404
445
  });
405
- beforeEach(async function () {
446
+ beforeEach(async () => {
406
447
  db = fireproof("factory-name");
407
448
  didRun = 0;
408
449
  unsubscribe = db.subscribe(() => {
409
450
  didRun++;
410
451
  });
411
452
  });
412
- it("should run on put", async function () {
453
+ it("xshould run on put", async function () {
413
454
  const all = await db.allDocs();
414
455
  expect(all.rows.length).toBe(0);
415
456
  /** @type {Doc} */
@@ -418,8 +459,8 @@ describe("basic Ledger with no update subscription", function () {
418
459
  const ok = await db.put(doc);
419
460
  expect(ok.id).toBe("hello");
420
461
  expect(didRun).toBe(1);
421
- });
422
- it("should unsubscribe", async function () {
462
+ }, 10000);
463
+ it("should unsubscribe", async () => {
423
464
  unsubscribe();
424
465
  const doc = { _id: "hello", message: "again" };
425
466
  const ok = await db.put(doc);
@@ -438,7 +479,7 @@ describe("ledger with files input", () => {
438
479
  await db.close();
439
480
  await db.destroy();
440
481
  });
441
- beforeEach(async function () {
482
+ beforeEach(async () => {
442
483
  await sthis.start();
443
484
  imagefiles = await buildBlobFiles();
444
485
  db = fireproof("fireproof-with-images");
@@ -453,11 +494,11 @@ describe("ledger with files input", () => {
453
494
  result = await db.put(doc);
454
495
  });
455
496
 
456
- it("Should upload images", async function () {
497
+ it("Should upload images", async () => {
457
498
  expect(result.id).toBe("images-main");
458
499
  });
459
500
 
460
- it("Should fetch the images", async function () {
501
+ it("Should fetch the images", async () => {
461
502
  const doc = await db.get(result.id);
462
503
  const files = doc._files as DocFiles;
463
504
  expect(files).toBeTruthy();
@@ -488,7 +529,7 @@ describe("ledger with files input", () => {
488
529
  // expect(file.name).toBe('fireproof.png') // see https://github.com/fireproof-storage/fireproof/issues/70
489
530
  });
490
531
 
491
- it("should update the file document data without changing the files", async function () {
532
+ it("should update the file document data without changing the files", async () => {
492
533
  interface Doc {
493
534
  type: string;
494
535
  }
@@ -521,7 +562,7 @@ describe("ledger with files input", () => {
521
562
 
522
563
  expect(file.type).toBe(imagefiles[0].file.type);
523
564
  expect(file.size).toBe(imagefiles[0].file.size);
524
- });
565
+ }, 1000000);
525
566
  });
526
567
 
527
568
  describe("StoreURIRuntime", () => {
@@ -551,14 +592,14 @@ describe("StoreURIRuntime", () => {
551
592
  it("default toStoreURIRuntime", () => {
552
593
  expect(JSON.parse(JSON.stringify(toStoreURIRuntime(sthis, "test")))).toEqual({
553
594
  data: {
554
- data: "my://bla/storage?name=test&store=data&storekey=%40test-data%40&suffix=.car&urlGen=fromEnv",
555
- file: "my://bla/storage?name=test&store=data&storekey=%40test-data%40&urlGen=fromEnv",
595
+ car: "my://bla/storage?name=test&store=car&storekey=%40test-data%40&suffix=.car&urlGen=fromEnv",
596
+ file: "my://bla/storage?name=test&store=file&storekey=%40test-data%40&urlGen=fromEnv",
556
597
  meta: "my://bla/storage?name=test&store=meta&storekey=%40test-meta%40&urlGen=fromEnv",
557
598
  wal: "my://bla/storage?name=test&store=wal&storekey=%40test-wal%40&urlGen=fromEnv",
558
599
  },
559
600
  idx: {
560
- data: "my://bla/storage?index=idx&name=test&store=data&storekey=%40test-data-idx%40&suffix=.car&urlGen=fromEnv",
561
- file: "my://bla/storage?index=idx&name=test&store=data&storekey=%40test-data-idx%40&urlGen=fromEnv",
601
+ car: "my://bla/storage?index=idx&name=test&store=car&storekey=%40test-data-idx%40&suffix=.car&urlGen=fromEnv",
602
+ file: "my://bla/storage?index=idx&name=test&store=file&storekey=%40test-data-idx%40&urlGen=fromEnv",
562
603
  meta: "my://bla/storage?index=idx&name=test&store=meta&storekey=%40test-meta-idx%40&urlGen=fromEnv",
563
604
  wal: "my://bla/storage?index=idx&name=test&store=wal&storekey=%40test-wal-idx%40&urlGen=fromEnv",
564
605
  },
@@ -568,14 +609,14 @@ describe("StoreURIRuntime", () => {
568
609
  it("no name toStoreURIRuntime(not more)", () => {
569
610
  expect(JSON.parse(JSON.stringify(toStoreURIRuntime(sthis, "gogo")))).toEqual({
570
611
  data: {
571
- data: "my://bla/storage?name=gogo&store=data&storekey=%40gogo-data%40&suffix=.car&urlGen=fromEnv",
572
- file: "my://bla/storage?name=gogo&store=data&storekey=%40gogo-data%40&urlGen=fromEnv",
612
+ car: "my://bla/storage?name=gogo&store=car&storekey=%40gogo-data%40&suffix=.car&urlGen=fromEnv",
613
+ file: "my://bla/storage?name=gogo&store=file&storekey=%40gogo-data%40&urlGen=fromEnv",
573
614
  meta: "my://bla/storage?name=gogo&store=meta&storekey=%40gogo-meta%40&urlGen=fromEnv",
574
615
  wal: "my://bla/storage?name=gogo&store=wal&storekey=%40gogo-wal%40&urlGen=fromEnv",
575
616
  },
576
617
  idx: {
577
- data: "my://bla/storage?index=idx&name=gogo&store=data&storekey=%40gogo-data-idx%40&suffix=.car&urlGen=fromEnv",
578
- file: "my://bla/storage?index=idx&name=gogo&store=data&storekey=%40gogo-data-idx%40&urlGen=fromEnv",
618
+ car: "my://bla/storage?index=idx&name=gogo&store=car&storekey=%40gogo-data-idx%40&suffix=.car&urlGen=fromEnv",
619
+ file: "my://bla/storage?index=idx&name=gogo&store=file&storekey=%40gogo-data-idx%40&urlGen=fromEnv",
579
620
  meta: "my://bla/storage?index=idx&name=gogo&store=meta&storekey=%40gogo-meta-idx%40&urlGen=fromEnv",
580
621
  wal: "my://bla/storage?index=idx&name=gogo&store=wal&storekey=%40gogo-wal-idx%40&urlGen=fromEnv",
581
622
  },
@@ -589,11 +630,11 @@ describe("StoreURIRuntime", () => {
589
630
  toStoreURIRuntime(sthis, "xxx", {
590
631
  base: "my://storage-base",
591
632
  data: {
592
- data: "my://storage-data?name=yyy",
633
+ car: "my://storage-data?name=yyy",
593
634
  meta: "my://storage-meta",
594
635
  },
595
636
  idx: {
596
- data: "my://storage-idx-data?name=yyy&index=bla",
637
+ car: "my://storage-idx-data?name=yyy&index=bla",
597
638
  meta: "my://storage-idx-meta",
598
639
  },
599
640
  }),
@@ -601,14 +642,14 @@ describe("StoreURIRuntime", () => {
601
642
  ),
602
643
  ).toEqual({
603
644
  data: {
604
- data: "my://storage-data?name=yyy&store=data&storekey=%40yyy-data%40&suffix=.car",
605
- file: "my://storage-data?name=yyy&store=data&storekey=%40yyy-data%40",
645
+ car: "my://storage-data?name=yyy&store=car&storekey=%40yyy-data%40&suffix=.car",
646
+ file: "my://storage-data?name=yyy&store=file&storekey=%40yyy-data%40",
606
647
  meta: "my://storage-meta?name=xxx&store=meta&storekey=%40xxx-meta%40",
607
648
  wal: "my://storage-base?name=xxx&store=wal&storekey=%40xxx-wal%40",
608
649
  },
609
650
  idx: {
610
- data: "my://storage-idx-data?index=bla&name=yyy&store=data&storekey=%40yyy-data-idx%40&suffix=.car",
611
- file: "my://storage-idx-data?index=bla&name=yyy&store=data&storekey=%40yyy-data-idx%40",
651
+ car: "my://storage-idx-data?index=bla&name=yyy&store=car&storekey=%40yyy-data-idx%40&suffix=.car",
652
+ file: "my://storage-idx-data?index=bla&name=yyy&store=file&storekey=%40yyy-data-idx%40",
612
653
  meta: "my://storage-idx-meta?index=idx&name=xxx&store=meta&storekey=%40xxx-meta-idx%40",
613
654
  wal: "my://storage-base?index=idx&name=xxx&store=wal&storekey=%40xxx-wal-idx%40",
614
655
  },
@@ -619,14 +660,14 @@ describe("StoreURIRuntime", () => {
619
660
  sthis.env.delete("FP_STORAGE_URL");
620
661
  expect(JSON.parse(JSON.stringify(toStoreURIRuntime(sthis, "maxi")))).toEqual({
621
662
  data: {
622
- data: "murks://fp?name=maxi&store=data&storekey=%40maxi-data%40&suffix=.car&urlGen=default",
623
- file: "murks://fp?name=maxi&store=data&storekey=%40maxi-data%40&urlGen=default",
663
+ car: "murks://fp?name=maxi&store=car&storekey=%40maxi-data%40&suffix=.car&urlGen=default",
664
+ file: "murks://fp?name=maxi&store=file&storekey=%40maxi-data%40&urlGen=default",
624
665
  meta: "murks://fp?name=maxi&store=meta&storekey=%40maxi-meta%40&urlGen=default",
625
666
  wal: "murks://fp?name=maxi&store=wal&storekey=%40maxi-wal%40&urlGen=default",
626
667
  },
627
668
  idx: {
628
- data: "murks://fp?index=idx&name=maxi&store=data&storekey=%40maxi-data-idx%40&suffix=.car&urlGen=default",
629
- file: "murks://fp?index=idx&name=maxi&store=data&storekey=%40maxi-data-idx%40&urlGen=default",
669
+ car: "murks://fp?index=idx&name=maxi&store=car&storekey=%40maxi-data-idx%40&suffix=.car&urlGen=default",
670
+ file: "murks://fp?index=idx&name=maxi&store=file&storekey=%40maxi-data-idx%40&urlGen=default",
630
671
  meta: "murks://fp?index=idx&name=maxi&store=meta&storekey=%40maxi-meta-idx%40&urlGen=default",
631
672
  wal: "murks://fp?index=idx&name=maxi&store=wal&storekey=%40maxi-wal-idx%40&urlGen=default",
632
673
  },
@@ -642,16 +683,16 @@ describe("StoreURIRuntime", () => {
642
683
  stores: [
643
684
  {
644
685
  data: {
645
- data: "my://bla/storage?name=test&store=data&storekey=%40test-data%40&suffix=.car&urlGen=fromEnv",
646
- file: "my://bla/storage?name=test&store=data&storekey=%40test-data%40&urlGen=fromEnv",
686
+ car: "my://bla/storage?name=test&store=car&storekey=%40test-data%40&suffix=.car&urlGen=fromEnv",
687
+ file: "my://bla/storage?name=test&store=file&storekey=%40test-data%40&urlGen=fromEnv",
647
688
  meta: "my://bla/storage?name=test&store=meta&storekey=%40test-meta%40&urlGen=fromEnv",
648
689
  wal: "my://bla/storage?name=test&store=wal&storekey=%40test-wal%40&urlGen=fromEnv",
649
690
  },
650
691
  },
651
692
  {
652
693
  idx: {
653
- data: "my://bla/storage?index=idx&name=test&store=data&storekey=%40test-data-idx%40&suffix=.car&urlGen=fromEnv",
654
- file: "my://bla/storage?index=idx&name=test&store=data&storekey=%40test-data-idx%40&urlGen=fromEnv",
694
+ car: "my://bla/storage?index=idx&name=test&store=car&storekey=%40test-data-idx%40&suffix=.car&urlGen=fromEnv",
695
+ file: "my://bla/storage?index=idx&name=test&store=file&storekey=%40test-data-idx%40&urlGen=fromEnv",
655
696
  meta: "my://bla/storage?index=idx&name=test&store=meta&storekey=%40test-meta-idx%40&urlGen=fromEnv",
656
697
  wal: "my://bla/storage?index=idx&name=test&store=wal&storekey=%40test-wal-idx%40&urlGen=fromEnv",
657
698
  },