@fedify/fedify 2.5.0-dev.2504 → 2.5.0-dev.2516

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 (86) hide show
  1. package/dist/{builder-_xstYDgC.mjs → builder-DAtPBTTb.mjs} +2 -2
  2. package/dist/compat/transformers.test.mjs +1 -1
  3. package/dist/{compound-proof-BNkKZC1F.mjs → compound-proof-DS4ezwAK.mjs} +2 -2
  4. package/dist/{deno-BsrX5LA5.mjs → deno-DKTVenSL.mjs} +1 -1
  5. package/dist/{docloader-eC0mV2tT.mjs → docloader-DiCRhiVf.mjs} +2 -2
  6. package/dist/federation/builder.test.mjs +1 -1
  7. package/dist/federation/compound-fanout.test.mjs +3 -3
  8. package/dist/federation/handler-compound-proof.test.mjs +3 -3
  9. package/dist/federation/handler.test.mjs +4 -4
  10. package/dist/federation/hashlink-media.test.mjs +2 -2
  11. package/dist/federation/idempotency.test.mjs +2 -2
  12. package/dist/federation/inbox-actorless.test.mjs +5 -5
  13. package/dist/federation/inbox-report.test.mjs +5 -5
  14. package/dist/federation/inbox-view.test.mjs +1 -1
  15. package/dist/federation/inbox.test.mjs +1 -1
  16. package/dist/federation/metrics.test.mjs +1 -1
  17. package/dist/federation/middleware.test.mjs +7 -7
  18. package/dist/federation/mod.cjs +1 -1
  19. package/dist/federation/mod.js +1 -1
  20. package/dist/federation/mq.test.mjs +1 -1
  21. package/dist/federation/outgoing-proof.test.mjs +4 -4
  22. package/dist/federation/portable-actor.test.mjs +3 -3
  23. package/dist/federation/portable-chain.test.mjs +3 -3
  24. package/dist/federation/portable-collection.test.mjs +4 -4
  25. package/dist/federation/portable-delivery.test.mjs +2 -2
  26. package/dist/federation/portable-gateway-keys.test.mjs +5 -5
  27. package/dist/federation/portable-inbox.test.mjs +4 -4
  28. package/dist/federation/portable-parse-uri.test.mjs +1 -1
  29. package/dist/federation/portable-route-activity.test.mjs +2 -2
  30. package/dist/federation/portable.test.mjs +3 -3
  31. package/dist/federation/send.test.mjs +3 -3
  32. package/dist/federation/tasks/enqueue.test.mjs +1 -1
  33. package/dist/federation/tasks/tasks.test.mjs +2 -2
  34. package/dist/federation/temporal.test.mjs +1 -1
  35. package/dist/federation/webfinger.test.mjs +1 -1
  36. package/dist/{federation-CNmbPRc1.cjs → federation-CvcwaqSJ.cjs} +3 -3
  37. package/dist/{http-xDliQKtv.js → http-CCBtCnfU.js} +1 -1
  38. package/dist/{http-BDKQ9TgB.cjs → http-D1JHygBO.cjs} +1 -1
  39. package/dist/{http-DKMkVgf0.mjs → http-K3Y5mwPV.mjs} +4 -4
  40. package/dist/{inbox-ORx4ObB4.mjs → inbox-CH9A835j.mjs} +2 -2
  41. package/dist/{inbox-view-CJF0Q1Rh.mjs → inbox-view-D94ArFLo.mjs} +1 -1
  42. package/dist/{kv-cache-Bhpe69DJ.js → kv-cache-DcnXpBOR.js} +1 -1
  43. package/dist/{kv-cache-BCuAUHR4.mjs → kv-cache-DqLI7Paj.mjs} +1 -1
  44. package/dist/{kv-cache-7raFryu8.cjs → kv-cache-nXgDNKBA.cjs} +1 -1
  45. package/dist/{ld-D407wM0p.mjs → ld-OerCxmrO.mjs} +2 -2
  46. package/dist/{metrics-XkOf8Kax.mjs → metrics-Bv6GmeIq.mjs} +1 -1
  47. package/dist/{middleware-BzzHvXwn.js → middleware-CSxw_dWE.js} +3 -3
  48. package/dist/{middleware-ZJqRHE0n.mjs → middleware-DSr558Us.mjs} +15 -15
  49. package/dist/{middleware-RVg-Ge8k.mjs → middleware-DhSeHQgD.mjs} +1 -1
  50. package/dist/mod.cjs +4 -4
  51. package/dist/mod.js +4 -4
  52. package/dist/nodeinfo/handler.test.mjs +1 -1
  53. package/dist/{owner-CQCd_YMI.mjs → owner-Ce2FtPkm.mjs} +3 -3
  54. package/dist/{portable-collection-COsLiNpR.js → portable-collection-B_o9Pki8.js} +1 -1
  55. package/dist/{portable-collection-DufucEOK.mjs → portable-collection-CIewEV7b.mjs} +2 -2
  56. package/dist/{portable-collection-eqvNmNE2.cjs → portable-collection-Ckw7Zxxg.cjs} +1 -1
  57. package/dist/{portable-key-PgGXjjlO.mjs → portable-key-CE89A0TY.mjs} +1 -1
  58. package/dist/{proof-DTWtFakr.mjs → proof-Caq-e6N4.mjs} +3 -3
  59. package/dist/{send-cbJxmJTy.mjs → send-DILufwcm.mjs} +3 -3
  60. package/dist/sig/compound-proof-discovery.test.mjs +1 -1
  61. package/dist/sig/compound-proof-producer.test.mjs +1 -1
  62. package/dist/sig/compound-proof-verification.test.mjs +2 -2
  63. package/dist/sig/compound-proof.test.mjs +2 -2
  64. package/dist/sig/http.test.mjs +2 -2
  65. package/dist/sig/key.test.mjs +1 -1
  66. package/dist/sig/ld.test.mjs +1 -1
  67. package/dist/sig/mitra-receive-interop.test.mjs +4 -4
  68. package/dist/sig/mitra-send-interop.test.mjs +3 -3
  69. package/dist/sig/mod.cjs +2 -2
  70. package/dist/sig/mod.js +2 -2
  71. package/dist/sig/owner.test.mjs +1 -1
  72. package/dist/sig/portable-collection.test.mjs +1 -1
  73. package/dist/sig/portable-interop.test.mjs +3 -3
  74. package/dist/sig/portable-key.test.mjs +5 -5
  75. package/dist/sig/proof.test.mjs +3 -3
  76. package/dist/sig/tootik-request-interop.test.mjs +4 -4
  77. package/dist/sig/tootik-send-interop.test.mjs +3 -3
  78. package/dist/sig/verification.test.mjs +3 -3
  79. package/dist/{temporal-Cx95dd1h.mjs → temporal-DqYgWPE7.mjs} +1 -1
  80. package/dist/testing/kv.test.mjs +1 -1
  81. package/dist/utils/docloader.test.mjs +2 -2
  82. package/dist/utils/kv-cache.test.mjs +1 -1
  83. package/dist/utils/mod.cjs +1 -1
  84. package/dist/utils/mod.js +1 -1
  85. package/package.json +6 -7
  86. package/skills/fedify/SKILL.md +20 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "2.5.0-dev.2504+fdeb138d",
3
+ "version": "2.5.0-dev.2516+42d3ed0b",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -151,14 +151,13 @@
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.5.0-dev.2504+fdeb138d",
155
- "@fedify/vocab": "2.5.0-dev.2504+fdeb138d",
156
- "@fedify/vocab-runtime": "2.5.0-dev.2504+fdeb138d",
157
- "@fedify/webfinger": "2.5.0-dev.2504+fdeb138d"
154
+ "@fedify/uri-template": "2.5.0-dev.2516+42d3ed0b",
155
+ "@fedify/vocab-runtime": "2.5.0-dev.2516+42d3ed0b",
156
+ "@fedify/webfinger": "2.5.0-dev.2516+42d3ed0b",
157
+ "@fedify/vocab": "2.5.0-dev.2516+42d3ed0b"
158
158
  },
159
159
  "devDependencies": {
160
160
  "@std/assert": "npm:@jsr/std__assert@^0.226.0",
161
- "@std/path": "npm:@jsr/std__path@^1.0.6",
162
161
  "@types/node": "^24.12.2",
163
162
  "fetch-mock": "^12.5.4",
164
163
  "miniflare": "^4.20250523.0",
@@ -167,7 +166,7 @@
167
166
  "typescript": "^6.0.0",
168
167
  "wrangler": "^4.17.0",
169
168
  "@fedify/fixture": "2.0.0",
170
- "@fedify/vocab-tools": "^2.5.0-dev.2504+fdeb138d"
169
+ "@fedify/vocab-tools": "^2.5.0-dev.2516+42d3ed0b"
171
170
  },
172
171
  "scripts": {
173
172
  "build:self": "tsdown",
@@ -265,6 +265,18 @@ in-tree *src/webfinger*.
265
265
 
266
266
  `fromJsonLd()` and `toJsonLd()` are asynchronous; always `await` them.
267
267
 
268
+ `clone()` is shallow: it copies property arrays but shares nested vocabulary
269
+ objects and URLs. In Fedify 2.5.0 and later, use synchronous `deepClone()` to
270
+ resolve nested properties without hydrating the source's objects. Replacement
271
+ values are copied too. Each copied node keeps its own default loaders and
272
+ verifier; second-argument options override only the root. The copy drops cached
273
+ JSON-LD and retained signed representations, so retain the received document
274
+ when its exact representation matters and sign copies again when needed.
275
+ Keep property arrays stable during copying, including inside custom `clone()`
276
+ overrides: `deepClone()` snapshots the existing indices of large sparse arrays.
277
+ Entries added during copying are not visited, so their nested objects may
278
+ remain shared. Copying preserves array length and holes.
279
+
268
280
  > [!WARNING]
269
281
  > `crossOrigin: "trust"` on vocabulary deserialization trusts embedded
270
282
  > objects without re-fetching. Treat it as you would
@@ -311,6 +323,12 @@ in development or tests.
311
323
  | *@fedify/denokv* | yes | yes |
312
324
  | *@fedify/cfworkers* | yes | yes |
313
325
 
326
+ For `PostgresKvStore`, existing populated tables and externally managed DDL
327
+ (`initialized: true`) need the [expiry expression index] to accelerate cleanup.
328
+ Run concurrent index creation outside a transaction, followed by `ANALYZE`.
329
+ The migration can precede an application upgrade; old writers maintain the
330
+ index too. Keep the original TTL columns and calendar semantics.
331
+
314
332
  > [!WARNING]
315
333
  > `PostgresMessageQueue` and similar implementations require connection
316
334
  > pooling sized for parallel consumers; a single shared connection will
@@ -324,6 +342,8 @@ in development or tests.
324
342
 
325
343
  See <https://fedify.dev/manual/kv.md> and <https://fedify.dev/manual/mq.md>.
326
344
 
345
+ [expiry expression index]: https://fedify.dev/manual/kv.md#postgresql-expiry-index
346
+
327
347
 
328
348
  Observability
329
349
  -------------