@fedify/fedify 2.4.0-pr.936.41 → 2.5.0-dev.2271

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 (244) hide show
  1. package/README.md +50 -39
  2. package/dist/{assert-CJ1KXcvv.mjs → assert-D1Eafmd_.mjs} +1 -1
  3. package/dist/{assert_equals-BV7oLMxm.mjs → assert_equals-Z6IcEbWU.mjs} +2 -28
  4. package/dist/assert_exists-cffSpJ7X.mjs +28 -0
  5. package/dist/assert_false-CPdRnc3E.mjs +23 -0
  6. package/dist/assert_greater_or_equal-BlafOF4-.mjs +31 -0
  7. package/dist/{assert_instance_of-Q9KTBnrf.mjs → assert_instance_of-mrXWWNY-.mjs} +1 -1
  8. package/dist/{assert_not_equals-EPJPoxuf.mjs → assert_not_equals-CpPK2t89.mjs} +2 -1
  9. package/dist/assert_rejects-CTptdYck.mjs +39 -0
  10. package/dist/{assert_strict_equals-Ec20AUwa.mjs → assert_strict_equals-CYvBmkpC.mjs} +2 -1
  11. package/dist/{assert_throws-NiFfqbnH.mjs → assert_throws-BYITOvPO.mjs} +2 -1
  12. package/dist/assertion_error-B-cx0fFA.mjs +31 -0
  13. package/dist/audience-CHQ-FlLD.mjs +95 -0
  14. package/dist/{builder-DonuxRl_.mjs → builder-Bda6LK7A.mjs} +169 -14
  15. package/dist/{circuit-breaker-CBGyz5F7.mjs → circuit-breaker-XJ53md4S.mjs} +224 -17
  16. package/dist/circuit-breaker-test-utils-DW6YC_Pe.mjs +14 -0
  17. package/dist/{client-CjF5IYQS.mjs → client-CEnNz8O7.mjs} +144 -8
  18. package/dist/{codec-BBga-FWI.mjs → codec-C6rTrpIp.mjs} +26 -3
  19. package/dist/{collection-BIhlldqK.mjs → collection-CnnP1UAv.mjs} +1 -1
  20. package/dist/compat/mod.cjs +1 -1
  21. package/dist/compat/mod.d.cts +1 -1
  22. package/dist/compat/mod.d.ts +1 -1
  23. package/dist/compat/mod.js +1 -1
  24. package/dist/compat/outgoing-jsonld.test.mjs +71 -3
  25. package/dist/compat/public-audience.test.mjs +14 -5
  26. package/dist/compat/secured-document.test.d.mts +2 -0
  27. package/dist/compat/secured-document.test.mjs +58 -0
  28. package/dist/compat/transformers.test.mjs +5 -5
  29. package/dist/compound-proof-B-9mXxFW.mjs +989 -0
  30. package/dist/{context-Zii1f5xS.d.ts → context-7NyiqIcg.d.ts} +1600 -25
  31. package/dist/{context-BJXxPElm.mjs → context-8Tu9kea0.mjs} +21 -63
  32. package/dist/{context-lxX6I7as.d.cts → context-tsYPJ2Ew.d.cts} +1600 -25
  33. package/dist/{deno-BHzKn9Ig.mjs → deno-oR5aJKpU.mjs} +1 -1
  34. package/dist/dist-DJQM4u7i.mjs +189 -0
  35. package/dist/docloader-DBoYbvYW.mjs +87 -0
  36. package/dist/{esm-yYQfPhIY.mjs → esm-BHXXx4Wx.mjs} +13 -6
  37. package/dist/federation/audience.test.d.mts +2 -0
  38. package/dist/federation/audience.test.mjs +130 -0
  39. package/dist/federation/builder.test.mjs +54 -5
  40. package/dist/federation/circuit-breaker.test.mjs +838 -7
  41. package/dist/federation/collection.test.mjs +3 -3
  42. package/dist/federation/compound-fanout.test.d.mts +2 -0
  43. package/dist/federation/compound-fanout.test.mjs +228 -0
  44. package/dist/federation/handler-compound-proof.test.d.mts +2 -0
  45. package/dist/federation/handler-compound-proof.test.mjs +384 -0
  46. package/dist/federation/handler.test.mjs +385 -15
  47. package/dist/federation/hashlink-media.test.d.mts +2 -0
  48. package/dist/federation/hashlink-media.test.mjs +422 -0
  49. package/dist/federation/idempotency.test.mjs +6 -6
  50. package/dist/federation/inbox-report.test.d.mts +2 -0
  51. package/dist/federation/inbox-report.test.mjs +475 -0
  52. package/dist/federation/inbox.test.mjs +3 -3
  53. package/dist/federation/keycache.test.mjs +215 -14
  54. package/dist/federation/kv.test.mjs +3 -3
  55. package/dist/federation/metrics.test.mjs +5 -5
  56. package/dist/federation/middleware.test.mjs +967 -35
  57. package/dist/federation/mod.cjs +18 -261
  58. package/dist/federation/mod.d.cts +5 -5
  59. package/dist/federation/mod.d.ts +5 -5
  60. package/dist/federation/mod.js +279 -1
  61. package/dist/federation/mq.test.mjs +123 -47
  62. package/dist/federation/negotiation.test.mjs +4 -4
  63. package/dist/federation/outgoing-proof.test.d.mts +2 -0
  64. package/dist/federation/outgoing-proof.test.mjs +931 -0
  65. package/dist/federation/portable-actor.test.d.mts +2 -0
  66. package/dist/federation/portable-actor.test.mjs +496 -0
  67. package/dist/federation/portable-chain.test.d.mts +2 -0
  68. package/dist/federation/portable-chain.test.mjs +370 -0
  69. package/dist/federation/portable-collection.test.d.mts +2 -0
  70. package/dist/federation/portable-collection.test.mjs +832 -0
  71. package/dist/federation/portable-delivery.test.d.mts +2 -0
  72. package/dist/federation/portable-delivery.test.mjs +746 -0
  73. package/dist/federation/portable-gateway-keys.test.d.mts +2 -0
  74. package/dist/federation/portable-gateway-keys.test.mjs +686 -0
  75. package/dist/federation/portable-inbox.test.d.mts +2 -0
  76. package/dist/federation/portable-inbox.test.mjs +1535 -0
  77. package/dist/federation/portable-parse-uri.test.d.mts +2 -0
  78. package/dist/federation/portable-parse-uri.test.mjs +348 -0
  79. package/dist/federation/portable-route-activity.test.d.mts +2 -0
  80. package/dist/federation/portable-route-activity.test.mjs +259 -0
  81. package/dist/federation/portable.test.d.mts +2 -0
  82. package/dist/federation/portable.test.mjs +1072 -0
  83. package/dist/federation/retry.test.mjs +4 -3
  84. package/dist/federation/router.test.mjs +9 -159
  85. package/dist/federation/send.test.mjs +245 -27
  86. package/dist/federation/tasks/codec.test.mjs +4 -4
  87. package/dist/federation/tasks/enqueue.test.mjs +42 -4
  88. package/dist/federation/tasks/tasks.test.mjs +7 -6
  89. package/dist/federation/temporal.test.mjs +4 -4
  90. package/dist/federation/webfinger.test.mjs +275 -12
  91. package/dist/{middleware-FrSMAYEx.cjs → federation-CkZiAcWY.cjs} +8640 -3722
  92. package/dist/http-B5JT115n.cjs +10630 -0
  93. package/dist/http-DydWCB7R.js +6527 -0
  94. package/dist/{http-CPVMUgsW.mjs → http-siciWkmx.mjs} +397 -168
  95. package/dist/key-BspPiXqn.mjs +951 -0
  96. package/dist/key-C1nv7_jD.d.ts +1125 -0
  97. package/dist/key-DYxuyd-s.d.cts +1125 -0
  98. package/dist/key-owner-evidence-APB6NpSk.mjs +108 -0
  99. package/dist/keycache-Da8A8mZa.mjs +200 -0
  100. package/dist/{kv-D6hNiMTK.d.ts → kv-B2mzK5tl.d.cts} +3 -2
  101. package/dist/{kv-gJ8LYbxX.d.cts → kv-B2mzK5tl.d.ts} +3 -2
  102. package/dist/kv-DBRWVx3Q.mjs +104 -0
  103. package/dist/{kv-cache-KyGqJqSp.mjs → kv-cache-BF1hnW65.mjs} +1 -1
  104. package/dist/{kv-cache-5bnX3-Jq.js → kv-cache-CTQr1tbn.js} +54 -16
  105. package/dist/{kv-cache-DQ29C4XL.cjs → kv-cache-DCac1nEU.cjs} +55 -19
  106. package/dist/{ld-Cj9F_5AP.mjs → ld-CzaP-hJl.mjs} +44 -12
  107. package/dist/map-local-context-conflict-DOYEEJ3u.mjs +204 -0
  108. package/dist/map-local-create-note-B0SeXJms.mjs +214 -0
  109. package/dist/{metrics-DMk-nTxI.mjs → metrics-CYg9yxBL.mjs} +3 -2
  110. package/dist/metrics-DVKYY6K1.d.cts +36 -0
  111. package/dist/metrics-DoRtI0qU.d.ts +36 -0
  112. package/dist/{middleware-Y-kpsp6S.js → middleware-CsDDXKuL.js} +5493 -1103
  113. package/dist/{middleware-CvwTUgnP.mjs → middleware-D7_LO-Vs.mjs} +3157 -272
  114. package/dist/{middleware-CEctxBN6.mjs → middleware-DWjrfpcz.mjs} +1 -1
  115. package/dist/{mod-gOlPDuT8.d.cts → mod-BojP2Bw3.d.cts} +1 -1
  116. package/dist/mod-CavhAgLw.d.cts +320 -0
  117. package/dist/mod-CtpF2BU5.d.ts +320 -0
  118. package/dist/{mod-BtEaIEcD.d.cts → mod-DEZXwV6J.d.ts} +10 -4
  119. package/dist/{mod-UMmveiO0.d.ts → mod-Dw-nPxQh.d.cts} +10 -4
  120. package/dist/{mod-DLc2Ot6f.d.ts → mod-Xj5P4s4d.d.ts} +1 -1
  121. package/dist/mod.cjs +40 -39
  122. package/dist/mod.d.cts +10 -11
  123. package/dist/mod.d.ts +10 -11
  124. package/dist/mod.js +9 -9
  125. package/dist/{mq-llHKivST.mjs → mq-Dm1Wmtm-.mjs} +6 -0
  126. package/dist/nodeinfo/client.test.mjs +139 -4
  127. package/dist/nodeinfo/handler.test.mjs +5 -5
  128. package/dist/nodeinfo/mod.cjs +1 -1
  129. package/dist/nodeinfo/mod.d.cts +1 -1
  130. package/dist/nodeinfo/mod.d.ts +1 -1
  131. package/dist/nodeinfo/mod.js +1 -1
  132. package/dist/nodeinfo/types.test.mjs +4 -4
  133. package/dist/otel/exporter.test.mjs +3 -3
  134. package/dist/otel/mod.cjs +0 -1
  135. package/dist/otel/mod.d.cts +1 -1
  136. package/dist/otel/mod.d.ts +1 -1
  137. package/dist/{outgoing-jsonld-URuqsICz.mjs → outgoing-jsonld-4IJqPYos.mjs} +12 -10
  138. package/dist/{owner-DEvZuyOE.d.cts → owner-BF0L9cMt.d.cts} +11 -0
  139. package/dist/{owner-CnngXDNJ.d.ts → owner-BSzr5-I8.d.ts} +11 -0
  140. package/dist/owner-DYgfTFHy.mjs +267 -0
  141. package/dist/portable-collection-BpsVsRov.js +670 -0
  142. package/dist/portable-collection-C74P1vtC.mjs +418 -0
  143. package/dist/portable-collection-DZd2bm7M.cjs +686 -0
  144. package/dist/portable-key-BIMLrAP4.mjs +549 -0
  145. package/dist/portable-key-id-Ca30-hOa.mjs +248 -0
  146. package/dist/proof-Dxy6ByqI.mjs +1299 -0
  147. package/dist/{public-audience-Cr5MsnMq.mjs → public-audience--klBIOk1.mjs} +15 -10
  148. package/dist/router-u5O5KCQr.mjs +156 -0
  149. package/dist/runtime/mod.cjs +1 -1
  150. package/dist/runtime/mod.js +1 -1
  151. package/dist/secured-document-CxzZZ9nL.mjs +35 -0
  152. package/dist/send-C4dDpAxm.mjs +495 -0
  153. package/dist/sig/accept.test.mjs +1 -1
  154. package/dist/sig/compound-proof-discovery.test.d.mts +2 -0
  155. package/dist/sig/compound-proof-discovery.test.mjs +331 -0
  156. package/dist/sig/compound-proof-producer.test.d.mts +2 -0
  157. package/dist/sig/compound-proof-producer.test.mjs +107 -0
  158. package/dist/sig/compound-proof-verification.test.d.mts +2 -0
  159. package/dist/sig/compound-proof-verification.test.mjs +833 -0
  160. package/dist/sig/compound-proof.test.d.mts +2 -0
  161. package/dist/sig/compound-proof.test.mjs +411 -0
  162. package/dist/sig/http.test.mjs +702 -31
  163. package/dist/sig/key-owner-evidence.test.d.mts +2 -0
  164. package/dist/sig/key-owner-evidence.test.mjs +100 -0
  165. package/dist/sig/key.test.mjs +220 -8
  166. package/dist/sig/ld.test.mjs +65 -7
  167. package/dist/sig/mitra-receive-interop.test.d.mts +2 -0
  168. package/dist/sig/mitra-receive-interop.test.mjs +260 -0
  169. package/dist/sig/mitra-send-interop.test.d.mts +2 -0
  170. package/dist/sig/mitra-send-interop.test.mjs +461 -0
  171. package/dist/sig/mod.cjs +18 -16
  172. package/dist/sig/mod.d.cts +4 -4
  173. package/dist/sig/mod.d.ts +4 -4
  174. package/dist/sig/mod.js +3 -3
  175. package/dist/sig/owner.test.mjs +108 -9
  176. package/dist/sig/portable-collection.test.d.mts +2 -0
  177. package/dist/sig/portable-collection.test.mjs +697 -0
  178. package/dist/sig/portable-interop.test.d.mts +2 -0
  179. package/dist/sig/portable-interop.test.mjs +156 -0
  180. package/dist/sig/portable-key-id.test.d.mts +2 -0
  181. package/dist/sig/portable-key-id.test.mjs +67 -0
  182. package/dist/sig/portable-key.test.d.mts +2 -0
  183. package/dist/sig/portable-key.test.mjs +1439 -0
  184. package/dist/sig/proof.test.mjs +1753 -16
  185. package/dist/sig/tootik-request-interop.test.d.mts +2 -0
  186. package/dist/sig/tootik-request-interop.test.mjs +190 -0
  187. package/dist/sig/tootik-send-interop.test.d.mts +2 -0
  188. package/dist/sig/tootik-send-interop.test.mjs +331 -0
  189. package/dist/sig/verification.test.d.mts +2 -0
  190. package/dist/sig/verification.test.mjs +310 -0
  191. package/dist/std__assert-DvMDRPes.mjs +8 -0
  192. package/dist/{testing-CO7ftO8A.mjs → tasks-IG3pHfvZ.mjs} +2 -2
  193. package/dist/{temporal-fsXO5IvD.mjs → temporal-D0KJI4NF.mjs} +3 -3
  194. package/dist/testing/context.test.d.mts +2 -0
  195. package/dist/testing/context.test.mjs +19 -0
  196. package/dist/testing/kv.test.d.mts +2 -0
  197. package/dist/testing/kv.test.mjs +101 -0
  198. package/dist/testing/mod.d.mts +1617 -48
  199. package/dist/testing/mod.mjs +6 -3
  200. package/dist/testing-t8xDeJZ5.mjs +8 -0
  201. package/dist/{transformers-DGwl-hD1.cjs → transformers-BalCrSsr.cjs} +0 -1
  202. package/dist/{types-DC1pNgJA.js → types-_S2_MeLF.js} +144 -8
  203. package/dist/{types-CPym83zc.cjs → types-poIao40f.cjs} +160 -7
  204. package/dist/utils/docloader.test.mjs +530 -8
  205. package/dist/utils/kv-cache.test.mjs +2 -2
  206. package/dist/utils/mod.cjs +1 -1
  207. package/dist/utils/mod.d.cts +1 -1
  208. package/dist/utils/mod.d.ts +1 -1
  209. package/dist/utils/mod.js +1 -1
  210. package/dist/verification-C3954hQh.mjs +5 -0
  211. package/dist/verification-Dpfcw8ml.mjs +105 -0
  212. package/dist/vocab/cjs.test.mjs +1 -1
  213. package/package.json +8 -8
  214. package/dist/assert_rejects-EgstcQy5.mjs +0 -82
  215. package/dist/docloader-e1khNUKy.mjs +0 -49
  216. package/dist/http-CsmQ-BQ4.js +0 -2483
  217. package/dist/http-VyDTd4G3.d.cts +0 -553
  218. package/dist/http-hlIjmewS.cjs +0 -2694
  219. package/dist/http-lf8Hsd91.d.ts +0 -553
  220. package/dist/key-DfPsX8hv.mjs +0 -453
  221. package/dist/keycache-_DHqz5z_.mjs +0 -97
  222. package/dist/metrics-CoUJLQhZ.d.cts +0 -276
  223. package/dist/metrics-Dc4jR-IC.d.ts +0 -276
  224. package/dist/mod-B0hW12_O.d.cts +0 -307
  225. package/dist/mod-COIAjwRS.d.ts +0 -307
  226. package/dist/owner-Br9YYzn_.mjs +0 -120
  227. package/dist/proof-B4ngoaNQ.mjs +0 -316
  228. package/dist/proof-B6E0XUXJ.js +0 -1415
  229. package/dist/proof-NN4xCQGL.cjs +0 -1562
  230. package/dist/send-CxHKUNzv.mjs +0 -239
  231. package/dist/std__assert-B2NnY9bq.mjs +0 -79
  232. package/dist/temporal-polyfill-BCdTHexd.cjs +0 -3565
  233. /package/dist/{accept-8PiolDP7.mjs → accept-CPVqki78.mjs} +0 -0
  234. /package/dist/{activity-listener-BtTSxZWA.mjs → activity-listener-C-BSbKI7.mjs} +0 -0
  235. /package/dist/{client-CAM_bQXx.d.cts → client-D-XP_Ccb.d.cts} +0 -0
  236. /package/dist/{client-CSddvgWN.d.ts → client-D-XP_Ccb.d.ts} +0 -0
  237. /package/dist/{keys-Dbyd7bhl.mjs → keys-DIJNHW-Y.mjs} +0 -0
  238. /package/dist/{kv-CXBAok3k.mjs → kv-DCHkaJ9-.mjs} +0 -0
  239. /package/dist/{negotiation-RuwrPFqi.mjs → negotiation-CCocWT_N.mjs} +0 -0
  240. /package/dist/{retry-DgFqeS5k.mjs → retry-zX5xw5e0.mjs} +0 -0
  241. /package/dist/{chunk-D5IdezsZ.js → rolldown-runtime-BC-Eo5Mj.js} +0 -0
  242. /package/dist/{chunk-Czpeue4M.cjs → rolldown-runtime-Dmm3t92W.cjs} +0 -0
  243. /package/dist/{transformers-DXze6FUB.js → transformers-DAtXl_Kc.js} +0 -0
  244. /package/dist/{types-CrtdVuDP.mjs → types-DE_LV1JB.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as FederationImpl } from "./middleware-CvwTUgnP.mjs";
4
+ import { n as FederationImpl } from "./middleware-D7_LO-Vs.mjs";
5
5
  export { FederationImpl };
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { Mt as WebFingerLinksDispatcher, ct as ActorAliasMapper, l as RequestContext, lt as ActorDispatcher, ut as ActorHandleMapper } from "./context-lxX6I7as.cjs";
2
+ import { Jt as WebFingerLinksDispatcher, St as ActorHandleMapper, bt as ActorAliasMapper, p as RequestContext, xt as ActorDispatcher } from "./context-tsYPJ2Ew.cjs";
3
3
  import { MeterProvider, Span, Tracer } from "@opentelemetry/api";
4
4
  import { RouterError, RouterOptions, RouterRouteResult } from "@fedify/uri-template";
5
5
 
@@ -0,0 +1,320 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { B as VerifyPortableObjectProofOptions, a as KeyCache, v as VerificationObservationOptions, z as VerifyPortableObjectProofFailureReason } from "./key-DYxuyd-s.cjs";
3
+ import { CryptographicKey, Multikey } from "@fedify/vocab";
4
+ import { DocumentLoader, PortableObjectVerifierOptions } from "@fedify/vocab-runtime";
5
+ import { MeterProvider, TracerProvider } from "@opentelemetry/api";
6
+
7
+ //#region src/sig/ld.d.ts
8
+ /**
9
+ * A signature of a JSON-LD document.
10
+ * @since 1.0.0
11
+ */
12
+ interface Signature {
13
+ "@context"?: "https://w3id.org/identity/v1";
14
+ type: "RsaSignature2017";
15
+ id?: string;
16
+ creator: string;
17
+ created: string;
18
+ signatureValue: string;
19
+ }
20
+ /**
21
+ * Attaches a LD signature to the given JSON-LD document.
22
+ * @param jsonLd The JSON-LD document to attach the signature to. It is not
23
+ * modified.
24
+ * @param signature The signature to attach.
25
+ * @returns The JSON-LD document with the attached signature.
26
+ * @throws {TypeError} If the input document is not a valid JSON-LD document.
27
+ * @since 1.0.0
28
+ */
29
+ declare function attachSignature(jsonLd: unknown, signature: Signature): {
30
+ signature: Signature;
31
+ };
32
+ /**
33
+ * Options for creating Linked Data Signatures.
34
+ * @since 1.0.0
35
+ */
36
+ interface CreateSignatureOptions {
37
+ /**
38
+ * The context loader for loading remote JSON-LD contexts.
39
+ */
40
+ contextLoader?: DocumentLoader;
41
+ /**
42
+ * The time when the signature was created. If not specified, the current
43
+ * time will be used.
44
+ */
45
+ created?: Temporal.Instant;
46
+ }
47
+ /**
48
+ * Creates a LD signature for the given JSON-LD document.
49
+ * @param jsonLd The JSON-LD document to sign.
50
+ * @param privateKey The private key to sign the document.
51
+ * @param keyId The ID of the public key that corresponds to the private key.
52
+ * @param options Additional options for creating the signature.
53
+ * See also {@link CreateSignatureOptions}.
54
+ * @return The created signature.
55
+ * @throws {TypeError} If the private key is invalid or unsupported.
56
+ * @since 1.0.0
57
+ */
58
+ declare function createSignature(jsonLd: unknown, privateKey: CryptoKey, keyId: URL, {
59
+ contextLoader,
60
+ created
61
+ }?: CreateSignatureOptions): Promise<Signature>;
62
+ /**
63
+ * Options for signing JSON-LD documents.
64
+ * @since 1.0.0
65
+ */
66
+ interface SignJsonLdOptions extends CreateSignatureOptions {
67
+ /**
68
+ * The OpenTelemetry tracer provider for tracing the signing process.
69
+ * If omitted, the global tracer provider is used.
70
+ * @since 1.3.0
71
+ */
72
+ tracerProvider?: TracerProvider;
73
+ }
74
+ /**
75
+ * Signs the given JSON-LD document with the private key and returns the signed
76
+ * JSON-LD document.
77
+ * @param jsonLd The JSON-LD document to sign.
78
+ * @param privateKey The private key to sign the document.
79
+ * @param keyId The key ID to use in the signature. It will be used by the
80
+ * verifier to fetch the corresponding public key.
81
+ * @param options Additional options for signing the document.
82
+ * See also {@link SignJsonLdOptions}.
83
+ * @returns The signed JSON-LD document.
84
+ * @throws {TypeError} If the private key is invalid or unsupported.
85
+ * @since 1.0.0
86
+ */
87
+ declare function signJsonLd(jsonLd: unknown, privateKey: CryptoKey, keyId: URL, options: SignJsonLdOptions): Promise<{
88
+ signature: Signature;
89
+ }>;
90
+ /**
91
+ * Checks if the given JSON-LD document has a Linked Data Signature-like
92
+ * object, without restricting it to a single suite-specific shape.
93
+ * @param jsonLd The JSON-LD document to check.
94
+ * @returns `true` if the document has a signature-like object; `false`
95
+ * otherwise.
96
+ * @since 2.2.0
97
+ */
98
+ declare function hasSignatureLike(jsonLd: unknown): boolean;
99
+ /**
100
+ * Detaches Linked Data Signatures from the given JSON-LD document.
101
+ * @param jsonLd The JSON-LD document to modify.
102
+ * @returns The modified JSON-LD document. If the input document does not
103
+ * contain a signature, the original document is returned.
104
+ * @since 1.0.0
105
+ */
106
+ declare function detachSignature(jsonLd: unknown): unknown;
107
+ /**
108
+ * Options for verifying Linked Data Signatures.
109
+ * @since 1.0.0
110
+ */
111
+ interface VerifySignatureOptions extends VerificationObservationOptions {
112
+ /**
113
+ * The document loader to use for fetching the public key.
114
+ */
115
+ documentLoader?: DocumentLoader;
116
+ /**
117
+ * The context loader to use for JSON-LD context retrieval.
118
+ */
119
+ contextLoader?: DocumentLoader;
120
+ /**
121
+ * The key cache to use for caching public keys.
122
+ */
123
+ keyCache?: KeyCache;
124
+ /**
125
+ * The OpenTelemetry tracer provider for tracing the verification process.
126
+ * If omitted, the global tracer provider is used.
127
+ * @since 1.3.0
128
+ */
129
+ tracerProvider?: TracerProvider;
130
+ /**
131
+ * The OpenTelemetry meter provider. If omitted, the global meter provider
132
+ * is used.
133
+ * @since 2.3.0
134
+ */
135
+ meterProvider?: MeterProvider;
136
+ }
137
+ /**
138
+ * Verifies Linked Data Signatures of the given JSON-LD document.
139
+ *
140
+ * This is a low-level utility that only checks the cryptographic signature
141
+ * and (optionally) the cached key. It does not run the JSON-LD parsing,
142
+ * attribution, and owner checks that a complete inbound LD verification
143
+ * needs. For incoming activities, prefer {@link verifyJsonLd}, which is
144
+ * the public verification entry point and the one that emits the
145
+ * `activitypub.signature.verification.duration` metric for the LD path.
146
+ * `verifySignature` itself only emits
147
+ * `activitypub.signature.key_fetch.duration`, since the rest of the work
148
+ * that the verification-duration metric is meant to cover happens in
149
+ * `verifyJsonLd`.
150
+ * @param jsonLd The JSON-LD document to verify.
151
+ * @param options Options for verifying the signature.
152
+ * @returns The public key that signed the document or `null` if the signature
153
+ * is invalid or the key is not found.
154
+ * @since 1.0.0
155
+ */
156
+ declare function verifySignature(jsonLd: unknown, options?: VerifySignatureOptions): Promise<CryptographicKey | null>;
157
+ /**
158
+ * Options for verifying JSON-LD documents.
159
+ */
160
+ interface VerifyJsonLdOptions extends VerifySignatureOptions {}
161
+ /**
162
+ * Verify the authenticity of the given JSON-LD document using Linked Data
163
+ * Signatures. If the document is signed, this function verifies the signature
164
+ * and checks if the document is attributed to the owner of the public key.
165
+ * If the document is not signed, this function returns `false`.
166
+ * @param jsonLd The JSON-LD document to verify.
167
+ * @param options Options for verifying the document.
168
+ * @returns `true` if the document is authentic; `false` otherwise.
169
+ */
170
+ declare function verifyJsonLd(jsonLd: unknown, options?: VerifyJsonLdOptions): Promise<boolean>;
171
+ //#endregion
172
+ //#region src/sig/portable-collection.d.ts
173
+ /**
174
+ * Options for {@link verifyPortableObject}.
175
+ *
176
+ * Besides the options for {@link verifyPortableObjectProof}, it takes where
177
+ * the document came from, which property accessors pass automatically when
178
+ * `verifyPortableObject()` is used as their `verifyPortableObject` option.
179
+ * @since 2.4.0
180
+ */
181
+ interface VerifyPortableObjectOptions extends VerifyPortableObjectProofOptions, Omit<PortableObjectVerifierOptions, "documentLoader" | "contextLoader" | "tracerProvider"> {}
182
+ /**
183
+ * The reason why {@link verifyPortableObject} did not accept a document.
184
+ *
185
+ * Besides the reasons of {@link verifyPortableObjectProof}, it describes why
186
+ * an unsecured portable collection was not trusted. The
187
+ * `unsecuredCollection` reason itself never appears, since such collections
188
+ * are judged by the gateway trust policy instead.
189
+ * @since 2.4.0
190
+ */
191
+ type VerifyPortableObjectFailureReason = Exclude<VerifyPortableObjectProofFailureReason, {
192
+ readonly type: "unsecuredCollection";
193
+ }> | {
194
+ /**
195
+ * The unsecured collection was not retrieved from a gateway, i.e., the
196
+ * document's final URL is missing or is not a compatible identifier for
197
+ * the same portable collection.
198
+ */
199
+ readonly type: "unknownCollectionSource"; /** The final URL of the document, if known. */
200
+ readonly documentUrl: URL | null;
201
+ } | {
202
+ /**
203
+ * The actor that owns the unsecured collection cannot be determined
204
+ * unambiguously.
205
+ */
206
+ readonly type: "unknownCollectionOwner";
207
+ } | {
208
+ /** The collection, its pages, or its referrer disagree on its owner. */readonly type: "conflictingCollectionOwners"; /** The owner candidates that disagree. */
209
+ readonly candidates: readonly URL[];
210
+ } | {
211
+ /**
212
+ * A collection page does not belong to the collection it was reached
213
+ * from: its `partOf` names another collection, or its cryptographic
214
+ * origin differs.
215
+ */
216
+ readonly type: "collectionPageMismatch"; /** The page. */
217
+ readonly pageId: URL; /** The collection that the page was reached from. */
218
+ readonly collectionId: URL; /** The mismatching `partOf`, or `null` if the origin differs. */
219
+ readonly partOf: URL | null;
220
+ } | {
221
+ /**
222
+ * The owner's actor document could not be retrieved or verified, or it
223
+ * lists no gateways.
224
+ */
225
+ readonly type: "collectionOwnerUnavailable"; /** The owner candidate. */
226
+ readonly owner: URL;
227
+ } | {
228
+ /**
229
+ * The owner's actor document does not list the collection as its
230
+ * `inbox`, `outbox`, `followers`, `following`, or `liked`.
231
+ */
232
+ readonly type: "collectionNotListedByOwner"; /** The owner. */
233
+ readonly owner: URL; /** The collection. */
234
+ readonly collectionId: URL;
235
+ } | {
236
+ /**
237
+ * The unsecured collection was retrieved from a gateway that its owner
238
+ * does not list in its `gateways`.
239
+ */
240
+ readonly type: "untrustedGateway"; /** The owner. */
241
+ readonly owner: URL; /** The gateway that served the collection. */
242
+ readonly gateway: URL; /** The owner's gateways. */
243
+ readonly gateways: readonly URL[];
244
+ };
245
+ /**
246
+ * The result of {@link verifyPortableObject}.
247
+ * @since 2.4.0
248
+ */
249
+ type VerifyPortableObjectResult = {
250
+ /** Whether the document is accepted. */readonly verified: true; /** The document carries valid Object Integrity Proofs. */
251
+ readonly method: "proof"; /** The public keys used by the verified proofs, in proof order. */
252
+ readonly keys: readonly Multikey[];
253
+ /**
254
+ * Opaque state for verifying the pages of a portable collection. Do not
255
+ * inspect it; property accessors pass it back automatically.
256
+ */
257
+ readonly collectionContext?: unknown;
258
+ } | {
259
+ /** Whether the document is accepted. */readonly verified: true;
260
+ /**
261
+ * The document is an unsecured portable collection served by a gateway
262
+ * that its owner lists.
263
+ */
264
+ readonly method: "gateway"; /** The document has no integrity proof. */
265
+ readonly unsecured: true; /** The actor that owns the collection. */
266
+ readonly owner: URL; /** The gateway that served the collection. */
267
+ readonly gateway: URL;
268
+ /**
269
+ * Opaque state for verifying the pages of a portable collection. Do not
270
+ * inspect it; property accessors pass it back automatically.
271
+ */
272
+ readonly collectionContext: unknown;
273
+ } | {
274
+ /** Whether the document is accepted. */readonly verified: false; /** Why the document was not accepted. */
275
+ readonly reason: VerifyPortableObjectFailureReason;
276
+ };
277
+ /**
278
+ * Applies the [FEP-ef61] trust policy to a portable object fetched through
279
+ * a gateway.
280
+ *
281
+ * Portable actors, activities, objects, and collections with proofs are
282
+ * verified by {@link verifyPortableObjectProof}. A portable collection or
283
+ * collection page without a proof is accepted only if all of the following
284
+ * hold:
285
+ *
286
+ * - It was retrieved from a gateway: its final URL (`documentUrl`) is
287
+ * a compatible identifier for the same portable collection.
288
+ * - Its owner is determined unambiguously: the actor whose `inbox`,
289
+ * `outbox`, `followers`, `following`, or `liked` property referred to
290
+ * the collection, or the single actor in its `attributedTo`. A page
291
+ * inherits the owner of the collection it was reached from through
292
+ * `first`, `last`, `current`, `next`, or `prev`, and must not name
293
+ * another collection in `partOf`.
294
+ * - The owner's actor document is verified by its proof and lists the
295
+ * collection as its `inbox`, `outbox`, `followers`, `following`, or
296
+ * `liked`.
297
+ * - The gateway that served the collection is in the owner's `gateways`.
298
+ *
299
+ * Where the document came from and which object referred to it are passed
300
+ * by property accessors when this function is used as their
301
+ * `verifyPortableObject` option. Objects embedded in an unsecured
302
+ * collection accepted this way are not trusted: accessors dereference and
303
+ * verify them one by one.
304
+ *
305
+ * Note that acceptance through the gateway policy does not verify anything
306
+ * cryptographically; it only means that the owner trusts the gateway.
307
+ *
308
+ * [FEP-ef61]: https://w3id.org/fep/ef61
309
+ *
310
+ * @param jsonLd The JSON-LD document to verify.
311
+ * @param options Additional options. See also
312
+ * {@link VerifyPortableObjectOptions}.
313
+ * @returns The detailed result.
314
+ * @throws {TypeError} If the input is not a single JSON-LD object or has a
315
+ * malformed portable ID.
316
+ * @since 2.4.0
317
+ */
318
+ declare function verifyPortableObject(jsonLd: unknown, options?: VerifyPortableObjectOptions): Promise<VerifyPortableObjectResult>;
319
+ //#endregion
320
+ export { CreateSignatureOptions as a, VerifySignatureOptions as c, detachSignature as d, hasSignatureLike as f, verifySignature as h, verifyPortableObject as i, attachSignature as l, verifyJsonLd as m, VerifyPortableObjectOptions as n, SignJsonLdOptions as o, signJsonLd as p, VerifyPortableObjectResult as r, VerifyJsonLdOptions as s, VerifyPortableObjectFailureReason as t, createSignature as u };
@@ -0,0 +1,320 @@
1
+ /// <reference lib="esnext.temporal" />
2
+ import { B as VerifyPortableObjectProofOptions, a as KeyCache, v as VerificationObservationOptions, z as VerifyPortableObjectProofFailureReason } from "./key-C1nv7_jD.js";
3
+ import { CryptographicKey, Multikey } from "@fedify/vocab";
4
+ import { MeterProvider, TracerProvider } from "@opentelemetry/api";
5
+ import { DocumentLoader, PortableObjectVerifierOptions } from "@fedify/vocab-runtime";
6
+
7
+ //#region src/sig/ld.d.ts
8
+ /**
9
+ * A signature of a JSON-LD document.
10
+ * @since 1.0.0
11
+ */
12
+ interface Signature {
13
+ "@context"?: "https://w3id.org/identity/v1";
14
+ type: "RsaSignature2017";
15
+ id?: string;
16
+ creator: string;
17
+ created: string;
18
+ signatureValue: string;
19
+ }
20
+ /**
21
+ * Attaches a LD signature to the given JSON-LD document.
22
+ * @param jsonLd The JSON-LD document to attach the signature to. It is not
23
+ * modified.
24
+ * @param signature The signature to attach.
25
+ * @returns The JSON-LD document with the attached signature.
26
+ * @throws {TypeError} If the input document is not a valid JSON-LD document.
27
+ * @since 1.0.0
28
+ */
29
+ declare function attachSignature(jsonLd: unknown, signature: Signature): {
30
+ signature: Signature;
31
+ };
32
+ /**
33
+ * Options for creating Linked Data Signatures.
34
+ * @since 1.0.0
35
+ */
36
+ interface CreateSignatureOptions {
37
+ /**
38
+ * The context loader for loading remote JSON-LD contexts.
39
+ */
40
+ contextLoader?: DocumentLoader;
41
+ /**
42
+ * The time when the signature was created. If not specified, the current
43
+ * time will be used.
44
+ */
45
+ created?: Temporal.Instant;
46
+ }
47
+ /**
48
+ * Creates a LD signature for the given JSON-LD document.
49
+ * @param jsonLd The JSON-LD document to sign.
50
+ * @param privateKey The private key to sign the document.
51
+ * @param keyId The ID of the public key that corresponds to the private key.
52
+ * @param options Additional options for creating the signature.
53
+ * See also {@link CreateSignatureOptions}.
54
+ * @return The created signature.
55
+ * @throws {TypeError} If the private key is invalid or unsupported.
56
+ * @since 1.0.0
57
+ */
58
+ declare function createSignature(jsonLd: unknown, privateKey: CryptoKey, keyId: URL, {
59
+ contextLoader,
60
+ created
61
+ }?: CreateSignatureOptions): Promise<Signature>;
62
+ /**
63
+ * Options for signing JSON-LD documents.
64
+ * @since 1.0.0
65
+ */
66
+ interface SignJsonLdOptions extends CreateSignatureOptions {
67
+ /**
68
+ * The OpenTelemetry tracer provider for tracing the signing process.
69
+ * If omitted, the global tracer provider is used.
70
+ * @since 1.3.0
71
+ */
72
+ tracerProvider?: TracerProvider;
73
+ }
74
+ /**
75
+ * Signs the given JSON-LD document with the private key and returns the signed
76
+ * JSON-LD document.
77
+ * @param jsonLd The JSON-LD document to sign.
78
+ * @param privateKey The private key to sign the document.
79
+ * @param keyId The key ID to use in the signature. It will be used by the
80
+ * verifier to fetch the corresponding public key.
81
+ * @param options Additional options for signing the document.
82
+ * See also {@link SignJsonLdOptions}.
83
+ * @returns The signed JSON-LD document.
84
+ * @throws {TypeError} If the private key is invalid or unsupported.
85
+ * @since 1.0.0
86
+ */
87
+ declare function signJsonLd(jsonLd: unknown, privateKey: CryptoKey, keyId: URL, options: SignJsonLdOptions): Promise<{
88
+ signature: Signature;
89
+ }>;
90
+ /**
91
+ * Checks if the given JSON-LD document has a Linked Data Signature-like
92
+ * object, without restricting it to a single suite-specific shape.
93
+ * @param jsonLd The JSON-LD document to check.
94
+ * @returns `true` if the document has a signature-like object; `false`
95
+ * otherwise.
96
+ * @since 2.2.0
97
+ */
98
+ declare function hasSignatureLike(jsonLd: unknown): boolean;
99
+ /**
100
+ * Detaches Linked Data Signatures from the given JSON-LD document.
101
+ * @param jsonLd The JSON-LD document to modify.
102
+ * @returns The modified JSON-LD document. If the input document does not
103
+ * contain a signature, the original document is returned.
104
+ * @since 1.0.0
105
+ */
106
+ declare function detachSignature(jsonLd: unknown): unknown;
107
+ /**
108
+ * Options for verifying Linked Data Signatures.
109
+ * @since 1.0.0
110
+ */
111
+ interface VerifySignatureOptions extends VerificationObservationOptions {
112
+ /**
113
+ * The document loader to use for fetching the public key.
114
+ */
115
+ documentLoader?: DocumentLoader;
116
+ /**
117
+ * The context loader to use for JSON-LD context retrieval.
118
+ */
119
+ contextLoader?: DocumentLoader;
120
+ /**
121
+ * The key cache to use for caching public keys.
122
+ */
123
+ keyCache?: KeyCache;
124
+ /**
125
+ * The OpenTelemetry tracer provider for tracing the verification process.
126
+ * If omitted, the global tracer provider is used.
127
+ * @since 1.3.0
128
+ */
129
+ tracerProvider?: TracerProvider;
130
+ /**
131
+ * The OpenTelemetry meter provider. If omitted, the global meter provider
132
+ * is used.
133
+ * @since 2.3.0
134
+ */
135
+ meterProvider?: MeterProvider;
136
+ }
137
+ /**
138
+ * Verifies Linked Data Signatures of the given JSON-LD document.
139
+ *
140
+ * This is a low-level utility that only checks the cryptographic signature
141
+ * and (optionally) the cached key. It does not run the JSON-LD parsing,
142
+ * attribution, and owner checks that a complete inbound LD verification
143
+ * needs. For incoming activities, prefer {@link verifyJsonLd}, which is
144
+ * the public verification entry point and the one that emits the
145
+ * `activitypub.signature.verification.duration` metric for the LD path.
146
+ * `verifySignature` itself only emits
147
+ * `activitypub.signature.key_fetch.duration`, since the rest of the work
148
+ * that the verification-duration metric is meant to cover happens in
149
+ * `verifyJsonLd`.
150
+ * @param jsonLd The JSON-LD document to verify.
151
+ * @param options Options for verifying the signature.
152
+ * @returns The public key that signed the document or `null` if the signature
153
+ * is invalid or the key is not found.
154
+ * @since 1.0.0
155
+ */
156
+ declare function verifySignature(jsonLd: unknown, options?: VerifySignatureOptions): Promise<CryptographicKey | null>;
157
+ /**
158
+ * Options for verifying JSON-LD documents.
159
+ */
160
+ interface VerifyJsonLdOptions extends VerifySignatureOptions {}
161
+ /**
162
+ * Verify the authenticity of the given JSON-LD document using Linked Data
163
+ * Signatures. If the document is signed, this function verifies the signature
164
+ * and checks if the document is attributed to the owner of the public key.
165
+ * If the document is not signed, this function returns `false`.
166
+ * @param jsonLd The JSON-LD document to verify.
167
+ * @param options Options for verifying the document.
168
+ * @returns `true` if the document is authentic; `false` otherwise.
169
+ */
170
+ declare function verifyJsonLd(jsonLd: unknown, options?: VerifyJsonLdOptions): Promise<boolean>;
171
+ //#endregion
172
+ //#region src/sig/portable-collection.d.ts
173
+ /**
174
+ * Options for {@link verifyPortableObject}.
175
+ *
176
+ * Besides the options for {@link verifyPortableObjectProof}, it takes where
177
+ * the document came from, which property accessors pass automatically when
178
+ * `verifyPortableObject()` is used as their `verifyPortableObject` option.
179
+ * @since 2.4.0
180
+ */
181
+ interface VerifyPortableObjectOptions extends VerifyPortableObjectProofOptions, Omit<PortableObjectVerifierOptions, "documentLoader" | "contextLoader" | "tracerProvider"> {}
182
+ /**
183
+ * The reason why {@link verifyPortableObject} did not accept a document.
184
+ *
185
+ * Besides the reasons of {@link verifyPortableObjectProof}, it describes why
186
+ * an unsecured portable collection was not trusted. The
187
+ * `unsecuredCollection` reason itself never appears, since such collections
188
+ * are judged by the gateway trust policy instead.
189
+ * @since 2.4.0
190
+ */
191
+ type VerifyPortableObjectFailureReason = Exclude<VerifyPortableObjectProofFailureReason, {
192
+ readonly type: "unsecuredCollection";
193
+ }> | {
194
+ /**
195
+ * The unsecured collection was not retrieved from a gateway, i.e., the
196
+ * document's final URL is missing or is not a compatible identifier for
197
+ * the same portable collection.
198
+ */
199
+ readonly type: "unknownCollectionSource"; /** The final URL of the document, if known. */
200
+ readonly documentUrl: URL | null;
201
+ } | {
202
+ /**
203
+ * The actor that owns the unsecured collection cannot be determined
204
+ * unambiguously.
205
+ */
206
+ readonly type: "unknownCollectionOwner";
207
+ } | {
208
+ /** The collection, its pages, or its referrer disagree on its owner. */readonly type: "conflictingCollectionOwners"; /** The owner candidates that disagree. */
209
+ readonly candidates: readonly URL[];
210
+ } | {
211
+ /**
212
+ * A collection page does not belong to the collection it was reached
213
+ * from: its `partOf` names another collection, or its cryptographic
214
+ * origin differs.
215
+ */
216
+ readonly type: "collectionPageMismatch"; /** The page. */
217
+ readonly pageId: URL; /** The collection that the page was reached from. */
218
+ readonly collectionId: URL; /** The mismatching `partOf`, or `null` if the origin differs. */
219
+ readonly partOf: URL | null;
220
+ } | {
221
+ /**
222
+ * The owner's actor document could not be retrieved or verified, or it
223
+ * lists no gateways.
224
+ */
225
+ readonly type: "collectionOwnerUnavailable"; /** The owner candidate. */
226
+ readonly owner: URL;
227
+ } | {
228
+ /**
229
+ * The owner's actor document does not list the collection as its
230
+ * `inbox`, `outbox`, `followers`, `following`, or `liked`.
231
+ */
232
+ readonly type: "collectionNotListedByOwner"; /** The owner. */
233
+ readonly owner: URL; /** The collection. */
234
+ readonly collectionId: URL;
235
+ } | {
236
+ /**
237
+ * The unsecured collection was retrieved from a gateway that its owner
238
+ * does not list in its `gateways`.
239
+ */
240
+ readonly type: "untrustedGateway"; /** The owner. */
241
+ readonly owner: URL; /** The gateway that served the collection. */
242
+ readonly gateway: URL; /** The owner's gateways. */
243
+ readonly gateways: readonly URL[];
244
+ };
245
+ /**
246
+ * The result of {@link verifyPortableObject}.
247
+ * @since 2.4.0
248
+ */
249
+ type VerifyPortableObjectResult = {
250
+ /** Whether the document is accepted. */readonly verified: true; /** The document carries valid Object Integrity Proofs. */
251
+ readonly method: "proof"; /** The public keys used by the verified proofs, in proof order. */
252
+ readonly keys: readonly Multikey[];
253
+ /**
254
+ * Opaque state for verifying the pages of a portable collection. Do not
255
+ * inspect it; property accessors pass it back automatically.
256
+ */
257
+ readonly collectionContext?: unknown;
258
+ } | {
259
+ /** Whether the document is accepted. */readonly verified: true;
260
+ /**
261
+ * The document is an unsecured portable collection served by a gateway
262
+ * that its owner lists.
263
+ */
264
+ readonly method: "gateway"; /** The document has no integrity proof. */
265
+ readonly unsecured: true; /** The actor that owns the collection. */
266
+ readonly owner: URL; /** The gateway that served the collection. */
267
+ readonly gateway: URL;
268
+ /**
269
+ * Opaque state for verifying the pages of a portable collection. Do not
270
+ * inspect it; property accessors pass it back automatically.
271
+ */
272
+ readonly collectionContext: unknown;
273
+ } | {
274
+ /** Whether the document is accepted. */readonly verified: false; /** Why the document was not accepted. */
275
+ readonly reason: VerifyPortableObjectFailureReason;
276
+ };
277
+ /**
278
+ * Applies the [FEP-ef61] trust policy to a portable object fetched through
279
+ * a gateway.
280
+ *
281
+ * Portable actors, activities, objects, and collections with proofs are
282
+ * verified by {@link verifyPortableObjectProof}. A portable collection or
283
+ * collection page without a proof is accepted only if all of the following
284
+ * hold:
285
+ *
286
+ * - It was retrieved from a gateway: its final URL (`documentUrl`) is
287
+ * a compatible identifier for the same portable collection.
288
+ * - Its owner is determined unambiguously: the actor whose `inbox`,
289
+ * `outbox`, `followers`, `following`, or `liked` property referred to
290
+ * the collection, or the single actor in its `attributedTo`. A page
291
+ * inherits the owner of the collection it was reached from through
292
+ * `first`, `last`, `current`, `next`, or `prev`, and must not name
293
+ * another collection in `partOf`.
294
+ * - The owner's actor document is verified by its proof and lists the
295
+ * collection as its `inbox`, `outbox`, `followers`, `following`, or
296
+ * `liked`.
297
+ * - The gateway that served the collection is in the owner's `gateways`.
298
+ *
299
+ * Where the document came from and which object referred to it are passed
300
+ * by property accessors when this function is used as their
301
+ * `verifyPortableObject` option. Objects embedded in an unsecured
302
+ * collection accepted this way are not trusted: accessors dereference and
303
+ * verify them one by one.
304
+ *
305
+ * Note that acceptance through the gateway policy does not verify anything
306
+ * cryptographically; it only means that the owner trusts the gateway.
307
+ *
308
+ * [FEP-ef61]: https://w3id.org/fep/ef61
309
+ *
310
+ * @param jsonLd The JSON-LD document to verify.
311
+ * @param options Additional options. See also
312
+ * {@link VerifyPortableObjectOptions}.
313
+ * @returns The detailed result.
314
+ * @throws {TypeError} If the input is not a single JSON-LD object or has a
315
+ * malformed portable ID.
316
+ * @since 2.4.0
317
+ */
318
+ declare function verifyPortableObject(jsonLd: unknown, options?: VerifyPortableObjectOptions): Promise<VerifyPortableObjectResult>;
319
+ //#endregion
320
+ export { CreateSignatureOptions as a, VerifySignatureOptions as c, detachSignature as d, hasSignatureLike as f, verifySignature as h, verifyPortableObject as i, attachSignature as l, verifyJsonLd as m, VerifyPortableObjectOptions as n, SignJsonLdOptions as o, signJsonLd as p, VerifyPortableObjectResult as r, VerifyJsonLdOptions as s, VerifyPortableObjectFailureReason as t, createSignature as u };