keri 0.0.8-dev.ffce734 → 0.1.2

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 (111) hide show
  1. package/dist/controller/controller.d.ts +109 -0
  2. package/dist/controller/controller.js +545 -0
  3. package/dist/controller/controller.js.map +1 -0
  4. package/dist/controller/encrypt.d.ts +45 -0
  5. package/dist/controller/encrypt.js +120 -0
  6. package/dist/controller/encrypt.js.map +1 -0
  7. package/dist/core/credential-event.d.ts +58 -0
  8. package/dist/core/credential-event.js +28 -0
  9. package/dist/core/credential-event.js.map +1 -0
  10. package/dist/core/credential.d.ts +79 -0
  11. package/dist/core/credential.js +25 -0
  12. package/dist/core/credential.js.map +1 -0
  13. package/dist/core/digest.d.ts +1 -0
  14. package/dist/core/digest.js +7 -0
  15. package/dist/core/digest.js.map +1 -0
  16. package/dist/core/endpoint-discovery.d.ts +20 -0
  17. package/dist/core/endpoint-discovery.js +60 -0
  18. package/dist/core/endpoint-discovery.js.map +1 -0
  19. package/dist/core/events.d.ts +12 -0
  20. package/dist/core/events.js +25 -0
  21. package/dist/core/events.js.map +1 -0
  22. package/dist/core/kawa.d.ts +17 -0
  23. package/dist/core/kawa.js +79 -0
  24. package/dist/core/kawa.js.map +1 -0
  25. package/dist/core/key-event-log.d.ts +13 -0
  26. package/dist/core/key-event-log.js +154 -0
  27. package/dist/core/key-event-log.js.map +1 -0
  28. package/dist/core/key-event.d.ts +96 -0
  29. package/dist/core/key-event.js +89 -0
  30. package/dist/core/key-event.js.map +1 -0
  31. package/dist/core/keys.d.ts +9 -0
  32. package/dist/core/keys.js +17 -0
  33. package/dist/core/keys.js.map +1 -0
  34. package/dist/core/mailbox-client.d.ts +17 -0
  35. package/dist/core/mailbox-client.js +57 -0
  36. package/dist/core/mailbox-client.js.map +1 -0
  37. package/dist/core/main.d.ts +47 -0
  38. package/dist/core/main.js +44 -0
  39. package/dist/core/main.js.map +1 -0
  40. package/dist/core/receipt-event.d.ts +15 -0
  41. package/dist/core/receipt-event.js +13 -0
  42. package/dist/core/receipt-event.js.map +1 -0
  43. package/dist/core/registry-event.d.ts +28 -0
  44. package/dist/core/registry-event.js +18 -0
  45. package/dist/core/registry-event.js.map +1 -0
  46. package/dist/core/routed-event.d.ts +73 -0
  47. package/dist/core/routed-event.js +53 -0
  48. package/dist/core/routed-event.js.map +1 -0
  49. package/dist/core/said.d.ts +4 -0
  50. package/dist/core/said.js +26 -0
  51. package/dist/core/said.js.map +1 -0
  52. package/dist/core/sign.d.ts +5 -0
  53. package/dist/core/sign.js +10 -0
  54. package/dist/core/sign.js.map +1 -0
  55. package/dist/core/threshold.d.ts +6 -0
  56. package/dist/core/threshold.js +58 -0
  57. package/dist/core/threshold.js.map +1 -0
  58. package/dist/core/verify.d.ts +14 -0
  59. package/dist/core/verify.js +43 -0
  60. package/dist/core/verify.js.map +1 -0
  61. package/dist/main.d.ts +2 -8
  62. package/dist/main.js +2 -8
  63. package/dist/main.js.map +1 -1
  64. package/dist/storage/sqlite/node-sqlite.d.ts +12 -0
  65. package/dist/storage/sqlite/node-sqlite.js +25 -0
  66. package/dist/storage/sqlite/node-sqlite.js.map +1 -0
  67. package/dist/storage/sqlite/schema.d.ts +2 -0
  68. package/dist/storage/sqlite/schema.js +49 -0
  69. package/dist/storage/sqlite/schema.js.map +1 -0
  70. package/dist/storage/sqlite/sqlite-database.d.ts +13 -0
  71. package/dist/storage/sqlite/sqlite-database.js +2 -0
  72. package/dist/storage/sqlite/sqlite-database.js.map +1 -0
  73. package/dist/storage/sqlite/storage-sqlite.d.ts +26 -0
  74. package/dist/storage/sqlite/storage-sqlite.js +213 -0
  75. package/dist/storage/sqlite/storage-sqlite.js.map +1 -0
  76. package/package.json +29 -21
  77. package/LICENSE +0 -201
  78. package/README.md +0 -10
  79. package/dist/cli/main.d.ts +0 -2
  80. package/dist/cli/main.js +0 -175
  81. package/dist/cli/main.js.map +0 -1
  82. package/dist/client.d.ts +0 -21
  83. package/dist/client.js +0 -88
  84. package/dist/client.js.map +0 -1
  85. package/dist/controller.d.ts +0 -63
  86. package/dist/controller.js +0 -392
  87. package/dist/controller.js.map +0 -1
  88. package/dist/db/storage-sqlite.d.ts +0 -12
  89. package/dist/db/storage-sqlite.js +0 -53
  90. package/dist/db/storage-sqlite.js.map +0 -1
  91. package/dist/db/storage.d.ts +0 -18
  92. package/dist/db/storage.js +0 -29
  93. package/dist/db/storage.js.map +0 -1
  94. package/dist/events/event-store.d.ts +0 -126
  95. package/dist/events/event-store.js +0 -242
  96. package/dist/events/event-store.js.map +0 -1
  97. package/dist/events/events.d.ts +0 -248
  98. package/dist/events/events.js +0 -184
  99. package/dist/events/events.js.map +0 -1
  100. package/dist/keystore/encrypt.d.ts +0 -10
  101. package/dist/keystore/encrypt.js +0 -39
  102. package/dist/keystore/encrypt.js.map +0 -1
  103. package/dist/keystore/key-manager.d.ts +0 -27
  104. package/dist/keystore/key-manager.js +0 -91
  105. package/dist/keystore/key-manager.js.map +0 -1
  106. package/dist/serializer.d.ts +0 -10
  107. package/dist/serializer.js +0 -83
  108. package/dist/serializer.js.map +0 -1
  109. package/dist/witness.d.ts +0 -17
  110. package/dist/witness.js +0 -99
  111. package/dist/witness.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ export interface Encrypter {
2
+ encrypt(data: Uint8Array): Promise<Uint8Array>;
3
+ decrypt(data: Uint8Array): Promise<Uint8Array>;
4
+ }
5
+ /**
6
+ * TODO
7
+ *
8
+ * This implementation is intentionally minimal for MVP.
9
+ * It uses PBKDF2 (SHA-256, 310k iterations) + AES-256-GCM with
10
+ * random salt and IV. This is secure by modern standards, but
11
+ * not fully hardened.
12
+ *
13
+ * Planned improvements for next format version (e.g. "KJS2"):
14
+ *
15
+ * 1. KDF Upgrade
16
+ * - Replace PBKDF2 with Argon2id (memory-hard).
17
+ * - Alternatively support multiple KDFs via encoded KDF identifier.
18
+ *
19
+ * 2. Encode KDF Parameters
20
+ * - Store iteration count (and memory parameters if Argon2)
21
+ * inside ciphertext header for forward compatibility.
22
+ *
23
+ * 3. Header Authentication (AAD)
24
+ * - Include prefix + salt + IV as AES-GCM additional authenticated data
25
+ * to cryptographically bind structure.
26
+ *
27
+ * 4. Passphrase Handling
28
+ * - Avoid long-term caching of passphrase strings in memory.
29
+ * - Prefer short-lived Uint8Array or derived CryptoKey storage.
30
+ *
31
+ * 5. Key Separation (if expanded usage)
32
+ * - Derive distinct keys for encryption / MAC / wrapping
33
+ * using HKDF if additional primitives are added.
34
+ *
35
+ * IMPORTANT:
36
+ * Never change behavior under the "KJS1" prefix.
37
+ * All security upgrades must use a new version prefix
38
+ * to preserve backward compatibility.
39
+ */
40
+ export declare class PassphraseEncrypter implements Encrypter {
41
+ #private;
42
+ constructor(passphrase: string);
43
+ encrypt(data: Uint8Array): Promise<Uint8Array>;
44
+ decrypt(ciphertext: Uint8Array): Promise<Uint8Array>;
45
+ }
@@ -0,0 +1,120 @@
1
+ const PREFIX = new TextEncoder().encode("KJS1");
2
+ const SALT_LENGTH = 16;
3
+ const IV_LENGTH = 12;
4
+ const AUTH_TAG_LENGTH = 16;
5
+ const PBKDF2_ITERATIONS = 310000;
6
+ async function deriveKey(passphrase, salt) {
7
+ const encoder = new TextEncoder();
8
+ const encryptionKey = await crypto.subtle.importKey("raw", encoder.encode(passphrase), "PBKDF2", false, [
9
+ "deriveBits",
10
+ "deriveKey",
11
+ ]);
12
+ const key = await crypto.subtle.deriveKey({
13
+ name: "PBKDF2",
14
+ salt: Uint8Array.from(salt),
15
+ iterations: PBKDF2_ITERATIONS,
16
+ hash: "SHA-256",
17
+ }, encryptionKey, { name: "AES-GCM", length: 256 }, false, ["encrypt", "decrypt"]);
18
+ return key;
19
+ }
20
+ function hasV1Prefix(ciphertext) {
21
+ if (ciphertext.length < PREFIX.length) {
22
+ return false;
23
+ }
24
+ for (let i = 0; i < PREFIX.length; i++) {
25
+ if (ciphertext[i] !== PREFIX[i]) {
26
+ return false;
27
+ }
28
+ }
29
+ return true;
30
+ }
31
+ function parseCiphertext(ciphertext) {
32
+ if (!hasV1Prefix(ciphertext)) {
33
+ throw new Error("Invalid encrypted payload");
34
+ }
35
+ const headerLength = PREFIX.length + SALT_LENGTH + IV_LENGTH;
36
+ if (ciphertext.length < headerLength + AUTH_TAG_LENGTH) {
37
+ throw new Error("Invalid encrypted payload");
38
+ }
39
+ const saltStart = PREFIX.length;
40
+ const ivStart = saltStart + SALT_LENGTH;
41
+ const encryptedStart = ivStart + IV_LENGTH;
42
+ return {
43
+ salt: ciphertext.slice(saltStart, ivStart),
44
+ iv: ciphertext.slice(ivStart, encryptedStart),
45
+ encrypted: ciphertext.slice(encryptedStart),
46
+ };
47
+ }
48
+ async function encrypt(data, passphrase) {
49
+ const salt = crypto.getRandomValues(new Uint8Array(SALT_LENGTH));
50
+ const iv = crypto.getRandomValues(new Uint8Array(IV_LENGTH));
51
+ const key = await deriveKey(passphrase, salt);
52
+ const encrypted = await crypto.subtle.encrypt({ name: "AES-GCM", iv }, key, Uint8Array.from(data));
53
+ const result = new Uint8Array(PREFIX.length + salt.byteLength + iv.byteLength + encrypted.byteLength);
54
+ result.set(PREFIX, 0);
55
+ result.set(salt, PREFIX.length);
56
+ result.set(iv, PREFIX.length + salt.byteLength);
57
+ result.set(new Uint8Array(encrypted), PREFIX.length + salt.byteLength + iv.byteLength);
58
+ return result;
59
+ }
60
+ async function decrypt(ciphertext, passphrase) {
61
+ const { salt, iv, encrypted } = parseCiphertext(ciphertext);
62
+ const key = await deriveKey(passphrase, salt);
63
+ try {
64
+ const result = await crypto.subtle.decrypt({ name: "AES-GCM", iv: new Uint8Array(iv) }, key, new Uint8Array(encrypted));
65
+ return new Uint8Array(result);
66
+ }
67
+ catch (err) {
68
+ throw new Error("Could not decrypt data", {
69
+ cause: err,
70
+ });
71
+ }
72
+ }
73
+ /**
74
+ * TODO
75
+ *
76
+ * This implementation is intentionally minimal for MVP.
77
+ * It uses PBKDF2 (SHA-256, 310k iterations) + AES-256-GCM with
78
+ * random salt and IV. This is secure by modern standards, but
79
+ * not fully hardened.
80
+ *
81
+ * Planned improvements for next format version (e.g. "KJS2"):
82
+ *
83
+ * 1. KDF Upgrade
84
+ * - Replace PBKDF2 with Argon2id (memory-hard).
85
+ * - Alternatively support multiple KDFs via encoded KDF identifier.
86
+ *
87
+ * 2. Encode KDF Parameters
88
+ * - Store iteration count (and memory parameters if Argon2)
89
+ * inside ciphertext header for forward compatibility.
90
+ *
91
+ * 3. Header Authentication (AAD)
92
+ * - Include prefix + salt + IV as AES-GCM additional authenticated data
93
+ * to cryptographically bind structure.
94
+ *
95
+ * 4. Passphrase Handling
96
+ * - Avoid long-term caching of passphrase strings in memory.
97
+ * - Prefer short-lived Uint8Array or derived CryptoKey storage.
98
+ *
99
+ * 5. Key Separation (if expanded usage)
100
+ * - Derive distinct keys for encryption / MAC / wrapping
101
+ * using HKDF if additional primitives are added.
102
+ *
103
+ * IMPORTANT:
104
+ * Never change behavior under the "KJS1" prefix.
105
+ * All security upgrades must use a new version prefix
106
+ * to preserve backward compatibility.
107
+ */
108
+ export class PassphraseEncrypter {
109
+ #passphrase;
110
+ constructor(passphrase) {
111
+ this.#passphrase = passphrase;
112
+ }
113
+ async encrypt(data) {
114
+ return await encrypt(data, this.#passphrase);
115
+ }
116
+ async decrypt(ciphertext) {
117
+ return await decrypt(ciphertext, this.#passphrase);
118
+ }
119
+ }
120
+ //# sourceMappingURL=encrypt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypt.js","sourceRoot":"","sources":["../../src/controller/encrypt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { Message } from "cesr";
2
+ export interface IssueEventInit {
3
+ /**
4
+ * Credential SAID
5
+ */
6
+ i: string;
7
+ /**
8
+ * Registry SAID
9
+ */
10
+ ri: string;
11
+ dt?: string;
12
+ }
13
+ export type IssueEvent = {
14
+ v: string;
15
+ t: "iss";
16
+ d: string;
17
+ /**
18
+ * Credential SAID
19
+ */
20
+ i: string;
21
+ s: string;
22
+ /**
23
+ * Registry SAID
24
+ */
25
+ ri: string;
26
+ dt: string;
27
+ };
28
+ export interface RevokeEventInit {
29
+ /**
30
+ * Credential SAID
31
+ */
32
+ i: string;
33
+ /**
34
+ * Registry SAID
35
+ */
36
+ ri: string;
37
+ /**
38
+ * Issuance event SAID
39
+ */
40
+ p: string;
41
+ dt?: string;
42
+ }
43
+ export type RevokeEvent = {
44
+ v: string;
45
+ t: "rev";
46
+ d: string;
47
+ i: string;
48
+ s: string;
49
+ ri: string;
50
+ p: string;
51
+ dt: string;
52
+ };
53
+ export declare function issue(args: IssueEventInit): Message<IssueEvent & {
54
+ v: string;
55
+ }>;
56
+ export declare function revoke(args: RevokeEventInit): Message<RevokeEvent & {
57
+ v: string;
58
+ }>;
@@ -0,0 +1,28 @@
1
+ import { Message } from "cesr";
2
+ import { DUMMY_VERSION, encodeEvent, formatDate } from "./events.js";
3
+ export function issue(args) {
4
+ const body = encodeEvent({
5
+ v: DUMMY_VERSION,
6
+ t: "iss",
7
+ d: "",
8
+ i: args.i,
9
+ s: "0",
10
+ ri: args.ri,
11
+ dt: args.dt ?? formatDate(new Date()),
12
+ }, { labels: ["d"] });
13
+ return new Message(body);
14
+ }
15
+ export function revoke(args) {
16
+ const body = encodeEvent({
17
+ v: DUMMY_VERSION,
18
+ t: "rev",
19
+ d: "",
20
+ i: args.i,
21
+ s: "1",
22
+ ri: args.ri,
23
+ p: args.p,
24
+ dt: args.dt ?? formatDate(new Date()),
25
+ }, { labels: ["d"] });
26
+ return new Message(body);
27
+ }
28
+ //# sourceMappingURL=credential-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-event.js","sourceRoot":"","sources":["../../src/core/credential-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgErE,MAAM,UAAU,KAAK,CAAC,IAAoB;IACxC,MAAM,IAAI,GAAG,WAAW,CACtB;QACE,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,GAAG;QACN,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;KACtC,EACD,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAClB,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAqB;IAC1C,MAAM,IAAI,GAAG,WAAW,CACtB;QACE,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,GAAG;QACN,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;KACtC,EACD,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAClB,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,79 @@
1
+ import { Message } from "cesr";
2
+ export interface CredentialBodyInit {
3
+ /**
4
+ * Salty nonce
5
+ */
6
+ u?: string;
7
+ i: string;
8
+ ri: string;
9
+ s: string;
10
+ a: {
11
+ i?: string;
12
+ dt?: string;
13
+ [key: string]: string | Record<string, unknown> | undefined;
14
+ };
15
+ r?: Record<string, unknown>;
16
+ e?: Record<string, unknown>;
17
+ }
18
+ export interface CredentialSubject {
19
+ /**
20
+ * Subject SAID
21
+ */
22
+ d: string;
23
+ /**
24
+ * Issuee AID
25
+ */
26
+ i?: string;
27
+ /**
28
+ * Issuance timestamp
29
+ */
30
+ dt?: string;
31
+ [key: string]: string | undefined;
32
+ }
33
+ export interface CredentialRules {
34
+ /**
35
+ * Rules SAID
36
+ */
37
+ d: string;
38
+ [key: string]: string | Record<string, unknown> | undefined;
39
+ }
40
+ export interface CredentialEdges {
41
+ /**
42
+ * Rules SAID
43
+ */
44
+ d: string;
45
+ [key: string]: string | Record<string, unknown> | undefined;
46
+ }
47
+ export type CredentialBody = {
48
+ v: string;
49
+ /**
50
+ * Credential SAID
51
+ */
52
+ d: string;
53
+ /**
54
+ * Issuer AID
55
+ */
56
+ i: string;
57
+ /**
58
+ * Registry AID
59
+ */
60
+ ri: string;
61
+ /**
62
+ * Schema SAID
63
+ */
64
+ s: string;
65
+ /**
66
+ * Credential subject (claims)
67
+ */
68
+ a: CredentialSubject;
69
+ /**
70
+ * Credential rules
71
+ */
72
+ r: CredentialRules;
73
+ /**
74
+ * Credential edges
75
+ */
76
+ e?: CredentialEdges;
77
+ };
78
+ export type Credential = Message<CredentialBody>;
79
+ export declare function createCredential(data: CredentialBodyInit): Credential;
@@ -0,0 +1,25 @@
1
+ import { Message, VersionString } from "cesr";
2
+ import { saidify } from "./said.js";
3
+ import { encodeEvent } from "./events.js";
4
+ export function createCredential(data) {
5
+ const body = encodeEvent({
6
+ v: VersionString.encode({
7
+ protocol: "ACDC",
8
+ kind: "JSON",
9
+ legacy: true,
10
+ }),
11
+ d: "#".repeat(44),
12
+ ...(data.u && { u: data.u }),
13
+ i: data.i,
14
+ ri: data.ri,
15
+ s: data.s,
16
+ a: saidify({
17
+ d: "#".repeat(44),
18
+ ...data.a,
19
+ }, ["d"]),
20
+ ...(data.e && { e: saidify({ d: "#".repeat(44), ...data.e }, ["d"]) }),
21
+ r: saidify({ d: "#".repeat(44), ...data.r }, ["d"]),
22
+ });
23
+ return new Message(body);
24
+ }
25
+ //# sourceMappingURL=credential.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential.js","sourceRoot":"","sources":["../../src/core/credential.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgG1C,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,MAAM,IAAI,GAAG,WAAW,CAAiB;QACvC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC;YACtB,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;SACb,CAAC;QACF,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5B,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,OAAO,CACR;YACE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjB,GAAG,IAAI,CAAC,CAAC;SACV,EACD,CAAC,GAAG,CAAC,CACN;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;KACpD,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAiB,IAAI,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function digest(input: string): string;
@@ -0,0 +1,7 @@
1
+ import { blake3 } from "@noble/hashes/blake3.js";
2
+ import { cesr } from "cesr";
3
+ export function digest(input) {
4
+ const digest = cesr.crypto.blake3_256(blake3.create({ dkLen: 32 }).update(new TextEncoder().encode(input)).digest());
5
+ return digest.text();
6
+ }
7
+ //# sourceMappingURL=digest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/core/digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Message } from "cesr";
2
+ import type { ReplyEvent } from "./routed-event.ts";
3
+ export interface EndRoleRecord extends Record<string, unknown> {
4
+ cid: string;
5
+ role: string;
6
+ eid: string;
7
+ }
8
+ export interface LocationRecord extends Record<string, unknown> {
9
+ eid: string;
10
+ scheme: string;
11
+ url: string;
12
+ }
13
+ export interface Endpoint {
14
+ aid: string;
15
+ url: string;
16
+ scheme: string;
17
+ role: string;
18
+ }
19
+ export declare function resolveEndRole(replies: Iterable<Message<ReplyEvent>>, cid: string, role: string): EndRoleRecord | null;
20
+ export declare function resolveLocation(replies: Iterable<Message<ReplyEvent>>, eid: string): LocationRecord | null;
@@ -0,0 +1,60 @@
1
+ export function resolveEndRole(replies, cid, role) {
2
+ // TODO: Needs verify against a Key Event Log
3
+ // TODO: Needs to handle /end/role/cut
4
+ let selected = null;
5
+ for (const message of replies) {
6
+ if (message.body.t !== "rpy" || message.body.r !== "/end/role/add") {
7
+ continue;
8
+ }
9
+ const record = message.body.a;
10
+ if (typeof record !== "object" ||
11
+ record === null ||
12
+ !("eid" in record) ||
13
+ typeof record.eid !== "string" ||
14
+ !("cid" in record) ||
15
+ typeof record.cid !== "string" ||
16
+ !("role" in record) ||
17
+ typeof record.role !== "string") {
18
+ continue;
19
+ }
20
+ if (record.cid === cid && record.role === role) {
21
+ selected = {
22
+ cid: record.cid,
23
+ role: record.role,
24
+ eid: record.eid,
25
+ };
26
+ }
27
+ }
28
+ return selected;
29
+ }
30
+ export function resolveLocation(replies, eid) {
31
+ // TODO: Needs verify against a Key Event Log
32
+ for (const message of replies) {
33
+ if (message.body.t !== "rpy" || message.body.r !== "/loc/scheme") {
34
+ continue;
35
+ }
36
+ const record = message.body.a;
37
+ if (typeof record !== "object" ||
38
+ record === null ||
39
+ !("eid" in record) ||
40
+ typeof record.eid !== "string" ||
41
+ !("scheme" in record) ||
42
+ typeof record.scheme !== "string" ||
43
+ !("url" in record) ||
44
+ typeof record.url !== "string") {
45
+ continue;
46
+ }
47
+ if (!["http", "https"].includes(record.scheme)) {
48
+ continue;
49
+ }
50
+ if (record.eid === eid) {
51
+ return {
52
+ eid: record.eid,
53
+ scheme: record.scheme,
54
+ url: record.url,
55
+ };
56
+ }
57
+ }
58
+ return null;
59
+ }
60
+ //# sourceMappingURL=endpoint-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-discovery.js","sourceRoot":"","sources":["../../src/core/endpoint-discovery.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,cAAc,CAC5B,OAAsC,EACtC,GAAW,EACX,IAAY;IAEZ,6CAA6C;IAC7C,sCAAsC;IACtC,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9B,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;YAClB,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC9B,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;YAClB,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC9B,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;YACnB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAC/B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/C,QAAQ,GAAG;gBACT,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAsC,EAAE,GAAW;IACjF,6CAA6C;IAC7C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YACjE,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9B,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;YAClB,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;YAC9B,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC;YACrB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YACjC,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;YAClB,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAC9B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO;gBACL,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const DUMMY_VERSION: string;
2
+ export declare function formatDate(date: Date): string;
3
+ export declare function randomNonce(): string;
4
+ interface EncodeEventArgs {
5
+ labels?: string[];
6
+ protocol?: string;
7
+ legacy?: boolean;
8
+ }
9
+ export declare function encodeEvent<T extends Record<string, unknown>>(data: T, args?: EncodeEventArgs): T & {
10
+ v: string;
11
+ };
12
+ export {};
@@ -0,0 +1,25 @@
1
+ import { Matter, Message, VersionString } from "cesr";
2
+ import { saidify } from "./said.js";
3
+ export const DUMMY_VERSION = VersionString.encode({ protocol: "KERI", legacy: true, kind: "JSON" });
4
+ export function formatDate(date) {
5
+ return date.toISOString().replace("Z", "000+00:00");
6
+ }
7
+ export function randomNonce() {
8
+ return Matter.from(Matter.Code.Salt_128, crypto.getRandomValues(new Uint8Array(16))).text();
9
+ }
10
+ export function encodeEvent(data, args = {}) {
11
+ const labels = args.labels ?? ["d"];
12
+ for (const label of labels) {
13
+ if (!(label in data)) {
14
+ throw new Error(`Input missing label '${label}'`);
15
+ }
16
+ data[label] = "#".repeat(44);
17
+ }
18
+ const message = new Message({
19
+ v: VersionString.encode({ protocol: args.protocol ?? "KERI", legacy: args.legacy ?? true, kind: "JSON" }),
20
+ ...data,
21
+ });
22
+ const result = saidify(message.body, labels);
23
+ return result;
24
+ }
25
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/core/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAEpG,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9F,CAAC;AAQD,MAAM,UAAU,WAAW,CAAoC,IAAO,EAAE,OAAwB,EAAE;IAChG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;QACpD,CAAC;QAEA,IAAgC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACzG,GAAG,IAAI;KACR,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Message } from "cesr";
2
+ import type { KeyEventBody } from "./key-event.ts";
3
+ export interface WitnessEndpoint {
4
+ aid: string;
5
+ url: string;
6
+ }
7
+ /**
8
+ * KERI Algorithm for Witness Agreement (KAWA).
9
+ *
10
+ * Collects receipts from all witnesses, then distributes those receipts back
11
+ * to all witnesses. The event must already have controller signatures attached.
12
+ *
13
+ * @param event Pre-signed key event (ControllerIdxSigs already on attachments)
14
+ * @param endpoints Pre-resolved endpoints for each witness
15
+ * @returns Indexed witness signatures (wigs)
16
+ */
17
+ export declare function submitToWitnesses(event: Message<KeyEventBody>, endpoints: WitnessEndpoint[]): Promise<string[]>;