keri 0.0.0-dev.8b7f24e → 0.0.0-dev.9090ca4

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 (156) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/dist/cesr/__main__.d.ts +10 -0
  4. package/dist/cesr/__main__.js +11 -0
  5. package/dist/cesr/__main__.js.map +1 -0
  6. package/dist/cesr/array-utils.d.ts +3 -0
  7. package/dist/cesr/array-utils.js +29 -0
  8. package/dist/cesr/array-utils.js.map +1 -0
  9. package/dist/cesr/attachments-reader.d.ts +10 -0
  10. package/dist/cesr/attachments-reader.js +273 -0
  11. package/dist/cesr/attachments-reader.js.map +1 -0
  12. package/dist/cesr/attachments.d.ts +68 -0
  13. package/dist/cesr/attachments.js +116 -0
  14. package/dist/cesr/attachments.js.map +1 -0
  15. package/dist/cesr/codec.d.ts +26 -0
  16. package/dist/cesr/codec.js +26 -0
  17. package/dist/cesr/codec.js.map +1 -0
  18. package/dist/cesr/codes.d.ts +1208 -0
  19. package/dist/cesr/codes.js +309 -0
  20. package/dist/cesr/codes.js.map +1 -0
  21. package/dist/cesr/counter.d.ts +117 -0
  22. package/dist/cesr/counter.js +93 -0
  23. package/dist/cesr/counter.js.map +1 -0
  24. package/dist/cesr/frame.d.ts +36 -0
  25. package/dist/cesr/frame.js +97 -0
  26. package/dist/cesr/frame.js.map +1 -0
  27. package/dist/cesr/genus.d.ts +21 -0
  28. package/dist/cesr/genus.js +66 -0
  29. package/dist/cesr/genus.js.map +1 -0
  30. package/dist/cesr/groups/generic-map.d.ts +11 -0
  31. package/dist/cesr/groups/generic-map.js +59 -0
  32. package/dist/cesr/groups/generic-map.js.map +1 -0
  33. package/dist/cesr/indexer.d.ts +70 -0
  34. package/dist/cesr/indexer.js +177 -0
  35. package/dist/cesr/indexer.js.map +1 -0
  36. package/dist/cesr/matter.d.ts +163 -0
  37. package/dist/cesr/matter.js +311 -0
  38. package/dist/cesr/matter.js.map +1 -0
  39. package/dist/cesr/message.d.ts +17 -0
  40. package/dist/cesr/message.js +81 -0
  41. package/dist/cesr/message.js.map +1 -0
  42. package/dist/cesr/parse.d.ts +37 -0
  43. package/dist/cesr/parse.js +137 -0
  44. package/dist/cesr/parse.js.map +1 -0
  45. package/dist/cesr/shifting.d.ts +7 -0
  46. package/dist/cesr/shifting.js +10 -0
  47. package/dist/cesr/shifting.js.map +1 -0
  48. package/dist/cesr/version-string.d.ts +35 -0
  49. package/dist/cesr/version-string.js +147 -0
  50. package/dist/cesr/version-string.js.map +1 -0
  51. package/dist/cli/cli.d.ts +5 -0
  52. package/dist/cli/cli.js +73 -0
  53. package/dist/cli/cli.js.map +1 -0
  54. package/dist/cli/input.d.ts +1 -0
  55. package/dist/cli/input.js +22 -0
  56. package/dist/cli/input.js.map +1 -0
  57. package/dist/cli/node-cli.d.ts +2 -0
  58. package/dist/cli/node-cli.js +19 -0
  59. package/dist/cli/node-cli.js.map +1 -0
  60. package/dist/controller/controller.d.ts +21 -29
  61. package/dist/controller/controller.js +10 -6
  62. package/dist/controller/controller.js.map +1 -1
  63. package/dist/core/credential-event.d.ts +5 -9
  64. package/dist/core/credential-event.js +1 -1
  65. package/dist/core/credential-event.js.map +1 -1
  66. package/dist/core/credential.d.ts +1 -1
  67. package/dist/core/credential.js +2 -2
  68. package/dist/core/credential.js.map +1 -1
  69. package/dist/core/digest.js +1 -1
  70. package/dist/core/digest.js.map +1 -1
  71. package/dist/core/endpoint-discovery.d.ts +4 -4
  72. package/dist/core/endpoint-discovery.js.map +1 -1
  73. package/dist/core/events.js +1 -1
  74. package/dist/core/events.js.map +1 -1
  75. package/dist/core/kawa.d.ts +2 -2
  76. package/dist/core/kawa.js +6 -37
  77. package/dist/core/kawa.js.map +1 -1
  78. package/dist/core/key-event-log.d.ts +12 -6
  79. package/dist/core/key-event-log.js +13 -12
  80. package/dist/core/key-event-log.js.map +1 -1
  81. package/dist/core/key-event.d.ts +8 -10
  82. package/dist/core/key-event.js +1 -2
  83. package/dist/core/key-event.js.map +1 -1
  84. package/dist/core/keys.d.ts +2 -1
  85. package/dist/core/keys.js +4 -4
  86. package/dist/core/keys.js.map +1 -1
  87. package/dist/core/mailbox-client.d.ts +7 -1
  88. package/dist/core/mailbox-client.js +4 -2
  89. package/dist/core/mailbox-client.js.map +1 -1
  90. package/dist/core/main.d.ts +25 -21
  91. package/dist/core/main.js +12 -13
  92. package/dist/core/main.js.map +1 -1
  93. package/dist/core/receipt-event.d.ts +2 -2
  94. package/dist/core/receipt-event.js +1 -1
  95. package/dist/core/receipt-event.js.map +1 -1
  96. package/dist/core/registry-event.d.ts +3 -5
  97. package/dist/core/registry-event.js +1 -1
  98. package/dist/core/registry-event.js.map +1 -1
  99. package/dist/core/routed-event.d.ts +7 -13
  100. package/dist/core/routed-event.js +2 -2
  101. package/dist/core/routed-event.js.map +1 -1
  102. package/dist/core/said.js +1 -1
  103. package/dist/core/said.js.map +1 -1
  104. package/dist/core/sign.js +1 -1
  105. package/dist/core/sign.js.map +1 -1
  106. package/dist/core/verify.d.ts +11 -2
  107. package/dist/core/verify.js +30 -11
  108. package/dist/core/verify.js.map +1 -1
  109. package/dist/core/witness-client.d.ts +8 -0
  110. package/dist/core/witness-client.js +39 -0
  111. package/dist/core/witness-client.js.map +1 -0
  112. package/dist/encoding/base64.d.ts +4 -0
  113. package/dist/encoding/base64.js +82 -0
  114. package/dist/encoding/base64.js.map +1 -0
  115. package/dist/encoding/utf8.d.ts +2 -0
  116. package/dist/encoding/utf8.js +9 -0
  117. package/dist/encoding/utf8.js.map +1 -0
  118. package/dist/main.d.ts +2 -1
  119. package/dist/main.js +2 -1
  120. package/dist/main.js.map +1 -1
  121. package/dist/nodejs-utils/serve.d.ts +5 -0
  122. package/dist/nodejs-utils/serve.js +77 -0
  123. package/dist/nodejs-utils/serve.js.map +1 -0
  124. package/dist/storage/credential-storage.d.ts +8 -0
  125. package/dist/storage/credential-storage.js +2 -0
  126. package/dist/storage/credential-storage.js.map +1 -0
  127. package/dist/storage/key-event-storage.d.ts +10 -0
  128. package/dist/storage/key-event-storage.js +2 -0
  129. package/dist/storage/key-event-storage.js.map +1 -0
  130. package/dist/storage/mailbox-storage.d.ts +4 -0
  131. package/dist/storage/mailbox-storage.js +2 -0
  132. package/dist/storage/mailbox-storage.js.map +1 -0
  133. package/dist/storage/private-key-storage.d.ts +5 -0
  134. package/dist/storage/private-key-storage.js +2 -0
  135. package/dist/storage/private-key-storage.js.map +1 -0
  136. package/dist/storage/sqlite/schema.js +25 -19
  137. package/dist/storage/sqlite/schema.js.map +1 -1
  138. package/dist/storage/sqlite/storage-sqlite.d.ts +11 -8
  139. package/dist/storage/sqlite/storage-sqlite.js +5 -4
  140. package/dist/storage/sqlite/storage-sqlite.js.map +1 -1
  141. package/dist/witness/main.d.ts +2 -0
  142. package/dist/witness/main.js +3 -0
  143. package/dist/witness/main.js.map +1 -0
  144. package/dist/witness/parser.d.ts +3 -0
  145. package/dist/witness/parser.js +7 -0
  146. package/dist/witness/parser.js.map +1 -0
  147. package/dist/witness/seed.d.ts +1 -0
  148. package/dist/witness/seed.js +5 -0
  149. package/dist/witness/seed.js.map +1 -0
  150. package/dist/witness/witness-router.d.ts +2 -0
  151. package/dist/witness/witness-router.js +104 -0
  152. package/dist/witness/witness-router.js.map +1 -0
  153. package/dist/witness/witness.d.ts +24 -0
  154. package/dist/witness/witness.js +139 -0
  155. package/dist/witness/witness.js.map +1 -0
  156. package/package.json +24 -20
@@ -1,10 +1,12 @@
1
- import { parse } from "cesr";
1
+ import { parse } from "../cesr/__main__.js";
2
2
  export class MailboxClient {
3
3
  url;
4
4
  id;
5
+ #fetch;
5
6
  constructor(options) {
6
7
  this.url = options.url;
7
8
  this.id = options.id;
9
+ this.#fetch = options.fetch ?? globalThis.fetch;
8
10
  }
9
11
  async sendMessage(message, signal) {
10
12
  const url = new URL("/", this.url);
@@ -14,7 +16,7 @@ export class MailboxClient {
14
16
  "CESR-ATTACHMENT": message.attachments.text(),
15
17
  "CESR-DESTINATION": this.id,
16
18
  };
17
- const response = await fetch(url, {
19
+ const response = await this.#fetch(url, {
18
20
  method: "POST",
19
21
  body,
20
22
  headers,
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox-client.js","sourceRoot":"","sources":["../../src/core/mailbox-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAE,MAAM,MAAM,CAAC;AAc3C,MAAM,OAAO,aAAa;IACf,GAAG,CAAS;IACZ,EAAE,CAAS;IAEpB,YAAY,OAA6B;QACvC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IACvB,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,KAAK,CAAC,GAAG,EAAE;YAChC,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":"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,30 +1,34 @@
1
- import { exchange, query, reply } from "./routed-event.ts";
2
- import { receipt } from "./receipt-event.ts";
3
- import { incept, interact, rotate } from "./key-event.ts";
4
- import { incept as registry } from "./registry-event.ts";
1
+ import { createCredential } from "./credential.ts";
5
2
  import { issue, revoke } from "./credential-event.ts";
3
+ import { digest } from "./digest.ts";
6
4
  import { formatDate } from "./events.ts";
5
+ import { incept, interact, rotate } from "./key-event.ts";
7
6
  import { generateKeyPair } from "./keys.ts";
8
- import { createCredential } from "./credential.ts";
7
+ import { receipt } from "./receipt-event.ts";
8
+ import { incept as registry } from "./registry-event.ts";
9
+ import { exchange, query, reply } from "./routed-event.ts";
9
10
  import { sign } from "./sign.ts";
10
- import { verify } from "./verify.ts";
11
- import { digest } from "./digest.ts";
12
- export { sign } from "./sign.ts";
13
- export { Message, Attachments } from "cesr";
14
- export { type KeyEvent } from "./key-event.ts";
15
- export { KeyEventLog } from "./key-event-log.ts";
16
- export type { KeyState, InceptEvent, InteractEvent, RotateEvent, KeyEventBody } from "./key-event.ts";
17
- export type { KeyPair } from "./keys.ts";
18
- export type { RegistryInceptEvent } from "./registry-event.ts";
19
- export type { IssueEvent, RevokeEvent } from "./credential-event.ts";
20
- export type { ReplyEvent, ExchangeEvent } from "./routed-event.ts";
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";
13
+ export type { Credential, CredentialBody, CredentialBodyInit, CredentialEdges, CredentialRules, CredentialSubject, } from "./credential.ts";
21
14
  export { createCredential } from "./credential.ts";
22
- export type { EndRoleRecord, LocationRecord, Endpoint } from "./endpoint-discovery.ts";
15
+ export type { IssueEventBody as IssueEvent, IssueEventInit, RevokeEventBody as RevokeEvent, RevokeEventInit, } from "./credential-event.ts";
16
+ export type { Endpoint, EndRoleRecord, LocationRecord } from "./endpoint-discovery.ts";
23
17
  export { resolveEndRole, resolveLocation } from "./endpoint-discovery.ts";
24
- export type { Credential, CredentialBody } from "./credential.ts";
25
- export type { VerifyResult } from "./verify.ts";
26
- export { MailboxClient } from "./mailbox-client.ts";
18
+ export type { WitnessEndpoint } from "./kawa.ts";
27
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";
22
+ export type { GenerateKeyPairOptions, KeyPair } from "./keys.ts";
23
+ export type { MailboxClientOptions } from "./mailbox-client.ts";
24
+ export { MailboxClient } from "./mailbox-client.ts";
25
+ export type { ReceiptEventBody, ReceiptEventInit } from "./receipt-event.ts";
26
+ export type { RegistryInceptEventBody, RegistryInceptEventInit } from "./registry-event.ts";
27
+ export type { ExchangeEventBody, ExchangeEventInit, QueryEventBody, QueryEventInit, ReplyEventBody, ReplyEventInit, } from "./routed-event.ts";
28
+ export type { SignOptions } from "./sign.ts";
29
+ export { sign } from "./sign.ts";
30
+ export type { Threshold } from "./threshold.ts";
31
+ export type { VerifyOptions, VerifyResult } from "./verify.ts";
28
32
  export declare const keri: {
29
33
  incept: typeof incept;
30
34
  interact: typeof interact;
@@ -39,7 +43,7 @@ export declare const keri: {
39
43
  receipt: typeof receipt;
40
44
  utils: {
41
45
  sign: typeof sign;
42
- verify: typeof verify;
46
+ verifyThreshold: typeof verifyThreshold;
43
47
  formatDate: typeof formatDate;
44
48
  generateKeyPair: typeof generateKeyPair;
45
49
  digest: typeof digest;
package/dist/core/main.js CHANGED
@@ -1,22 +1,21 @@
1
- import { exchange, query, reply } from "./routed-event.js";
2
- import { receipt } from "./receipt-event.js";
3
- import { incept, interact, rotate } from "./key-event.js";
4
- import { incept as registry } from "./registry-event.js";
1
+ import { createCredential } from "./credential.js";
5
2
  import { issue, revoke } from "./credential-event.js";
3
+ import { digest } from "./digest.js";
6
4
  import { formatDate } from "./events.js";
5
+ import { incept, interact, rotate } from "./key-event.js";
7
6
  import { generateKeyPair } from "./keys.js";
8
- import { createCredential } from "./credential.js";
7
+ import { receipt } from "./receipt-event.js";
8
+ import { incept as registry } from "./registry-event.js";
9
+ import { exchange, query, reply } from "./routed-event.js";
9
10
  import { sign } from "./sign.js";
10
- import { verify } from "./verify.js";
11
- import { digest } from "./digest.js";
12
- export { sign } from "./sign.js";
13
- export { Message, Attachments } from "cesr";
14
- export {} from "./key-event.js";
15
- export { KeyEventLog } from "./key-event-log.js";
11
+ import { verifyThreshold } from "./verify.js";
12
+ export { Attachments, Message, VersionString, } from "../cesr/__main__.js";
16
13
  export { createCredential } from "./credential.js";
17
14
  export { resolveEndRole, resolveLocation } from "./endpoint-discovery.js";
18
- export { MailboxClient } from "./mailbox-client.js";
19
15
  export { submitToWitnesses } from "./kawa.js";
16
+ export { KeyEventLog } from "./key-event-log.js";
17
+ export { MailboxClient } from "./mailbox-client.js";
18
+ export { sign } from "./sign.js";
20
19
  export const keri = {
21
20
  // Key events
22
21
  incept,
@@ -35,7 +34,7 @@ export const keri = {
35
34
  receipt,
36
35
  utils: {
37
36
  sign,
38
- verify,
37
+ verifyThreshold,
39
38
  formatDate,
40
39
  generateKeyPair,
41
40
  digest,
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/core/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE5C,OAAO,EAAiB,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,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,MAAM;QACN,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,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,4 +1,4 @@
1
- import { Message } from "cesr";
1
+ import { Message } from "../cesr/__main__.ts";
2
2
  export interface ReceiptEventInit {
3
3
  d: string;
4
4
  i: string;
@@ -12,4 +12,4 @@ export type ReceiptEventBody = {
12
12
  s: string;
13
13
  };
14
14
  export type ReceiptEvent = Message<ReceiptEventBody>;
15
- export declare function receipt(args: ReceiptEventInit): Message<ReceiptEventBody>;
15
+ export declare function receipt(args: ReceiptEventInit): ReceiptEvent;
@@ -1,4 +1,4 @@
1
- import { Message } from "cesr";
1
+ import { Message } from "../cesr/__main__.js";
2
2
  import { DUMMY_VERSION, encodeEvent } from "./events.js";
3
3
  export function receipt(args) {
4
4
  const body = encodeEvent({
@@ -1 +1 @@
1
- {"version":3,"file":"receipt-event.js","sourceRoot":"","sources":["../../src/core/receipt-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmBzD,MAAM,UAAU,OAAO,CAAC,IAAsB;IAC5C,MAAM,IAAI,GAAG,WAAW,CACtB;QACE,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,CACf,CAAC;IAEF,OAAO,IAAI,OAAO,CAAmB,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"receipt-event.js","sourceRoot":"","sources":["../../src/core/receipt-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmBzD,MAAM,UAAU,OAAO,CAAC,IAAsB;IAC5C,MAAM,IAAI,GAAG,WAAW,CACtB;QACE,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,CACf,CAAC;IAEF,OAAO,IAAI,OAAO,CAAmB,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -1,9 +1,9 @@
1
- import { Message } from "cesr";
1
+ import { Message } from "../cesr/__main__.ts";
2
2
  export interface RegistryInceptEventInit {
3
3
  ii: string;
4
4
  n?: string;
5
5
  }
6
- export type RegistryInceptEvent = {
6
+ export type RegistryInceptEventBody = {
7
7
  v: string;
8
8
  t: "vcp";
9
9
  d: string;
@@ -23,6 +23,4 @@ export type RegistryEventBody = {
23
23
  [key: string]: unknown;
24
24
  };
25
25
  export type RegistryEvent = Message<RegistryEventBody>;
26
- export declare function incept(args: RegistryInceptEventInit): Message<RegistryInceptEvent & {
27
- v: string;
28
- }>;
26
+ export declare function incept(args: RegistryInceptEventInit): Message<RegistryInceptEventBody>;
@@ -1,4 +1,4 @@
1
- import { Message } from "cesr";
1
+ import { Message } from "../cesr/__main__.js";
2
2
  import { DUMMY_VERSION, encodeEvent, randomNonce } from "./events.js";
3
3
  export function incept(args) {
4
4
  const body = encodeEvent({
@@ -1 +1 @@
1
- {"version":3,"file":"registry-event.js","sourceRoot":"","sources":["../../src/core/registry-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgCtE,MAAM,UAAU,MAAM,CAAC,IAA6B;IAClD,MAAM,IAAI,GAAG,WAAW,CACtB;QACE,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,GAAG;QACP,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,WAAW,EAAE;KAC3B,EACD,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CACrC,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"registry-event.js","sourceRoot":"","sources":["../../src/core/registry-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA8BtE,MAAM,UAAU,MAAM,CAAC,IAA6B;IAClD,MAAM,IAAI,GAAG,WAAW,CACtB;QACE,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,CAAC,EAAE,GAAG;QACN,CAAC,EAAE,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,GAAG;QACP,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,WAAW,EAAE;KAC3B,EACD,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CACrC,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,11 +1,11 @@
1
- import { Message } from "cesr";
1
+ import { Message } from "../cesr/__main__.ts";
2
2
  export interface QueryEventInit {
3
3
  dt?: Date;
4
4
  r?: string;
5
5
  rr?: string;
6
6
  q: Record<string, unknown>;
7
7
  }
8
- export type QueryEvent = {
8
+ export type QueryEventBody = {
9
9
  v: string;
10
10
  t: "qry";
11
11
  d: string;
@@ -19,7 +19,7 @@ export interface ReplyEventInit {
19
19
  r: string;
20
20
  a: Record<string, unknown>;
21
21
  }
22
- export type ReplyEvent = {
22
+ export type ReplyEventBody = {
23
23
  v: string;
24
24
  t: "rpy";
25
25
  d: string;
@@ -35,12 +35,8 @@ export type RoutedEventBody = {
35
35
  [key: string]: unknown;
36
36
  };
37
37
  export type RoutedEvent = Message<RoutedEventBody>;
38
- export declare function query(args: QueryEventInit): Message<QueryEvent & {
39
- v: string;
40
- }>;
41
- export declare function reply(args: ReplyEventInit): Message<ReplyEvent & {
42
- v: string;
43
- }>;
38
+ export declare function query(args: QueryEventInit): Message<QueryEventBody>;
39
+ export declare function reply(args: ReplyEventInit): Message<ReplyEventBody>;
44
40
  export interface ExchangeEventInit {
45
41
  sender: string;
46
42
  recipient?: string;
@@ -55,7 +51,7 @@ export interface ExchangeEmbedding {
55
51
  d: string;
56
52
  [key: string]: string | Record<string, unknown>;
57
53
  }
58
- export interface ExchangeEvent extends Record<string, unknown> {
54
+ export interface ExchangeEventBody extends Record<string, unknown> {
59
55
  v: string;
60
56
  t: "exn";
61
57
  d: string;
@@ -68,6 +64,4 @@ export interface ExchangeEvent extends Record<string, unknown> {
68
64
  a: Record<string, unknown>;
69
65
  e: Record<string, string | Record<string, unknown>>;
70
66
  }
71
- export declare function exchange(args: ExchangeEventInit): Message<ExchangeEvent & {
72
- v: string;
73
- }>;
67
+ export declare function exchange(args: ExchangeEventInit): Message<ExchangeEventBody>;
@@ -1,4 +1,4 @@
1
- import { Attachments, Message } from "cesr";
1
+ import { Attachments, Message } from "../cesr/__main__.js";
2
2
  import { DUMMY_VERSION, encodeEvent, formatDate } from "./events.js";
3
3
  import { saidify } from "./said.js";
4
4
  export function query(args) {
@@ -30,7 +30,7 @@ export function exchange(args) {
30
30
  for (const [key, message] of Object.entries(args.embeds ?? {})) {
31
31
  embeds[key] = message.body;
32
32
  attachments.PathedMaterialCouples.push({
33
- path: "-" + ["e", key].join("-"),
33
+ path: `-${["e", key].join("-")}`,
34
34
  attachments: message.attachments,
35
35
  grouped: true,
36
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"routed-event.js","sourceRoot":"","sources":["../../src/core/routed-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+CpC,MAAM,UAAU,KAAK,CAAC,IAAoB;IACxC,MAAM,IAAI,GAAG,WAAW,CAAa;QACnC,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;QACjB,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAoB;IACxC,MAAM,IAAI,GAAG,WAAW,CAAa;QACnC,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAgCD,MAAM,UAAU,QAAQ,CAAC,IAAuB;IAC9C,MAAM,MAAM,GAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAgB;QACtC,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,IAAI,CAAC,MAAM;QACd,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QACxB,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,KAAK;QACb,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACnB,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACpB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7C,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"routed-event.js","sourceRoot":"","sources":["../../src/core/routed-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,MAAM,UAAU,KAAK,CAAC,IAAoB;IACxC,MAAM,IAAI,GAAG,WAAW,CAAiB;QACvC,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;QACjB,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAoB;IACxC,MAAM,IAAI,GAAG,WAAW,CAAiB;QACvC,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAgCD,MAAM,UAAU,QAAQ,CAAC,IAAuB;IAC9C,MAAM,MAAM,GAAsB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAoB;QAC1C,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,IAAI,CAAC,MAAM;QACd,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QACxB,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE;QACf,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,KAAK;QACb,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;QACnB,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACpB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7C,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACxC,CAAC"}
package/dist/core/said.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { blake3 } from "@noble/hashes/blake3.js";
2
- import { cesr } from "cesr";
2
+ import { cesr } from "../cesr/__main__.js";
3
3
  function calculateSaid(event) {
4
4
  const digest = cesr.crypto.blake3_256(blake3
5
5
  .create({ dkLen: 32 })
@@ -1 +1 @@
1
- {"version":3,"file":"said.js","sourceRoot":"","sources":["../../src/core/said.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,SAAS,aAAa,CAAC,KAA8B;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CACnC,MAAM;SACH,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACrB,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACvD,MAAM,EAAE,CACZ,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAMD,MAAM,UAAU,OAAO,CAAoC,KAAQ,EAAE,MAAiB;IACpF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"said.js","sourceRoot":"","sources":["../../src/core/said.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,SAAS,aAAa,CAAC,KAA8B;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CACnC,MAAM;SACH,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACrB,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACvD,MAAM,EAAE,CACZ,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAMD,MAAM,UAAU,OAAO,CAAoC,KAAQ,EAAE,MAAiB;IACpF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC"}
package/dist/core/sign.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ed25519 } from "@noble/curves/ed25519.js";
2
- import { cesr, Indexer } from "cesr";
2
+ import { cesr, Indexer } from "../cesr/__main__.js";
3
3
  export function sign(payload, options) {
4
4
  const signature = ed25519.sign(payload, options.key);
5
5
  if (options.index !== undefined && options.index !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/core/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAOrC,MAAM,UAAU,IAAI,CAAC,OAAmB,EAAE,OAAoB;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/core/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,UAAU,IAAI,CAAC,OAAmB,EAAE,OAAoB;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { Matter } from "../cesr/__main__.ts";
1
2
  import { type Threshold } from "./threshold.ts";
2
3
  export interface VerifyOptions {
3
4
  threshold: Threshold;
@@ -6,9 +7,17 @@ export interface VerifyOptions {
6
7
  }
7
8
  export type VerifyResult = {
8
9
  ok: true;
10
+ error?: null;
9
11
  } | {
10
12
  ok: false;
11
13
  error: string;
12
14
  };
13
- export declare function verify(payload: Uint8Array, options: VerifyOptions): VerifyResult;
14
- export declare function verifyOrThrow(payload: Uint8Array, options: VerifyOptions): void;
15
+ export declare function verifySignature(payload: Uint8Array, key: Matter, sig: Uint8Array): boolean;
16
+ export declare function verifyThreshold(payload: Uint8Array, options: VerifyOptions): VerifyResult;
17
+ export declare function verifyThresholdOrThrow(payload: Uint8Array, options: VerifyOptions): void;
18
+ /**
19
+ * Validates that every signature present is cryptographically valid for its key,
20
+ * but does NOT check that the threshold is met.
21
+ */
22
+ export declare function verifySignatures(payload: Uint8Array, options: VerifyOptions): VerifyResult;
23
+ export declare function verifySignaturesOrThrow(payload: Uint8Array, options: VerifyOptions): void;
@@ -1,20 +1,16 @@
1
1
  import { ed25519 } from "@noble/curves/ed25519.js";
2
- import { Indexer, Matter } from "cesr";
2
+ import { Indexer, Matter } from "../cesr/__main__.js";
3
3
  import { parseThreshold } from "./threshold.js";
4
- function verifySignature(payload, key, sig) {
4
+ export function verifySignature(payload, key, sig) {
5
5
  switch (key.code) {
6
6
  case Matter.Code.Ed25519:
7
7
  case Matter.Code.Ed25519N:
8
- // TODO:
9
- // We can check the code of the signature,
10
- // but it does not really matter since it will be verified correctly regardless.
11
- // Anyway, revisit later
12
- return ed25519.verify(sig.raw, payload, key.raw);
8
+ return ed25519.verify(sig, payload, key.raw);
13
9
  default:
14
10
  throw new Error(`Unsupported key code: ${key.code}`);
15
11
  }
16
12
  }
17
- export function verify(payload, options) {
13
+ export function verifyThreshold(payload, options) {
18
14
  const keys = options.keys.map((key) => Matter.parse(key));
19
15
  const sigs = options.sigs.map((sig) => Indexer.parse(sig));
20
16
  const threshold = parseThreshold(options.threshold, options.keys.length);
@@ -24,7 +20,7 @@ export function verify(payload, options) {
24
20
  if (!sig) {
25
21
  continue;
26
22
  }
27
- if (!verifySignature(payload, keys[idx], sig)) {
23
+ if (!verifySignature(payload, keys[idx], sig.raw)) {
28
24
  return { ok: false, error: `Invalid signature for key at index ${idx}` };
29
25
  }
30
26
  sum += threshold.weights[idx];
@@ -34,8 +30,31 @@ export function verify(payload, options) {
34
30
  }
35
31
  return { ok: true };
36
32
  }
37
- export function verifyOrThrow(payload, options) {
38
- const result = verify(payload, options);
33
+ export function verifyThresholdOrThrow(payload, options) {
34
+ const result = verifyThreshold(payload, options);
35
+ if (!result.ok) {
36
+ throw new Error(result.error);
37
+ }
38
+ }
39
+ /**
40
+ * Validates that every signature present is cryptographically valid for its key,
41
+ * but does NOT check that the threshold is met.
42
+ */
43
+ export function verifySignatures(payload, options) {
44
+ const keys = options.keys.map((key) => Matter.parse(key));
45
+ const sigs = options.sigs.map((sig) => Indexer.parse(sig));
46
+ for (let idx = 0; idx < keys.length; idx++) {
47
+ const sig = sigs.find((s) => s.index === idx);
48
+ if (!sig)
49
+ continue;
50
+ if (!verifySignature(payload, keys[idx], sig.raw)) {
51
+ return { ok: false, error: `Invalid signature for key at index ${idx}` };
52
+ }
53
+ }
54
+ return { ok: true };
55
+ }
56
+ export function verifySignaturesOrThrow(payload, options) {
57
+ const result = verifySignatures(payload, options);
39
58
  if (!result.ok) {
40
59
  throw new Error(result.error);
41
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/core/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAiBhE,SAAS,eAAe,CAAC,OAAmB,EAAE,GAAW,EAAE,GAAqB;IAC9E,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ;YACvB,QAAQ;YACR,0CAA0C;YAC1C,gFAAgF;YAChF,wBAAwB;YACxB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACnD;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAmB,EAAE,OAAsB;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzE,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,GAAG,EAAE,EAAE,CAAC;QAC3E,CAAC;QAED,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,GAAG,yBAAyB,SAAS,CAAC,QAAQ,WAAW,EAAE,CAAC;IAC/G,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAmB,EAAE,OAAsB;IACvE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/core/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Message } from "../cesr/__main__.ts";
2
+ import type { KeyEventBody } from "./key-event.ts";
3
+ import type { ReceiptEvent } from "./receipt-event.ts";
4
+ export declare class WitnessClient {
5
+ #private;
6
+ constructor(url: string, fetch?: typeof globalThis.fetch);
7
+ receipt(event: Message<KeyEventBody>): Promise<ReceiptEvent>;
8
+ }
@@ -0,0 +1,39 @@
1
+ import { Matter, parse } from "../cesr/__main__.js";
2
+ import { verifySignature } from "./verify.js";
3
+ export class WitnessClient {
4
+ #url;
5
+ #fetch;
6
+ constructor(url, fetch) {
7
+ this.#url = url;
8
+ this.#fetch = fetch ?? globalThis.fetch;
9
+ }
10
+ async receipt(event) {
11
+ const url = new URL("/receipts", this.#url);
12
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
13
+ throw new Error(`Invalid protocol: ${url}`);
14
+ }
15
+ const fetchResponse = await this.#fetch(url, {
16
+ method: "POST",
17
+ body: JSON.stringify(event.body),
18
+ headers: {
19
+ "Content-Type": "application/cesr+json",
20
+ "CESR-ATTACHMENT": event.attachments.text(),
21
+ },
22
+ });
23
+ if (!fetchResponse.ok || !fetchResponse.body) {
24
+ throw new Error(`Failed to submit event to witness: ${fetchResponse.status} ${fetchResponse.statusText}`);
25
+ }
26
+ for await (const incoming of parse(fetchResponse.body)) {
27
+ if (incoming.body.t === "rct" && incoming.body.d === event.body.d) {
28
+ for (const couple of incoming.attachments.NonTransReceiptCouples) {
29
+ if (!verifySignature(event.raw, Matter.parse(couple.prefix), Matter.parse(couple.sig).raw)) {
30
+ throw new Error(`Invalid witness signature from ${couple.prefix}`);
31
+ }
32
+ }
33
+ return incoming;
34
+ }
35
+ }
36
+ throw new Error(`No receipt returned from ${this.#url}`);
37
+ }
38
+ }
39
+ //# sourceMappingURL=witness-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"witness-client.js","sourceRoot":"","sources":["../../src/core/witness-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,OAAO,aAAa;IACxB,IAAI,CAAS;IACb,MAAM,CAA0B;IAEhC,YAAY,GAAW,EAAE,KAA+B;QACtD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA4B;QACxC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAC3C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE;gBACP,cAAc,EAAE,uBAAuB;gBACvC,iBAAiB,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;aAC5C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5G,CAAC;QAED,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC;oBACjE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3F,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBAED,OAAO,QAAwB,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export declare function decodeBase64Int(str: string): number;
2
+ export declare function encodeBase64Int(value: number, length?: number): string;
3
+ export declare function encodeBase64Url(uint8: Uint8Array): string;
4
+ export declare function decodeBase64Url(input: string): Uint8Array;
@@ -0,0 +1,82 @@
1
+ const B64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split("");
2
+ function getBase64Index(char) {
3
+ if (char === "=") {
4
+ return 0;
5
+ }
6
+ const code = B64_ALPHABET.indexOf(char);
7
+ if (code === -1) {
8
+ throw new Error(`Invalid base64 character '${char}'`);
9
+ }
10
+ return code;
11
+ }
12
+ export function decodeBase64Int(str) {
13
+ let result = 0;
14
+ for (let i = str.length - 1; i >= 0; i--) {
15
+ const character = str.charAt(i);
16
+ const index = getBase64Index(character);
17
+ const factor = 64 ** (str.length - i - 1);
18
+ result += factor * index;
19
+ }
20
+ return result;
21
+ }
22
+ export function encodeBase64Int(value, length) {
23
+ if (length !== undefined && value >= 64 ** length) {
24
+ throw new Error(`value ${value} too big for base64 length ${length}`);
25
+ }
26
+ let remainder = value;
27
+ let result = "";
28
+ while (remainder !== 0) {
29
+ result = B64_ALPHABET[remainder % 64] + result;
30
+ remainder = Math.floor(remainder / 64);
31
+ }
32
+ return result.padStart(length ?? 1, "A");
33
+ }
34
+ export function encodeBase64Url(uint8) {
35
+ // CREDIT: https://github.com/denoland/std/blob/main/encoding/base64.ts
36
+ // CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727
37
+ let result = "";
38
+ let i;
39
+ const l = uint8.length;
40
+ for (i = 2; i < l; i += 3) {
41
+ result += B64_ALPHABET[uint8[i - 2] >> 2];
42
+ result += B64_ALPHABET[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)];
43
+ result += B64_ALPHABET[((uint8[i - 1] & 0x0f) << 2) | (uint8[i] >> 6)];
44
+ result += B64_ALPHABET[uint8[i] & 0x3f];
45
+ }
46
+ if (i === l + 1) {
47
+ // 1 octet yet to write
48
+ result += B64_ALPHABET[uint8[i - 2] >> 2];
49
+ result += B64_ALPHABET[(uint8[i - 2] & 0x03) << 4];
50
+ }
51
+ if (i === l) {
52
+ // 2 octets yet to write
53
+ result += B64_ALPHABET[uint8[i - 2] >> 2];
54
+ result += B64_ALPHABET[((uint8[i - 2] & 0x03) << 4) | (uint8[i - 1] >> 4)];
55
+ result += B64_ALPHABET[(uint8[i - 1] & 0x0f) << 2];
56
+ }
57
+ return result;
58
+ }
59
+ export function decodeBase64Url(input) {
60
+ if (typeof input !== "string") {
61
+ throw new Error(`input must be a string`);
62
+ }
63
+ if (input.length === 0) {
64
+ return new Uint8Array(0);
65
+ }
66
+ const remainder = input.length % 4;
67
+ const padSize = remainder > 0 ? 4 - remainder : remainder;
68
+ const str = input.padEnd(padSize + input.length, "=");
69
+ const result = new Uint8Array(3 * (str.length / 4));
70
+ for (let i = 0, j = 0; i < str.length; i += 4, j += 3) {
71
+ const sixtet0 = getBase64Index(str.charAt(i)) << 18;
72
+ const sixtet1 = getBase64Index(str.charAt(i + 1)) << 12;
73
+ const sixtet2 = getBase64Index(str.charAt(i + 2)) << 6;
74
+ const sixtet3 = getBase64Index(str.charAt(i + 3));
75
+ const chunk = sixtet0 | sixtet1 | sixtet2 | sixtet3;
76
+ result[j] = chunk >> 16;
77
+ result[j + 1] = (chunk >> 8) & 0xff;
78
+ result[j + 2] = chunk & 0xff;
79
+ }
80
+ return result.slice(0, result.length - padSize);
81
+ }
82
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/encoding/base64.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function encodeUtf8(text: string): Uint8Array;
2
+ export declare function decodeUtf8(bytes: Uint8Array): string;
@@ -0,0 +1,9 @@
1
+ export function encodeUtf8(text) {
2
+ const encoder = new TextEncoder();
3
+ return encoder.encode(text);
4
+ }
5
+ export function decodeUtf8(bytes) {
6
+ const decoder = new TextDecoder();
7
+ return decoder.decode(bytes);
8
+ }
9
+ //# sourceMappingURL=utf8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8.js","sourceRoot":"","sources":["../../src/encoding/utf8.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
package/dist/main.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export * from "./core/main.ts";
2
1
  export * from "./controller/controller.ts";
2
+ export * from "./core/main.ts";
3
+ export * from "./witness/main.ts";
package/dist/main.js CHANGED
@@ -1,3 +1,4 @@
1
- export * from "./core/main.js";
2
1
  export * from "./controller/controller.js";
2
+ export * from "./core/main.js";
3
+ export * from "./witness/main.js";
3
4
  //# sourceMappingURL=main.js.map