@fedify/fedify 2.0.0-pr.490.2 → 2.0.0-pr.559.4
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.
- package/LICENSE +1 -1
- package/README.md +64 -37
- package/dist/{builder-4syLV1-z.js → builder-DTlQwmVF.js} +10 -3
- package/dist/{client-BsGzbnV-.d.ts → client-CUTUGgvJ.d.ts} +18 -18
- package/dist/{client-pY7-3icS.js → client-Dg7OfUDA.js} +28 -23
- package/dist/{client-94iWEfQa.d.cts → client-by-PEGAJ.d.cts} +18 -18
- package/dist/compat/mod.cjs +1 -1
- package/dist/compat/mod.d.cts +6 -10
- package/dist/compat/mod.d.ts +6 -10
- package/dist/compat/mod.js +1 -1
- package/dist/compat/transformers.test.js +22 -21
- package/dist/{context-PxGADCsD.d.cts → context-B6X-7loD.d.cts} +206 -74
- package/dist/{context-V-XS2_6O.d.ts → context-CJaICYPw.d.ts} +206 -74
- package/dist/context-CZ5llAss.js +109 -0
- package/dist/deno-DGx1JZHr.js +124 -0
- package/dist/{testing-BslrM_9E.js → dist-B5f6a8Tt.js} +90 -110
- package/dist/{docloader-DndkGj0O.js → docloader-D8UHsyqD.js} +3 -3
- package/dist/{esm-VlKMJQqV.js → esm-DGl7uK1r.js} +1 -1
- package/dist/federation/builder.test.js +7 -5
- package/dist/federation/collection.test.js +2 -3
- package/dist/federation/handler.test.js +24 -23
- package/dist/federation/idempotency.test.js +59 -22
- package/dist/federation/inbox.test.js +4 -3
- package/dist/federation/keycache.test.js +4 -4
- package/dist/federation/kv.test.js +56 -3
- package/dist/federation/middleware.test.js +307 -93
- package/dist/federation/mod.cjs +9 -10
- package/dist/federation/mod.d.cts +7 -11
- package/dist/federation/mod.d.ts +7 -11
- package/dist/federation/mod.js +8 -11
- package/dist/federation/mq.test.js +167 -16
- package/dist/federation/negotiation.test.js +2 -3
- package/dist/federation/retry.test.js +2 -3
- package/dist/federation/router.test.js +2 -2
- package/dist/federation/send.test.js +93 -11
- package/dist/{webfinger/handler.test.js → federation/webfinger.test.js} +24 -22
- package/dist/{federation-CRpdnOMS.cjs → federation-CE0CJ_0G.cjs} +116 -10
- package/dist/{federation-jcR8-ZxP.js → federation-D6FVaeAR.js} +122 -16
- package/dist/{http-YhR_TMMQ.js → http-CL3G0rnf.js} +126 -9
- package/dist/{http-M8k5mKc0.d.cts → http-ClB3pLcL.d.cts} +1 -1
- package/dist/{http-Dxpqz4hE.cjs → http-DKBUv5zZ.cjs} +139 -16
- package/dist/{http-BbO0ejuk.d.ts → http-DLBDPal9.d.ts} +1 -1
- package/dist/{http-DH47B-h3.js → http-LGtYlSfN.js} +3 -2
- package/dist/{inbox-CEyHvxOo.js → inbox-DbtWQY2D.js} +2 -1
- package/dist/{key-x7E5PYI0.js → key-BCtt1Ugy.js} +3 -3
- package/dist/{keycache-BRXuBDuy.js → keycache-DRxpZ5r9.js} +1 -1
- package/dist/{keys-DLk_8H-l.js → keys-ZbcByPg9.js} +1 -1
- package/dist/{kv-Bxr0Q87_.d.cts → kv-B4vFhIYL.d.cts} +30 -1
- package/dist/{kv-BKNZ-Tb-.d.ts → kv-CYySNrsn.d.ts} +30 -1
- package/dist/{kv-CRZrzyXm.js → kv-QzKcOQgP.js} +22 -0
- package/dist/{kv-cache-HFnFIjSD.js → kv-cache-0786BfqY.js} +3 -3
- package/dist/{kv-cache-DN9pfMBe.js → kv-cache-B__dHl7g.js} +15 -2
- package/dist/{kv-cache-BMpfJFTx.cjs → kv-cache-DCJojeTn.cjs} +3 -3
- package/dist/{ld-CRPaU6c8.js → ld-QlZPwGEH.js} +4 -3
- package/dist/middleware-B3jUPnDa.js +12 -0
- package/dist/middleware-BFiwWMA2.cjs +12 -0
- package/dist/middleware-DMx6DyIw.js +26 -0
- package/dist/{middleware-DfLpMu7C.js → middleware-Dm58nObp.js} +280 -166
- package/dist/{middleware-BIqFwRwI.js → middleware-WokE4qxc.js} +245 -178
- package/dist/{middleware-Ck7O6mb0.cjs → middleware-hWyKOO_6.cjs} +332 -206
- package/dist/{mod-DMpuiKXi.d.cts → mod-BHXq4Q3x.d.cts} +7 -7
- package/dist/{mod-DgxG-byT.d.cts → mod-BrS8tiad.d.cts} +2 -2
- package/dist/mod-CoMP50Rf.d.ts +64 -0
- package/dist/{mod-BoRKfJPE.d.cts → mod-DScazwCW.d.cts} +4 -4
- package/dist/mod-DTzN6Pv3.d.cts +62 -0
- package/dist/{mod-aAE2wOWV.d.ts → mod-DZmuPaKv.d.ts} +7 -7
- package/dist/{mod-D5Z2tISD.d.ts → mod-jOa7W503.d.ts} +2 -2
- package/dist/{mod-Cdo6SYlJ.d.ts → mod-xKJ57rwu.d.ts} +4 -4
- package/dist/mod.cjs +12 -93
- package/dist/mod.d.cts +11 -15
- package/dist/mod.d.ts +11 -15
- package/dist/mod.js +11 -15
- package/dist/nodeinfo/client.test.js +3 -4
- package/dist/nodeinfo/handler.test.js +22 -21
- package/dist/nodeinfo/mod.cjs +2 -2
- package/dist/nodeinfo/mod.d.cts +2 -2
- package/dist/nodeinfo/mod.d.ts +2 -2
- package/dist/nodeinfo/mod.js +2 -2
- package/dist/nodeinfo/types.test.js +2 -3
- package/dist/otel/exporter.test.js +893 -0
- package/dist/otel/mod.cjs +256 -0
- package/dist/otel/mod.d.cts +230 -0
- package/dist/otel/mod.d.ts +232 -0
- package/dist/otel/mod.js +255 -0
- package/dist/{owner-kQRGVXG1.d.ts → owner-BgI8C-VY.d.ts} +1 -2
- package/dist/{owner-B4HbyP8s.d.cts → owner-C-zfmVAD.d.cts} +1 -2
- package/dist/{owner-CIWnopkT.js → owner-Cejm-F7S.js} +2 -2
- package/dist/{proof-D-5ri6rf.js → proof-BOQBHd-i.js} +3 -2
- package/dist/{proof-fEwcA7LA.cjs → proof-Bmi8ZIcW.cjs} +24 -25
- package/dist/{proof-C8-2l0zH.js → proof-CnaEQ_Ev.js} +4 -5
- package/dist/router-D9eI0s4b.js +118 -0
- package/dist/{send-CPGk9QKZ.js → send-jFxXfsN8.js} +38 -4
- package/dist/sig/http.test.js +6 -7
- package/dist/sig/key.test.js +5 -5
- package/dist/sig/ld.test.js +6 -6
- package/dist/sig/mod.cjs +3 -5
- package/dist/sig/mod.d.cts +3 -5
- package/dist/sig/mod.d.ts +3 -5
- package/dist/sig/mod.js +3 -5
- package/dist/sig/owner.test.js +6 -7
- package/dist/sig/proof.test.js +6 -6
- package/dist/testing/mod.d.ts +173 -7006
- package/dist/testing/mod.js +4 -3
- package/dist/{transformers-CoBS-oFG.cjs → transformers-BjBg6Lag.cjs} +2 -2
- package/dist/{transformers-BFT6d7J5.js → transformers-N_ip_y4P.js} +2 -2
- package/dist/{types-BtUjyi5y.js → types-8l28uC8o.js} +30 -25
- package/dist/{types-CWgzGaqk.cjs → types-B6z6CqIz.cjs} +30 -25
- package/dist/{types-C2XVl6gj.js → types-CPz01LGH.js} +3 -3
- package/dist/utils/docloader.test.js +7 -8
- package/dist/utils/kv-cache.test.js +5 -3
- package/dist/utils/mod.cjs +3 -5
- package/dist/utils/mod.d.cts +3 -4
- package/dist/utils/mod.d.ts +3 -4
- package/dist/utils/mod.js +3 -5
- package/dist/vocab/mod.cjs +8 -81
- package/dist/vocab/mod.d.cts +1 -4
- package/dist/vocab/mod.d.ts +1 -4
- package/dist/vocab/mod.js +1 -5
- package/package.json +27 -27
- package/dist/actor-BT-e5fn9.js +0 -146
- package/dist/actor-B_gRMloq.js +0 -41647
- package/dist/actor-CBfPjuWj.cjs +0 -42079
- package/dist/actor-DqFajh9s.d.ts +0 -130
- package/dist/actor-f2NtjyCg.d.cts +0 -128
- package/dist/fixtures/activitypub.academy/users/brauca_darradiul.json +0 -83
- package/dist/fixtures/example.com/announce.json +0 -6
- package/dist/fixtures/example.com/collection.json +0 -19
- package/dist/fixtures/example.com/create.json +0 -6
- package/dist/fixtures/example.com/cross-origin-actor.json +0 -6
- package/dist/fixtures/example.com/hong-gildong.json +0 -11
- package/dist/fixtures/example.com/invite.json +0 -7
- package/dist/fixtures/example.com/key.json +0 -7
- package/dist/fixtures/example.com/key2.json +0 -6
- package/dist/fixtures/example.com/object.json +0 -6
- package/dist/fixtures/example.com/orderedcollectionpage.json +0 -24
- package/dist/fixtures/example.com/paged/a.json +0 -13
- package/dist/fixtures/example.com/paged/b.json +0 -16
- package/dist/fixtures/example.com/paged-collection.json +0 -6
- package/dist/fixtures/example.com/person.json +0 -22
- package/dist/fixtures/example.com/person2.json +0 -40
- package/dist/fixtures/example.com/test.json +0 -5
- package/dist/fixtures/example.com/users/handle.json +0 -16
- package/dist/fixtures/example.com/wrong-type.json +0 -3
- package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +0 -6
- package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +0 -24
- package/dist/fixtures/remote.domain/users/bob.json +0 -20
- package/dist/fixtures/server.example/users/alice.json +0 -20
- package/dist/fixtures/w3id.org/identity/v1.json +0 -152
- package/dist/fixtures/w3id.org/security/data-integrity/v1.json +0 -74
- package/dist/fixtures/w3id.org/security/multikey/v1.json +0 -35
- package/dist/fixtures/w3id.org/security/v1.json +0 -50
- package/dist/fixtures/wizard.casa/users/hongminhee.json +0 -69
- package/dist/fixtures/www.w3.org/ns/activitystreams.json +0 -379
- package/dist/fixtures/www.w3.org/ns/did/v1.json +0 -58
- package/dist/lookup-BTqtVATt.cjs +0 -266
- package/dist/lookup-DOSnR912.js +0 -254
- package/dist/lookup-Dj9-mgOn.js +0 -42184
- package/dist/middleware-CxswDtQn.js +0 -15
- package/dist/middleware-CyITsnX0.js +0 -26
- package/dist/middleware-Z8lc_drL.cjs +0 -15
- package/dist/mod-BlVovdcy.d.ts +0 -309
- package/dist/mod-BxRCHTz-.d.cts +0 -307
- package/dist/mod-C58MZ7Wx.d.cts +0 -113
- package/dist/mod-CcDPcLJW.d.cts +0 -1
- package/dist/mod-Ds0mpFZU.d.ts +0 -115
- package/dist/mod-bjzj5QIb.d.ts +0 -2
- package/dist/otel-1BmGPuZc.js +0 -64
- package/dist/src/vocab/accept.yaml +0 -15
- package/dist/src/vocab/activity.yaml +0 -98
- package/dist/src/vocab/add.yaml +0 -16
- package/dist/src/vocab/announce.yaml +0 -30
- package/dist/src/vocab/application.yaml +0 -324
- package/dist/src/vocab/arrive.yaml +0 -15
- package/dist/src/vocab/article.yaml +0 -46
- package/dist/src/vocab/audio.yaml +0 -11
- package/dist/src/vocab/block.yaml +0 -16
- package/dist/src/vocab/chatmessage.yaml +0 -50
- package/dist/src/vocab/collection.yaml +0 -154
- package/dist/src/vocab/collectionpage.yaml +0 -55
- package/dist/src/vocab/create.yaml +0 -28
- package/dist/src/vocab/dataintegrityproof.yaml +0 -56
- package/dist/src/vocab/delete.yaml +0 -27
- package/dist/src/vocab/didservice.yaml +0 -22
- package/dist/src/vocab/dislike.yaml +0 -14
- package/dist/src/vocab/document.yaml +0 -31
- package/dist/src/vocab/emoji.yaml +0 -12
- package/dist/src/vocab/emojireact.yaml +0 -17
- package/dist/src/vocab/endpoints.yaml +0 -85
- package/dist/src/vocab/event.yaml +0 -11
- package/dist/src/vocab/export.yaml +0 -9
- package/dist/src/vocab/flag.yaml +0 -15
- package/dist/src/vocab/follow.yaml +0 -19
- package/dist/src/vocab/group.yaml +0 -324
- package/dist/src/vocab/hashtag.yaml +0 -14
- package/dist/src/vocab/ignore.yaml +0 -14
- package/dist/src/vocab/image.yaml +0 -9
- package/dist/src/vocab/intransitiveactivity.yaml +0 -15
- package/dist/src/vocab/invite.yaml +0 -14
- package/dist/src/vocab/join.yaml +0 -14
- package/dist/src/vocab/key.yaml +0 -28
- package/dist/src/vocab/leave.yaml +0 -14
- package/dist/src/vocab/like.yaml +0 -16
- package/dist/src/vocab/link.yaml +0 -101
- package/dist/src/vocab/listen.yaml +0 -12
- package/dist/src/vocab/mention.yaml +0 -9
- package/dist/src/vocab/move.yaml +0 -15
- package/dist/src/vocab/multikey.yaml +0 -36
- package/dist/src/vocab/note.yaml +0 -48
- package/dist/src/vocab/object.yaml +0 -404
- package/dist/src/vocab/offer.yaml +0 -15
- package/dist/src/vocab/orderedcollection.yaml +0 -39
- package/dist/src/vocab/orderedcollectionpage.yaml +0 -50
- package/dist/src/vocab/organization.yaml +0 -324
- package/dist/src/vocab/page.yaml +0 -11
- package/dist/src/vocab/person.yaml +0 -324
- package/dist/src/vocab/place.yaml +0 -75
- package/dist/src/vocab/profile.yaml +0 -26
- package/dist/src/vocab/propertyvalue.yaml +0 -32
- package/dist/src/vocab/question.yaml +0 -103
- package/dist/src/vocab/read.yaml +0 -13
- package/dist/src/vocab/reject.yaml +0 -14
- package/dist/src/vocab/relationship.yaml +0 -52
- package/dist/src/vocab/remove.yaml +0 -14
- package/dist/src/vocab/service.yaml +0 -324
- package/dist/src/vocab/source.yaml +0 -26
- package/dist/src/vocab/tentativeaccept.yaml +0 -14
- package/dist/src/vocab/tentativereject.yaml +0 -14
- package/dist/src/vocab/tombstone.yaml +0 -24
- package/dist/src/vocab/travel.yaml +0 -16
- package/dist/src/vocab/undo.yaml +0 -26
- package/dist/src/vocab/update.yaml +0 -58
- package/dist/src/vocab/video.yaml +0 -11
- package/dist/src/vocab/view.yaml +0 -13
- package/dist/testing/docloader.test.js +0 -22
- package/dist/vocab/actor.test.js +0 -5963
- package/dist/vocab/lookup.test.d.ts +0 -3
- package/dist/vocab/lookup.test.js +0 -476
- package/dist/vocab/type.test.d.ts +0 -3
- package/dist/vocab/type.test.js +0 -24
- package/dist/vocab/vocab.test.d.ts +0 -3
- package/dist/vocab/vocab.test.js +0 -9397
- package/dist/vocab-BCWe1Ih5.d.ts +0 -14905
- package/dist/vocab-ByUp-A2_.js +0 -260
- package/dist/vocab-CeDBzu-f.d.cts +0 -14903
- package/dist/vocab-X_X5T8D3.cjs +0 -296
- package/dist/webfinger/handler.test.d.ts +0 -3
- package/dist/webfinger/lookup.test.d.ts +0 -3
- package/dist/webfinger/lookup.test.js +0 -193
- package/dist/webfinger/mod.cjs +0 -8
- package/dist/webfinger/mod.d.cts +0 -2
- package/dist/webfinger/mod.d.ts +0 -4
- package/dist/webfinger/mod.js +0 -8
- package/dist/webfinger-C72Y8lrh.js +0 -4
- package/dist/webfinger-vAtLmxOF.cjs +0 -4
- /package/dist/{collection-BzWsN9pB.js → collection-CcnIw1qY.js} +0 -0
- /package/dist/{testing/docloader.test.d.ts → federation/webfinger.test.d.ts} +0 -0
- /package/dist/{mod-CVgZgliM.d.ts → mod-1E3W847c.d.ts} +0 -0
- /package/dist/{mod-B-hUPT2N.d.cts → mod-C81L6_lQ.d.cts} +0 -0
- /package/dist/{negotiation-C4nFufNk.js → negotiation-5NPJL6zp.js} +0 -0
- /package/dist/{nodeinfo-BnthBobC.js → nodeinfo-BlLsRSiT.js} +0 -0
- /package/dist/{nodeinfo-CdN0rEnZ.cjs → nodeinfo-DuMYTpbZ.cjs} +0 -0
- /package/dist/{vocab/actor.test.d.ts → otel/exporter.test.d.ts} +0 -0
- /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
- /package/dist/{sig-C34-oHBl.js → sig-CwuONEzF.js} +0 -0
- /package/dist/{sig-YYj5tCnr.cjs → sig-DeXX2xnj.cjs} +0 -0
- /package/dist/{utils-DyRU1gdZ.cjs → utils-Db0ZmjcD.cjs} +0 -0
- /package/dist/{utils-D-Va7aXC.js → utils-Wranxuoe.js} +0 -0
|
@@ -3,16 +3,133 @@
|
|
|
3
3
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
4
4
|
|
|
5
5
|
const require_chunk = require('./chunk-DqRYRqnO.cjs');
|
|
6
|
-
const require_lookup = require('./lookup-BTqtVATt.cjs');
|
|
7
|
-
const require_actor = require('./actor-CBfPjuWj.cjs');
|
|
8
6
|
const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
|
|
7
|
+
const __fedify_vocab = require_chunk.__toESM(require("@fedify/vocab"));
|
|
9
8
|
const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
|
|
10
|
-
const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
|
|
11
9
|
const byte_encodings_hex = require_chunk.__toESM(require("byte-encodings/hex"));
|
|
12
10
|
const __opentelemetry_semantic_conventions = require_chunk.__toESM(require("@opentelemetry/semantic-conventions"));
|
|
13
11
|
const byte_encodings_base64 = require_chunk.__toESM(require("byte-encodings/base64"));
|
|
14
12
|
const structured_field_values = require_chunk.__toESM(require("structured-field-values"));
|
|
13
|
+
const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
|
|
14
|
+
|
|
15
|
+
//#region deno.json
|
|
16
|
+
var name = "@fedify/fedify";
|
|
17
|
+
var version = "2.0.0-pr.559.4+6357309b";
|
|
18
|
+
var license = "MIT";
|
|
19
|
+
var exports$1 = {
|
|
20
|
+
".": "./src/mod.ts",
|
|
21
|
+
"./compat": "./src/compat/mod.ts",
|
|
22
|
+
"./federation": "./src/federation/mod.ts",
|
|
23
|
+
"./nodeinfo": "./src/nodeinfo/mod.ts",
|
|
24
|
+
"./otel": "./src/otel/mod.ts",
|
|
25
|
+
"./sig": "./src/sig/mod.ts",
|
|
26
|
+
"./utils": "./src/utils/mod.ts",
|
|
27
|
+
"./vocab": "./src/vocab/mod.ts"
|
|
28
|
+
};
|
|
29
|
+
var imports = {
|
|
30
|
+
"@multiformats/base-x": "npm:@multiformats/base-x@^4.0.1",
|
|
31
|
+
"@opentelemetry/core": "npm:@opentelemetry/core@^2.0.0",
|
|
32
|
+
"@opentelemetry/sdk-trace-base": "npm:@opentelemetry/sdk-trace-base@^2.0.0",
|
|
33
|
+
"@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@^1.27.0",
|
|
34
|
+
"@std/assert": "jsr:@std/assert@^0.226.0",
|
|
35
|
+
"@std/url": "jsr:@std/url@^0.225.1",
|
|
36
|
+
"asn1js": "npm:asn1js@^3.0.7",
|
|
37
|
+
"fast-check": "npm:fast-check@^3.22.0",
|
|
38
|
+
"fetch-mock": "npm:fetch-mock@^12.5.2",
|
|
39
|
+
"json-canon": "npm:json-canon@^1.0.1",
|
|
40
|
+
"jsonld": "npm:jsonld@^9.0.0",
|
|
41
|
+
"multicodec": "npm:multicodec@^3.2.1",
|
|
42
|
+
"pkijs": "npm:pkijs@^3.3.3",
|
|
43
|
+
"structured-field-values": "npm:structured-field-values@^2.0.4",
|
|
44
|
+
"uri-template-router": "npm:uri-template-router@^1.0.0",
|
|
45
|
+
"url-template": "npm:url-template@^3.1.1"
|
|
46
|
+
};
|
|
47
|
+
var exclude = [
|
|
48
|
+
".test-report.xml",
|
|
49
|
+
"apidoc/",
|
|
50
|
+
"dist/",
|
|
51
|
+
"node_modules/",
|
|
52
|
+
"npm/",
|
|
53
|
+
"pnpm-lock.yaml",
|
|
54
|
+
"src/cfworkers/dist/",
|
|
55
|
+
"src/cfworkers/fixtures/",
|
|
56
|
+
"src/cfworkers/imports.ts",
|
|
57
|
+
"src/cfworkers/README.md",
|
|
58
|
+
"src/cfworkers/server.ts",
|
|
59
|
+
"src/cfworkers/server.js",
|
|
60
|
+
"src/cfworkers/server.js.map"
|
|
61
|
+
];
|
|
62
|
+
var publish = { "exclude": [
|
|
63
|
+
"**/*.test.ts",
|
|
64
|
+
"src/testing/",
|
|
65
|
+
"tsdown.config.ts",
|
|
66
|
+
"scripts/",
|
|
67
|
+
"wrangler.toml"
|
|
68
|
+
] };
|
|
69
|
+
var tasks = {
|
|
70
|
+
"codegen": "deno task -f @fedify/vocab compile",
|
|
71
|
+
"cache": {
|
|
72
|
+
"command": "deno cache src/mod.ts",
|
|
73
|
+
"dependencies": ["codegen"]
|
|
74
|
+
},
|
|
75
|
+
"check": {
|
|
76
|
+
"command": "deno fmt --check && deno lint && deno check src/**/*.ts",
|
|
77
|
+
"dependencies": ["codegen"]
|
|
78
|
+
},
|
|
79
|
+
"test": {
|
|
80
|
+
"command": "deno test --check --doc --allow-read --allow-write --allow-env --unstable-kv --trace-leaks --parallel",
|
|
81
|
+
"dependencies": ["codegen"]
|
|
82
|
+
},
|
|
83
|
+
"coverage": "deno task test --clean --coverage && deno coverage --html coverage",
|
|
84
|
+
"bench": {
|
|
85
|
+
"command": "deno bench --allow-read --allow-write --allow-net --allow-env --allow-run --unstable-kv",
|
|
86
|
+
"dependencies": ["codegen"]
|
|
87
|
+
},
|
|
88
|
+
"apidoc": {
|
|
89
|
+
"command": "deno doc --html --name=Fedify --output=apidoc/ src/mod.ts",
|
|
90
|
+
"dependencies": ["codegen"]
|
|
91
|
+
},
|
|
92
|
+
"publish": {
|
|
93
|
+
"command": "deno publish",
|
|
94
|
+
"dependencies": ["codegen"]
|
|
95
|
+
},
|
|
96
|
+
"pnpm:install": "pnpm install --silent",
|
|
97
|
+
"pnpm:build": {
|
|
98
|
+
"command": "pnpm exec tsdown",
|
|
99
|
+
"dependencies": ["pnpm:build-vocab"]
|
|
100
|
+
},
|
|
101
|
+
"test:node": {
|
|
102
|
+
"command": "cd dist/ && node --test",
|
|
103
|
+
"dependencies": ["pnpm:build"]
|
|
104
|
+
},
|
|
105
|
+
"test:bun": {
|
|
106
|
+
"command": "cd dist/ && bun test --timeout 60000",
|
|
107
|
+
"dependencies": ["pnpm:build"]
|
|
108
|
+
},
|
|
109
|
+
"test:cfworkers": {
|
|
110
|
+
"command": "pnpm exec wrangler deploy --dry-run --outdir src/cfworkers && node --import=tsx src/cfworkers/client.ts",
|
|
111
|
+
"dependencies": ["pnpm:build"]
|
|
112
|
+
},
|
|
113
|
+
"test-all": { "dependencies": [
|
|
114
|
+
"check",
|
|
115
|
+
"test",
|
|
116
|
+
"test:node",
|
|
117
|
+
"test:bun",
|
|
118
|
+
"test:cfworkers"
|
|
119
|
+
] }
|
|
120
|
+
};
|
|
121
|
+
var deno_default = {
|
|
122
|
+
name,
|
|
123
|
+
version,
|
|
124
|
+
license,
|
|
125
|
+
exports: exports$1,
|
|
126
|
+
imports,
|
|
127
|
+
exclude,
|
|
128
|
+
publish,
|
|
129
|
+
tasks
|
|
130
|
+
};
|
|
15
131
|
|
|
132
|
+
//#endregion
|
|
16
133
|
//#region src/sig/key.ts
|
|
17
134
|
/**
|
|
18
135
|
* Checks if the given key is valid and supported. No-op if the key is valid,
|
|
@@ -108,7 +225,7 @@ async function importJwk(jwk, type) {
|
|
|
108
225
|
*/
|
|
109
226
|
function fetchKey(keyId, cls, options = {}) {
|
|
110
227
|
const tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
|
|
111
|
-
const tracer = tracerProvider.getTracer(
|
|
228
|
+
const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
|
|
112
229
|
keyId = typeof keyId === "string" ? new URL(keyId) : keyId;
|
|
113
230
|
return tracer.startActiveSpan("activitypub.fetch_key", {
|
|
114
231
|
kind: __opentelemetry_api.SpanKind.CLIENT,
|
|
@@ -176,7 +293,7 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
|
|
|
176
293
|
}
|
|
177
294
|
let object;
|
|
178
295
|
try {
|
|
179
|
-
object = await
|
|
296
|
+
object = await __fedify_vocab.Object.fromJsonLd(document, {
|
|
180
297
|
documentLoader,
|
|
181
298
|
contextLoader,
|
|
182
299
|
tracerProvider
|
|
@@ -203,8 +320,8 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
|
|
|
203
320
|
}
|
|
204
321
|
let key = null;
|
|
205
322
|
if (object instanceof cls) key = object;
|
|
206
|
-
else if (
|
|
207
|
-
const keys = cls ===
|
|
323
|
+
else if ((0, __fedify_vocab.isActor)(object)) {
|
|
324
|
+
const keys = cls === __fedify_vocab.CryptographicKey ? object.getPublicKeys({
|
|
208
325
|
documentLoader,
|
|
209
326
|
contextLoader,
|
|
210
327
|
tracerProvider
|
|
@@ -276,7 +393,7 @@ async function fetchKeyInternal(keyId, cls, { documentLoader, contextLoader, key
|
|
|
276
393
|
async function signRequest(request, privateKey, keyId, options = {}) {
|
|
277
394
|
validateCryptoKey(privateKey, "private");
|
|
278
395
|
const tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
|
|
279
|
-
const tracer = tracerProvider.getTracer(
|
|
396
|
+
const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
|
|
280
397
|
return await tracer.startActiveSpan("http_signatures.sign", async (span) => {
|
|
281
398
|
try {
|
|
282
399
|
const spec = options.spec ?? "draft-cavage-http-signatures-12";
|
|
@@ -286,7 +403,7 @@ async function signRequest(request, privateKey, keyId, options = {}) {
|
|
|
286
403
|
if (span.isRecording()) {
|
|
287
404
|
span.setAttribute(__opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_METHOD, signed.method);
|
|
288
405
|
span.setAttribute(__opentelemetry_semantic_conventions.ATTR_URL_FULL, signed.url);
|
|
289
|
-
for (const [name, value] of signed.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name), value);
|
|
406
|
+
for (const [name$1, value] of signed.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name$1), value);
|
|
290
407
|
span.setAttribute("http_signatures.key_id", keyId.href);
|
|
291
408
|
}
|
|
292
409
|
return signed;
|
|
@@ -314,8 +431,8 @@ async function signRequestDraft(request, privateKey, keyId, span, currentTime, b
|
|
|
314
431
|
}
|
|
315
432
|
if (!headers.has("Date")) headers.set("Date", currentTime == null ? (/* @__PURE__ */ new Date()).toUTCString() : new Date(currentTime.toString()).toUTCString());
|
|
316
433
|
const serialized = [["(request-target)", `${request.method.toLowerCase()} ${url.pathname}`], ...headers];
|
|
317
|
-
const headerNames = serialized.map(([name]) => name);
|
|
318
|
-
const message = serialized.map(([name, value]) => `${name}: ${value.trim()}`).join("\n");
|
|
434
|
+
const headerNames = serialized.map(([name$1]) => name$1);
|
|
435
|
+
const message = serialized.map(([name$1, value]) => `${name$1}: ${value.trim()}`).join("\n");
|
|
319
436
|
const signature = await crypto.subtle.sign("RSASSA-PKCS1-v1_5", privateKey, new TextEncoder().encode(message));
|
|
320
437
|
const sigHeader = `keyId="${keyId.href}",algorithm="rsa-sha256",headers="${headerNames.join(" ")}",signature="${(0, byte_encodings_base64.encodeBase64)(signature)}"`;
|
|
321
438
|
headers.set("Signature", sigHeader);
|
|
@@ -505,12 +622,12 @@ const supportedHashAlgorithms = {
|
|
|
505
622
|
*/
|
|
506
623
|
async function verifyRequest(request, options = {}) {
|
|
507
624
|
const tracerProvider = options.tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
|
|
508
|
-
const tracer = tracerProvider.getTracer(
|
|
625
|
+
const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
|
|
509
626
|
return await tracer.startActiveSpan("http_signatures.verify", async (span) => {
|
|
510
627
|
if (span.isRecording()) {
|
|
511
628
|
span.setAttribute(__opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_METHOD, request.method);
|
|
512
629
|
span.setAttribute(__opentelemetry_semantic_conventions.ATTR_URL_FULL, request.url);
|
|
513
|
-
for (const [name, value] of request.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name), value);
|
|
630
|
+
for (const [name$1, value] of request.headers) span.setAttribute((0, __opentelemetry_semantic_conventions.ATTR_HTTP_REQUEST_HEADER)(name$1), value);
|
|
514
631
|
}
|
|
515
632
|
try {
|
|
516
633
|
let spec = options.spec;
|
|
@@ -677,7 +794,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
|
|
|
677
794
|
const { keyId, headers, signature } = sigValues;
|
|
678
795
|
span?.setAttribute("http_signatures.key_id", keyId);
|
|
679
796
|
if ("algorithm" in sigValues) span?.setAttribute("http_signatures.algorithm", sigValues.algorithm);
|
|
680
|
-
const { key, cached } = await fetchKey(new URL(keyId),
|
|
797
|
+
const { key, cached } = await fetchKey(new URL(keyId), __fedify_vocab.CryptographicKey, {
|
|
681
798
|
documentLoader,
|
|
682
799
|
contextLoader,
|
|
683
800
|
keyCache,
|
|
@@ -693,7 +810,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
|
|
|
693
810
|
logger.debug("Failed to verify; required headers missing in the Signature header: {headers}.", { headers });
|
|
694
811
|
return null;
|
|
695
812
|
}
|
|
696
|
-
const message = headerNames.map((name) => `${name}: ` + (name === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name === "(created)" ? sigValues.created ?? "" : name === "(expires)" ? sigValues.expires ?? "" : name === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
|
|
813
|
+
const message = headerNames.map((name$1) => `${name$1}: ` + (name$1 === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name$1 === "(created)" ? sigValues.created ?? "" : name$1 === "(expires)" ? sigValues.expires ?? "" : name$1 === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name$1))).join("\n");
|
|
697
814
|
const sig = (0, byte_encodings_base64.decodeBase64)(signature);
|
|
698
815
|
span?.setAttribute("http_signatures.signature", (0, byte_encodings_hex.encodeHex)(sig));
|
|
699
816
|
const verified = await crypto.subtle.verify("RSASSA-PKCS1-v1_5", key.publicKey, sig, new TextEncoder().encode(message));
|
|
@@ -870,7 +987,7 @@ async function verifyRequestRfc9421(request, span, { documentLoader, contextLoad
|
|
|
870
987
|
}
|
|
871
988
|
span?.setAttribute("http_signatures.key_id", sigInput.keyId);
|
|
872
989
|
span?.setAttribute("http_signatures.created", sigInput.created.toString());
|
|
873
|
-
const { key, cached } = await fetchKey(new URL(sigInput.keyId),
|
|
990
|
+
const { key, cached } = await fetchKey(new URL(sigInput.keyId), __fedify_vocab.CryptographicKey, {
|
|
874
991
|
documentLoader,
|
|
875
992
|
contextLoader,
|
|
876
993
|
keyCache,
|
|
@@ -1056,6 +1173,12 @@ function timingSafeEqual(a, b) {
|
|
|
1056
1173
|
}
|
|
1057
1174
|
|
|
1058
1175
|
//#endregion
|
|
1176
|
+
Object.defineProperty(exports, 'deno_default', {
|
|
1177
|
+
enumerable: true,
|
|
1178
|
+
get: function () {
|
|
1179
|
+
return deno_default;
|
|
1180
|
+
}
|
|
1181
|
+
});
|
|
1059
1182
|
Object.defineProperty(exports, 'doubleKnock', {
|
|
1060
1183
|
enumerable: true,
|
|
1061
1184
|
get: function () {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { CryptographicKey, Multikey } from "
|
|
3
|
+
import { CryptographicKey, Multikey } from "@fedify/vocab";
|
|
4
4
|
import { TracerProvider } from "@opentelemetry/api";
|
|
5
5
|
import { DocumentLoader } from "@fedify/vocab-runtime";
|
|
6
6
|
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { fetchKey, validateCryptoKey } from "./key-
|
|
6
|
+
import { deno_default } from "./deno-DGx1JZHr.js";
|
|
7
|
+
import { fetchKey, validateCryptoKey } from "./key-BCtt1Ugy.js";
|
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
|
9
|
+
import { CryptographicKey } from "@fedify/vocab";
|
|
9
10
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
10
11
|
import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
|
|
11
12
|
import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { deno_default } from "./deno-DGx1JZHr.js";
|
|
7
7
|
import { getLogger } from "@logtape/logtape";
|
|
8
|
+
import { Activity, getTypeId } from "@fedify/vocab";
|
|
8
9
|
import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
|
|
9
10
|
|
|
10
11
|
//#region src/federation/inbox.ts
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { isActor } from "./actor-BT-e5fn9.js";
|
|
8
|
-
import { getDocumentLoader } from "@fedify/vocab-runtime";
|
|
6
|
+
import { deno_default } from "./deno-DGx1JZHr.js";
|
|
9
7
|
import { getLogger } from "@logtape/logtape";
|
|
8
|
+
import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
|
|
9
|
+
import { getDocumentLoader } from "@fedify/vocab-runtime";
|
|
10
10
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
11
11
|
|
|
12
12
|
//#region src/sig/key.ts
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { CryptographicKey, Multikey } from "
|
|
6
|
+
import { CryptographicKey, Multikey } from "@fedify/vocab";
|
|
7
7
|
|
|
8
8
|
//#region src/federation/keycache.ts
|
|
9
9
|
var KvKeyCache = class {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { CryptographicKey, Multikey } from "
|
|
6
|
+
import { CryptographicKey, Multikey } from "@fedify/vocab";
|
|
7
7
|
import { importSpki } from "@fedify/vocab-runtime";
|
|
8
8
|
|
|
9
9
|
//#region src/testing/keys.ts
|
|
@@ -16,6 +16,21 @@ interface KvStoreSetOptions {
|
|
|
16
16
|
*/
|
|
17
17
|
ttl?: Temporal.Duration;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* An entry returned by the {@link KvStore.list} method.
|
|
21
|
+
*
|
|
22
|
+
* @since 1.10.0
|
|
23
|
+
*/
|
|
24
|
+
interface KvStoreListEntry {
|
|
25
|
+
/**
|
|
26
|
+
* The key of the entry.
|
|
27
|
+
*/
|
|
28
|
+
readonly key: KvKey;
|
|
29
|
+
/**
|
|
30
|
+
* The value of the entry.
|
|
31
|
+
*/
|
|
32
|
+
readonly value: unknown;
|
|
33
|
+
}
|
|
19
34
|
/**
|
|
20
35
|
* An abstract interface for a key–value store.
|
|
21
36
|
*
|
|
@@ -51,6 +66,16 @@ interface KvStore {
|
|
|
51
66
|
* @since 1.8.0
|
|
52
67
|
*/
|
|
53
68
|
cas?: (key: KvKey, expectedValue: unknown, newValue: unknown, options?: KvStoreSetOptions) => Promise<boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Lists all entries in the store that match the given prefix.
|
|
71
|
+
* If no prefix is given, all entries are returned.
|
|
72
|
+
* @param prefix The prefix to filter keys by. If not specified, all entries
|
|
73
|
+
* are returned.
|
|
74
|
+
* @returns An async iterable of entries matching the prefix.
|
|
75
|
+
* @since 1.10.0
|
|
76
|
+
* @since 2.0.0 This method is now required instead of optional.
|
|
77
|
+
*/
|
|
78
|
+
list(prefix?: KvKey): AsyncIterable<KvStoreListEntry>;
|
|
54
79
|
}
|
|
55
80
|
/**
|
|
56
81
|
* A key–value store that stores values in memory.
|
|
@@ -76,6 +101,10 @@ declare class MemoryKvStore implements KvStore {
|
|
|
76
101
|
* {@inheritDoc KvStore.cas}
|
|
77
102
|
*/
|
|
78
103
|
cas(key: KvKey, expectedValue: unknown, newValue: unknown, options?: KvStoreSetOptions): Promise<boolean>;
|
|
104
|
+
/**
|
|
105
|
+
* {@inheritDoc KvStore.list}
|
|
106
|
+
*/
|
|
107
|
+
list(prefix?: KvKey): AsyncIterable<KvStoreListEntry>;
|
|
79
108
|
}
|
|
80
109
|
//#endregion
|
|
81
|
-
export { KvKey, KvStore, KvStoreSetOptions, MemoryKvStore };
|
|
110
|
+
export { KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions, MemoryKvStore };
|
|
@@ -19,6 +19,21 @@ interface KvStoreSetOptions {
|
|
|
19
19
|
*/
|
|
20
20
|
ttl?: Temporal.Duration;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* An entry returned by the {@link KvStore.list} method.
|
|
24
|
+
*
|
|
25
|
+
* @since 1.10.0
|
|
26
|
+
*/
|
|
27
|
+
interface KvStoreListEntry {
|
|
28
|
+
/**
|
|
29
|
+
* The key of the entry.
|
|
30
|
+
*/
|
|
31
|
+
readonly key: KvKey;
|
|
32
|
+
/**
|
|
33
|
+
* The value of the entry.
|
|
34
|
+
*/
|
|
35
|
+
readonly value: unknown;
|
|
36
|
+
}
|
|
22
37
|
/**
|
|
23
38
|
* An abstract interface for a key–value store.
|
|
24
39
|
*
|
|
@@ -54,6 +69,16 @@ interface KvStore {
|
|
|
54
69
|
* @since 1.8.0
|
|
55
70
|
*/
|
|
56
71
|
cas?: (key: KvKey, expectedValue: unknown, newValue: unknown, options?: KvStoreSetOptions) => Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Lists all entries in the store that match the given prefix.
|
|
74
|
+
* If no prefix is given, all entries are returned.
|
|
75
|
+
* @param prefix The prefix to filter keys by. If not specified, all entries
|
|
76
|
+
* are returned.
|
|
77
|
+
* @returns An async iterable of entries matching the prefix.
|
|
78
|
+
* @since 1.10.0
|
|
79
|
+
* @since 2.0.0 This method is now required instead of optional.
|
|
80
|
+
*/
|
|
81
|
+
list(prefix?: KvKey): AsyncIterable<KvStoreListEntry>;
|
|
57
82
|
}
|
|
58
83
|
/**
|
|
59
84
|
* A key–value store that stores values in memory.
|
|
@@ -79,6 +104,10 @@ declare class MemoryKvStore implements KvStore {
|
|
|
79
104
|
* {@inheritDoc KvStore.cas}
|
|
80
105
|
*/
|
|
81
106
|
cas(key: KvKey, expectedValue: unknown, newValue: unknown, options?: KvStoreSetOptions): Promise<boolean>;
|
|
107
|
+
/**
|
|
108
|
+
* {@inheritDoc KvStore.list}
|
|
109
|
+
*/
|
|
110
|
+
list(prefix?: KvKey): AsyncIterable<KvStoreListEntry>;
|
|
82
111
|
}
|
|
83
112
|
//#endregion
|
|
84
|
-
export { KvKey, KvStore, KvStoreSetOptions, MemoryKvStore };
|
|
113
|
+
export { KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions, MemoryKvStore };
|
|
@@ -68,6 +68,28 @@ var MemoryKvStore = class {
|
|
|
68
68
|
this.#values[encodedKey] = [newValue, expiration];
|
|
69
69
|
return Promise.resolve(true);
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* {@inheritDoc KvStore.list}
|
|
73
|
+
*/
|
|
74
|
+
async *list(prefix) {
|
|
75
|
+
const now = Temporal.Now.instant();
|
|
76
|
+
for (const [encodedKey, entry] of Object.entries(this.#values)) {
|
|
77
|
+
const key = JSON.parse(encodedKey);
|
|
78
|
+
if (prefix != null) {
|
|
79
|
+
if (key.length < prefix.length) continue;
|
|
80
|
+
if (!prefix.every((p, i) => key[i] === p)) continue;
|
|
81
|
+
}
|
|
82
|
+
const [value, expiration] = entry;
|
|
83
|
+
if (expiration != null && now.until(expiration).sign < 0) {
|
|
84
|
+
delete this.#values[encodedKey];
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
yield {
|
|
88
|
+
key,
|
|
89
|
+
value
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
71
93
|
};
|
|
72
94
|
|
|
73
95
|
//#endregion
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
|
|
5
|
-
import { doubleKnock, validateCryptoKey } from "./http-
|
|
5
|
+
import { doubleKnock, validateCryptoKey } from "./http-CL3G0rnf.js";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
|
-
import { UrlError, createActivityPubRequest, getDocumentLoader, getRemoteDocument, logRequest, preloadedContexts, validatePublicUrl } from "@fedify/vocab-runtime";
|
|
8
7
|
import { curry } from "es-toolkit";
|
|
8
|
+
import { UrlError, createActivityPubRequest, getDocumentLoader, getRemoteDocument, logRequest, preloadedContexts, validatePublicUrl } from "@fedify/vocab-runtime";
|
|
9
9
|
|
|
10
10
|
//#region src/utils/docloader.ts
|
|
11
11
|
const logger$1 = getLogger([
|
|
@@ -58,7 +58,7 @@ const logger = getLogger([
|
|
|
58
58
|
"kv-cache"
|
|
59
59
|
]);
|
|
60
60
|
/**
|
|
61
|
-
* Decorates a {@link DocumentLoader} with a cache backed by a {@link
|
|
61
|
+
* Decorates a {@link DocumentLoader} with a cache backed by a {@link KvStore}.
|
|
62
62
|
* @param parameters The parameters for the cache.
|
|
63
63
|
* @returns The decorated document loader which is cache-enabled.
|
|
64
64
|
*/
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import { preloadedContexts } from "@fedify/vocab-runtime";
|
|
7
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
|
+
import { preloadedContexts } from "@fedify/vocab-runtime";
|
|
8
8
|
|
|
9
9
|
//#region src/utils/kv-cache.ts
|
|
10
10
|
const logger = getLogger([
|
|
@@ -28,9 +28,22 @@ var MockKvStore = class {
|
|
|
28
28
|
cas(..._) {
|
|
29
29
|
return Promise.resolve(false);
|
|
30
30
|
}
|
|
31
|
+
async *list(prefix) {
|
|
32
|
+
for (const [encodedKey, value] of Object.entries(this.#values)) {
|
|
33
|
+
const key = JSON.parse(encodedKey);
|
|
34
|
+
if (prefix != null) {
|
|
35
|
+
if (key.length < prefix.length) continue;
|
|
36
|
+
if (!prefix.every((p, i) => key[i] === p)) continue;
|
|
37
|
+
}
|
|
38
|
+
yield {
|
|
39
|
+
key,
|
|
40
|
+
value
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
31
44
|
};
|
|
32
45
|
/**
|
|
33
|
-
* Decorates a {@link DocumentLoader} with a cache backed by a {@link
|
|
46
|
+
* Decorates a {@link DocumentLoader} with a cache backed by a {@link KvStore}.
|
|
34
47
|
* @param parameters The parameters for the cache.
|
|
35
48
|
* @returns The decorated document loader which is cache-enabled.
|
|
36
49
|
*/
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
4
4
|
|
|
5
5
|
const require_chunk = require('./chunk-DqRYRqnO.cjs');
|
|
6
|
-
const require_http = require('./http-
|
|
6
|
+
const require_http = require('./http-DKBUv5zZ.cjs');
|
|
7
7
|
const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
|
|
8
|
-
const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
|
|
9
8
|
const es_toolkit = require_chunk.__toESM(require("es-toolkit"));
|
|
9
|
+
const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
|
|
10
10
|
|
|
11
11
|
//#region src/utils/docloader.ts
|
|
12
12
|
const logger$1 = (0, __logtape_logtape.getLogger)([
|
|
@@ -59,7 +59,7 @@ const logger = (0, __logtape_logtape.getLogger)([
|
|
|
59
59
|
"kv-cache"
|
|
60
60
|
]);
|
|
61
61
|
/**
|
|
62
|
-
* Decorates a {@link DocumentLoader} with a cache backed by a {@link
|
|
62
|
+
* Decorates a {@link DocumentLoader} with a cache backed by a {@link KvStore}.
|
|
63
63
|
* @param parameters The parameters for the cache.
|
|
64
64
|
* @returns The decorated document loader which is cache-enabled.
|
|
65
65
|
*/
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
|
4
4
|
globalThis.addEventListener = () => {};
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { fetchKey, validateCryptoKey } from "./key-
|
|
8
|
-
import { getDocumentLoader } from "@fedify/vocab-runtime";
|
|
6
|
+
import { deno_default } from "./deno-DGx1JZHr.js";
|
|
7
|
+
import { fetchKey, validateCryptoKey } from "./key-BCtt1Ugy.js";
|
|
9
8
|
import { getLogger } from "@logtape/logtape";
|
|
9
|
+
import { Activity, CryptographicKey, Object as Object$1, getTypeId } from "@fedify/vocab";
|
|
10
|
+
import { getDocumentLoader } from "@fedify/vocab-runtime";
|
|
10
11
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
|
11
12
|
import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
|
|
12
13
|
import { encodeHex } from "byte-encodings/hex";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
+
import { URLPattern } from "urlpattern-polyfill";
|
|
4
|
+
|
|
5
|
+
import "./transformers-N_ip_y4P.js";
|
|
6
|
+
import "./http-CL3G0rnf.js";
|
|
7
|
+
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-Dm58nObp.js";
|
|
8
|
+
import "./proof-CnaEQ_Ev.js";
|
|
9
|
+
import "./types-8l28uC8o.js";
|
|
10
|
+
import "./kv-cache-0786BfqY.js";
|
|
11
|
+
|
|
12
|
+
export { FederationImpl };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
const { Temporal } = require("@js-temporal/polyfill");
|
|
3
|
+
const { URLPattern } = require("urlpattern-polyfill");
|
|
4
|
+
|
|
5
|
+
require('./transformers-BjBg6Lag.cjs');
|
|
6
|
+
require('./http-DKBUv5zZ.cjs');
|
|
7
|
+
const require_middleware = require('./middleware-hWyKOO_6.cjs');
|
|
8
|
+
require('./proof-Bmi8ZIcW.cjs');
|
|
9
|
+
require('./types-B6z6CqIz.cjs');
|
|
10
|
+
require('./kv-cache-DCJojeTn.cjs');
|
|
11
|
+
|
|
12
|
+
exports.FederationImpl = require_middleware.FederationImpl;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
import { Temporal } from "@js-temporal/polyfill";
|
|
3
|
+
import { URLPattern } from "urlpattern-polyfill";
|
|
4
|
+
globalThis.addEventListener = () => {};
|
|
5
|
+
|
|
6
|
+
import "./deno-DGx1JZHr.js";
|
|
7
|
+
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-WokE4qxc.js";
|
|
8
|
+
import "./client-Dg7OfUDA.js";
|
|
9
|
+
import "./router-D9eI0s4b.js";
|
|
10
|
+
import "./types-CPz01LGH.js";
|
|
11
|
+
import "./key-BCtt1Ugy.js";
|
|
12
|
+
import "./http-LGtYlSfN.js";
|
|
13
|
+
import "./ld-QlZPwGEH.js";
|
|
14
|
+
import "./owner-Cejm-F7S.js";
|
|
15
|
+
import "./proof-BOQBHd-i.js";
|
|
16
|
+
import "./docloader-D8UHsyqD.js";
|
|
17
|
+
import "./kv-cache-B__dHl7g.js";
|
|
18
|
+
import "./inbox-DbtWQY2D.js";
|
|
19
|
+
import "./builder-DTlQwmVF.js";
|
|
20
|
+
import "./collection-CcnIw1qY.js";
|
|
21
|
+
import "./keycache-DRxpZ5r9.js";
|
|
22
|
+
import "./negotiation-5NPJL6zp.js";
|
|
23
|
+
import "./retry-D4GJ670a.js";
|
|
24
|
+
import "./send-jFxXfsN8.js";
|
|
25
|
+
|
|
26
|
+
export { FederationImpl };
|