@fedify/fedify 1.9.0-dev.1668 → 1.9.0-dev.1704

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 (138) hide show
  1. package/dist/{actor-ChSW_rBk.js → actor-B0LpLKRw.js} +7263 -2440
  2. package/dist/{actor-Ch5yFYFG.d.ts → actor-C1Euqngb.d.ts} +1 -1
  3. package/dist/{actor-BHAPrCDB.js → actor-CQzdjHs3.js} +1 -1
  4. package/dist/{actor-fGD4yb1K.cjs → actor-DU96UQUE.cjs} +7263 -2440
  5. package/dist/{actor-CHOM_AN3.d.cts → actor-Ydzhc8dj.d.cts} +1 -1
  6. package/dist/{authdocloader-eSrbn3wM.cjs → authdocloader-BkOerKL-.cjs} +3 -3
  7. package/dist/{authdocloader-CgrKtaQg.js → authdocloader-CzmsYrAn.js} +3 -3
  8. package/dist/{authdocloader-ChsJ9FJN.js → authdocloader-DI67R2Ku.js} +3 -3
  9. package/dist/{builder-DI4-Kpdg.js → builder-D2Oyy8AY.js} +14 -8
  10. package/dist/{client-B8gJ1cw8.js → client-BWusKCWF.js} +1 -1
  11. package/dist/compat/mod.d.cts +7 -7
  12. package/dist/compat/mod.d.ts +7 -7
  13. package/dist/compat/transformers.test.js +16 -16
  14. package/dist/{context-DFruNLny.d.ts → context-C51zGhGC.d.ts} +185 -92
  15. package/dist/{context-KXVF2AhH.d.cts → context-Qnv814-p.d.cts} +185 -92
  16. package/dist/{docloader-CSB8cAnw.cjs → docloader-NcFUThCx.cjs} +1 -1
  17. package/dist/{docloader-Bqh-eFNP.js → docloader-isD0ntZv.js} +1 -1
  18. package/dist/{esm-DTi75ew2.js → esm-BBVcrjH8.js} +1 -1
  19. package/dist/federation/builder.test.js +5 -5
  20. package/dist/federation/collection.test.js +3 -3
  21. package/dist/federation/handler.test.js +17 -17
  22. package/dist/federation/idempotency.test.d.ts +3 -0
  23. package/dist/federation/idempotency.test.js +202 -0
  24. package/dist/federation/inbox.test.js +4 -4
  25. package/dist/federation/keycache.test.js +4 -4
  26. package/dist/federation/kv.test.js +3 -3
  27. package/dist/federation/middleware.test.js +18 -18
  28. package/dist/federation/mod.cjs +10 -10
  29. package/dist/federation/mod.d.cts +7 -7
  30. package/dist/federation/mod.d.ts +7 -7
  31. package/dist/federation/mod.js +10 -10
  32. package/dist/federation/mq.test.js +3 -3
  33. package/dist/federation/retry.test.js +3 -3
  34. package/dist/federation/router.test.js +3 -3
  35. package/dist/federation/send.test.js +10 -10
  36. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +6 -0
  37. package/dist/{http-B_zBcsai.d.cts → http-B1_DzfAU.d.cts} +1 -1
  38. package/dist/{http-BpAVdmaR.js → http-BiKoa3o_.js} +2 -2
  39. package/dist/{http-BDErrXSN.cjs → http-LVXxICJn.cjs} +3 -3
  40. package/dist/{http-DBHpjcjo.js → http-MyYS6o7t.js} +3 -3
  41. package/dist/{http-D8Q4xH0d.d.ts → http-wsGR6KkT.d.ts} +1 -1
  42. package/dist/{inbox-BA9sYsBf.js → inbox-CzGsgKH-.js} +29 -7
  43. package/dist/key-BEz2ThE9.cjs +10 -0
  44. package/dist/{key-DSOJOcRH.js → key-C0SCHEcf.js} +3 -3
  45. package/dist/{key-B27QtSbc.js → key-C5cRHj8g.js} +2 -2
  46. package/dist/{key-sCE-TgxY.js → key-CRhmBE03.js} +2 -2
  47. package/dist/{key-CYpTUnwf.cjs → key-Ci8OyUTB.cjs} +2 -2
  48. package/dist/{key-2rIHnPaA.js → key-DWPlWnFQ.js} +4 -4
  49. package/dist/{keycache-CiW2SvJu.js → keycache-rO8ea311.js} +1 -1
  50. package/dist/{keys-5cHW76LQ.js → keys-CWdCy_3n.js} +1 -1
  51. package/dist/{ld-upnKn3yw.js → ld-BWADNtQr.js} +2 -2
  52. package/dist/{lookup-B61sZAOY.js → lookup-BBTRFcU5.js} +1 -1
  53. package/dist/{lookup-BrrOs_g1.cjs → lookup-CILOZed9.cjs} +1 -1
  54. package/dist/{lookup-CZBG-vCx.js → lookup-RINL4MOa.js} +21 -12
  55. package/dist/{middleware-CyUVZG3t.js → middleware-Bcv0xCjs.js} +43 -40
  56. package/dist/middleware-Be9qUuwL.cjs +17 -0
  57. package/dist/{middleware-CfP7UhQy.js → middleware-BfhSHVoJ.js} +78 -47
  58. package/dist/middleware-CWlljVpG.js +26 -0
  59. package/dist/{middleware-P3jCWk4K.cjs → middleware-DDyUhxsm.cjs} +78 -47
  60. package/dist/middleware-Dm7sDAVJ.js +17 -0
  61. package/dist/{mod-NKH_G-IY.d.cts → mod-BUbqxBev.d.cts} +19 -1
  62. package/dist/{mod-Cy6pkZSn.d.ts → mod-CDObsV1d.d.ts} +19 -1
  63. package/dist/{mod-BAuhKa9d.d.ts → mod-CIbqfZW0.d.ts} +1 -1
  64. package/dist/{mod-YfAcrVbP.d.cts → mod-COTXAYRl.d.cts} +2 -2
  65. package/dist/{mod-B7Pc0I7F.d.ts → mod-DgcYoyZK.d.ts} +2 -2
  66. package/dist/{mod-C3CGxYoF.d.cts → mod-Dt-G9ZOS.d.cts} +1 -1
  67. package/dist/{mod-COw_caPC.d.cts → mod-fjqfsrty.d.cts} +2 -2
  68. package/dist/{mod-CiXjux2r.d.ts → mod-o-hx_hU8.d.ts} +2 -2
  69. package/dist/mod.cjs +10 -10
  70. package/dist/mod.d.cts +10 -10
  71. package/dist/mod.d.ts +10 -10
  72. package/dist/mod.js +10 -10
  73. package/dist/nodeinfo/client.test.js +5 -5
  74. package/dist/nodeinfo/handler.test.js +16 -16
  75. package/dist/nodeinfo/mod.cjs +2 -2
  76. package/dist/nodeinfo/mod.js +2 -2
  77. package/dist/nodeinfo/semver.test.js +3 -3
  78. package/dist/nodeinfo/types.test.js +3 -3
  79. package/dist/{owner-C9Ry0TOI.d.cts → owner-6KSEp9eV.d.cts} +2 -2
  80. package/dist/{owner-D38zBIMc.d.ts → owner-BbeUDvOu.d.ts} +2 -2
  81. package/dist/{owner-zvsMGYzc.js → owner-QEQV9vx-.js} +2 -2
  82. package/dist/{proof-Bt6yHsMN.js → proof-B_9fbF3f.js} +3 -3
  83. package/dist/{proof-BgKYSJ00.js → proof-g2_9VhUQ.js} +2 -2
  84. package/dist/{proof-CC_7UV_j.cjs → proof-v3B5cJ3c.cjs} +3 -3
  85. package/dist/runtime/authdocloader.test.js +9 -9
  86. package/dist/runtime/docloader.test.js +4 -4
  87. package/dist/runtime/key.test.js +5 -5
  88. package/dist/runtime/langstr.test.js +3 -3
  89. package/dist/runtime/link.test.js +3 -3
  90. package/dist/runtime/mod.cjs +6 -6
  91. package/dist/runtime/mod.d.cts +3 -3
  92. package/dist/runtime/mod.d.ts +3 -3
  93. package/dist/runtime/mod.js +6 -6
  94. package/dist/runtime/multibase/multibase.test.js +3 -3
  95. package/dist/runtime/url.test.js +3 -3
  96. package/dist/{send-DlqdAGHP.js → send-cTLNXtTp.js} +2 -2
  97. package/dist/sig/http.test.js +8 -8
  98. package/dist/sig/key.test.js +6 -6
  99. package/dist/sig/ld.test.js +7 -7
  100. package/dist/sig/mod.cjs +6 -6
  101. package/dist/sig/mod.d.cts +5 -5
  102. package/dist/sig/mod.d.ts +5 -5
  103. package/dist/sig/mod.js +6 -6
  104. package/dist/sig/owner.test.js +7 -7
  105. package/dist/sig/proof.test.js +7 -7
  106. package/dist/testing/docloader.test.js +3 -3
  107. package/dist/testing/mod.d.ts +391 -86
  108. package/dist/testing/mod.js +3 -3
  109. package/dist/{testing-CAAJTPCt.js → testing-CNtyBr2m.js} +2 -2
  110. package/dist/{type-BRNRL3aj.js → type-C5udJemk.js} +6943 -2120
  111. package/dist/{types-Dz0NMslg.cjs → types-C9w81XqW.cjs} +1 -1
  112. package/dist/{types-C8yjtF5A.js → types-DHq9gRM4.js} +1 -1
  113. package/dist/vocab/actor.test.js +5 -5
  114. package/dist/vocab/lookup.test.js +255 -5
  115. package/dist/vocab/mod.cjs +4 -4
  116. package/dist/vocab/mod.d.cts +3 -3
  117. package/dist/vocab/mod.d.ts +3 -3
  118. package/dist/vocab/mod.js +4 -4
  119. package/dist/vocab/type.test.js +3 -3
  120. package/dist/vocab/vocab.test.js +397 -8
  121. package/dist/{vocab-BDMmyzZA.cjs → vocab-BoyCE2Rn.cjs} +23 -14
  122. package/dist/{vocab-BEEm2I6u.d.ts → vocab-CDHNj5zp.d.ts} +290 -0
  123. package/dist/{vocab-BzGg7ltX.d.cts → vocab-Cfs0937i.d.cts} +290 -0
  124. package/dist/{vocab-WpDLcZH7.js → vocab-DxoBe7PI.js} +23 -14
  125. package/dist/webfinger/handler.test.js +16 -16
  126. package/dist/webfinger/lookup.test.js +4 -4
  127. package/dist/webfinger/mod.cjs +2 -2
  128. package/dist/webfinger/mod.js +2 -2
  129. package/dist/x/cfworkers.test.js +3 -3
  130. package/dist/x/hono.d.cts +6 -6
  131. package/dist/x/hono.d.ts +6 -6
  132. package/dist/x/sveltekit.d.cts +6 -6
  133. package/dist/x/sveltekit.d.ts +6 -6
  134. package/package.json +1 -1
  135. package/dist/key-Ck4-GNm0.cjs +0 -10
  136. package/dist/middleware-D8O6iKhr.js +0 -26
  137. package/dist/middleware-DI4sIaI4.js +0 -17
  138. package/dist/middleware-lw0MLhVG.cjs +0 -17
@@ -1,11 +1,11 @@
1
1
  import { KvKey, KvStore } from "./kv-63Cil1MD.cjs";
2
2
  import { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, GetUserAgentOptions } from "./docloader-D-MrRyHl.cjs";
3
3
  import { GetNodeInfoOptions, JsonValue, NodeInfo } from "./client-DjT_tegg.cjs";
4
- import { Activity, Collection, CryptographicKey, Hashtag, Link, Multikey, Object as Object$1 } from "./vocab-BzGg7ltX.cjs";
5
- import { Actor, Recipient } from "./actor-CHOM_AN3.cjs";
6
- import { HttpMessageSignaturesSpec } from "./http-B_zBcsai.cjs";
7
- import { GetKeyOwnerOptions } from "./owner-C9Ry0TOI.cjs";
8
- import { LookupObjectOptions, TraverseCollectionOptions } from "./mod-NKH_G-IY.cjs";
4
+ import { Activity, Collection, CryptographicKey, Hashtag, Link, Multikey, Object as Object$1 } from "./vocab-Cfs0937i.cjs";
5
+ import { Actor, Recipient } from "./actor-Ydzhc8dj.cjs";
6
+ import { HttpMessageSignaturesSpec } from "./http-B1_DzfAU.cjs";
7
+ import { GetKeyOwnerOptions } from "./owner-6KSEp9eV.cjs";
8
+ import { LookupObjectOptions, TraverseCollectionOptions } from "./mod-BUbqxBev.cjs";
9
9
  import { Link as Link$1, LookupWebFingerOptions, ResourceDescriptor } from "./mod-jQ4OODsl.cjs";
10
10
  import { MessageQueue } from "./mq-B7R1Q-M5.cjs";
11
11
  import { Span, TracerProvider } from "@opentelemetry/api";
@@ -281,7 +281,7 @@ type ObjectAuthorizePredicate<TContextData, TParam extends string> = (context: R
281
281
  * the entire collection without pagination.
282
282
  * @since 1.8.0
283
283
  */
284
- type CustomCollectionDispatcher<TItem, TParams extends Record<string, string>, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: TParams, cursor: string | null) => PageItems<TItem> | null | Promise<PageItems<TItem> | null>;
284
+ type CustomCollectionDispatcher<TItem, TParam extends string, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: Record<TParam, string>, cursor: string | null) => PageItems<TItem> | null | Promise<PageItems<TItem> | null>;
285
285
  /**
286
286
  * A callback that counts the number of items in a custom collection.
287
287
  *
@@ -291,7 +291,7 @@ type CustomCollectionDispatcher<TItem, TParams extends Record<string, string>, T
291
291
  * @param values The parameters of the requested URL.
292
292
  * @since 1.8.0
293
293
  */
294
- type CustomCollectionCounter<TParams extends Record<string, string>, TContextData> = (context: RequestContext<TContextData>, values: TParams) => number | bigint | null | Promise<number | bigint | null>;
294
+ type CustomCollectionCounter<TParam extends string, TContextData> = (context: RequestContext<TContextData>, values: Record<TParam, string>) => number | bigint | null | Promise<number | bigint | null>;
295
295
  /**
296
296
  * A callback that returns a cursor for a custom collection.
297
297
  *
@@ -304,7 +304,7 @@ type CustomCollectionCounter<TParams extends Record<string, string>, TContextDat
304
304
  * @param values The parameters of the requested URL.
305
305
  * @since 1.8.0
306
306
  */
307
- type CustomCollectionCursor<TParams extends Record<string, string>, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: TParams) => string | null | Promise<string | null>;
307
+ type CustomCollectionCursor<TParam extends string, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: Record<TParam, string>) => string | null | Promise<string | null>;
308
308
  //#endregion
309
309
  //#region src/federation/handler.d.ts
310
310
 
@@ -702,7 +702,7 @@ interface Federatable<TContextData> {
702
702
  * @returns An object with methods to set other actor dispatcher callbacks.
703
703
  * @throws {RouterError} Thrown if the path pattern is invalid.
704
704
  */
705
- setActorDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: ActorDispatcher<TContextData>): ActorCallbackSetters<TContextData>;
705
+ setActorDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: ActorDispatcher<TContextData>): ActorCallbackSetters<TContextData>;
706
706
  /**
707
707
  * Registers an object dispatcher.
708
708
  *
@@ -766,7 +766,7 @@ interface Federatable<TContextData> {
766
766
  */
767
767
  setObjectDispatcher<TObject extends Object$1, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
768
768
  typeId: URL;
769
- }, path: `${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
769
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
770
770
  /**
771
771
  * Registers an object dispatcher.
772
772
  *
@@ -782,7 +782,7 @@ interface Federatable<TContextData> {
782
782
  */
783
783
  setObjectDispatcher<TObject extends Object$1, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
784
784
  typeId: URL;
785
- }, path: `${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
785
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
786
786
  /**
787
787
  * Registers an object dispatcher.
788
788
  *
@@ -798,7 +798,7 @@ interface Federatable<TContextData> {
798
798
  */
799
799
  setObjectDispatcher<TObject extends Object$1, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
800
800
  typeId: URL;
801
- }, path: `${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
801
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
802
802
  /**
803
803
  * Registers an inbox dispatcher.
804
804
  *
@@ -810,7 +810,7 @@ interface Federatable<TContextData> {
810
810
  * @param dispatcher An inbox dispatcher callback to register.
811
811
  * @throws {@link RouterError} Thrown if the path pattern is invalid.
812
812
  */
813
- setInboxDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
813
+ setInboxDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
814
814
  /**
815
815
  * Registers an outbox dispatcher.
816
816
  *
@@ -834,7 +834,7 @@ interface Federatable<TContextData> {
834
834
  * @param dispatcher An outbox dispatcher callback to register.
835
835
  * @throws {@link RouterError} Thrown if the path pattern is invalid.
836
836
  */
837
- setOutboxDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
837
+ setOutboxDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
838
838
  /**
839
839
  * Registers a following collection dispatcher.
840
840
  * @param path The URI path pattern for the following collection. The syntax
@@ -846,7 +846,7 @@ interface Federatable<TContextData> {
846
846
  * callbacks.
847
847
  * @throws {RouterError} Thrown if the path pattern is invalid.
848
848
  */
849
- setFollowingDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Actor | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
849
+ setFollowingDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Actor | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
850
850
  /**
851
851
  * Registers a followers collection dispatcher.
852
852
  * @param path The URI path pattern for the followers collection. The syntax
@@ -858,7 +858,7 @@ interface Federatable<TContextData> {
858
858
  * callbacks.
859
859
  * @throws {@link RouterError} Thrown if the path pattern is invalid.
860
860
  */
861
- setFollowersDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Recipient, Context<TContextData>, TContextData, URL>): CollectionCallbackSetters<Context<TContextData>, TContextData, URL>;
861
+ setFollowersDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Recipient, Context<TContextData>, TContextData, URL>): CollectionCallbackSetters<Context<TContextData>, TContextData, URL>;
862
862
  /**
863
863
  * Registers a liked collection dispatcher.
864
864
  * @param path The URI path pattern for the liked collection. The syntax
@@ -870,7 +870,7 @@ interface Federatable<TContextData> {
870
870
  * callbacks.
871
871
  * @throws {@link RouterError} Thrown if the path pattern is invalid.
872
872
  */
873
- setLikedDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Object$1 | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
873
+ setLikedDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Object$1 | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
874
874
  /**
875
875
  * Registers a featured collection dispatcher.
876
876
  * @param path The URI path pattern for the featured collection. The syntax
@@ -882,7 +882,7 @@ interface Federatable<TContextData> {
882
882
  * callbacks.
883
883
  * @throws {@link RouterError} Thrown if the path pattern is invalid.
884
884
  */
885
- setFeaturedDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Object$1, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
885
+ setFeaturedDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Object$1, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
886
886
  /**
887
887
  * Registers a featured tags collection dispatcher.
888
888
  * @param path The URI path pattern for the featured tags collection.
@@ -894,7 +894,7 @@ interface Federatable<TContextData> {
894
894
  * callbacks.
895
895
  * @throws {@link RouterError} Thrown if the path pattern is invalid.
896
896
  */
897
- setFeaturedTagsDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Hashtag, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
897
+ setFeaturedTagsDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Hashtag, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
898
898
  /**
899
899
  * Assigns the URL path for the inbox and starts setting inbox listeners.
900
900
  *
@@ -924,7 +924,7 @@ interface Federatable<TContextData> {
924
924
  * @returns An object to register inbox listeners.
925
925
  * @throws {RouteError} Thrown if the path pattern is invalid.
926
926
  */
927
- setInboxListeners(inboxPath: `${string}{identifier}${string}` | `${string}{handle}${string}`, sharedInboxPath?: string): InboxListenerSetters<TContextData>;
927
+ setInboxListeners(inboxPath: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, sharedInboxPath?: string): InboxListenerSetters<TContextData>;
928
928
  /**
929
929
  * Registers a collection of objects dispatcher.
930
930
  *
@@ -939,7 +939,43 @@ interface Federatable<TContextData> {
939
939
  * The path must have one or more variables.
940
940
  * @param dispatcher A collection dispatcher callback to register.
941
941
  */
942
- setCollectionDispatcher<TObject extends Object$1, TParams extends Record<string, string>>(name: string | symbol, itemType: ConstructorWithTypeId<TObject>, path: ParamsKeyPath<TParams>, dispatcher: CustomCollectionDispatcher<TObject, TParams, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParams, RequestContext<TContextData>, TContextData>;
942
+ setCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
943
+ typeId: URL;
944
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
945
+ /**
946
+ * Registers a collection of objects dispatcher.
947
+ *
948
+ * @template TContextData The context data to pass to the {@link Context}.
949
+ * @template TObject The type of objects to dispatch.
950
+ * @template TParam The parameter names of the requested URL.
951
+ * @param name A unique name for the collection dispatcher.
952
+ * @param itemType The Activity Vocabulary class of the object to dispatch.
953
+ * @param path The URI path pattern for the collection dispatcher.
954
+ * The syntax is based on URI Template
955
+ * ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
956
+ * The path must have one or more variables.
957
+ * @param dispatcher A collection dispatcher callback to register.
958
+ */
959
+ setCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
960
+ typeId: URL;
961
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
962
+ /**
963
+ * Registers a collection of objects dispatcher.
964
+ *
965
+ * @template TContextData The context data to pass to the {@link Context}.
966
+ * @template TObject The type of objects to dispatch.
967
+ * @template TParam The parameter names of the requested URL.
968
+ * @param name A unique name for the collection dispatcher.
969
+ * @param itemType The Activity Vocabulary class of the object to dispatch.
970
+ * @param path The URI path pattern for the collection dispatcher.
971
+ * The syntax is based on URI Template
972
+ * ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
973
+ * The path must have one or more variables.
974
+ * @param dispatcher A collection dispatcher callback to register.
975
+ */
976
+ setCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
977
+ typeId: URL;
978
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
943
979
  /**
944
980
  * Registers an ordered collection of objects dispatcher.
945
981
  *
@@ -954,7 +990,43 @@ interface Federatable<TContextData> {
954
990
  * The path must have one or more variables.
955
991
  * @param dispatcher A collection dispatcher callback to register.
956
992
  */
957
- setOrderedCollectionDispatcher<TObject extends Object$1, TParams extends Record<string, string>>(name: string | symbol, itemType: ConstructorWithTypeId<TObject>, path: ParamsKeyPath<TParams>, dispatcher: CustomCollectionDispatcher<TObject, TParams, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParams, RequestContext<TContextData>, TContextData>;
993
+ setOrderedCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
994
+ typeId: URL;
995
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
996
+ /**
997
+ * Registers an ordered collection of objects dispatcher.
998
+ *
999
+ * @template TContextData The context data to pass to the {@link Context}.
1000
+ * @template TObject The type of objects to dispatch.
1001
+ * @template TParam The parameter names of the requested URL.
1002
+ * @param name A unique name for the collection dispatcher.
1003
+ * @param itemType The Activity Vocabulary class of the object to dispatch.
1004
+ * @param path The URI path pattern for the collection dispatcher.
1005
+ * The syntax is based on URI Template
1006
+ * ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
1007
+ * The path must have one or more variables.
1008
+ * @param dispatcher A collection dispatcher callback to register.
1009
+ */
1010
+ setOrderedCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
1011
+ typeId: URL;
1012
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
1013
+ /**
1014
+ * Registers an ordered collection of objects dispatcher.
1015
+ *
1016
+ * @template TContextData The context data to pass to the {@link Context}.
1017
+ * @template TObject The type of objects to dispatch.
1018
+ * @template TParam The parameter names of the requested URL.
1019
+ * @param name A unique name for the collection dispatcher.
1020
+ * @param itemType The Activity Vocabulary class of the object to dispatch.
1021
+ * @param path The URI path pattern for the collection dispatcher.
1022
+ * The syntax is based on URI Template
1023
+ * ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
1024
+ * The path must have one or more variables.
1025
+ * @param dispatcher A collection dispatcher callback to register.
1026
+ */
1027
+ setOrderedCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
1028
+ typeId: URL;
1029
+ }, path: `${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
958
1030
  }
959
1031
  /**
960
1032
  * An object that registers federation-related business logic and dispatches
@@ -1310,6 +1382,36 @@ interface CollectionCallbackSetters<TContext extends Context<TContextData>, TCon
1310
1382
  */
1311
1383
  authorize(predicate: AuthorizePredicate<TContextData>): CollectionCallbackSetters<TContext, TContextData, TFilter>;
1312
1384
  }
1385
+ /**
1386
+ * The strategy for handling activity idempotency in inbox processing.
1387
+ *
1388
+ * - `"global"`: Activities are deduplicated globally across all inboxes and
1389
+ * origins. The same activity ID will be processed only once, regardless
1390
+ * of which inbox receives it or which server sent it.
1391
+ *
1392
+ * - `"per-origin"`: Activities are deduplicated per receiving server's origin.
1393
+ * The same activity ID will be processed only once on each receiving server,
1394
+ * but can be processed separately on different receiving servers. This was
1395
+ * the default behavior in Fedify 1.x versions.
1396
+ *
1397
+ * - `"per-inbox"`: Activities are deduplicated per inbox. The same activity
1398
+ * ID can be processed once per inbox, allowing the same activity to be
1399
+ * delivered to multiple inboxes independently. This follows standard
1400
+ * ActivityPub behavior and will be the default in Fedify 2.0.
1401
+ *
1402
+ * @since 1.9.0
1403
+ */
1404
+ type IdempotencyStrategy = "global" | "per-origin" | "per-inbox";
1405
+ /**
1406
+ * A callback to generate a custom idempotency key for an activity.
1407
+ * Returns the cache key to use, or null to skip idempotency checking.
1408
+ * @template TContextData The context data to pass to the {@link InboxContext}.
1409
+ * @param ctx The inbox context.
1410
+ * @param activity The activity being processed.
1411
+ * @returns The idempotency key to use for caching, or null to skip caching.
1412
+ * @since 1.9.0
1413
+ */
1414
+ type IdempotencyKeyCallback<TContextData> = (ctx: InboxContext<TContextData>, activity: Activity) => string | null | Promise<string | null>;
1313
1415
  /**
1314
1416
  * Registry for inbox listeners for different activity types.
1315
1417
  */
@@ -1340,6 +1442,36 @@ interface InboxListenerSetters<TContextData> {
1340
1442
  * @since 0.11.0
1341
1443
  */
1342
1444
  setSharedKeyDispatcher(dispatcher: SharedInboxKeyDispatcher<TContextData>): InboxListenerSetters<TContextData>;
1445
+ /**
1446
+ * Configures the strategy for handling activity idempotency in inbox processing.
1447
+ *
1448
+ * @example
1449
+ * Use per-inbox strategy (standard ActivityPub behavior):
1450
+ * ```
1451
+ * federation
1452
+ * .setInboxListeners("/users/{identifier}/inbox", "/inbox")
1453
+ * .withIdempotency("per-inbox");
1454
+ * ```
1455
+ *
1456
+ * Use custom strategy:
1457
+ * ```
1458
+ * federation
1459
+ * .setInboxListeners("/users/{identifier}/inbox", "/inbox")
1460
+ * .withIdempotency((ctx, activity) => {
1461
+ * // Return null to skip idempotency
1462
+ * return `${ctx.origin}:${activity.id?.href}:${ctx.recipient}`;
1463
+ * });
1464
+ * ```
1465
+ *
1466
+ * @param strategy The idempotency strategy to use. Can be:
1467
+ * - `"global"`: Activities are deduplicated across all inboxes and origins
1468
+ * - `"per-origin"`: Activities are deduplicated per inbox origin
1469
+ * - `"per-inbox"`: Activities are deduplicated per inbox
1470
+ * - A custom callback function that returns the cache key to use
1471
+ * @returns The setters object so that settings can be chained.
1472
+ * @since 1.9.0
1473
+ */
1474
+ withIdempotency(strategy: IdempotencyStrategy | IdempotencyKeyCallback<TContextData>): InboxListenerSetters<TContextData>;
1343
1475
  }
1344
1476
  /**
1345
1477
  * Parameters of {@link Federation.fetch} method.
@@ -1378,38 +1510,38 @@ interface FederationFetchOptions<TContextData> {
1378
1510
  /**
1379
1511
  * Additional settings for a custom collection dispatcher.
1380
1512
  *
1381
- * @template TParams The type of the parameters in the URL path.
1513
+ * @template TParam The type of the parameters in the URL path.
1382
1514
  * @template TContext The type of the context. {@link Context} or
1383
1515
  * {@link RequestContext}.
1384
1516
  * @template TContextData The context data to pass to the {@link Context}.
1385
1517
  * @template TFilter The type of filter for the collection.
1386
1518
  */
1387
- interface CustomCollectionCallbackSetters<TParams extends Record<string, string>, TContext extends Context<TContextData>, TContextData> {
1519
+ interface CustomCollectionCallbackSetters<TParam extends string, TContext extends Context<TContextData>, TContextData> {
1388
1520
  /**
1389
1521
  * Sets the counter for the custom collection.
1390
1522
  * @param counter A callback that returns the number of items in the custom collection.
1391
1523
  * @returns The setters object so that settings can be chained.
1392
1524
  */
1393
- setCounter(counter: CustomCollectionCounter<TParams, TContextData>): CustomCollectionCallbackSetters<TParams, TContext, TContextData>;
1525
+ setCounter(counter: CustomCollectionCounter<TParam, TContextData>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
1394
1526
  /**
1395
1527
  * Sets the first cursor for the custom collection.
1396
1528
  * @param cursor The cursor for the first item in the custom collection.
1397
1529
  * @returns The setters object so that settings can be chained.
1398
1530
  */
1399
- setFirstCursor(cursor: CustomCollectionCursor<TParams, TContext, TContextData>): CustomCollectionCallbackSetters<TParams, TContext, TContextData>;
1531
+ setFirstCursor(cursor: CustomCollectionCursor<TParam, TContext, TContextData>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
1400
1532
  /**
1401
1533
  * Sets the last cursor for the custom collection.
1402
1534
  * @param cursor The cursor for the last item in the custom collection.
1403
1535
  * @returns The setters object so that settings can be chained.
1404
1536
  */
1405
- setLastCursor(cursor: CustomCollectionCursor<TParams, TContext, TContextData>): CustomCollectionCallbackSetters<TParams, TContext, TContextData>;
1537
+ setLastCursor(cursor: CustomCollectionCursor<TParam, TContext, TContextData>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
1406
1538
  /**
1407
1539
  * Specifies the conditions under which requests are authorized.
1408
1540
  * @param predicate A callback that returns whether a request is authorized.
1409
1541
  * @returns The setters object so that settings can be chained.
1410
1542
  * @since 0.7.0
1411
1543
  */
1412
- authorize(predicate: ObjectAuthorizePredicate<TContextData, string>): CustomCollectionCallbackSetters<TParams, TContext, TContextData>;
1544
+ authorize(predicate: ObjectAuthorizePredicate<TContextData, string>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
1413
1545
  }
1414
1546
  /**
1415
1547
  * Represents an object with a type ID, which is either a constructor or an
@@ -1421,73 +1553,34 @@ type ConstructorWithTypeId<TObject extends Object$1> = (new (...args: any[]) =>
1421
1553
  typeId: URL;
1422
1554
  };
1423
1555
  /**
1424
- * Represents a path from the key of parameter objects.
1425
- * @param Params - A record of parameters where keys are parameter names and
1426
- * values are their string representations.
1427
- * @returns A string representing the path with all parameters.
1428
- * @example
1429
- * ```ts
1430
- * type UserPostPath = ParamsKeyPath<{ userId: string; postId: string }>;
1431
- * let userPostPath: UserPostPath;
1432
- * // userPostPath = "/posts/{postId}"; // invalid - does not contain `{userId}`
1433
- * // userPostPath = "/users/{userId}"; // invalid - does not contain `{postId}`
1434
- * userPostPath = "/users/{userId}/posts/{postId}"; // valid
1435
- * userPostPath = "/posts/{postId}/users/{userId}"; // valid
1436
- * ```
1437
- */
1438
- type ParamsKeyPath<Params extends Record<string, string>> = ParamsPath<Extract<keyof Params, string>> & string;
1439
- /**
1440
- * Represents a path with multiple parameters.
1441
- * All permutations of the parameters are included in the union type.
1442
- * The path must have all parameters in the form of `{paramName}`.
1443
- * @param Params - A union of parameter names.
1444
- * @returns A string representing the path with all parameters.
1445
- * @example
1446
- * ```ts
1447
- * type UserPostPath = ParamsPath<"userId" | "postId">;
1448
- * // = `${string}{userId}${string}` & `${string}{postId}${string}`
1449
- * // =
1450
- * // | `${string}{userId}${string}{postId}${string}`
1451
- * // | `${string}{postId}${string}{userId}${string}`
1452
- * let userPostPath: UserPostPath;
1453
- * userPostPath = "/users/posts"; // ❌ invalid
1454
- * userPostPath = "/users/{userId}"; // ❌ invalid
1455
- * userPostPath = "/posts/{postId}"; // ❌ invalid
1456
- * userPostPath = "/users/{userId}/posts/{postId}"; // ✅ valid
1457
- * userPostPath = "/posts/{postId}/users/{userId}"; // ✅ valid
1458
- */
1459
- type ParamsPath<Params extends string> = UnionToIntersection<ParamPath<Params>>;
1460
- /**
1461
- * Represents a path with a single parameter.
1462
- * The path must have at least one of the parameters in the form of `{paramName}`.
1463
- * @param Param - The name of the parameter.
1464
- * @returns A string representing the path with the parameter.
1465
- * @example
1466
- * ```ts
1467
- * type UserPostPath = ParamPath<"userId" | "postId">;
1468
- * // = `${string}{userId}${string}` | `${string}{postId}${string}`
1469
- * let userPostPath: UserPostPath;
1470
- * userPostPath = "/users/posts"; // ❌ invalid
1471
- * userPostPath = "/users/{userId}"; // ✅ valid
1472
- * userPostPath = "/posts/{postId}"; // ✅ valid
1473
- * userPostPath = "/users/{userId}/posts/{postId}"; // ✅ valid
1474
- * userPostPath = "/posts/{postId}/users/{userId}"; // ✅ valid
1475
- */
1476
- type ParamPath<Param extends string> = `${string}{${Param}}${string}`;
1477
- /**
1478
- * Converts union types to intersection types.
1556
+ * Defines a union of all valid RFC 6570 URI Template expressions for a given
1557
+ * parameter name.
1558
+ *
1559
+ * RFC 6570 specifies a syntax for URI templates, allowing for variable
1560
+ * expansion. This type captures all Level 1-4 operator expressions for a
1561
+ * single, named variable.
1479
1562
  *
1480
- * @template U - The union type to convert.
1481
- * @returns The intersection type of the union.
1563
+ * The supported expression types are:
1564
+ * - `{Param}`: Simple string expansion
1565
+ * - `+{Param}`: Reserved string expansion
1566
+ * - `#{Param}`: Fragment expansion
1567
+ * - `{.Param}`: Label expansion with a dot-prefix
1568
+ * - `{/Param}`: Path segment expansion
1569
+ * - `{;Param}`: Path-style parameter expansion
1570
+ * - `{?Param}`: Query component expansion
1571
+ * - `{&Param}`: Query continuation expansion
1572
+ *
1573
+ * @template Param The name of the parameter to be used in the expressions.
1482
1574
  * @example
1483
1575
  * ```ts
1484
- * type A = { a: string };
1485
- * type B = { b: number };
1486
- * type AorB = A | B;
1487
- * type AandB = UnionToIntersection<AorB>;
1488
- * // AandB = { a: string; b: number }
1576
+ * type UserIdExpression = Rfc6570Expression<"userId">;
1577
+ *
1578
+ * // The variable `userPath` can be assigned any of the valid expressions.
1579
+ * const userPath: UserIdExpression = "{/userId}";
1580
+ * ```
1581
+ * @see {@link https://tools.ietf.org/html/rfc6570} for the full specification.
1489
1582
  */
1490
- type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends ((x: infer I) => void) ? I : never;
1583
+ type Rfc6570Expression<Param extends string> = `{${Param}}` | `{+${Param}}` | `{#${Param}}` | `{.${Param}}` | `{/${Param}}` | `{;${Param}}` | `{?${Param}}` | `{&${Param}}`;
1491
1584
  //#endregion
1492
1585
  //#region src/federation/context.d.ts
1493
1586
  /**
@@ -2258,4 +2351,4 @@ interface ActorKeyPair extends CryptoKeyPair {
2258
2351
  multikey: Multikey;
2259
2352
  }
2260
2353
  //#endregion
2261
- export { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
2354
+ export { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, IdempotencyKeyCallback, IdempotencyStrategy, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -10,7 +10,7 @@ const node_net = require_chunk.__toESM(require("node:net"));
10
10
 
11
11
  //#region deno.json
12
12
  var name = "@fedify/fedify";
13
- var version = "1.9.0-dev.1668+09a99df1";
13
+ var version = "1.9.0-dev.1704+7d65b9a9";
14
14
  var license = "MIT";
15
15
  var exports$1 = {
16
16
  ".": "./src/mod.ts",
@@ -9,7 +9,7 @@ import { isIP } from "node:net";
9
9
 
10
10
  //#region deno.json
11
11
  var name = "@fedify/fedify";
12
- var version = "1.9.0-dev.1668+09a99df1";
12
+ var version = "1.9.0-dev.1704+7d65b9a9";
13
13
  var license = "MIT";
14
14
  var exports = {
15
15
  ".": "./src/mod.ts",
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { __commonJS, __toESM } from "./type-BRNRL3aj.js";
6
+ import { __commonJS, __toESM } from "./type-C5udJemk.js";
7
7
 
8
8
  //#region ../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js
9
9
  var require_glob_to_regexp = __commonJS({ "../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js"(exports, module) {
@@ -3,16 +3,16 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, Note, Person } from "../type-BRNRL3aj.js";
6
+ import { Activity, Note, Person } from "../type-C5udJemk.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
11
  import { parseSemVer } from "../semver-dArNLkR9.js";
12
- import "../lookup-CZBG-vCx.js";
13
- import "../inbox-BA9sYsBf.js";
14
- import { createFederationBuilder } from "../builder-DI4-Kpdg.js";
15
- import { test } from "../testing-CAAJTPCt.js";
12
+ import "../lookup-RINL4MOa.js";
13
+ import "../inbox-CzGsgKH-.js";
14
+ import { createFederationBuilder } from "../builder-D2Oyy8AY.js";
15
+ import { test } from "../testing-CNtyBr2m.js";
16
16
  import { assertExists } from "../std__assert-X-_kMxKM.js";
17
17
  import "../assert_rejects-DiIiJbZn.js";
18
18
  import "../assert_is_error-BPGph1Jx.js";
@@ -3,13 +3,13 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-BRNRL3aj.js";
6
+ import "../type-C5udJemk.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-CZBG-vCx.js";
10
+ import "../lookup-RINL4MOa.js";
11
11
  import { buildCollectionSynchronizationHeader, digest } from "../collection-CSzG2j1P.js";
12
- import { test } from "../testing-CAAJTPCt.js";
12
+ import { test } from "../testing-CNtyBr2m.js";
13
13
  import "../std__assert-X-_kMxKM.js";
14
14
  import "../assert_rejects-DiIiJbZn.js";
15
15
  import "../assert_is_error-BPGph1Jx.js";
@@ -3,36 +3,36 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Create, Note, Person } from "../type-BRNRL3aj.js";
6
+ import { Create, Note, Person } from "../type-C5udJemk.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import { assert } from "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-CyUVZG3t.js";
11
+ import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-Bcv0xCjs.js";
12
12
  import "../semver-dArNLkR9.js";
13
- import "../client-B8gJ1cw8.js";
14
- import "../lookup-CZBG-vCx.js";
13
+ import "../client-BWusKCWF.js";
14
+ import "../lookup-RINL4MOa.js";
15
15
  import "../types-BIgY6c-l.js";
16
- import "../actor-BHAPrCDB.js";
17
- import "../key-B27QtSbc.js";
18
- import { signRequest } from "../http-BpAVdmaR.js";
19
- import "../authdocloader-CgrKtaQg.js";
20
- import "../ld-upnKn3yw.js";
21
- import "../owner-zvsMGYzc.js";
22
- import "../proof-BgKYSJ00.js";
23
- import { InboxListenerSet } from "../inbox-BA9sYsBf.js";
24
- import "../builder-DI4-Kpdg.js";
16
+ import "../actor-CQzdjHs3.js";
17
+ import "../key-C5cRHj8g.js";
18
+ import { signRequest } from "../http-BiKoa3o_.js";
19
+ import "../authdocloader-CzmsYrAn.js";
20
+ import "../ld-BWADNtQr.js";
21
+ import "../owner-QEQV9vx-.js";
22
+ import "../proof-g2_9VhUQ.js";
23
+ import { InboxListenerSet } from "../inbox-CzGsgKH-.js";
24
+ import "../builder-D2Oyy8AY.js";
25
25
  import "../collection-CSzG2j1P.js";
26
- import "../keycache-CiW2SvJu.js";
26
+ import "../keycache-rO8ea311.js";
27
27
  import "../retry-D4GJ670a.js";
28
- import "../send-DlqdAGHP.js";
29
- import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-CAAJTPCt.js";
28
+ import "../send-cTLNXtTp.js";
29
+ import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-CNtyBr2m.js";
30
30
  import "../std__assert-X-_kMxKM.js";
31
31
  import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
32
32
  import "../assert_is_error-BPGph1Jx.js";
33
33
  import "../assert_not_equals-f3m3epl3.js";
34
34
  import "../assert_throws-BOO88avQ.js";
35
- import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-5cHW76LQ.js";
35
+ import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-CWdCy_3n.js";
36
36
 
37
37
  //#region src/federation/handler.test.ts
38
38
  test("acceptsJsonLd()", () => {
@@ -0,0 +1,3 @@
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};