keri 0.0.7 → 0.0.8-dev.57bf32e
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/client.js +3 -2
- package/dist/client.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/package.json +2 -2
- package/dist/witness.d.ts +0 -17
- package/dist/witness.js +0 -99
- package/dist/witness.js.map +0 -1
package/dist/client.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { cesr, CountCode_10
|
|
1
|
+
import { cesr, CountCode_10 } from "cesr/__unstable__";
|
|
2
|
+
import { parse } from "cesr";
|
|
2
3
|
export class Client {
|
|
3
4
|
#location;
|
|
4
5
|
role;
|
|
@@ -49,7 +50,7 @@ export class Client {
|
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
export async function* parseKeyEvents(input) {
|
|
52
|
-
for await (const message of
|
|
53
|
+
for await (const message of parse(input)) {
|
|
53
54
|
const signatures = [];
|
|
54
55
|
const receipts = [];
|
|
55
56
|
let group = null;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAgB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
CHANGED
package/dist/main.js
CHANGED
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "keri",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8-dev.57bf32e",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build": "tsc -p tsconfig.build.json",
|
|
6
6
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@noble/ed25519": "^3.0.0",
|
|
33
33
|
"@noble/hashes": "^2.0.0",
|
|
34
34
|
"@noble/secp256k1": "^3.0.0",
|
|
35
|
-
"cesr": "^0.0.
|
|
35
|
+
"cesr": "^0.0.19",
|
|
36
36
|
"commander": "^14.0.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
package/dist/witness.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface OobiArgs {
|
|
2
|
-
aid?: string;
|
|
3
|
-
role?: string;
|
|
4
|
-
}
|
|
5
|
-
export interface WitnessOptions {
|
|
6
|
-
seed?: Uint8Array;
|
|
7
|
-
}
|
|
8
|
-
export declare class Witness {
|
|
9
|
-
#private;
|
|
10
|
-
constructor(options?: WitnessOptions);
|
|
11
|
-
/**
|
|
12
|
-
* Handle incoming HTTP requests
|
|
13
|
-
*
|
|
14
|
-
* @param request The incoming HTTP request
|
|
15
|
-
*/
|
|
16
|
-
fetch(request: Request): Promise<Response>;
|
|
17
|
-
}
|
package/dist/witness.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { ed25519 } from "@noble/curves/ed25519.js";
|
|
2
|
-
import { cesr, CountCode_10, encodeCounter, IndexCode, MatterCode } from "cesr/__unstable__";
|
|
3
|
-
import { keri } from "./events/events.js";
|
|
4
|
-
import { encodeHexNumber, serializeAttachments, serializeReceipts, serializeSignatures } from "./serializer.js";
|
|
5
|
-
export class Witness {
|
|
6
|
-
#privateKey;
|
|
7
|
-
#publicKey;
|
|
8
|
-
#icp;
|
|
9
|
-
#signature;
|
|
10
|
-
constructor(options = {}) {
|
|
11
|
-
this.#privateKey = ed25519.utils.randomSecretKey(options.seed);
|
|
12
|
-
this.#publicKey = cesr.encodeMatter({ code: MatterCode.Ed25519N, raw: ed25519.getPublicKey(this.#privateKey) });
|
|
13
|
-
this.#icp = keri.incept({
|
|
14
|
-
k: [this.#publicKey],
|
|
15
|
-
kt: "1",
|
|
16
|
-
});
|
|
17
|
-
this.#signature = cesr.encodeIndexer({
|
|
18
|
-
code: IndexCode.Ed25519_Sig,
|
|
19
|
-
raw: ed25519.sign(new TextEncoder().encode(JSON.stringify(this.#icp)), this.#privateKey),
|
|
20
|
-
index: 0,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
#createResponse(message) {
|
|
24
|
-
const body = [
|
|
25
|
-
JSON.stringify(message.event),
|
|
26
|
-
serializeAttachments([
|
|
27
|
-
serializeSignatures(message.signatures),
|
|
28
|
-
serializeReceipts(message.receipts),
|
|
29
|
-
encodeCounter({
|
|
30
|
-
code: CountCode_10.FirstSeenReplayCouples,
|
|
31
|
-
count: 1,
|
|
32
|
-
}),
|
|
33
|
-
encodeHexNumber(message.event.s ?? "0"),
|
|
34
|
-
cesr.encodeDate(message.timestamp),
|
|
35
|
-
]),
|
|
36
|
-
].join("");
|
|
37
|
-
return new Response(body, {
|
|
38
|
-
status: 200,
|
|
39
|
-
headers: { "Content-Type": "application/json+cesr" },
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
async #oobi(request) {
|
|
43
|
-
if (request.method.toUpperCase() !== "GET") {
|
|
44
|
-
return new Response("Method Not Allowed", { status: 405 });
|
|
45
|
-
}
|
|
46
|
-
const match = request.url.match(/\/oobi\/?([A-Za-z0-9_-])?$/);
|
|
47
|
-
if (!match) {
|
|
48
|
-
return new Response("Not Found", { status: 404 });
|
|
49
|
-
}
|
|
50
|
-
const response = this.#createResponse({
|
|
51
|
-
event: this.#icp,
|
|
52
|
-
signatures: [this.#signature],
|
|
53
|
-
receipts: [],
|
|
54
|
-
timestamp: new Date(),
|
|
55
|
-
});
|
|
56
|
-
response.headers.set("Keri-Aid", this.#icp.i);
|
|
57
|
-
return response;
|
|
58
|
-
}
|
|
59
|
-
#sign(event) {
|
|
60
|
-
const raw = new TextEncoder().encode(JSON.stringify(event));
|
|
61
|
-
const sign = ed25519.sign(raw, this.#privateKey);
|
|
62
|
-
return cesr.encodeMatter({ code: MatterCode.Ed25519_Sig, raw: sign });
|
|
63
|
-
}
|
|
64
|
-
async #receipt(request) {
|
|
65
|
-
const event = (await request.json());
|
|
66
|
-
if (typeof event.i !== "string" || typeof event.d !== "string" || typeof event.s !== "string") {
|
|
67
|
-
return new Response("Bad Request", { status: 400 });
|
|
68
|
-
}
|
|
69
|
-
return this.#createResponse({
|
|
70
|
-
event: keri.receipt({ d: event.d, i: event.i, s: event.s }),
|
|
71
|
-
signatures: [],
|
|
72
|
-
receipts: [{ backer: this.#icp.i, signature: this.#sign(event) }],
|
|
73
|
-
timestamp: new Date(),
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Handle incoming HTTP requests
|
|
78
|
-
*
|
|
79
|
-
* @param request The incoming HTTP request
|
|
80
|
-
*/
|
|
81
|
-
async fetch(request) {
|
|
82
|
-
try {
|
|
83
|
-
const url = new URL(request.url);
|
|
84
|
-
if (url.pathname.startsWith("/oobi")) {
|
|
85
|
-
return await this.#oobi(request);
|
|
86
|
-
}
|
|
87
|
-
if (url.pathname === "/receipts" && request.method.toUpperCase() === "POST") {
|
|
88
|
-
return await this.#receipt(request);
|
|
89
|
-
}
|
|
90
|
-
return new Response("Not Found", { status: 404 });
|
|
91
|
-
}
|
|
92
|
-
catch (err) {
|
|
93
|
-
// eslint-disable-next-line no-console
|
|
94
|
-
console.error("Error handling request:", err);
|
|
95
|
-
return new Response("Internal Server Error", { status: 500 });
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=witness.js.map
|
package/dist/witness.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"witness.js","sourceRoot":"","sources":["../src/witness.ts"],"names":[],"mappings":"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"}
|