keri 0.0.0-dev.9090ca4 → 0.0.0-dev.973a137

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 (151) hide show
  1. package/dist/cesr/attachments-reader.js +41 -33
  2. package/dist/cesr/attachments-reader.js.map +1 -1
  3. package/dist/cesr/attachments.d.ts +1 -3
  4. package/dist/cesr/attachments.js +3 -11
  5. package/dist/cesr/attachments.js.map +1 -1
  6. package/dist/cesr/counter.d.ts +2 -5
  7. package/dist/cesr/counter.js +8 -23
  8. package/dist/cesr/counter.js.map +1 -1
  9. package/dist/cesr/frame.d.ts +8 -13
  10. package/dist/cesr/frame.js +4 -2
  11. package/dist/cesr/frame.js.map +1 -1
  12. package/dist/cesr/genus.d.ts +0 -3
  13. package/dist/cesr/genus.js +2 -11
  14. package/dist/cesr/genus.js.map +1 -1
  15. package/dist/cesr/groups/generic-map.d.ts +2 -2
  16. package/dist/cesr/groups/generic-map.js +4 -12
  17. package/dist/cesr/groups/generic-map.js.map +1 -1
  18. package/dist/cesr/indexer.d.ts +3 -5
  19. package/dist/cesr/indexer.js +2 -8
  20. package/dist/cesr/indexer.js.map +1 -1
  21. package/dist/cesr/{__main__.d.ts → main.d.ts} +1 -2
  22. package/dist/cesr/{__main__.js → main.js} +2 -3
  23. package/dist/cesr/main.js.map +1 -0
  24. package/dist/cesr/matter.d.ts +2 -5
  25. package/dist/cesr/matter.js +3 -13
  26. package/dist/cesr/matter.js.map +1 -1
  27. package/dist/cesr/message.js +1 -1
  28. package/dist/cesr/parse.js +8 -7
  29. package/dist/cesr/parse.js.map +1 -1
  30. package/dist/cesr/version-string.js +1 -2
  31. package/dist/cesr/version-string.js.map +1 -1
  32. package/dist/cli/cli.js +3 -3
  33. package/dist/cli/cli.js.map +1 -1
  34. package/dist/controller/controller.d.ts +28 -9
  35. package/dist/controller/controller.js +113 -22
  36. package/dist/controller/controller.js.map +1 -1
  37. package/dist/controller/main.d.ts +1 -0
  38. package/dist/controller/main.js +2 -0
  39. package/dist/controller/main.js.map +1 -0
  40. package/dist/core/credential-event.d.ts +1 -1
  41. package/dist/core/credential-event.js +1 -1
  42. package/dist/core/credential-event.js.map +1 -1
  43. package/dist/core/credential.d.ts +1 -1
  44. package/dist/core/credential.js +1 -1
  45. package/dist/core/credential.js.map +1 -1
  46. package/dist/core/digest.js +3 -3
  47. package/dist/core/digest.js.map +1 -1
  48. package/dist/core/endpoint-discovery.d.ts +1 -1
  49. package/dist/core/events.js +2 -2
  50. package/dist/core/events.js.map +1 -1
  51. package/dist/core/kawa.d.ts +1 -1
  52. package/dist/core/kawa.js +2 -2
  53. package/dist/core/kawa.js.map +1 -1
  54. package/dist/core/key-event-log.d.ts +39 -1
  55. package/dist/core/key-event-log.js +143 -10
  56. package/dist/core/key-event-log.js.map +1 -1
  57. package/dist/core/key-event.d.ts +16 -1
  58. package/dist/core/key-event.js +66 -1
  59. package/dist/core/key-event.js.map +1 -1
  60. package/dist/core/keys.js +7 -7
  61. package/dist/core/keys.js.map +1 -1
  62. package/dist/core/mailbox-client.d.ts +1 -1
  63. package/dist/core/mailbox-client.js +34 -18
  64. package/dist/core/mailbox-client.js.map +1 -1
  65. package/dist/core/main.d.ts +9 -4
  66. package/dist/core/main.js +8 -3
  67. package/dist/core/main.js.map +1 -1
  68. package/dist/core/receipt-event.d.ts +1 -1
  69. package/dist/core/receipt-event.js +1 -1
  70. package/dist/core/receipt-event.js.map +1 -1
  71. package/dist/core/registry-event.d.ts +1 -1
  72. package/dist/core/registry-event.js +1 -1
  73. package/dist/core/registry-event.js.map +1 -1
  74. package/dist/core/routed-event.d.ts +1 -1
  75. package/dist/core/routed-event.js +1 -1
  76. package/dist/core/routed-event.js.map +1 -1
  77. package/dist/core/said.js +9 -6
  78. package/dist/core/said.js.map +1 -1
  79. package/dist/core/sign.js +3 -3
  80. package/dist/core/sign.js.map +1 -1
  81. package/dist/core/verify.d.ts +1 -1
  82. package/dist/core/verify.js +1 -1
  83. package/dist/core/verify.js.map +1 -1
  84. package/dist/core/witness-client.d.ts +1 -1
  85. package/dist/core/witness-client.js +2 -2
  86. package/dist/core/witness-client.js.map +1 -1
  87. package/dist/encoding/main.d.ts +2 -0
  88. package/dist/encoding/main.js +3 -0
  89. package/dist/encoding/main.js.map +1 -0
  90. package/dist/logging/main.d.ts +15 -0
  91. package/dist/logging/main.js +25 -0
  92. package/dist/logging/main.js.map +1 -0
  93. package/dist/mailbox/mailbox-router.d.ts +6 -0
  94. package/dist/mailbox/mailbox-router.js +88 -0
  95. package/dist/mailbox/mailbox-router.js.map +1 -0
  96. package/dist/mailbox/mailbox.d.ts +27 -0
  97. package/dist/mailbox/mailbox.js +101 -0
  98. package/dist/mailbox/mailbox.js.map +1 -0
  99. package/dist/mailbox/main.d.ts +3 -0
  100. package/dist/mailbox/main.js +3 -0
  101. package/dist/mailbox/main.js.map +1 -0
  102. package/dist/main.d.ts +2 -2
  103. package/dist/main.js +1 -2
  104. package/dist/main.js.map +1 -1
  105. package/dist/nodejs-utils/main.d.ts +2 -0
  106. package/dist/nodejs-utils/main.js +2 -0
  107. package/dist/nodejs-utils/main.js.map +1 -0
  108. package/dist/nodejs-utils/serve.d.ts +4 -3
  109. package/dist/nodejs-utils/serve.js +29 -38
  110. package/dist/nodejs-utils/serve.js.map +1 -1
  111. package/dist/{storage/sqlite/storage-sqlite.d.ts → sqlite-storage/main.d.ts} +5 -6
  112. package/dist/{storage/sqlite/storage-sqlite.js → sqlite-storage/main.js} +34 -9
  113. package/dist/sqlite-storage/main.js.map +1 -0
  114. package/dist/sqlite-storage/node-sqlite.js.map +1 -0
  115. package/dist/{storage/sqlite → sqlite-storage}/schema.js +12 -0
  116. package/dist/sqlite-storage/schema.js.map +1 -0
  117. package/dist/sqlite-storage/sqlite-database.js.map +1 -0
  118. package/dist/storage/mailbox-server-storage.d.ts +9 -0
  119. package/dist/storage/mailbox-server-storage.js +2 -0
  120. package/dist/storage/mailbox-server-storage.js.map +1 -0
  121. package/dist/storage/main.d.ts +5 -0
  122. package/dist/storage/main.js +2 -0
  123. package/dist/storage/main.js.map +1 -0
  124. package/dist/witness/main.d.ts +2 -1
  125. package/dist/witness/main.js.map +1 -1
  126. package/dist/witness/witness-router.d.ts +5 -1
  127. package/dist/witness/witness-router.js +25 -9
  128. package/dist/witness/witness-router.js.map +1 -1
  129. package/dist/witness/witness.d.ts +4 -2
  130. package/dist/witness/witness.js +32 -7
  131. package/dist/witness/witness.js.map +1 -1
  132. package/package.json +5 -5
  133. package/dist/cesr/__main__.js.map +0 -1
  134. package/dist/cesr/codec.d.ts +0 -26
  135. package/dist/cesr/codec.js +0 -26
  136. package/dist/cesr/codec.js.map +0 -1
  137. package/dist/storage/sqlite/node-sqlite.js.map +0 -1
  138. package/dist/storage/sqlite/schema.js.map +0 -1
  139. package/dist/storage/sqlite/sqlite-database.js.map +0 -1
  140. package/dist/storage/sqlite/storage-sqlite.js.map +0 -1
  141. package/dist/witness/parser.d.ts +0 -3
  142. package/dist/witness/parser.js +0 -7
  143. package/dist/witness/parser.js.map +0 -1
  144. package/dist/witness/seed.d.ts +0 -1
  145. package/dist/witness/seed.js +0 -5
  146. package/dist/witness/seed.js.map +0 -1
  147. /package/dist/{storage/sqlite → sqlite-storage}/node-sqlite.d.ts +0 -0
  148. /package/dist/{storage/sqlite → sqlite-storage}/node-sqlite.js +0 -0
  149. /package/dist/{storage/sqlite → sqlite-storage}/schema.d.ts +0 -0
  150. /package/dist/{storage/sqlite → sqlite-storage}/sqlite-database.d.ts +0 -0
  151. /package/dist/{storage/sqlite → sqlite-storage}/sqlite-database.js +0 -0
@@ -1,11 +1,13 @@
1
- import { Message, parse } from "../cesr/__main__.js";
1
+ import { Message, parse } from "../cesr/main.js";
2
2
  import { verifySignaturesOrThrow, verifyThresholdOrThrow } from "./verify.js";
3
3
  export class KeyEventLog {
4
4
  #events;
5
5
  #state;
6
- constructor(events, state) {
6
+ #delegator;
7
+ constructor(events, state, delegator = null) {
7
8
  this.#events = events;
8
9
  this.#state = state;
10
+ this.#delegator = delegator;
9
11
  }
10
12
  static empty() {
11
13
  return new KeyEventLog([], null);
@@ -17,15 +19,76 @@ export class KeyEventLog {
17
19
  }
18
20
  return log;
19
21
  }
22
+ /**
23
+ * Parse a CESR byte stream of KEL events into a verified KeyEventLog.
24
+ *
25
+ * Non-KEL messages in the stream are ignored. For multi-AID streams (e.g.
26
+ * an OOBI response for a delegated AID that returns both the delegator's
27
+ * KEL and the delegate's), the leaf AID — one not referenced as `di` by
28
+ * any other dip — is selected and the delegator chain is built bottom-up
29
+ * so the dip's anchor can be verified against the delegator's KEL.
30
+ *
31
+ * Throws on a multi-AID stream that has no leaf (cycle) or more than one
32
+ * leaf (ambiguous — e.g. two unrelated AIDs).
33
+ */
20
34
  static async parse(stream, options) {
21
- let log = KeyEventLog.empty();
35
+ const messages = [];
22
36
  for await (const message of parse(stream)) {
23
37
  // TODO: Verify that the message is a valid KeyEventBody before casting
24
- if (message.body.t === "icp" || message.body.t === "ixn" || message.body.t === "rot") {
25
- log = log.append(message, options);
38
+ if (isKelEventType(message.body.t)) {
39
+ messages.push(message);
26
40
  }
27
41
  }
28
- return log;
42
+ return KeyEventLog.fromMessages(messages, options);
43
+ }
44
+ /**
45
+ * Same multi-AID handling as `parse`, but operates on pre-collected
46
+ * messages — useful when the caller has already consumed the stream
47
+ * (e.g. to split KEL events from `rpy` messages in the same response).
48
+ */
49
+ static fromMessages(messages, options) {
50
+ const byAid = new Map();
51
+ for (const m of messages) {
52
+ let list = byAid.get(m.body.i);
53
+ if (!list) {
54
+ list = [];
55
+ byAid.set(m.body.i, list);
56
+ }
57
+ list.push(m);
58
+ }
59
+ if (byAid.size === 0) {
60
+ return KeyEventLog.empty();
61
+ }
62
+ if (byAid.size === 1) {
63
+ return KeyEventLog.from(byAid.values().next().value, options);
64
+ }
65
+ const referencedAsDelegator = new Set();
66
+ for (const events of byAid.values()) {
67
+ const dip = events.find((e) => e.body.t === "dip");
68
+ if (dip && typeof dip.body.di === "string") {
69
+ referencedAsDelegator.add(dip.body.di);
70
+ }
71
+ }
72
+ const leaves = Array.from(byAid.keys()).filter((aid) => !referencedAsDelegator.has(aid));
73
+ if (leaves.length === 0) {
74
+ throw new Error("KeyEventLog.fromMessages: no leaf AID in multi-AID stream (cycle?)");
75
+ }
76
+ if (leaves.length > 1) {
77
+ throw new Error(`KeyEventLog.fromMessages: ambiguous multi-AID stream, found ${leaves.length} leaf AIDs`);
78
+ }
79
+ const buildFor = (aid) => {
80
+ const events = byAid.get(aid) ?? [];
81
+ let delegator;
82
+ const first = events[0];
83
+ if (first && first.body.t === "dip") {
84
+ const delegatorAid = first.body.di;
85
+ if (byAid.has(delegatorAid)) {
86
+ delegator = buildFor(delegatorAid);
87
+ }
88
+ }
89
+ return KeyEventLog.from(events, { ...options, delegator });
90
+ };
91
+ return buildFor(leaves[0]);
29
92
  }
30
93
  get state() {
31
94
  if (this.#state === null) {
@@ -36,6 +99,10 @@ export class KeyEventLog {
36
99
  get events() {
37
100
  return this.#events;
38
101
  }
102
+ /** The delegator's KEL when this KEL belongs to a delegated AID and was constructed with one; null otherwise. */
103
+ get delegator() {
104
+ return this.#delegator;
105
+ }
39
106
  append(message, options) {
40
107
  const sigs = message.attachments.ControllerIdxSigs ?? [];
41
108
  const wigs = message.attachments.WitnessIdxSigs ?? [];
@@ -43,8 +110,10 @@ export class KeyEventLog {
43
110
  const bodyRaw = new Message(body).raw;
44
111
  const verifySigning = options?.allowPartiallySigned ? verifySignaturesOrThrow : verifyThresholdOrThrow;
45
112
  const verifyWitness = options?.allowPartiallyWitnessed ? verifySignaturesOrThrow : verifyThresholdOrThrow;
113
+ const delegator = options?.delegator ?? this.#delegator;
46
114
  switch (body.t) {
47
- case "icp": {
115
+ case "icp":
116
+ case "dip": {
48
117
  if (this.#state !== null) {
49
118
  throw new Error("State already initialized");
50
119
  }
@@ -64,10 +133,14 @@ export class KeyEventLog {
64
133
  sigs: wigs,
65
134
  });
66
135
  }
136
+ if (body.t === "dip" && delegator) {
137
+ verifyDelegationAnchor(body, message.attachments, delegator);
138
+ }
67
139
  break;
68
140
  }
69
141
  case "ixn":
70
- case "rot": {
142
+ case "rot":
143
+ case "drt": {
71
144
  if (this.#state === null) {
72
145
  throw new Error("State must be initialized before applying interact or rotate events");
73
146
  }
@@ -84,13 +157,55 @@ export class KeyEventLog {
84
157
  sigs: wigs,
85
158
  });
86
159
  }
160
+ if (body.t === "drt" && delegator) {
161
+ verifyDelegationAnchor(body, message.attachments, delegator);
162
+ }
87
163
  break;
88
164
  }
89
165
  default:
90
166
  throw new Error(`Unsupported event type: ${body.t}`);
91
167
  }
92
168
  const newState = reduceKeyState(this.#state, body);
93
- return new KeyEventLog([...this.#events, message], newState);
169
+ return new KeyEventLog([...this.#events, message], newState, delegator ?? null);
170
+ }
171
+ }
172
+ export function isKelEventType(t) {
173
+ return t === "icp" || t === "ixn" || t === "rot" || t === "dip" || t === "drt";
174
+ }
175
+ function verifyDelegationAnchor(body, attachments, delegator) {
176
+ if (body.di !== delegator.state.identifier) {
177
+ throw new Error(`Delegation mismatch: event di=${body.di} does not match delegator KEL identifier=${delegator.state.identifier}`);
178
+ }
179
+ const couples = attachments.SealSourceCouples ?? [];
180
+ const triples = attachments.SealSourceTriples ?? [];
181
+ const hints = [
182
+ ...couples.map((c) => ({ snu: c.snu, digest: c.digest })),
183
+ ...triples.filter((t) => t.prefix === body.di).map((t) => ({ snu: t.snu, digest: t.digest })),
184
+ ];
185
+ // If a SealSourceCouple/Triple is attached, use it as a hint about which
186
+ // delegator event carries the anchor. Otherwise scan the delegator's KEL
187
+ // for any event whose `a` field anchors this dip/drt — keripy's wire
188
+ // format relies on the verifier deriving the anchor from the delegator's
189
+ // KEL directly when the couple isn't transmitted.
190
+ const matchingSeal = (event) => {
191
+ const anchors = event.body.a ?? [];
192
+ return anchors.some((seal) => seal.i === body.i && seal.s === body.s && seal.d === body.d);
193
+ };
194
+ if (hints.length > 0) {
195
+ for (const ref of hints) {
196
+ const event = delegator.events.find((e) => e.body.d === ref.digest && e.body.s === ref.snu);
197
+ if (!event) {
198
+ throw new Error(`Delegator anchor not found in KEL: s=${ref.snu} d=${ref.digest} (delegator=${body.di})`);
199
+ }
200
+ if (!matchingSeal(event)) {
201
+ throw new Error(`Delegator event ${ref.digest} does not anchor ${body.t} ${body.d}: missing matching key-event seal in a[]`);
202
+ }
203
+ }
204
+ return;
205
+ }
206
+ const anchorEvent = delegator.events.find((e) => matchingSeal(e));
207
+ if (!anchorEvent) {
208
+ throw new Error(`No anchoring event found in delegator KEL for ${body.t} ${body.d} (delegator=${body.di})`);
94
209
  }
95
210
  }
96
211
  function assertDefined(obj) {
@@ -108,6 +223,7 @@ function merge(a, b) {
108
223
  backerThreshold: b.backerThreshold ?? a.backerThreshold,
109
224
  backers: b.backers ?? a.backers,
110
225
  configTraits: b.configTraits ?? a.configTraits,
226
+ delegator: b.delegator ?? a.delegator,
111
227
  lastEvent: b.lastEvent ?? a.lastEvent,
112
228
  lastEstablishment: b.lastEstablishment ?? a.lastEstablishment,
113
229
  };
@@ -129,12 +245,29 @@ function reduceKeyState(state, body) {
129
245
  lastEstablishment: { i: icp.i, s: icp.s, d: icp.d },
130
246
  };
131
247
  }
248
+ case "dip": {
249
+ const dip = body;
250
+ return {
251
+ identifier: dip.i,
252
+ signingThreshold: dip.kt,
253
+ signingKeys: dip.k,
254
+ nextThreshold: dip.nt,
255
+ nextKeyDigests: dip.n,
256
+ backerThreshold: dip.bt,
257
+ backers: dip.b,
258
+ configTraits: dip.c,
259
+ delegator: dip.di,
260
+ lastEvent: { i: dip.i, s: dip.s, d: dip.d },
261
+ lastEstablishment: { i: dip.i, s: dip.s, d: dip.d },
262
+ };
263
+ }
132
264
  case "ixn": {
133
265
  assertDefined(state);
134
266
  const ixn = body;
135
267
  return merge(state, { lastEvent: { i: ixn.i, s: ixn.s, d: ixn.d } });
136
268
  }
137
- case "rot": {
269
+ case "rot":
270
+ case "drt": {
138
271
  assertDefined(state);
139
272
  const rot = body;
140
273
  return merge(state, {
@@ -1 +1 @@
1
- {"version":3,"file":"key-event-log.js","sourceRoot":"","sources":["../../src/core/key-event-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-event-log.js","sourceRoot":"","sources":["../../src/core/key-event-log.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Message } from "../cesr/__main__.ts";
1
+ import { Message } from "../cesr/main.ts";
2
2
  import type { Threshold } from "./threshold.ts";
3
3
  export interface KeyState {
4
4
  identifier: string;
@@ -9,6 +9,7 @@ export interface KeyState {
9
9
  backerThreshold: string;
10
10
  backers: string[];
11
11
  configTraits: string[];
12
+ delegator?: string;
12
13
  lastEvent: {
13
14
  i: string;
14
15
  s: string;
@@ -39,6 +40,10 @@ export interface RotateArgs {
39
40
  ba?: string[];
40
41
  bt?: string;
41
42
  }
43
+ export interface DelegatedInceptArgs extends InceptArgs {
44
+ delegator: string;
45
+ }
46
+ export type DelegatedRotateArgs = RotateArgs;
42
47
  export type InceptEventBody = {
43
48
  v: string;
44
49
  t: "icp";
@@ -80,6 +85,14 @@ export type RotateEventBody = {
80
85
  c: string[];
81
86
  a: Record<string, unknown>[];
82
87
  };
88
+ export type DipEventBody = Omit<InceptEventBody, "t"> & {
89
+ t: "dip";
90
+ di: string;
91
+ };
92
+ export type DrtEventBody = Omit<RotateEventBody, "t"> & {
93
+ t: "drt";
94
+ di: string;
95
+ };
83
96
  export type KeyEventBody = {
84
97
  v: string;
85
98
  t: string;
@@ -92,3 +105,5 @@ export type KeyEvent<T extends KeyEventBody = KeyEventBody> = Message<T>;
92
105
  export declare function incept(args: InceptArgs): KeyEvent<InceptEventBody>;
93
106
  export declare function interact(state: KeyState, args?: InteractArgs): KeyEvent<InteractEventBody>;
94
107
  export declare function rotate(state: KeyState, args: RotateArgs): KeyEvent<RotateEventBody>;
108
+ export declare function delegatedIncept(args: DelegatedInceptArgs): KeyEvent<DipEventBody>;
109
+ export declare function delegatedRotate(state: KeyState, args: DelegatedRotateArgs): KeyEvent<DrtEventBody>;
@@ -1,4 +1,4 @@
1
- import { Matter, Message } from "../cesr/__main__.js";
1
+ import { Matter, Message } from "../cesr/main.js";
2
2
  import { DUMMY_VERSION, encodeEvent } from "./events.js";
3
3
  function isTransferable(key) {
4
4
  const raw = Matter.parse(key);
@@ -85,4 +85,69 @@ export function rotate(state, args) {
85
85
  }, { labels: ["d"], legacy: true });
86
86
  return new Message(body);
87
87
  }
88
+ export function delegatedIncept(args) {
89
+ const keys = args.signingKeys;
90
+ if (keys.length === 0) {
91
+ throw new Error("No keys provided in inception event");
92
+ }
93
+ const wits = args.wits ?? [];
94
+ let bt;
95
+ if (args.toad !== undefined) {
96
+ bt = args.toad.toString();
97
+ }
98
+ else if (wits.length === 0) {
99
+ bt = "0";
100
+ }
101
+ else if (wits.length === 1) {
102
+ bt = "1";
103
+ }
104
+ else {
105
+ bt = (wits.length - 1).toString();
106
+ }
107
+ const body = encodeEvent({
108
+ v: DUMMY_VERSION,
109
+ t: "dip",
110
+ d: "",
111
+ i: "",
112
+ s: "0",
113
+ kt: keys.length.toString(),
114
+ k: keys,
115
+ nt: args.nextKeys.length.toString(),
116
+ n: args.nextKeys,
117
+ bt,
118
+ b: wits,
119
+ c: [],
120
+ a: [],
121
+ di: args.delegator,
122
+ }, { labels: ["d", "i"], legacy: true });
123
+ return new Message(body);
124
+ }
125
+ export function delegatedRotate(state, args) {
126
+ if (state.delegator === undefined) {
127
+ throw new Error(`State for id ${state.identifier} has no delegator; cannot delegated-rotate`);
128
+ }
129
+ const keyDigest = state.nextKeyDigests[0];
130
+ if (!keyDigest) {
131
+ throw new Error(`State for id ${state.identifier} does not contain pre-committed next key digest`);
132
+ }
133
+ const body = encodeEvent({
134
+ v: DUMMY_VERSION,
135
+ t: "drt",
136
+ d: "",
137
+ i: state.identifier,
138
+ s: (parseInt(state.lastEvent.s, 16) + 1).toString(16),
139
+ p: state.lastEvent.d,
140
+ kt: "1",
141
+ k: args.signingKeys,
142
+ nt: "1",
143
+ n: args.nextKeyDigests,
144
+ bt: args.bt ?? "0",
145
+ br: args.br ?? [],
146
+ ba: args.ba ?? [],
147
+ c: [],
148
+ a: args.data ? [args.data] : [],
149
+ di: state.delegator,
150
+ }, { labels: ["d"], legacy: true });
151
+ return new Message(body);
152
+ }
88
153
  //# sourceMappingURL=key-event.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-event.js","sourceRoot":"","sources":["../../src/core/key-event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-event.js","sourceRoot":"","sources":["../../src/core/key-event.ts"],"names":[],"mappings":"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"}
package/dist/core/keys.js CHANGED
@@ -1,17 +1,17 @@
1
1
  import { ed25519 } from "@noble/curves/ed25519.js";
2
2
  import { blake3 } from "@noble/hashes/blake3.js";
3
- import { cesr } from "../cesr/__main__.js";
3
+ import { encodeText, Matter } from "../cesr/main.js";
4
4
  export function generateKeyPair(options) {
5
5
  const privateKey = options?.seed
6
6
  ? blake3(new TextEncoder().encode(options.seed), { dkLen: 32 })
7
7
  : crypto.getRandomValues(new Uint8Array(32));
8
8
  const rawPublicKey = ed25519.getPublicKey(privateKey);
9
- const publicKey = options?.nonTransferable
10
- ? cesr.crypto.ed25519N(rawPublicKey).text()
11
- : cesr.crypto.ed25519(rawPublicKey).text();
12
- const publicKeyDigest = cesr.crypto
13
- .blake3_256(blake3.create({ dkLen: 32 }).update(new TextEncoder().encode(publicKey)).digest())
14
- .text();
9
+ const code = options?.nonTransferable ? Matter.Code.Ed25519N : Matter.Code.Ed25519;
10
+ const publicKey = encodeText(new Matter({ code, raw: rawPublicKey }));
11
+ const publicKeyDigest = encodeText(new Matter({
12
+ code: Matter.Code.Blake3_256,
13
+ raw: blake3.create({ dkLen: 32 }).update(new TextEncoder().encode(publicKey)).digest(),
14
+ }));
15
15
  return { privateKey, publicKey, publicKeyDigest };
16
16
  }
17
17
  //# sourceMappingURL=keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/core/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAa3C,MAAM,UAAU,eAAe,CAAC,OAAgC;IAC9D,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI;QAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/D,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,OAAO,EAAE,eAAe;QACxC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;QAC3C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM;SAChC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC7F,IAAI,EAAE,CAAC;IAEV,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/core/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAarD,MAAM,UAAU,eAAe,CAAC,OAAgC;IAC9D,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI;QAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/D,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACnF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAEtE,MAAM,eAAe,GAAG,UAAU,CAChC,IAAI,MAAM,CAAC;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;QAC5B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE;KACvF,CAAC,CACH,CAAC;IAEF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACpD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Message } from "../cesr/__main__.ts";
1
+ import { type Message } from "../cesr/main.ts";
2
2
  export interface MailboxClientOptions {
3
3
  /**
4
4
  * The SAID of the mailbox controller.
@@ -1,4 +1,35 @@
1
- import { parse } from "../cesr/__main__.js";
1
+ import { encodeText, parse } from "../cesr/main.js";
2
+ async function parseEventStream(body) {
3
+ const reader = body.getReader();
4
+ const decoder = new TextDecoder();
5
+ const messages = [];
6
+ let buffer = "";
7
+ async function flushLine(line) {
8
+ if (line.startsWith("data: ")) {
9
+ messages.push(...(await Array.fromAsync(parse(line.slice(6)))));
10
+ }
11
+ }
12
+ while (true) {
13
+ const { done, value } = await reader.read();
14
+ if (done) {
15
+ break;
16
+ }
17
+ buffer += decoder.decode(value, { stream: true });
18
+ const lines = buffer.split("\n");
19
+ buffer = lines.pop() ?? "";
20
+ for (const line of lines) {
21
+ await flushLine(line);
22
+ }
23
+ // Long-poll SSE servers (e.g. KERIpy) keep the stream open after sending
24
+ // a snapshot. Once we have at least one message, stop reading and return.
25
+ if (messages.length > 0) {
26
+ await reader.cancel();
27
+ return messages;
28
+ }
29
+ }
30
+ await flushLine(buffer);
31
+ return messages;
32
+ }
2
33
  export class MailboxClient {
3
34
  url;
4
35
  id;
@@ -13,7 +44,7 @@ export class MailboxClient {
13
44
  const body = JSON.stringify(message.body);
14
45
  const headers = {
15
46
  "Content-Type": "application/cesr+json",
16
- "CESR-ATTACHMENT": message.attachments.text(),
47
+ "CESR-ATTACHMENT": encodeText(message.attachments.frames()),
17
48
  "CESR-DESTINATION": this.id,
18
49
  };
19
50
  const response = await this.#fetch(url, {
@@ -33,22 +64,7 @@ export class MailboxClient {
33
64
  return [];
34
65
  }
35
66
  if (contentType === "text/event-stream") {
36
- const reader = response.body.getReader();
37
- while (true) {
38
- const { done, value } = await reader.read();
39
- if (done) {
40
- break;
41
- }
42
- const str = new TextDecoder().decode(value);
43
- for (const line of str.split("\n")) {
44
- if (line.startsWith("data: ")) {
45
- const data = line.slice(6);
46
- const message = await Array.fromAsync(parse(data));
47
- reader.cancel("Got message, cancelling reader");
48
- return message;
49
- }
50
- }
51
- }
67
+ return await parseEventStream(response.body);
52
68
  }
53
69
  if (contentType?.startsWith("application/json")) {
54
70
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox-client.js","sourceRoot":"","sources":["../../src/core/mailbox-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAoB1D,MAAM,OAAO,aAAa;IACf,GAAG,CAAS;IACZ,EAAE,CAAS;IACX,MAAM,CAA0B;IAEzC,YAAY,OAA6B;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,MAAoB;QACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,uBAAuB;YACvC,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE;YAC7C,kBAAkB,EAAE,IAAI,CAAC,EAAE;SAC5B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO;YACP,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAE5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM;gBACR,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC3B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;wBACnD,MAAM,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;wBAChD,OAAO,OAAO,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"mailbox-client.js","sourceRoot":"","sources":["../../src/core/mailbox-client.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,14 @@ import { createCredential } from "./credential.ts";
2
2
  import { issue, revoke } from "./credential-event.ts";
3
3
  import { digest } from "./digest.ts";
4
4
  import { formatDate } from "./events.ts";
5
- import { incept, interact, rotate } from "./key-event.ts";
5
+ import { delegatedIncept, delegatedRotate, incept, interact, rotate } from "./key-event.ts";
6
6
  import { generateKeyPair } from "./keys.ts";
7
7
  import { receipt } from "./receipt-event.ts";
8
8
  import { incept as registry } from "./registry-event.ts";
9
9
  import { exchange, query, reply } from "./routed-event.ts";
10
10
  import { sign } from "./sign.ts";
11
11
  import { verifyThreshold } from "./verify.ts";
12
- export { Attachments, type AttachmentsInit, type FirstSeenReplayCouple, type Frame, Message, type MessageBody, type NonTransReceiptCouple, type PathedMaterialCouple, type SealSourceCouple, type SealSourceTriple, type TransIdxSigGroup, type TransLastIdxSigGroup, VersionString, } from "../cesr/__main__.ts";
12
+ export { Attachments, type AttachmentsInit, type FirstSeenReplayCouple, type Frame, Message, type MessageBody, type NonTransReceiptCouple, type PathedMaterialCouple, type SealSourceCouple, type SealSourceTriple, type TransIdxSigGroup, type TransLastIdxSigGroup, VersionString, } from "../cesr/main.ts";
13
13
  export type { Credential, CredentialBody, CredentialBodyInit, CredentialEdges, CredentialRules, CredentialSubject, } from "./credential.ts";
14
14
  export { createCredential } from "./credential.ts";
15
15
  export type { IssueEventBody as IssueEvent, IssueEventInit, RevokeEventBody as RevokeEvent, RevokeEventInit, } from "./credential-event.ts";
@@ -17,9 +17,11 @@ export type { Endpoint, EndRoleRecord, LocationRecord } from "./endpoint-discove
17
17
  export { resolveEndRole, resolveLocation } from "./endpoint-discovery.ts";
18
18
  export type { WitnessEndpoint } from "./kawa.ts";
19
19
  export { submitToWitnesses } from "./kawa.ts";
20
- export type { InceptArgs, InceptEventBody, InteractArgs, InteractEventBody, KeyEvent, KeyEventBody, KeyState, RotateArgs, RotateEventBody, } from "./key-event.ts";
21
- export { KeyEventLog } from "./key-event-log.ts";
20
+ export type { DelegatedInceptArgs, DelegatedRotateArgs, DipEventBody, DrtEventBody, InceptArgs, InceptEventBody, InteractArgs, InteractEventBody, KeyEvent, KeyEventBody, KeyState, RotateArgs, RotateEventBody, } from "./key-event.ts";
21
+ export { delegatedIncept, delegatedRotate } from "./key-event.ts";
22
+ export { isKelEventType, KeyEventLog } from "./key-event-log.ts";
22
23
  export type { GenerateKeyPairOptions, KeyPair } from "./keys.ts";
24
+ export { generateKeyPair } from "./keys.ts";
23
25
  export type { MailboxClientOptions } from "./mailbox-client.ts";
24
26
  export { MailboxClient } from "./mailbox-client.ts";
25
27
  export type { ReceiptEventBody, ReceiptEventInit } from "./receipt-event.ts";
@@ -29,10 +31,13 @@ export type { SignOptions } from "./sign.ts";
29
31
  export { sign } from "./sign.ts";
30
32
  export type { Threshold } from "./threshold.ts";
31
33
  export type { VerifyOptions, VerifyResult } from "./verify.ts";
34
+ export { verifySignature } from "./verify.ts";
32
35
  export declare const keri: {
33
36
  incept: typeof incept;
34
37
  interact: typeof interact;
35
38
  rotate: typeof rotate;
39
+ delegatedIncept: typeof delegatedIncept;
40
+ delegatedRotate: typeof delegatedRotate;
36
41
  registry: typeof registry;
37
42
  issue: typeof issue;
38
43
  revoke: typeof revoke;
package/dist/core/main.js CHANGED
@@ -2,25 +2,30 @@ import { createCredential } from "./credential.js";
2
2
  import { issue, revoke } from "./credential-event.js";
3
3
  import { digest } from "./digest.js";
4
4
  import { formatDate } from "./events.js";
5
- import { incept, interact, rotate } from "./key-event.js";
5
+ import { delegatedIncept, delegatedRotate, incept, interact, rotate } from "./key-event.js";
6
6
  import { generateKeyPair } from "./keys.js";
7
7
  import { receipt } from "./receipt-event.js";
8
8
  import { incept as registry } from "./registry-event.js";
9
9
  import { exchange, query, reply } from "./routed-event.js";
10
10
  import { sign } from "./sign.js";
11
11
  import { verifyThreshold } from "./verify.js";
12
- export { Attachments, Message, VersionString, } from "../cesr/__main__.js";
12
+ export { Attachments, Message, VersionString, } from "../cesr/main.js";
13
13
  export { createCredential } from "./credential.js";
14
14
  export { resolveEndRole, resolveLocation } from "./endpoint-discovery.js";
15
15
  export { submitToWitnesses } from "./kawa.js";
16
- export { KeyEventLog } from "./key-event-log.js";
16
+ export { delegatedIncept, delegatedRotate } from "./key-event.js";
17
+ export { isKelEventType, KeyEventLog } from "./key-event-log.js";
18
+ export { generateKeyPair } from "./keys.js";
17
19
  export { MailboxClient } from "./mailbox-client.js";
18
20
  export { sign } from "./sign.js";
21
+ export { verifySignature } from "./verify.js";
19
22
  export const keri = {
20
23
  // Key events
21
24
  incept,
22
25
  interact,
23
26
  rotate,
27
+ delegatedIncept,
28
+ delegatedRotate,
24
29
  // Registry
25
30
  registry,
26
31
  issue,
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/core/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACL,WAAW,EAIX,OAAO,EAQP,aAAa,GACd,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQnD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAY9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,aAAa;IACb,MAAM;IACN,QAAQ;IACR,MAAM;IACN,WAAW;IACX,QAAQ;IACR,KAAK;IACL,MAAM;IACN,UAAU,EAAE,gBAAgB;IAC5B,SAAS;IACT,QAAQ;IACR,KAAK;IACL,KAAK;IACL,UAAU;IACV,OAAO;IACP,KAAK,EAAE;QACL,IAAI;QACJ,eAAe;QACf,UAAU;QACV,eAAe;QACf,MAAM;KACP;CACF,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/core/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACL,WAAW,EAIX,OAAO,EAQP,aAAa,GACd,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAQnD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAgB9C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,aAAa;IACb,MAAM;IACN,QAAQ;IACR,MAAM;IACN,eAAe;IACf,eAAe;IACf,WAAW;IACX,QAAQ;IACR,KAAK;IACL,MAAM;IACN,UAAU,EAAE,gBAAgB;IAC5B,SAAS;IACT,QAAQ;IACR,KAAK;IACL,KAAK;IACL,UAAU;IACV,OAAO;IACP,KAAK,EAAE;QACL,IAAI;QACJ,eAAe;QACf,UAAU;QACV,eAAe;QACf,MAAM;KACP;CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Message } from "../cesr/__main__.ts";
1
+ import { Message } from "../cesr/main.ts";
2
2
  export interface ReceiptEventInit {
3
3
  d: string;
4
4
  i: string;