@fedify/fedify 2.4.0-dev.1655 → 2.4.0-pr.934.40

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 (71) hide show
  1. package/README.md +3 -0
  2. package/dist/{builder-8MpCLAhD.mjs → builder-BBPwtB2v.mjs} +2 -2
  3. package/dist/compat/mod.d.cts +1 -1
  4. package/dist/compat/mod.d.ts +1 -1
  5. package/dist/compat/transformers.test.mjs +1 -1
  6. package/dist/{context-lxX6I7as.d.cts → context-C05Rgxmu.d.cts} +1 -1
  7. package/dist/{context-Zii1f5xS.d.ts → context-Cjnr0ig1.d.ts} +1 -1
  8. package/dist/{deno-DIcd3H5U.mjs → deno-D3c0o_N0.mjs} +1 -1
  9. package/dist/{docloader-BS9NsNYt.mjs → docloader-BCecHIxU.mjs} +2 -2
  10. package/dist/federation/builder.test.mjs +1 -1
  11. package/dist/federation/handler.test.mjs +3 -5
  12. package/dist/federation/idempotency.test.mjs +2 -2
  13. package/dist/federation/metrics.test.mjs +1 -1
  14. package/dist/federation/middleware.test.mjs +7 -7
  15. package/dist/federation/mod.cjs +288 -9
  16. package/dist/federation/mod.d.cts +3 -3
  17. package/dist/federation/mod.d.ts +3 -3
  18. package/dist/federation/mod.js +279 -1
  19. package/dist/federation/mq.test.mjs +20 -1
  20. package/dist/federation/send.test.mjs +3 -3
  21. package/dist/federation/tasks/enqueue.test.mjs +39 -2
  22. package/dist/federation/tasks/tasks.test.mjs +3 -3
  23. package/dist/federation/temporal.test.mjs +1 -1
  24. package/dist/federation/webfinger.test.mjs +1 -1
  25. package/dist/{http-CuQZAaUT.js → http-Ctb_KhZ8.js} +1 -1
  26. package/dist/{http-v2n_JnYK.mjs → http-Dm0JAUa_.mjs} +3 -3
  27. package/dist/{http-C6PWxqco.cjs → http-jr0TkgZe.cjs} +1 -1
  28. package/dist/{key-C2NKn9Cq.mjs → key-C_gNKtxm.mjs} +2 -2
  29. package/dist/{kv-cache-BlhrYDM4.mjs → kv-cache-B7H7lZ84.mjs} +1 -1
  30. package/dist/{kv-cache-CZH7haL0.js → kv-cache-BxUZRBC2.js} +1 -1
  31. package/dist/{kv-cache-B7ZZFrUW.cjs → kv-cache-D-hbjJAD.cjs} +1 -1
  32. package/dist/{ld-g2gwPTnA.mjs → ld-DAPAVL_7.mjs} +3 -3
  33. package/dist/{metrics-DTsGrbUw.mjs → metrics-BMaatuZi.mjs} +1 -1
  34. package/dist/{metrics-CoUJLQhZ.d.cts → metrics-DN13mCAw.d.cts} +19 -1
  35. package/dist/{metrics-Dc4jR-IC.d.ts → metrics-v_e0n5GQ.d.ts} +19 -1
  36. package/dist/{middleware-FI7YX3gk.cjs → middleware-BW7WQltk.cjs} +40 -325
  37. package/dist/{middleware-CzUjNpkv.js → middleware-CfZR_riY.js} +6 -278
  38. package/dist/{middleware-BWlRM5qQ.mjs → middleware-DfPBAh9L.mjs} +1 -1
  39. package/dist/{middleware-C_MX_2Mg.mjs → middleware-O2LHXFEk.mjs} +14 -15
  40. package/dist/{mod-BtEaIEcD.d.cts → mod-BrpVsSfY.d.cts} +1 -1
  41. package/dist/{mod-DLc2Ot6f.d.ts → mod-BsCE5Ihq.d.ts} +1 -1
  42. package/dist/{mod-UMmveiO0.d.ts → mod-CNef4in0.d.ts} +1 -1
  43. package/dist/{mod-gOlPDuT8.d.cts → mod-DdONo-ep.d.cts} +1 -1
  44. package/dist/mod.cjs +6 -6
  45. package/dist/mod.d.cts +4 -4
  46. package/dist/mod.d.ts +4 -4
  47. package/dist/mod.js +5 -5
  48. package/dist/{mq-llHKivST.mjs → mq-Bo7Etgh6.mjs} +6 -0
  49. package/dist/nodeinfo/handler.test.mjs +1 -1
  50. package/dist/{owner-Dzl5ytTO.mjs → owner-Dcx-czqn.mjs} +2 -2
  51. package/dist/{proof-C3fIAqh0.mjs → proof-BkAxvrjt.mjs} +3 -3
  52. package/dist/{proof-p5BKVu79.js → proof-D-H_PnJW.js} +1 -1
  53. package/dist/{proof-h42TdzKb.cjs → proof-NY0D8Oux.cjs} +1 -1
  54. package/dist/{send-1BSFDQnC.mjs → send-D_j7E-oC.mjs} +3 -3
  55. package/dist/sig/http.test.mjs +2 -2
  56. package/dist/sig/key.test.mjs +1 -1
  57. package/dist/sig/ld.test.mjs +2 -2
  58. package/dist/sig/mod.cjs +2 -2
  59. package/dist/sig/mod.js +2 -2
  60. package/dist/sig/owner.test.mjs +1 -1
  61. package/dist/sig/proof.test.mjs +1 -1
  62. package/dist/{temporal-DBKWwg91.mjs → temporal-yE5EcfNX.mjs} +1 -1
  63. package/dist/testing/mod.d.mts +14 -1
  64. package/dist/utils/docloader.test.mjs +2 -2
  65. package/dist/utils/kv-cache.test.mjs +1 -1
  66. package/dist/utils/mod.cjs +1 -1
  67. package/dist/utils/mod.d.cts +1 -1
  68. package/dist/utils/mod.d.ts +1 -1
  69. package/dist/utils/mod.js +1 -1
  70. package/package.json +7 -7
  71. package/skills/fedify/SKILL.md +462 -0
@@ -7,8 +7,8 @@ import { r as assertExists, t as assertStringIncludes } from "../std__assert-B2N
7
7
  import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from "../assert_rejects-EgstcQy5.mjs";
8
8
  import { t as assertThrows } from "../assert_throws-NiFfqbnH.mjs";
9
9
  import { t as assert } from "../assert-CJ1KXcvv.mjs";
10
- import { t as exportJwk } from "../key-C2NKn9Cq.mjs";
11
- import { a as parseRfc9421Signature, c as timingSafeEqual, i as formatRfc9421SignatureParameters, l as verifyRequest, n as doubleKnock, o as parseRfc9421SignatureInput, r as formatRfc9421Signature, s as signRequest, t as createRfc9421SignatureBase, u as verifyRequestDetailed } from "../http-v2n_JnYK.mjs";
10
+ import { t as exportJwk } from "../key-C_gNKtxm.mjs";
11
+ import { a as parseRfc9421Signature, c as timingSafeEqual, i as formatRfc9421SignatureParameters, l as verifyRequest, n as doubleKnock, o as parseRfc9421SignatureInput, r as formatRfc9421Signature, s as signRequest, t as createRfc9421SignatureBase, u as verifyRequestDetailed } from "../http-Dm0JAUa_.mjs";
12
12
  import { i as rsaPrivateKey2, l as rsaPublicKey5, o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-Dbyd7bhl.mjs";
13
13
  import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
14
14
  import { FetchError, exportSpki } from "@fedify/vocab-runtime";
@@ -5,7 +5,7 @@ import { t as assertEquals } from "../assert_equals-BV7oLMxm.mjs";
5
5
  import "../std__assert-B2NnY9bq.mjs";
6
6
  import { t as assertRejects } from "../assert_rejects-EgstcQy5.mjs";
7
7
  import { t as assertThrows } from "../assert_throws-NiFfqbnH.mjs";
8
- import { a as importJwk, i as generateCryptoKeyPair, n as fetchKey, o as validateCryptoKey, r as fetchKeyDetailed, t as exportJwk } from "../key-C2NKn9Cq.mjs";
8
+ import { a as importJwk, i as generateCryptoKeyPair, n as fetchKey, o as validateCryptoKey, r as fetchKeyDetailed, t as exportJwk } from "../key-C_gNKtxm.mjs";
9
9
  import { c as rsaPublicKey3, i as rsaPrivateKey2, o as rsaPublicKey1, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-Dbyd7bhl.mjs";
10
10
  import { CryptographicKey, Multikey } from "@fedify/vocab";
11
11
  import { createTestMeterProvider, createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
@@ -5,9 +5,9 @@ import { t as assertEquals } from "../assert_equals-BV7oLMxm.mjs";
5
5
  import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from "../assert_rejects-EgstcQy5.mjs";
6
6
  import { t as assertThrows } from "../assert_throws-NiFfqbnH.mjs";
7
7
  import { t as assert } from "../assert-CJ1KXcvv.mjs";
8
- import { i as generateCryptoKeyPair } from "../key-C2NKn9Cq.mjs";
8
+ import { i as generateCryptoKeyPair } from "../key-C_gNKtxm.mjs";
9
9
  import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-Dbyd7bhl.mjs";
10
- import { a as compactJsonLd, f as isInvalidUrlTypeError, g as verifySignature, h as verifyJsonLd, i as attachSignature, n as UnsafeJsonLdError, o as createSignature, p as signJsonLd, s as detachSignature, u as hasSignatureLike } from "../ld-g2gwPTnA.mjs";
10
+ import { a as compactJsonLd, f as isInvalidUrlTypeError, g as verifySignature, h as verifyJsonLd, i as attachSignature, n as UnsafeJsonLdError, o as createSignature, p as signJsonLd, s as detachSignature, u as hasSignatureLike } from "../ld-DAPAVL_7.mjs";
11
11
  import { CryptographicKey } from "@fedify/vocab";
12
12
  import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
13
13
  import { encodeBase64 } from "byte-encodings/base64";
package/dist/sig/mod.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  const { URLPattern } = require("urlpattern-polyfill");
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_http = require("../http-C6PWxqco.cjs");
4
- const require_proof = require("../proof-h42TdzKb.cjs");
3
+ const require_http = require("../http-jr0TkgZe.cjs");
4
+ const require_proof = require("../proof-NY0D8Oux.cjs");
5
5
  exports.attachSignature = require_proof.attachSignature;
6
6
  exports.createProof = require_proof.createProof;
7
7
  exports.createSignature = require_proof.createSignature;
package/dist/sig/mod.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { A as formatAcceptSignature, M as parseAcceptSignature, N as validateAcceptSignature, a as verifyRequestDetailed, c as fetchKeyDetailed, i as verifyRequest, j as fulfillAcceptSignature, l as generateCryptoKeyPair, o as exportJwk, r as signRequest, s as fetchKey, u as importJwk } from "../http-CuQZAaUT.js";
4
- import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "../proof-p5BKVu79.js";
3
+ import { A as formatAcceptSignature, M as parseAcceptSignature, N as validateAcceptSignature, a as verifyRequestDetailed, c as fetchKeyDetailed, i as verifyRequest, j as fulfillAcceptSignature, l as generateCryptoKeyPair, o as exportJwk, r as signRequest, s as fetchKey, u as importJwk } from "../http-Ctb_KhZ8.js";
4
+ import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "../proof-D-H_PnJW.js";
5
5
  export { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, getKeyOwner, hasProofLike, hasSignatureLike, importJwk, parseAcceptSignature, signJsonLd, signObject, signRequest, validateAcceptSignature, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifyRequestDetailed, verifySignature };
@@ -6,7 +6,7 @@ import "../std__assert-B2NnY9bq.mjs";
6
6
  import { r as assertFalse } from "../assert_rejects-EgstcQy5.mjs";
7
7
  import { t as assert } from "../assert-CJ1KXcvv.mjs";
8
8
  import { o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-Dbyd7bhl.mjs";
9
- import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-Dzl5ytTO.mjs";
9
+ import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-Dcx-czqn.mjs";
10
10
  import { Create, CryptographicKey, lookupObject } from "@fedify/vocab";
11
11
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
12
12
  //#region src/sig/owner.test.ts
@@ -8,7 +8,7 @@ import { t as assertInstanceOf } from "../assert_instance_of-Q9KTBnrf.mjs";
8
8
  import { t as assert } from "../assert-CJ1KXcvv.mjs";
9
9
  import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-Dbyd7bhl.mjs";
10
10
  import { r as normalizeOutgoingActivityJsonLd } from "../outgoing-jsonld-URuqsICz.mjs";
11
- import { a as verifyProof, i as verifyObject, n as hasProofLike, r as signObject, t as createProof } from "../proof-C3fIAqh0.mjs";
11
+ import { a as verifyProof, i as verifyObject, n as hasProofLike, r as signObject, t as createProof } from "../proof-BkAxvrjt.mjs";
12
12
  import { Create, DataIntegrityProof, Document, Multikey, Note, PUBLIC_COLLECTION, Place } from "@fedify/vocab";
13
13
  import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
14
14
  import { decodeMultibase, exportDidKey, exportMultibaseKey, importMultibaseKey, parseIri } from "@fedify/vocab-runtime";
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { c as getNormalizationContextLoader } from "./ld-g2gwPTnA.mjs";
4
+ import { c as getNormalizationContextLoader } from "./ld-DAPAVL_7.mjs";
5
5
  import jsonld from "@fedify/vocab-runtime/jsonld";
6
6
  //#region src/federation/temporal.ts
7
7
  function isPlainObject(value) {
@@ -897,6 +897,17 @@ interface MessageQueue {
897
897
  * @since 2.4.0
898
898
  */
899
899
  readonly nativeDeduplication?: boolean;
900
+ /**
901
+ * Whether {@link enqueueMany} accepts either every message or no messages.
902
+ * Backends that implement `enqueueMany()` by sending messages individually
903
+ * must set this to `false`, so Fedify does not use that method for a batch
904
+ * governed by one `deduplicationKey`. `true` by default when `enqueueMany`
905
+ * is implemented.
906
+ *
907
+ * @default `true`
908
+ * @since 2.4.0
909
+ */
910
+ readonly atomicEnqueueMany?: boolean;
900
911
  /**
901
912
  * Enqueues a message in the queue.
902
913
  * @param message The message to enqueue.
@@ -906,7 +917,9 @@ interface MessageQueue {
906
917
  /**
907
918
  * Enqueues multiple messages in the queue. This operation is optional,
908
919
  * and may not be supported by all implementations. If not supported,
909
- * Fedify will invoke {@link enqueue} for each message.
920
+ * Fedify will invoke {@link enqueue} for each message. An implementation
921
+ * that may accept only part of a batch before rejecting must declare
922
+ * {@link atomicEnqueueMany} `false`.
910
923
  *
911
924
  * @param messages The messages to enqueue.
912
925
  * @param options Additional options for enqueuing the messages.
@@ -5,9 +5,9 @@ import { t as esm_default } from "../esm-yYQfPhIY.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-BV7oLMxm.mjs";
6
6
  import "../std__assert-B2NnY9bq.mjs";
7
7
  import { t as assertRejects } from "../assert_rejects-EgstcQy5.mjs";
8
- import { l as verifyRequest } from "../http-v2n_JnYK.mjs";
8
+ import { l as verifyRequest } from "../http-Dm0JAUa_.mjs";
9
9
  import { i as rsaPrivateKey2 } from "../keys-Dbyd7bhl.mjs";
10
- import { t as getAuthenticatedDocumentLoader } from "../docloader-BS9NsNYt.mjs";
10
+ import { t as getAuthenticatedDocumentLoader } from "../docloader-BCecHIxU.mjs";
11
11
  import { mockDocumentLoader, test } from "@fedify/fixture";
12
12
  import { UrlError } from "@fedify/vocab-runtime";
13
13
  //#region src/utils/docloader.test.ts
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as kvCache, t as MockKvStore } from "../kv-cache-BlhrYDM4.mjs";
4
+ import { n as kvCache, t as MockKvStore } from "../kv-cache-B7H7lZ84.mjs";
5
5
  import { deepStrictEqual, throws } from "node:assert";
6
6
  import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
7
7
  import { preloadedContexts } from "@fedify/vocab-runtime";
@@ -1,5 +1,5 @@
1
1
  const { URLPattern } = require("urlpattern-polyfill");
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const require_kv_cache = require("../kv-cache-B7ZZFrUW.cjs");
3
+ const require_kv_cache = require("../kv-cache-D-hbjJAD.cjs");
4
4
  exports.getAuthenticatedDocumentLoader = require_kv_cache.getAuthenticatedDocumentLoader;
5
5
  exports.kvCache = require_kv_cache.kvCache;
@@ -1,3 +1,3 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-BtEaIEcD.cjs";
2
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-BrpVsSfY.cjs";
3
3
  export { getAuthenticatedDocumentLoader, kvCache };
@@ -1,3 +1,3 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-UMmveiO0.js";
2
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-CNef4in0.js";
3
3
  export { getAuthenticatedDocumentLoader, kvCache };
package/dist/utils/mod.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-CZH7haL0.js";
3
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-BxUZRBC2.js";
4
4
  export { getAuthenticatedDocumentLoader, kvCache };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "2.4.0-dev.1655+b8f3c3d5",
3
+ "version": "2.4.0-pr.934.40+3331d302",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -151,10 +151,10 @@
151
151
  "structured-field-values": "^2.0.4",
152
152
  "temporal-polyfill": "^1.0.1",
153
153
  "urlpattern-polyfill": "^10.1.0",
154
- "@fedify/uri-template": "2.4.0-dev.1655+b8f3c3d5",
155
- "@fedify/vocab-runtime": "2.4.0-dev.1655+b8f3c3d5",
156
- "@fedify/webfinger": "2.4.0-dev.1655+b8f3c3d5",
157
- "@fedify/vocab": "2.4.0-dev.1655+b8f3c3d5"
154
+ "@fedify/uri-template": "2.4.0-pr.934.40+3331d302",
155
+ "@fedify/vocab": "2.4.0-pr.934.40+3331d302",
156
+ "@fedify/webfinger": "2.4.0-pr.934.40+3331d302",
157
+ "@fedify/vocab-runtime": "2.4.0-pr.934.40+3331d302"
158
158
  },
159
159
  "devDependencies": {
160
160
  "@std/assert": "npm:@jsr/std__assert@^0.226.0",
@@ -166,8 +166,8 @@
166
166
  "tsx": "^4.21.0",
167
167
  "typescript": "^6.0.0",
168
168
  "wrangler": "^4.17.0",
169
- "@fedify/fixture": "2.0.0",
170
- "@fedify/vocab-tools": "^2.4.0-dev.1655+b8f3c3d5"
169
+ "@fedify/vocab-tools": "^2.4.0-pr.934.40+3331d302",
170
+ "@fedify/fixture": "2.0.0"
171
171
  },
172
172
  "scripts": {
173
173
  "build:self": "tsdown",