@fireproof/core-test 0.0.2-dev-test → 0.22.0-keybag

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.
@@ -4,7 +4,7 @@ import { mockLoader, mockSuperThis } from "../helpers.js";
4
4
  import { ensureSuperThis } from "@fireproof/core-runtime";
5
5
  import { PARAM } from "@fireproof/core-types-base";
6
6
  import { describe, beforeAll, it, expect, beforeEach } from "vitest";
7
- import { getKeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
7
+ import { coerceMaterial, getKeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
8
8
  import { createAttachedStores } from "@fireproof/core-blockstore";
9
9
  describe("KeyBag indexeddb and file", () => {
10
10
  let url;
@@ -72,8 +72,8 @@ describe("KeyBag indexeddb and file", () => {
72
72
  return JSON.parse(sthis.txt.decode(data));
73
73
  });
74
74
  }
75
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag.keys)[0].key)).Ok().fingerPrint).toEqual((await res.Ok().get())?.fingerPrint);
76
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag2.keys)[0].key)).Ok().fingerPrint).toEqual((await created.Ok().get())?.fingerPrint);
75
+ expect((await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag.keys)[0].key), true)).Ok().fingerPrint).toEqual((await res.Ok().get())?.fingerPrint);
76
+ expect((await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag2.keys)[0].key), true)).Ok().fingerPrint).toEqual((await created.Ok().get())?.fingerPrint);
77
77
  const algo = {
78
78
  name: "AES-GCM",
79
79
  iv: kb.rt.crypto.randomBytes(12),
@@ -1 +1 @@
1
- {"version":3,"file":"keyed-crypto-indexeddb-file.test.js","sourceRoot":"","sources":["keyed-crypto-indexeddb-file.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyed-crypto-indexeddb-file.test.js","sourceRoot":"","sources":["keyed-crypto-indexeddb-file.test.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { runtimeFn, toCryptoRuntime, URI } from "@adviser/cement";
2
2
  import { base58btc } from "multiformats/bases/base58";
3
3
  import { mockLoader, mockSuperThis } from "../helpers.js";
4
4
  import { ensureSuperThis } from "@fireproof/core-runtime";
5
- import { KeysItem, PARAM } from "@fireproof/core-types-base";
5
+ import { V2KeysItem, PARAM } from "@fireproof/core-types-base";
6
6
  import { describe, beforeAll, it, expect, beforeEach } from "vitest";
7
- import { getKeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
7
+ import { coerceMaterial, getKeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
8
8
  import { KeyBagProviderIndexedDB } from "@fireproof/core-gateways-indexeddb";
9
9
  import { KeyBagProviderFile } from "@fireproof/core-gateways-file";
10
10
  import { KeyWithFingerPrint, Loadable } from "@fireproof/core-types-blockstore";
@@ -60,8 +60,8 @@ describe("KeyBag indexeddb and file", () => {
60
60
 
61
61
  expect((await kb.getNamedKey(name2)).Ok()).toEqual(created.Ok());
62
62
 
63
- let diskBag: KeysItem;
64
- let diskBag2: KeysItem;
63
+ let diskBag: V2KeysItem;
64
+ let diskBag2: V2KeysItem;
65
65
  const provider = await kb.rt.getBagProvider();
66
66
  if (runtimeFn().isBrowser) {
67
67
  const p = provider as KeyBagProviderIndexedDB;
@@ -72,18 +72,18 @@ describe("KeyBag indexeddb and file", () => {
72
72
  const { sysFS } = await p._prepare(name);
73
73
 
74
74
  diskBag = await sysFS.readfile((await p._prepare(name)).fName).then((data) => {
75
- return JSON.parse(sthis.txt.decode(data)) as KeysItem;
75
+ return JSON.parse(sthis.txt.decode(data)) as V2KeysItem;
76
76
  });
77
77
  diskBag2 = await sysFS.readfile((await p._prepare(name2)).fName).then((data) => {
78
- return JSON.parse(sthis.txt.decode(data)) as KeysItem;
78
+ return JSON.parse(sthis.txt.decode(data)) as V2KeysItem;
79
79
  });
80
80
  }
81
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag.keys)[0].key)).Ok().fingerPrint).toEqual(
81
+ expect((await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag.keys)[0].key), true)).Ok().fingerPrint).toEqual(
82
82
  (await res.Ok().get())?.fingerPrint,
83
83
  );
84
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag2.keys)[0].key)).Ok().fingerPrint).toEqual(
85
- (await created.Ok().get())?.fingerPrint,
86
- );
84
+ expect(
85
+ (await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag2.keys)[0].key), true)).Ok().fingerPrint,
86
+ ).toEqual((await created.Ok().get())?.fingerPrint);
87
87
  const algo = {
88
88
  name: "AES-GCM",
89
89
  iv: kb.rt.crypto.randomBytes(12),
@@ -5,7 +5,7 @@ import { mockLoader, mockSuperThis } from "../helpers.js";
5
5
  import { ensureSuperThis, keyedCryptoFactory, storeType2DataMetaWal } from "@fireproof/core-runtime";
6
6
  import { PARAM } from "@fireproof/core-types-base";
7
7
  import { describe, beforeEach, it, expect } from "vitest";
8
- import { getKeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
8
+ import { coerceMaterial, getKeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
9
9
  import { createAttachedStores, getDefaultURI } from "@fireproof/core-blockstore";
10
10
  describe("KeyBag", () => {
11
11
  let url;
@@ -103,8 +103,8 @@ describe("KeyBag", () => {
103
103
  return JSON.parse(sthis.txt.decode(data));
104
104
  });
105
105
  }
106
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag.keys)[0].key)).Ok().fingerPrint).toEqual((await res.Ok().get())?.fingerPrint);
107
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag2.keys)[0].key)).Ok().fingerPrint).toEqual((await created.Ok().get())?.fingerPrint);
106
+ expect((await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag.keys)[0].key), true)).Ok().fingerPrint).toEqual((await res.Ok().get())?.fingerPrint);
107
+ expect((await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag2.keys)[0].key), true)).Ok().fingerPrint).toEqual((await created.Ok().get())?.fingerPrint);
108
108
  const algo = {
109
109
  name: "AES-GCM",
110
110
  iv: kb.rt.crypto.randomBytes(12),
@@ -126,24 +126,24 @@ describe("KeyBag", () => {
126
126
  for (let i = 0; i < 10; ++i) {
127
127
  expect(await kb.getNamedKey(name).then((i) => i.Ok().id)).toEqual(rMyKey.Ok().id);
128
128
  }
129
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(1);
129
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(1);
130
130
  const myKey = (await rMyKey.Ok().get());
131
131
  expect(myKey.fingerPrint).toMatch(/^z/);
132
132
  await rMyKey.Ok().upsert((await myKey.extract()).key);
133
133
  const myKey1 = (await rMyKey.Ok().get());
134
134
  expect(myKey.fingerPrint).toEqual(myKey1.fingerPrint);
135
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(1);
135
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(1);
136
136
  const rMyKey1 = await kb.getNamedKey(name);
137
137
  expect(rMyKey1.Ok()).toEqual(rMyKey.Ok());
138
138
  const res1 = await rMyKey1.Ok().upsert(kb.rt.crypto.randomBytes(kb.rt.keyLength));
139
139
  expect(res1.isOk()).toBeTruthy();
140
140
  const myKey2 = (await rMyKey1.Ok().get());
141
141
  expect(myKey.fingerPrint).toEqual(myKey2.fingerPrint);
142
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(2);
142
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(2);
143
143
  const res = await rMyKey1.Ok().upsert(kb.rt.crypto.randomBytes(kb.rt.keyLength), true);
144
144
  expect(res.isOk()).toBeTruthy();
145
145
  const myKey3 = (await rMyKey.Ok().get());
146
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(3);
146
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(3);
147
147
  expect(myKey.fingerPrint).not.toEqual(myKey3.fingerPrint);
148
148
  });
149
149
  it("default and multiple fingerprints", async () => {
@@ -155,7 +155,7 @@ describe("KeyBag", () => {
155
155
  });
156
156
  const key = base58btc.encode(kb.rt.crypto.randomBytes(kb.rt.keyLength));
157
157
  const name = "default-key" + Math.random();
158
- const fpr = (await toKeyWithFingerPrint(kb, key)).Ok().fingerPrint;
158
+ const fpr = (await toKeyWithFingerPrint(kb, coerceMaterial(kb, key), true)).Ok().fingerPrint;
159
159
  const rMyKey = await kb.getNamedKey(name, false, key);
160
160
  expect(rMyKey.isOk()).toBeTruthy();
161
161
  const myKey = rMyKey.Ok();
@@ -166,7 +166,7 @@ describe("KeyBag", () => {
166
166
  const keys = [{ key, fpr }];
167
167
  for (let i = 0; i < 10; ++i) {
168
168
  const key = base58btc.encode(kb.rt.crypto.randomBytes(kb.rt.keyLength));
169
- const fpr = (await toKeyWithFingerPrint(kb, key)).Ok().fingerPrint;
169
+ const fpr = (await toKeyWithFingerPrint(kb, coerceMaterial(kb, key), true)).Ok().fingerPrint;
170
170
  keys.push({ key, fpr });
171
171
  const rUpsert = await myKey.upsert(key, true);
172
172
  expect(rUpsert.Ok().modified).toBeTruthy();
@@ -175,7 +175,6 @@ describe("KeyBag", () => {
175
175
  }
176
176
  expect((await myKey.get())?.fingerPrint).toEqual(fpr);
177
177
  }
178
- await kb.flush();
179
178
  const provider = await kb.rt.getBagProvider();
180
179
  let diskBag;
181
180
  if (!("_prepare" in provider)) {
@@ -1 +1 @@
1
- {"version":3,"file":"keyed-crypto.test.js","sourceRoot":"","sources":["keyed-crypto.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyed-crypto.test.js","sourceRoot":"","sources":["keyed-crypto.test.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,9 @@ import * as cborg from "cborg";
6
6
  import type { KeyBagProviderIndexedDB } from "@fireproof/core-gateways-indexeddb";
7
7
  import { mockLoader, MockSuperThis, mockSuperThis } from "../helpers.js";
8
8
  import { ensureSuperThis, keyedCryptoFactory, storeType2DataMetaWal } from "@fireproof/core-runtime";
9
- import { KeysItem, PARAM, StoreType } from "@fireproof/core-types-base";
9
+ import { V2KeysItem, PARAM, StoreType } from "@fireproof/core-types-base";
10
10
  import { describe, beforeEach, it, expect } from "vitest";
11
- import { getKeyBag, KeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
11
+ import { coerceMaterial, getKeyBag, KeyBag, toKeyWithFingerPrint } from "@fireproof/core-keybag";
12
12
  import { KeyBagProviderFile } from "@fireproof/core-gateways-file";
13
13
  import { CryptoAction, IvKeyIdData, KeyWithFingerPrint, Loadable } from "@fireproof/core-types-blockstore";
14
14
  import { createAttachedStores, getDefaultURI } from "@fireproof/core-blockstore";
@@ -97,8 +97,8 @@ describe("KeyBag", () => {
97
97
 
98
98
  expect((await kb.getNamedKey(name2)).Ok()).toEqual(created.Ok());
99
99
 
100
- let diskBag: KeysItem;
101
- let diskBag2: KeysItem;
100
+ let diskBag: V2KeysItem;
101
+ let diskBag2: V2KeysItem;
102
102
  const provider = await kb.rt.getBagProvider();
103
103
  if (runtimeFn().isBrowser) {
104
104
  const p = provider as KeyBagProviderIndexedDB;
@@ -112,18 +112,18 @@ describe("KeyBag", () => {
112
112
  const { sysFS } = await p._prepare(name);
113
113
 
114
114
  diskBag = await sysFS.readfile((await p._prepare(name)).fName).then((data) => {
115
- return JSON.parse(sthis.txt.decode(data)) as KeysItem;
115
+ return JSON.parse(sthis.txt.decode(data)) as V2KeysItem;
116
116
  });
117
117
  diskBag2 = await sysFS.readfile((await p._prepare(name2)).fName).then((data) => {
118
- return JSON.parse(sthis.txt.decode(data)) as KeysItem;
118
+ return JSON.parse(sthis.txt.decode(data)) as V2KeysItem;
119
119
  });
120
120
  }
121
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag.keys)[0].key)).Ok().fingerPrint).toEqual(
121
+ expect((await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag.keys)[0].key), true)).Ok().fingerPrint).toEqual(
122
122
  (await res.Ok().get())?.fingerPrint,
123
123
  );
124
- expect((await toKeyWithFingerPrint(kb, Object.values(diskBag2.keys)[0].key)).Ok().fingerPrint).toEqual(
125
- (await created.Ok().get())?.fingerPrint,
126
- );
124
+ expect(
125
+ (await toKeyWithFingerPrint(kb, coerceMaterial(kb, Object.values(diskBag2.keys)[0].key), true)).Ok().fingerPrint,
126
+ ).toEqual((await created.Ok().get())?.fingerPrint);
127
127
  const algo = {
128
128
  name: "AES-GCM",
129
129
  iv: kb.rt.crypto.randomBytes(12),
@@ -153,7 +153,7 @@ describe("KeyBag", () => {
153
153
  for (let i = 0; i < 10; ++i) {
154
154
  expect(await kb.getNamedKey(name).then((i) => i.Ok().id)).toEqual(rMyKey.Ok().id);
155
155
  }
156
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(1);
156
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(1);
157
157
 
158
158
  const myKey = (await rMyKey.Ok().get()) as KeyWithFingerPrint;
159
159
  expect(myKey.fingerPrint).toMatch(/^z/);
@@ -162,7 +162,7 @@ describe("KeyBag", () => {
162
162
  const myKey1 = (await rMyKey.Ok().get()) as KeyWithFingerPrint;
163
163
  expect(myKey.fingerPrint).toEqual(myKey1.fingerPrint);
164
164
 
165
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(1);
165
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(1);
166
166
 
167
167
  const rMyKey1 = await kb.getNamedKey(name);
168
168
  expect(rMyKey1.Ok()).toEqual(rMyKey.Ok());
@@ -171,12 +171,12 @@ describe("KeyBag", () => {
171
171
 
172
172
  const myKey2 = (await rMyKey1.Ok().get()) as KeyWithFingerPrint;
173
173
  expect(myKey.fingerPrint).toEqual(myKey2.fingerPrint);
174
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(2);
174
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(2);
175
175
 
176
176
  const res = await rMyKey1.Ok().upsert(kb.rt.crypto.randomBytes(kb.rt.keyLength), true);
177
177
  expect(res.isOk()).toBeTruthy();
178
178
  const myKey3 = (await rMyKey.Ok().get()) as KeyWithFingerPrint;
179
- expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asKeysItem())).keys).length).toBe(3);
179
+ expect(Object.keys((await kb.getNamedKey(name).then((i) => i.Ok().asV2KeysItem())).keys).length).toBe(3);
180
180
 
181
181
  expect(myKey.fingerPrint).not.toEqual(myKey3.fingerPrint);
182
182
  });
@@ -190,7 +190,7 @@ describe("KeyBag", () => {
190
190
  });
191
191
  const key = base58btc.encode(kb.rt.crypto.randomBytes(kb.rt.keyLength));
192
192
  const name = "default-key" + Math.random();
193
- const fpr = (await toKeyWithFingerPrint(kb, key)).Ok().fingerPrint;
193
+ const fpr = (await toKeyWithFingerPrint(kb, coerceMaterial(kb, key), true)).Ok().fingerPrint;
194
194
  const rMyKey = await kb.getNamedKey(name, false, key);
195
195
  expect(rMyKey.isOk()).toBeTruthy();
196
196
  const myKey = rMyKey.Ok();
@@ -204,7 +204,7 @@ describe("KeyBag", () => {
204
204
  const keys = [{ key, fpr }];
205
205
  for (let i = 0; i < 10; ++i) {
206
206
  const key = base58btc.encode(kb.rt.crypto.randomBytes(kb.rt.keyLength));
207
- const fpr = (await toKeyWithFingerPrint(kb, key)).Ok().fingerPrint;
207
+ const fpr = (await toKeyWithFingerPrint(kb, coerceMaterial(kb, key), true)).Ok().fingerPrint;
208
208
  keys.push({ key, fpr });
209
209
  const rUpsert = await myKey.upsert(key, true);
210
210
  expect(rUpsert.Ok().modified).toBeTruthy();
@@ -213,11 +213,10 @@ describe("KeyBag", () => {
213
213
  }
214
214
  expect((await myKey.get())?.fingerPrint).toEqual(fpr);
215
215
  }
216
- await kb.flush();
217
216
  const provider = await kb.rt.getBagProvider();
218
- let diskBag: KeysItem;
217
+ let diskBag: V2KeysItem;
219
218
  if (!("_prepare" in provider)) {
220
- diskBag = (await provider.get(name)) as KeysItem;
219
+ diskBag = (await provider.get(name)) as V2KeysItem;
221
220
  } else {
222
221
  if (runtimeFn().isBrowser) {
223
222
  const p = provider as KeyBagProviderIndexedDB;
@@ -226,7 +225,7 @@ describe("KeyBag", () => {
226
225
  const p = provider as KeyBagProviderFile;
227
226
  const { sysFS } = await p._prepare(name);
228
227
  diskBag = await sysFS.readfile((await p._prepare(name)).fName).then((data) => {
229
- return JSON.parse(sthis.txt.decode(data)) as KeysItem;
228
+ return JSON.parse(sthis.txt.decode(data)) as V2KeysItem;
230
229
  });
231
230
  }
232
231
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ import { fireproof, getCompactStrategyThrow, registerCompactStrategy, } from "@fireproof/core";
2
+ import { expect, describe, it, vi } from "vitest";
3
+ describe("compactStrategy", () => {
4
+ it("register and use compactStrategy", () => {
5
+ const compact = vi.fn();
6
+ const unreg = registerCompactStrategy({
7
+ name: "test",
8
+ compact,
9
+ });
10
+ const compactStrategy = getCompactStrategyThrow("test");
11
+ expect(compactStrategy.name).toBe("test");
12
+ unreg();
13
+ expect(() => getCompactStrategyThrow("test")).toThrow();
14
+ });
15
+ it("use compactStrategy", async () => {
16
+ const compact = vi.fn((ctx) => {
17
+ return Promise.resolve(ctx.clock?.head);
18
+ });
19
+ registerCompactStrategy({
20
+ name: "test",
21
+ compact,
22
+ });
23
+ const db = fireproof("test-compactStrategy", {
24
+ compactStrategy: "test",
25
+ storeUrls: { base: `memory://test-compactStrategy-${Date.now()}` },
26
+ });
27
+ for (let i = 0; i < 10; i++) {
28
+ await db.put({ _id: `test-${i}`, value: i });
29
+ }
30
+ await db.compact();
31
+ expect(compact).toHaveBeenCalledTimes(1);
32
+ });
33
+ });
34
+ //# sourceMappingURL=compact-strategy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compact-strategy.test.js","sourceRoot":"","sources":["compact-strategy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,OAAO,GAA+B,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,uBAAuB,CAAC;YACpC,IAAI,EAAE,MAAM;YACZ,OAAO;SACR,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,OAAO,GAA+B,EAAE,CAAC,EAAE,CAAC,CAAC,GAA2B,EAAE,EAAE;YAChF,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,uBAAuB,CAAC;YACtB,IAAI,EAAE,MAAM;YACZ,OAAO;SACR,CAAC,CAAC;QACH,MAAM,EAAE,GAAG,SAAS,CAAC,sBAAsB,EAAE;YAC3C,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,EAAE,IAAI,EAAE,iCAAiC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;SACnE,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import {
2
+ fireproof,
3
+ CompactStrategy,
4
+ CompactStrategyContext,
5
+ getCompactStrategyThrow,
6
+ registerCompactStrategy,
7
+ } from "@fireproof/core";
8
+ import { expect, describe, it, vi } from "vitest";
9
+
10
+ describe("compactStrategy", () => {
11
+ it("register and use compactStrategy", () => {
12
+ const compact: CompactStrategy["compact"] = vi.fn();
13
+ const unreg = registerCompactStrategy({
14
+ name: "test",
15
+ compact,
16
+ });
17
+ const compactStrategy = getCompactStrategyThrow("test");
18
+ expect(compactStrategy.name).toBe("test");
19
+ unreg();
20
+ expect(() => getCompactStrategyThrow("test")).toThrow();
21
+ });
22
+ it("use compactStrategy", async () => {
23
+ const compact: CompactStrategy["compact"] = vi.fn((ctx: CompactStrategyContext) => {
24
+ return Promise.resolve(ctx.clock?.head);
25
+ });
26
+ registerCompactStrategy({
27
+ name: "test",
28
+ compact,
29
+ });
30
+ const db = fireproof("test-compactStrategy", {
31
+ compactStrategy: "test",
32
+ storeUrls: { base: `memory://test-compactStrategy-${Date.now()}` },
33
+ });
34
+ for (let i = 0; i < 10; i++) {
35
+ await db.put({ _id: `test-${i}`, value: i });
36
+ }
37
+ await db.compact();
38
+ expect(compact).toHaveBeenCalledTimes(1);
39
+ });
40
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import { fireproof } from "@fireproof/core";
2
+ import { ensureSuperThis } from "@fireproof/core-runtime";
3
+ import { describe, expect, it } from "vitest";
4
+ import { Future } from "@adviser/cement";
5
+ describe("concurrent opens", () => {
6
+ const sthis = ensureSuperThis();
7
+ const dbBaseName = `test-concurrent-${sthis.nextId().str}`;
8
+ it("open and get allDocs", async () => {
9
+ const future = new Future();
10
+ const dones = [];
11
+ const loops = 100;
12
+ for (let i = 0; i < loops; i++) {
13
+ setTimeout(async () => {
14
+ const db = fireproof(`${dbBaseName}-${i}`);
15
+ await Promise.all(new Array(3).fill(0).map(async (_, j) => {
16
+ await db.put({ _id: `test-${j}`, foo: "bar" });
17
+ }));
18
+ const allDocs = await db.allDocs();
19
+ expect(allDocs.rows.length).toBe(3);
20
+ await db.close();
21
+ dones.push(i);
22
+ if (dones.length >= loops) {
23
+ future.resolve(undefined);
24
+ }
25
+ }, ~~(Math.random() * 17));
26
+ }
27
+ await future.asPromise();
28
+ });
29
+ });
30
+ //# sourceMappingURL=concurrent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrent.test.js","sourceRoot":"","sources":["concurrent.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,mBAAmB,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAE3D,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAE/B,UAAU,CACR,KAAK,IAAI,EAAE;gBACT,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3C,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;oBACtC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjD,CAAC,CAAC,CACH,CAAC;gBACF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;gBACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACd,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC1B,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,EACD,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CACvB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { fireproof } from "@fireproof/core";
2
+ import { ensureSuperThis } from "@fireproof/core-runtime";
3
+ import { describe, expect, it } from "vitest";
4
+ import { Future } from "@adviser/cement";
5
+
6
+ describe("concurrent opens", () => {
7
+ const sthis = ensureSuperThis();
8
+ const dbBaseName = `test-concurrent-${sthis.nextId().str}`;
9
+
10
+ it("open and get allDocs", async () => {
11
+ const future = new Future();
12
+ const dones = [];
13
+ const loops = 100;
14
+ for (let i = 0; i < loops; i++) {
15
+ // eslint-disable-next-line no-async-promise-executor
16
+ setTimeout(
17
+ async () => {
18
+ const db = fireproof(`${dbBaseName}-${i}`);
19
+ await Promise.all(
20
+ new Array(3).fill(0).map(async (_, j) => {
21
+ await db.put({ _id: `test-${j}`, foo: "bar" });
22
+ }),
23
+ );
24
+ const allDocs = await db.allDocs();
25
+ expect(allDocs.rows.length).toBe(3);
26
+ await db.close();
27
+ dones.push(i);
28
+ if (dones.length >= loops) {
29
+ future.resolve(undefined);
30
+ }
31
+ },
32
+ ~~(Math.random() * 17),
33
+ );
34
+ }
35
+
36
+ await future.asPromise();
37
+ });
38
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fireproof/core-test",
3
- "version": "0.0.2-dev-test",
3
+ "version": "0.22.0-keybag",
4
4
  "description": "Live ledger for the web.",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -20,7 +20,7 @@
20
20
  "Meno Abels"
21
21
  ],
22
22
  "author": "J Chris Anderson",
23
- "license": "Apache-2.0 OR MIT",
23
+ "license": "AFL-2.0",
24
24
  "homepage": "https://use-fireproof.com",
25
25
  "gptdoc": "import { fireproof } from 'use-fireproof'; const db = fireproof('app-db-name'); const ok = await db.put({ anyField: ['any','json'] }); const doc = await db.get(ok.id); await db.del(doc._id); db.subscribe(myRedrawFn); const result = await db.query('anyField', {range : ['a', 'z']}); result.rows.map(({ key }) => key);",
26
26
  "repository": {
@@ -36,28 +36,28 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@adviser/cement": "^0.4.20",
39
- "@fireproof/core": "0.0.2-dev-test",
40
- "@fireproof/core-base": "0.0.2-dev-test",
41
- "@fireproof/core-blockstore": "0.0.2-dev-test",
42
- "@fireproof/core-gateways-base": "0.0.2-dev-test",
43
- "@fireproof/core-gateways-file": "0.0.2-dev-test",
44
- "@fireproof/core-gateways-indexeddb": "0.0.2-dev-test",
45
- "@fireproof/core-gateways-memory": "0.0.2-dev-test",
46
- "@fireproof/core-keybag": "0.0.2-dev-test",
47
- "@fireproof/core-protocols-cloud": "0.0.2-dev-test",
48
- "@fireproof/core-runtime": "0.0.2-dev-test",
49
- "@fireproof/core-types-base": "0.0.2-dev-test",
50
- "@fireproof/core-types-blockstore": "0.0.2-dev-test",
51
- "@fireproof/core-types-protocols-cloud": "0.0.2-dev-test",
52
- "@fireproof/core-types-runtime": "0.0.2-dev-test",
53
- "@fireproof/vendor": "0.0.2-dev-test",
39
+ "@fireproof/core": "0.22.0-keybag",
40
+ "@fireproof/core-base": "0.22.0-keybag",
41
+ "@fireproof/core-blockstore": "0.22.0-keybag",
42
+ "@fireproof/core-gateways-base": "0.22.0-keybag",
43
+ "@fireproof/core-gateways-file": "0.22.0-keybag",
44
+ "@fireproof/core-gateways-indexeddb": "0.22.0-keybag",
45
+ "@fireproof/core-gateways-memory": "0.22.0-keybag",
46
+ "@fireproof/core-keybag": "0.22.0-keybag",
47
+ "@fireproof/core-protocols-cloud": "0.22.0-keybag",
48
+ "@fireproof/core-runtime": "0.22.0-keybag",
49
+ "@fireproof/core-types-base": "0.22.0-keybag",
50
+ "@fireproof/core-types-blockstore": "0.22.0-keybag",
51
+ "@fireproof/core-types-protocols-cloud": "0.22.0-keybag",
52
+ "@fireproof/core-types-runtime": "0.22.0-keybag",
53
+ "@fireproof/vendor": "0.22.0-keybag",
54
54
  "@ipld/car": "^5.4.2",
55
55
  "@ipld/dag-cbor": "^9.2.4",
56
56
  "@ipld/dag-json": "^10.2.5",
57
- "@types/node": "^24.0.13",
57
+ "@types/node": "^24.1.0",
58
58
  "cborg": "^4.2.12",
59
59
  "charwise": "^3.0.1",
60
- "use-fireproof": "0.0.2-dev-test",
60
+ "use-fireproof": "0.22.0-keybag",
61
61
  "uuidv7": "^1.0.2"
62
62
  },
63
63
  "devDependencies": {
@@ -65,8 +65,8 @@
65
65
  "playwright": "^1.54.1",
66
66
  "playwright-chromium": "^1.54.1",
67
67
  "vitest": "^3.2.4",
68
- "zx": "^8.7.0",
69
- "@fireproof/core-cli": "0.0.2-dev-test"
68
+ "zx": "^8.7.1",
69
+ "@fireproof/core-cli": "0.22.0-keybag"
70
70
  },
71
71
  "scripts": {
72
72
  "build": "tsc",
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,185 @@
1
+ import { URI } from "@adviser/cement";
2
+ import { getKeyBag, KeyBagProviderMemory } from "@fireproof/core-keybag";
3
+ import { ensureSuperThis } from "@fireproof/core-runtime";
4
+ import { isKeyUpsertResultModified } from "@fireproof/core-types-blockstore";
5
+ import { base58btc } from "multiformats/bases/base58";
6
+ import { assert, describe, expect, it } from "vitest";
7
+ const v1Keybag = {
8
+ name: "@test-v1-keys-wal@",
9
+ key: "zL89nmBmogeRptW9b7e9j7L",
10
+ };
11
+ async function keyExtracted(rKbf, fingerPrint) {
12
+ const kbf = await rKbf.Ok().get(fingerPrint);
13
+ if (!kbf) {
14
+ return undefined;
15
+ }
16
+ return {
17
+ fingerPrint: kbf.fingerPrint,
18
+ key: (await kbf.extract()).keyStr,
19
+ };
20
+ }
21
+ async function calculateFingerprint(rKbf, kb) {
22
+ const item = await rKbf.Ok().get();
23
+ const v2Item = await item.asV2StorageKeyItem();
24
+ const keyBytes = base58btc.decode(v2Item.key);
25
+ const hash = await kb.rt.crypto.digestSHA256(keyBytes);
26
+ return base58btc.encode(new Uint8Array(hash));
27
+ }
28
+ describe("KeyBag", () => {
29
+ it("v1 migration", async () => {
30
+ const sthis = ensureSuperThis();
31
+ await sthis.start();
32
+ const kp = new KeyBagProviderMemory(URI.from("memory://./dist/tests/"), sthis);
33
+ kp.set(v1Keybag);
34
+ const kb = await getKeyBag(sthis, {
35
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
36
+ });
37
+ const rKbf = await kb.getNamedKey("@test-v1-keys-wal@");
38
+ expect(rKbf.isOk()).toBeTruthy();
39
+ const fpr = await calculateFingerprint(rKbf, kb);
40
+ expect(await rKbf.Ok().asV2KeysItem()).toEqual({
41
+ keys: {
42
+ z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ: {
43
+ default: true,
44
+ fingerPrint: fpr,
45
+ key: "zL89nmBmogeRptW9b7e9j7L",
46
+ },
47
+ },
48
+ name: "@test-v1-keys-wal@",
49
+ });
50
+ const kb2 = await getKeyBag(sthis, {
51
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
52
+ });
53
+ for (const rkbf of [rKbf, await kb2.getNamedKey("@test-v1-keys-wal@")]) {
54
+ expect(await keyExtracted(rkbf)).toEqual({
55
+ fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
56
+ key: "zL89nmBmogeRptW9b7e9j7L",
57
+ });
58
+ expect(await keyExtracted(rkbf, "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ")).toEqual({
59
+ fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
60
+ key: "zL89nmBmogeRptW9b7e9j7L",
61
+ });
62
+ expect(await keyExtracted(rkbf, "kaputt-x")).toBeUndefined();
63
+ }
64
+ expect(await kp.get(v1Keybag.name)).toEqual({
65
+ keys: {
66
+ z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ: {
67
+ default: true,
68
+ fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
69
+ key: "zL89nmBmogeRptW9b7e9j7L",
70
+ },
71
+ },
72
+ name: "@test-v1-keys-wal@",
73
+ });
74
+ });
75
+ it("implicit creation", async () => {
76
+ const sthis = ensureSuperThis();
77
+ await sthis.start();
78
+ const kp = new KeyBagProviderMemory(URI.from("memory://./dist/tests/"), sthis);
79
+ kp.set(v1Keybag);
80
+ const kb = await getKeyBag(sthis, {
81
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
82
+ });
83
+ const key1Material = kb.rt.crypto.randomBytes(kb.rt.keyLength);
84
+ const rKbf = await kb.getNamedKey("kaputt", false, key1Material);
85
+ expect(rKbf.isOk()).toBeTruthy();
86
+ const one = await rKbf.Ok().asV2KeysItem();
87
+ expect(Object.keys(one.keys).length).toBe(1);
88
+ const key1Fpr = (await rKbf.Ok().get())?.fingerPrint;
89
+ expect(await keyExtracted(rKbf)).toEqual({
90
+ fingerPrint: key1Fpr,
91
+ key: base58btc.encode(key1Material),
92
+ });
93
+ const key2Material = kb.rt.crypto.randomBytes(kb.rt.keyLength);
94
+ const rKey2 = await rKbf.Ok().upsert(key2Material);
95
+ const key2 = rKey2.Ok();
96
+ if (!isKeyUpsertResultModified(key2)) {
97
+ assert("key2 not modified");
98
+ return;
99
+ }
100
+ const keys2 = await rKbf.Ok().asV2KeysItem();
101
+ expect(Object.keys(keys2.keys).length).toBe(2);
102
+ expect(await kp.get("kaputt")).toEqual(keys2);
103
+ const rKbf2 = await kb.getNamedKey("kaputt");
104
+ expect(Object.keys(await rKbf2.Ok().asV2KeysItem()).length).toBe(2);
105
+ expect((await rKbf2.Ok().get())?.fingerPrint).toEqual(key1Fpr);
106
+ const asKeysItem = await rKbf.Ok().asV2KeysItem();
107
+ expect(asKeysItem.name).toEqual("kaputt");
108
+ expect(Array.from(Object.values(asKeysItem.keys))).toEqual([
109
+ {
110
+ default: true,
111
+ fingerPrint: key1Fpr,
112
+ key: base58btc.encode(key1Material),
113
+ },
114
+ {
115
+ default: false,
116
+ fingerPrint: key2.kfp.fingerPrint,
117
+ key: base58btc.encode(key2Material),
118
+ },
119
+ ]);
120
+ const key3Material = kb.rt.crypto.randomBytes(kb.rt.keyLength);
121
+ const rKey3 = await rKbf2.Ok().upsert(key3Material, true);
122
+ const key3 = rKey3.Ok();
123
+ if (!isKeyUpsertResultModified(key3)) {
124
+ assert("key3 not modified");
125
+ return;
126
+ }
127
+ expect(Object.keys(await rKbf2
128
+ .Ok()
129
+ .asV2KeysItem()
130
+ .then((i) => i.keys)).length).toBe(3);
131
+ const v2Key3 = await key3.kfp.asV2StorageKeyItem();
132
+ expect(await kp.get("kaputt")).toEqual({
133
+ keys: {
134
+ ...resetDefault(one.keys),
135
+ ...resetDefault(keys2.keys),
136
+ [v2Key3.fingerPrint]: v2Key3,
137
+ },
138
+ name: "kaputt",
139
+ });
140
+ });
141
+ it("simple default", async () => {
142
+ const sthis = ensureSuperThis();
143
+ await sthis.start();
144
+ const kb = await getKeyBag(sthis);
145
+ const keyName = "simple" + sthis.nextId().str;
146
+ const rKbf1 = await kb.getNamedKey(keyName);
147
+ const kfp1 = await rKbf1
148
+ .Ok()
149
+ .get()
150
+ .then((i) => i.asV2StorageKeyItem());
151
+ expect(kfp1?.fingerPrint).toBeTypeOf("string");
152
+ const rKbf2 = await kb.getNamedKey(keyName);
153
+ expect(await rKbf2.Ok().get()).toBeDefined();
154
+ const kfp2 = await rKbf2.Ok().get();
155
+ expect(kfp1?.fingerPrint).toBe(kfp2?.fingerPrint);
156
+ expect(await kb.rt.getBagProvider().then((i) => i.get(keyName))).toEqual({
157
+ keys: {
158
+ [kfp1?.fingerPrint]: {
159
+ default: true,
160
+ fingerPrint: kfp1?.fingerPrint,
161
+ key: kfp1?.key,
162
+ },
163
+ },
164
+ name: keyName,
165
+ });
166
+ });
167
+ it("test stable id", async () => {
168
+ const sthis = ensureSuperThis();
169
+ await sthis.start();
170
+ const kp = new KeyBagProviderMemory(URI.from("memory://./dist/tests/"), sthis);
171
+ kp.set(v1Keybag);
172
+ const kb = await getKeyBag(sthis, {
173
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
174
+ });
175
+ const name = "default-key" + Math.random();
176
+ const rMyKey = await kb.getNamedKey(name);
177
+ for (let i = 0; i < 10; ++i) {
178
+ expect(await kb.getNamedKey(name).then((i) => i.Ok().id)).toEqual(rMyKey.Ok().id);
179
+ }
180
+ });
181
+ });
182
+ function resetDefault(keys) {
183
+ return Array.from(Object.values(keys)).reduce((acc, i) => ({ ...acc, [i.fingerPrint]: { ...i, default: false } }), {});
184
+ }
185
+ //# sourceMappingURL=key-bag.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-bag.test.js","sourceRoot":"","sources":["key-bag.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,yBAAyB,EAAqB,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAatD,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,oBAAoB;IAC1B,GAAG,EAAE,yBAAyB;CAC/B,CAAC;AAEF,KAAK,UAAU,YAAY,CACzB,IAA+B,EAC/B,WAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAA+B,EAAE,EAAY;IAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,MACb,IAGD,CAAC,kBAAkB,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC5B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/E,EAAE,CAAC,GAAG,CAAC,QAAiC,CAAC,CAAC;QAE1C,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE;YAChC,GAAG,EAAE,4DAA4D;SAClE,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAEjC,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEjD,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC;YAC7C,IAAI,EAAE;gBACJ,6CAA6C,EAAE;oBAC7C,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,GAAG;oBAChB,GAAG,EAAE,yBAAyB;iBAC/B;aACF;YACD,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE;YACjC,GAAG,EAAE,4DAA4D;SAClE,CAAC,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvC,WAAW,EAAE,+CAA+C;gBAC5D,GAAG,EAAE,yBAAyB;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxF,WAAW,EAAE,+CAA+C;gBAC5D,GAAG,EAAE,yBAAyB;aAC/B,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1C,IAAI,EAAE;gBACJ,6CAA6C,EAAE;oBAC7C,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,+CAA+C;oBAC5D,GAAG,EAAE,yBAAyB;iBAC/B;aACF;YACD,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/E,EAAE,CAAC,GAAG,CAAC,QAAiC,CAAC,CAAC;QAE1C,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE;YAChC,GAAG,EAAE,4DAA4D;SAClE,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC;QACrD,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACvC,WAAW,EAAE,OAAO;YACpB,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACzD;gBACE,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,OAAO;gBACpB,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;aACpC;YACD;gBACE,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW;gBACjC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,CACJ,MAAM,CAAC,IAAI,CACT,MAAM,KAAK;aACR,EAAE,EAAE;aACJ,YAAY,EAAE;aACd,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACvB,CAAC,MAAM,CACT,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,GAA0E,CAAC,kBAAkB,EAAE,CAAC;QAE3H,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YACrC,IAAI,EAAE;gBACJ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC3B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM;aAC7B;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC;QAE9C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,KAAK;aACrB,EAAE,EAAE;aACJ,GAAG,EAAE;aACL,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAwE,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/G,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE/C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAElD,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACvE,IAAI,EAAE;gBACJ,CAAC,IAAI,EAAE,WAAqB,CAAC,EAAE;oBAC7B,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,IAAI,EAAE,WAAW;oBAC9B,GAAG,EAAE,IAAI,EAAE,GAAG;iBACf;aACF;YACD,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEpB,MAAM,EAAE,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/E,EAAE,CAAC,GAAG,CAAC,QAAiC,CAAC,CAAC;QAE1C,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE;YAChC,GAAG,EAAE,4DAA4D;SAClE,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAsC;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,EACnE,EAAsC,CACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,243 @@
1
+ import { Result, URI } from "@adviser/cement";
2
+ import { getKeyBag, KeyBagProviderMemory } from "@fireproof/core-keybag";
3
+ import { ensureSuperThis } from "@fireproof/core-runtime";
4
+ import { KeyBagIf, V2KeysItem, V2StorageKeyItem } from "@fireproof/core-types-base";
5
+ import { isKeyUpsertResultModified, KeysByFingerprint } from "@fireproof/core-types-blockstore";
6
+ import { base58btc } from "multiformats/bases/base58";
7
+ import { assert, describe, expect, it } from "vitest";
8
+
9
+ // const v2Keybag = {
10
+ // name: "@test-v1-keys-wal@",
11
+ // keys: {
12
+ // z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ: {
13
+ // default: true,
14
+ // fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
15
+ // key: "zL89nmBmogeRptW9b7e9j7L",
16
+ // },
17
+ // },
18
+ // };
19
+
20
+ const v1Keybag = {
21
+ name: "@test-v1-keys-wal@",
22
+ key: "zL89nmBmogeRptW9b7e9j7L",
23
+ };
24
+
25
+ async function keyExtracted(
26
+ rKbf: Result<KeysByFingerprint>,
27
+ fingerPrint?: string,
28
+ ): Promise<{ fingerPrint: string; key: string } | undefined> {
29
+ const kbf = await rKbf.Ok().get(fingerPrint);
30
+ if (!kbf) {
31
+ return undefined;
32
+ }
33
+ return {
34
+ fingerPrint: kbf.fingerPrint,
35
+ key: (await kbf.extract()).keyStr,
36
+ };
37
+ }
38
+
39
+ async function calculateFingerprint(rKbf: Result<KeysByFingerprint>, kb: KeyBagIf): Promise<string> {
40
+ const item = await rKbf.Ok().get();
41
+ const v2Item = await (
42
+ item as unknown as {
43
+ asV2StorageKeyItem: () => Promise<V2StorageKeyItem>;
44
+ }
45
+ ).asV2StorageKeyItem();
46
+ const keyBytes = base58btc.decode(v2Item.key);
47
+ const hash = await kb.rt.crypto.digestSHA256(keyBytes);
48
+ return base58btc.encode(new Uint8Array(hash));
49
+ }
50
+
51
+ describe("KeyBag", () => {
52
+ it("v1 migration", async () => {
53
+ const sthis = ensureSuperThis();
54
+ await sthis.start();
55
+
56
+ const kp = new KeyBagProviderMemory(URI.from("memory://./dist/tests/"), sthis);
57
+ kp.set(v1Keybag as unknown as V2KeysItem);
58
+
59
+ const kb = await getKeyBag(sthis, {
60
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
61
+ });
62
+ const rKbf = await kb.getNamedKey("@test-v1-keys-wal@");
63
+ expect(rKbf.isOk()).toBeTruthy();
64
+
65
+ const fpr = await calculateFingerprint(rKbf, kb);
66
+
67
+ expect(await rKbf.Ok().asV2KeysItem()).toEqual({
68
+ keys: {
69
+ z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ: {
70
+ default: true,
71
+ fingerPrint: fpr,
72
+ key: "zL89nmBmogeRptW9b7e9j7L",
73
+ },
74
+ },
75
+ name: "@test-v1-keys-wal@",
76
+ });
77
+
78
+ const kb2 = await getKeyBag(sthis, {
79
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
80
+ });
81
+ for (const rkbf of [rKbf, await kb2.getNamedKey("@test-v1-keys-wal@")]) {
82
+ expect(await keyExtracted(rkbf)).toEqual({
83
+ fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
84
+ key: "zL89nmBmogeRptW9b7e9j7L",
85
+ });
86
+ expect(await keyExtracted(rkbf, "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ")).toEqual({
87
+ fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
88
+ key: "zL89nmBmogeRptW9b7e9j7L",
89
+ });
90
+ expect(await keyExtracted(rkbf, "kaputt-x")).toBeUndefined();
91
+ }
92
+ expect(await kp.get(v1Keybag.name)).toEqual({
93
+ keys: {
94
+ z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ: {
95
+ default: true,
96
+ fingerPrint: "z7oNYUrGpALe6U5ePvhdD3ufHdLerw4wPWHJERE3383zJ",
97
+ key: "zL89nmBmogeRptW9b7e9j7L",
98
+ },
99
+ },
100
+ name: "@test-v1-keys-wal@",
101
+ });
102
+ });
103
+
104
+ it("implicit creation", async () => {
105
+ const sthis = ensureSuperThis();
106
+ await sthis.start();
107
+
108
+ const kp = new KeyBagProviderMemory(URI.from("memory://./dist/tests/"), sthis);
109
+ kp.set(v1Keybag as unknown as V2KeysItem);
110
+
111
+ const kb = await getKeyBag(sthis, {
112
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
113
+ });
114
+ const key1Material = kb.rt.crypto.randomBytes(kb.rt.keyLength);
115
+ const rKbf = await kb.getNamedKey("kaputt", false, key1Material);
116
+ expect(rKbf.isOk()).toBeTruthy();
117
+ const one = await rKbf.Ok().asV2KeysItem();
118
+ expect(Object.keys(one.keys).length).toBe(1);
119
+ const key1Fpr = (await rKbf.Ok().get())?.fingerPrint;
120
+ expect(await keyExtracted(rKbf)).toEqual({
121
+ fingerPrint: key1Fpr,
122
+ key: base58btc.encode(key1Material),
123
+ });
124
+
125
+ const key2Material = kb.rt.crypto.randomBytes(kb.rt.keyLength);
126
+ const rKey2 = await rKbf.Ok().upsert(key2Material);
127
+ const key2 = rKey2.Ok();
128
+ if (!isKeyUpsertResultModified(key2)) {
129
+ assert("key2 not modified");
130
+ return;
131
+ }
132
+
133
+ const keys2 = await rKbf.Ok().asV2KeysItem();
134
+ expect(Object.keys(keys2.keys).length).toBe(2);
135
+
136
+ expect(await kp.get("kaputt")).toEqual(keys2);
137
+
138
+ const rKbf2 = await kb.getNamedKey("kaputt");
139
+
140
+ expect(Object.keys(await rKbf2.Ok().asV2KeysItem()).length).toBe(2);
141
+
142
+ expect((await rKbf2.Ok().get())?.fingerPrint).toEqual(key1Fpr);
143
+
144
+ const asKeysItem = await rKbf.Ok().asV2KeysItem();
145
+ expect(asKeysItem.name).toEqual("kaputt");
146
+ expect(Array.from(Object.values(asKeysItem.keys))).toEqual([
147
+ {
148
+ default: true,
149
+ fingerPrint: key1Fpr,
150
+ key: base58btc.encode(key1Material),
151
+ },
152
+ {
153
+ default: false,
154
+ fingerPrint: key2.kfp.fingerPrint,
155
+ key: base58btc.encode(key2Material),
156
+ },
157
+ ]);
158
+
159
+ const key3Material = kb.rt.crypto.randomBytes(kb.rt.keyLength);
160
+ const rKey3 = await rKbf2.Ok().upsert(key3Material, true);
161
+ const key3 = rKey3.Ok();
162
+ if (!isKeyUpsertResultModified(key3)) {
163
+ assert("key3 not modified");
164
+ return;
165
+ }
166
+
167
+ expect(
168
+ Object.keys(
169
+ await rKbf2
170
+ .Ok()
171
+ .asV2KeysItem()
172
+ .then((i) => i.keys),
173
+ ).length,
174
+ ).toBe(3);
175
+ const v2Key3 = await (key3.kfp as unknown as { asV2StorageKeyItem: () => Promise<V2StorageKeyItem> }).asV2StorageKeyItem();
176
+
177
+ expect(await kp.get("kaputt")).toEqual({
178
+ keys: {
179
+ ...resetDefault(one.keys),
180
+ ...resetDefault(keys2.keys),
181
+ [v2Key3.fingerPrint]: v2Key3,
182
+ },
183
+ name: "kaputt",
184
+ });
185
+ });
186
+
187
+ it("simple default", async () => {
188
+ const sthis = ensureSuperThis();
189
+ await sthis.start();
190
+
191
+ const kb = await getKeyBag(sthis);
192
+
193
+ const keyName = "simple" + sthis.nextId().str;
194
+
195
+ const rKbf1 = await kb.getNamedKey(keyName);
196
+ const kfp1 = await rKbf1
197
+ .Ok()
198
+ .get()
199
+ .then((i) => (i as unknown as { asV2StorageKeyItem: () => Promise<V2StorageKeyItem> }).asV2StorageKeyItem());
200
+ expect(kfp1?.fingerPrint).toBeTypeOf("string");
201
+
202
+ const rKbf2 = await kb.getNamedKey(keyName);
203
+ expect(await rKbf2.Ok().get()).toBeDefined();
204
+ const kfp2 = await rKbf2.Ok().get();
205
+ expect(kfp1?.fingerPrint).toBe(kfp2?.fingerPrint);
206
+
207
+ expect(await kb.rt.getBagProvider().then((i) => i.get(keyName))).toEqual({
208
+ keys: {
209
+ [kfp1?.fingerPrint as string]: {
210
+ default: true,
211
+ fingerPrint: kfp1?.fingerPrint,
212
+ key: kfp1?.key,
213
+ },
214
+ },
215
+ name: keyName,
216
+ });
217
+ });
218
+ it("test stable id", async () => {
219
+ const sthis = ensureSuperThis();
220
+ await sthis.start();
221
+
222
+ const kp = new KeyBagProviderMemory(URI.from("memory://./dist/tests/"), sthis);
223
+ kp.set(v1Keybag as unknown as V2KeysItem);
224
+
225
+ const kb = await getKeyBag(sthis, {
226
+ url: "memory://./dist/tests/?extractKey=_deprecated_internal_api",
227
+ });
228
+
229
+ const name = "default-key" + Math.random();
230
+ const rMyKey = await kb.getNamedKey(name);
231
+
232
+ for (let i = 0; i < 10; ++i) {
233
+ expect(await kb.getNamedKey(name).then((i) => i.Ok().id)).toEqual(rMyKey.Ok().id);
234
+ }
235
+ });
236
+ });
237
+
238
+ function resetDefault(keys: Record<string, V2StorageKeyItem>) {
239
+ return Array.from(Object.values(keys)).reduce(
240
+ (acc, i) => ({ ...acc, [i.fingerPrint]: { ...i, default: false } }),
241
+ {} as Record<string, V2StorageKeyItem>,
242
+ );
243
+ }
@@ -49,7 +49,7 @@ describe("MetaKeyHack", () => {
49
49
  const rGet = await memGw.get(rUrl.Ok(), sthis);
50
50
  const metas = JSON.parse(ctx.loader.sthis.txt.decode(rGet.Ok()));
51
51
  const keyMaterials = metas.keys;
52
- const dataStoreKeyMaterial = await rDataStoreKeyItem.Ok().asKeysItem();
52
+ const dataStoreKeyMaterial = await rDataStoreKeyItem.Ok().asV2KeysItem();
53
53
  expect(keyMaterials.length).toBeGreaterThan(0);
54
54
  expect(dataStoreKeyMaterial).toEqual({
55
55
  keys: {
@@ -1 +1 @@
1
- {"version":3,"file":"meta-key-hack.test.js","sourceRoot":"","sources":["meta-key-hack.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAY,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAE7D,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAE7B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACnD,qBAAqB,CAAC;QACpB,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC;QAC3D,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,EAAY,CAAC;IACjB,IAAI,GAAyB,CAAC;IAC9B,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE;YACrB,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC;aAC1E;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,qEAAqE;aAC3E;SACF,CAAC,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAChD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,SAAS,CACjD,GAAG,EACH,SAAS,CAAC,GAAG,EAAE,EAEf,WAAW,CACZ,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9B,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhG,MAAM,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACtE,MAAM,iBAAiB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAEtE,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAwB,CAAC;QACxF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;QAChC,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;QACvE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;YACnC,IAAI,EAAE;gBACJ,GAAG,CAAC,MAAM,iBAAiB;qBACxB,EAAE,EAAE;qBACJ,GAAG,EAAE;qBACL,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClB,CAAC,CAAC,EAAE,WAAqB,CAAC,EAAE;wBAC1B,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,CAAC,EAAE,WAAW;wBAC3B,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBAC9C;iBACF,CAAC,CAAC,CAAC;gBACN,6CAA6C,EAAE;oBAC7C,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,+CAA+C;oBAC5D,GAAG,EAAE,yBAAyB;iBAC/B;gBACD,6CAA6C,EAAE;oBAC7C,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,+CAA+C;oBAC5D,GAAG,EAAE,yBAAyB;iBAC/B;aACF;YACD,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QAIH,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,qBAAqB,GAAG,SAAS,CAAC,WAAoC,CAAC;QAC7E,MAAM,CACJ,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClH,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"meta-key-hack.test.js","sourceRoot":"","sources":["meta-key-hack.test.ts"],"names":[],"mappings":"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"}
@@ -63,7 +63,7 @@ describe("MetaKeyHack", () => {
63
63
  const rGet = await memGw.get(rUrl.Ok(), sthis);
64
64
  const metas = JSON.parse(ctx.loader.sthis.txt.decode(rGet.Ok())) as V2SerializedMetaKey;
65
65
  const keyMaterials = metas.keys;
66
- const dataStoreKeyMaterial = await rDataStoreKeyItem.Ok().asKeysItem();
66
+ const dataStoreKeyMaterial = await rDataStoreKeyItem.Ok().asV2KeysItem();
67
67
  expect(keyMaterials.length).toBeGreaterThan(0);
68
68
  expect(dataStoreKeyMaterial).toEqual({
69
69
  keys: {