keri 0.0.7 → 0.0.8-dev.3be59ff
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/main.js +32 -28
- package/dist/cli/main.js.map +1 -1
- package/dist/client.d.ts +5 -9
- package/dist/client.js +43 -46
- package/dist/client.js.map +1 -1
- package/dist/controller.d.ts +10 -8
- package/dist/controller.js +235 -146
- package/dist/controller.js.map +1 -1
- package/dist/events/event-store.d.ts +6 -16
- package/dist/events/event-store.js +43 -31
- package/dist/events/event-store.js.map +1 -1
- package/dist/events/events.d.ts +1 -1
- package/dist/events/events.js +22 -20
- package/dist/events/events.js.map +1 -1
- package/dist/keystore/encrypt.d.ts +3 -2
- package/dist/keystore/encrypt.js +34 -16
- package/dist/keystore/encrypt.js.map +1 -1
- package/dist/keystore/key-manager.d.ts +7 -15
- package/dist/keystore/key-manager.js +30 -57
- package/dist/keystore/key-manager.js.map +1 -1
- package/dist/keystore/pinentry.d.ts +1 -0
- package/dist/keystore/pinentry.js +46 -0
- package/dist/keystore/pinentry.js.map +1 -0
- package/dist/main.d.ts +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/package.json +20 -4
- package/dist/serializer.d.ts +0 -10
- package/dist/serializer.js +0 -83
- package/dist/serializer.js.map +0 -1
- package/dist/witness.d.ts +0 -17
- package/dist/witness.js +0 -99
- package/dist/witness.js.map +0 -1
package/dist/cli/main.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-warnings
|
|
2
2
|
import { program } from "commander";
|
|
3
|
+
import process from "node:process";
|
|
3
4
|
import { Controller } from "../controller.js";
|
|
4
5
|
import { SqliteStorage } from "../db/storage-sqlite.js";
|
|
5
6
|
import { KeyManager } from "../keystore/key-manager.js";
|
|
6
7
|
import { keri } from "../events/events.js";
|
|
7
|
-
import {
|
|
8
|
+
import { Message } from "cesr";
|
|
8
9
|
const storage = new SqliteStorage({ filename: ".keri/db.sqlite" });
|
|
9
10
|
storage.init();
|
|
10
11
|
function getStringArray(options, key) {
|
|
@@ -41,19 +42,18 @@ function getString(options, key) {
|
|
|
41
42
|
program.command("resolve <oobi>").action(async (oobi) => {
|
|
42
43
|
const controller = new Controller({
|
|
43
44
|
storage,
|
|
44
|
-
keyManager: new KeyManager({ storage
|
|
45
|
+
keyManager: new KeyManager({ storage }),
|
|
45
46
|
});
|
|
46
47
|
await controller.resolve(oobi);
|
|
47
48
|
});
|
|
48
49
|
program
|
|
49
50
|
.command("incept")
|
|
50
|
-
.
|
|
51
|
+
.option("--passcode <passcode>")
|
|
51
52
|
.option("--wit <wit...>")
|
|
52
53
|
.action(async (options) => {
|
|
53
|
-
const passcode =
|
|
54
|
+
const passcode = getOptionalString(options, "passcode");
|
|
54
55
|
const wits = getStringArray(options, "wit");
|
|
55
|
-
const
|
|
56
|
-
const keystore = new KeyManager({ encrypter, storage });
|
|
56
|
+
const keystore = new KeyManager({ storage, passphrase: passcode });
|
|
57
57
|
const controller = new Controller({ storage, keyManager: keystore });
|
|
58
58
|
const event = await controller.createIdentifier({ wits });
|
|
59
59
|
console.log(event.i);
|
|
@@ -65,10 +65,10 @@ program
|
|
|
65
65
|
.requiredOption("--route <route>")
|
|
66
66
|
.requiredOption("--topic <topic>")
|
|
67
67
|
.requiredOption("--receiver <receiver aid>")
|
|
68
|
-
.
|
|
68
|
+
.option("--passcode <passcode>")
|
|
69
69
|
.requiredOption("--data <data>")
|
|
70
70
|
.action(async (options) => {
|
|
71
|
-
const passcode =
|
|
71
|
+
const passcode = getOptionalString(options, "passcode");
|
|
72
72
|
const sender = getString(options, "sender");
|
|
73
73
|
const receiver = getString(options, "receiver");
|
|
74
74
|
const route = getString(options, "route");
|
|
@@ -76,34 +76,34 @@ program
|
|
|
76
76
|
const data = JSON.parse(getString(options, "data"));
|
|
77
77
|
const keystore = new KeyManager({
|
|
78
78
|
storage,
|
|
79
|
-
|
|
79
|
+
passphrase: passcode,
|
|
80
80
|
});
|
|
81
81
|
const controller = new Controller({ storage, keyManager: keystore });
|
|
82
|
-
const
|
|
83
|
-
|
|
82
|
+
const message = new Message(keri.exchange({
|
|
83
|
+
i: sender,
|
|
84
|
+
r: route,
|
|
85
|
+
q: {},
|
|
86
|
+
a: { i: sender, ...data },
|
|
87
|
+
e: {},
|
|
88
|
+
}));
|
|
89
|
+
await controller.forward({
|
|
84
90
|
sender: await controller.state(sender),
|
|
85
91
|
topic,
|
|
86
92
|
recipient: receiver,
|
|
87
|
-
|
|
88
|
-
i: sender,
|
|
89
|
-
r: route,
|
|
90
|
-
q: {},
|
|
91
|
-
a: { i: sender, ...data },
|
|
92
|
-
e: {},
|
|
93
|
-
}),
|
|
93
|
+
message,
|
|
94
94
|
});
|
|
95
95
|
});
|
|
96
96
|
program
|
|
97
97
|
.command("create-registry")
|
|
98
98
|
.description("Creates a new credential registry")
|
|
99
99
|
.requiredOption("--owner <owner aid>")
|
|
100
|
-
.
|
|
100
|
+
.option("--passcode <passcode>")
|
|
101
101
|
.action(async (options) => {
|
|
102
|
-
const passcode =
|
|
102
|
+
const passcode = getOptionalString(options, "passcode");
|
|
103
103
|
const owner = getString(options, "owner");
|
|
104
104
|
const keystore = new KeyManager({
|
|
105
105
|
storage,
|
|
106
|
-
|
|
106
|
+
passphrase: passcode,
|
|
107
107
|
});
|
|
108
108
|
const controller = new Controller({ storage, keyManager: keystore });
|
|
109
109
|
const registry = await controller.createRegistry({ owner });
|
|
@@ -119,9 +119,9 @@ program
|
|
|
119
119
|
.requiredOption("--rules <rules>")
|
|
120
120
|
.option("--salt <salt>")
|
|
121
121
|
.option("--edges <edges>")
|
|
122
|
-
.
|
|
122
|
+
.option("--passcode <passcode>")
|
|
123
123
|
.action(async (options) => {
|
|
124
|
-
const passcode =
|
|
124
|
+
const passcode = getOptionalString(options, "passcode");
|
|
125
125
|
const registryId = getString(options, "registry");
|
|
126
126
|
const receiver = getString(options, "receiver");
|
|
127
127
|
const schemaId = getString(options, "schema");
|
|
@@ -131,7 +131,7 @@ program
|
|
|
131
131
|
const edges = JSON.parse(getOptionalString(options, "edges") ?? "null");
|
|
132
132
|
const keystore = new KeyManager({
|
|
133
133
|
storage,
|
|
134
|
-
|
|
134
|
+
passphrase: passcode,
|
|
135
135
|
});
|
|
136
136
|
const controller = new Controller({ storage, keyManager: keystore });
|
|
137
137
|
const acdc = await controller.createCredential({
|
|
@@ -143,24 +143,28 @@ program
|
|
|
143
143
|
rules: rules,
|
|
144
144
|
edges: edges || undefined,
|
|
145
145
|
});
|
|
146
|
+
const s = await controller.store.get(acdc.d);
|
|
147
|
+
if (!s) {
|
|
148
|
+
throw new Error("Failed to store created credential");
|
|
149
|
+
}
|
|
146
150
|
console.log(acdc.d);
|
|
147
151
|
});
|
|
148
152
|
program
|
|
149
153
|
.command("ipex-grant")
|
|
150
154
|
.requiredOption("--said <aid>")
|
|
151
|
-
.
|
|
155
|
+
.option("--passcode <passcode>")
|
|
152
156
|
.action(async (options) => {
|
|
153
|
-
const passcode =
|
|
157
|
+
const passcode = getOptionalString(options, "passcode");
|
|
154
158
|
const said = getString(options, "said");
|
|
155
159
|
const keystore = new KeyManager({
|
|
156
160
|
storage,
|
|
157
|
-
|
|
161
|
+
passphrase: passcode,
|
|
158
162
|
});
|
|
159
163
|
const controller = new Controller({
|
|
160
164
|
storage,
|
|
161
165
|
keyManager: keystore,
|
|
162
166
|
});
|
|
163
|
-
const acdc = (await controller.store.get(said))?.
|
|
167
|
+
const acdc = (await controller.store.get(said))?.body;
|
|
164
168
|
if (!acdc) {
|
|
165
169
|
throw new Error(`No ACDC found for said ${said}`);
|
|
166
170
|
}
|
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAwB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
3
|
-
|
|
4
|
-
event: KeyEvent;
|
|
5
|
-
attachment: string;
|
|
6
|
-
}
|
|
1
|
+
import { type ReceiptEvent } from "./events/events.ts";
|
|
2
|
+
import { type LocationRecord } from "./events/event-store.ts";
|
|
3
|
+
import { type Message } from "cesr";
|
|
7
4
|
export interface SendArgs {
|
|
8
5
|
messages: Message[];
|
|
9
6
|
}
|
|
@@ -15,7 +12,6 @@ export declare class Client {
|
|
|
15
12
|
#private;
|
|
16
13
|
role: string;
|
|
17
14
|
constructor(options: ClientOptions);
|
|
18
|
-
getReceipt(message: Message): Promise<
|
|
19
|
-
sendMessage(message: Message): Promise<
|
|
15
|
+
getReceipt(message: Message): Promise<Message<ReceiptEvent>>;
|
|
16
|
+
sendMessage(message: Message, signal?: AbortSignal): Promise<Message[]>;
|
|
20
17
|
}
|
|
21
|
-
export declare function parseKeyEvents(input: ReadableStream<Uint8Array>): AsyncIterableIterator<KeyEventMessage>;
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from "./events/events.js";
|
|
2
|
+
import {} from "./events/event-store.js";
|
|
3
|
+
import { parse } from "cesr";
|
|
2
4
|
export class Client {
|
|
3
5
|
#location;
|
|
4
6
|
role;
|
|
@@ -13,10 +15,10 @@ export class Client {
|
|
|
13
15
|
}
|
|
14
16
|
const response = await fetch(url, {
|
|
15
17
|
method: "POST",
|
|
16
|
-
body: JSON.stringify(message.
|
|
18
|
+
body: JSON.stringify(message.body),
|
|
17
19
|
headers: {
|
|
18
20
|
"Content-Type": "application/cesr+json",
|
|
19
|
-
"CESR-ATTACHMENT": message.
|
|
21
|
+
"CESR-ATTACHMENT": message.attachments.text(),
|
|
20
22
|
},
|
|
21
23
|
});
|
|
22
24
|
if (!response.ok) {
|
|
@@ -25,64 +27,59 @@ export class Client {
|
|
|
25
27
|
if (!response.body) {
|
|
26
28
|
throw new Error(`Failed to send event: ${response.status} ${response.statusText}`);
|
|
27
29
|
}
|
|
28
|
-
for await (const
|
|
29
|
-
if (
|
|
30
|
-
return
|
|
30
|
+
for await (const incoming of parse(response.body)) {
|
|
31
|
+
if (incoming.body.t === "rct" && incoming.body.d === message.body.d) {
|
|
32
|
+
return incoming;
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
throw new Error(`Failed to get receipt for event: ${response.status} ${response.statusText}`);
|
|
34
36
|
}
|
|
35
|
-
async sendMessage(message) {
|
|
37
|
+
async sendMessage(message, signal) {
|
|
36
38
|
const url = new URL("/", this.#location.url);
|
|
39
|
+
const body = JSON.stringify(message.body);
|
|
40
|
+
const headers = {
|
|
41
|
+
"Content-Type": "application/cesr+json",
|
|
42
|
+
"CESR-ATTACHMENT": message.attachments.text(),
|
|
43
|
+
"CESR-DESTINATION": this.#location.eid,
|
|
44
|
+
};
|
|
37
45
|
const response = await fetch(url, {
|
|
38
46
|
method: "POST",
|
|
39
|
-
body
|
|
40
|
-
headers
|
|
41
|
-
|
|
42
|
-
"CESR-ATTACHMENT": message.attachment,
|
|
43
|
-
"CESR-DESTINATION": this.#location.eid,
|
|
44
|
-
},
|
|
47
|
+
body,
|
|
48
|
+
headers,
|
|
49
|
+
signal,
|
|
45
50
|
});
|
|
46
51
|
if (!response.ok) {
|
|
47
52
|
throw new Error(`Failed to send event: ${response.status} ${response.statusText}`);
|
|
48
53
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
54
|
+
if (!response.body) {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
const contentType = response.headers.get("Content-Type");
|
|
58
|
+
if (!contentType) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
if (contentType === "text/event-stream") {
|
|
62
|
+
const reader = response.body.getReader();
|
|
63
|
+
while (true) {
|
|
64
|
+
const { done, value } = await reader.read();
|
|
65
|
+
if (done) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
const str = new TextDecoder().decode(value);
|
|
69
|
+
for (const line of str.split("\n")) {
|
|
70
|
+
if (line.startsWith("data: ")) {
|
|
71
|
+
const data = line.slice(6);
|
|
72
|
+
const message = await Array.fromAsync(parse(data));
|
|
73
|
+
reader.cancel("Got message, cancelling reader");
|
|
74
|
+
return message;
|
|
75
|
+
}
|
|
68
76
|
}
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
receipts: decouple(receipts).map(([backer, signature]) => ({ backer, signature })),
|
|
74
|
-
signatures,
|
|
75
|
-
timestamp: new Date(),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function decouple(arr) {
|
|
80
|
-
const result = [];
|
|
81
|
-
for (let i = 0; i < arr.length; i++) {
|
|
82
|
-
if (i % 2 === 0) {
|
|
83
|
-
result.push([arr[i], arr[i + 1]]);
|
|
79
|
+
if (contentType?.startsWith("application/json")) {
|
|
80
|
+
return [];
|
|
84
81
|
}
|
|
82
|
+
return await Array.fromAsync(parse(response.body));
|
|
85
83
|
}
|
|
86
|
-
return result;
|
|
87
84
|
}
|
|
88
85
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/controller.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ControllerEventStore, type KeyValueStorage, type
|
|
2
|
-
import
|
|
1
|
+
import { ControllerEventStore, type KeyValueStorage, type KeyState, type LocationRecord } from "./events/event-store.ts";
|
|
2
|
+
import { type KeyManager } from "./keystore/key-manager.ts";
|
|
3
3
|
import { type KeyEvent, type InteractEvent, type CredentialEvent, type RegistryInceptEvent } from "./events/events.ts";
|
|
4
4
|
import { Client } from "./client.ts";
|
|
5
|
+
import { Message } from "cesr";
|
|
5
6
|
export interface ControllerDeps {
|
|
6
7
|
keyManager: KeyManager;
|
|
7
8
|
storage: KeyValueStorage;
|
|
@@ -12,15 +13,15 @@ export interface IpexGrantArgs {
|
|
|
12
13
|
timestamp?: string;
|
|
13
14
|
}
|
|
14
15
|
export interface ForwardArgs {
|
|
15
|
-
|
|
16
|
+
message: Message<KeyEvent>;
|
|
16
17
|
sender: KeyState;
|
|
17
18
|
topic: string;
|
|
18
19
|
recipient: string;
|
|
19
|
-
attachment?: string;
|
|
20
20
|
timestamp?: string;
|
|
21
21
|
}
|
|
22
22
|
export interface InceptArgs {
|
|
23
|
-
keys?:
|
|
23
|
+
keys?: string[];
|
|
24
|
+
next?: string[];
|
|
24
25
|
wits?: string[];
|
|
25
26
|
toad?: number;
|
|
26
27
|
}
|
|
@@ -47,17 +48,18 @@ export declare class Controller {
|
|
|
47
48
|
get store(): ControllerEventStore;
|
|
48
49
|
constructor(deps: ControllerDeps);
|
|
49
50
|
createIdentifier(args?: InceptArgs): Promise<KeyState>;
|
|
51
|
+
addMailbox(aid: string, eid: string): Promise<void>;
|
|
50
52
|
interact(args: InteractArgs): Promise<InteractEvent>;
|
|
51
53
|
createRegistry(args: CreateRegistryArgs): Promise<RegistryInceptEvent>;
|
|
52
54
|
createCredential(args: CreateCredentialArgs): Promise<CredentialEvent>;
|
|
53
55
|
resolve(oobi: string): Promise<void>;
|
|
54
56
|
getClient(cid: string): Promise<Client>;
|
|
55
57
|
getLocation(aid: string): Promise<LocationRecord>;
|
|
56
|
-
submit
|
|
58
|
+
private submit;
|
|
57
59
|
state(said: string): Promise<KeyState>;
|
|
58
|
-
listEvents(id: string): Promise<
|
|
60
|
+
listEvents(id: string): Promise<Message<KeyEvent>[]>;
|
|
59
61
|
sendCredentialArficats(credential: CredentialEvent, recipient: string): Promise<void>;
|
|
60
62
|
grant(args: IpexGrantArgs): Promise<void>;
|
|
61
|
-
forward(
|
|
63
|
+
forward(args: ForwardArgs): Promise<void>;
|
|
62
64
|
sign(event: Record<string, unknown>, keys: string[]): Promise<string[]>;
|
|
63
65
|
}
|