fedipod-server 0.11.0 → 0.13.0

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 (152) hide show
  1. package/README.md +22 -6
  2. package/dist/claims.d.ts +8 -0
  3. package/dist/claims.js +10 -0
  4. package/dist/handler.d.ts +13 -0
  5. package/dist/handler.js +56 -11
  6. package/dist/handler.jsonld +8 -0
  7. package/dist/store-pod.js +18 -4
  8. package/lib/{c2s.mjs → client/c2s.mjs} +10 -3
  9. package/lib/{localapi.mjs → client/localapi.mjs} +2 -2
  10. package/lib/client/masto/accounts.mjs +264 -0
  11. package/lib/client/masto/body.mjs +69 -0
  12. package/lib/client/masto/index.mjs +183 -0
  13. package/lib/client/masto/instance.mjs +104 -0
  14. package/lib/client/masto/media.mjs +133 -0
  15. package/lib/client/masto/oauth.mjs +599 -0
  16. package/lib/client/masto/render.mjs +459 -0
  17. package/lib/client/masto/statuses.mjs +331 -0
  18. package/lib/client/masto/timelines.mjs +316 -0
  19. package/lib/{streaming.mjs → client/streaming.mjs} +1 -1
  20. package/lib/{acctfeed.mjs → connections/acctfeed.mjs} +1 -1
  21. package/lib/{atproto.mjs → connections/atproto.mjs} +15 -16
  22. package/lib/{bskygroup.mjs → connections/bskygroup.mjs} +1 -1
  23. package/lib/{fediacct.mjs → connections/fediacct.mjs} +31 -35
  24. package/lib/{import.mjs → connections/import.mjs} +1 -1
  25. package/lib/{tagfeed.mjs → connections/tagfeed.mjs} +3 -3
  26. package/lib/connections/vault.mjs +114 -0
  27. package/lib/core/as2.mjs +170 -0
  28. package/lib/core/contexts/activitystreams.json +379 -0
  29. package/lib/core/contexts/did-v1.json +57 -0
  30. package/lib/core/contexts/fep-5711.json +36 -0
  31. package/lib/core/contexts/gotosocial.json +86 -0
  32. package/lib/core/contexts/identity-v1.json +152 -0
  33. package/lib/core/contexts/index.mjs +45 -0
  34. package/lib/core/contexts/join-lemmy.json +33 -0
  35. package/lib/core/contexts/joinmastodon.json +28 -0
  36. package/lib/core/contexts/map.json +16 -0
  37. package/lib/core/contexts/miscellany.json +19 -0
  38. package/lib/core/contexts/schemaorg.json +8845 -0
  39. package/lib/core/contexts/security-data-integrity-v1.json +78 -0
  40. package/lib/core/contexts/security-data-integrity-v2.json +81 -0
  41. package/lib/core/contexts/security-multikey-v1.json +35 -0
  42. package/lib/core/contexts/security-v1.json +74 -0
  43. package/lib/core/contexts/webfinger.json +10 -0
  44. package/lib/{deliver.mjs → core/deliver.mjs} +2 -2
  45. package/lib/core/graphview.mjs +269 -0
  46. package/lib/core/intake/activities.mjs +437 -0
  47. package/lib/core/intake/activity.mjs +240 -0
  48. package/lib/core/intake/channel.mjs +144 -0
  49. package/lib/core/intake/group.mjs +222 -0
  50. package/lib/core/intake/index.mjs +629 -0
  51. package/lib/core/intake/notes.mjs +288 -0
  52. package/lib/core/intake/verify.mjs +142 -0
  53. package/lib/{keys.mjs → core/keys.mjs} +1 -1
  54. package/lib/core/publisher/collections.mjs +229 -0
  55. package/lib/core/publisher/index.mjs +421 -0
  56. package/lib/core/publisher/notes.mjs +188 -0
  57. package/lib/core/publisher/questions.mjs +233 -0
  58. package/lib/core/publisher/restore.mjs +199 -0
  59. package/lib/core/shapes/activitystreams.ttl +129 -0
  60. package/lib/core/shapes/index.mjs +107 -0
  61. package/lib/core/shapes/shapes-text.mjs +13 -0
  62. package/lib/{social.mjs → core/social.mjs} +2 -2
  63. package/lib/{store.mjs → core/store.mjs} +4 -0
  64. package/lib/{wire.mjs → core/wire.mjs} +2 -2
  65. package/lib/device/admin/index.mjs +13 -0
  66. package/lib/device/admin/origins.mjs +35 -0
  67. package/lib/device/admin/routes/connections.mjs +144 -0
  68. package/lib/device/admin/routes/gateway.mjs +199 -0
  69. package/lib/device/admin/routes/lifecycle.mjs +191 -0
  70. package/lib/device/admin/routes/owner.mjs +322 -0
  71. package/lib/device/admin/routes/setup.mjs +393 -0
  72. package/lib/device/admin/routes/social.mjs +188 -0
  73. package/lib/device/admin/server.mjs +95 -0
  74. package/lib/device/admin/static.mjs +244 -0
  75. package/lib/device/admin/surface.mjs +274 -0
  76. package/lib/device/cli/commands/account.mjs +586 -0
  77. package/lib/device/cli/commands/run.mjs +278 -0
  78. package/lib/device/cli/commands/service.mjs +221 -0
  79. package/lib/device/cli/commands/setup.mjs +410 -0
  80. package/lib/device/cli/commands/state.mjs +559 -0
  81. package/lib/device/cli/context.mjs +288 -0
  82. package/lib/{migrate.mjs → device/migrate.mjs} +1 -1
  83. package/lib/{remote.mjs → device/remote.mjs} +3 -3
  84. package/lib/{setup.mjs → device/setup.mjs} +3 -3
  85. package/lib/{update.mjs → device/update.mjs} +1 -1
  86. package/lib/{directory.mjs → gateway/directory.mjs} +1 -1
  87. package/lib/{front-core.mjs → gateway/front-core.mjs} +3 -3
  88. package/lib/{gateway-core.mjs → gateway/gateway-core.mjs} +1 -1
  89. package/lib/{httpsig.mjs → gateway/httpsig.mjs} +1 -1
  90. package/lib/server/embed.mjs +405 -0
  91. package/lib/{links.mjs → shared/links.mjs} +1 -1
  92. package/lib/{ua.mjs → shared/ua.mjs} +1 -1
  93. package/package.json +1 -1
  94. package/run-agent.mjs +33 -25
  95. package/web/admin/actors.js +145 -0
  96. package/web/admin/common.js +23 -0
  97. package/web/admin/connections.js +112 -0
  98. package/web/admin/gateway.js +111 -0
  99. package/web/admin/group.js +258 -0
  100. package/web/admin/index.html +7 -1
  101. package/web/admin/record.js +378 -0
  102. package/web/admin/setup/index.html +1 -0
  103. package/web/admin/setup/setup.js +2 -13
  104. package/web/admin/upkeep.js +170 -0
  105. package/web/app/README.md +6 -6
  106. package/web/app/admin-facade.mjs +3 -3
  107. package/web/app/agent.mjs +14 -16
  108. package/web/app/atproto-browser.mjs +1 -1
  109. package/web/app/boot.mjs +2 -3
  110. package/web/app/deliver-relay.mjs +1 -1
  111. package/web/app/dist/boot.js +22 -3
  112. package/web/app/dist/boot.js.map +2 -2
  113. package/web/app/dist/sw.js +21913 -5446
  114. package/web/app/dist/sw.js.map +4 -4
  115. package/web/app/fediacct-browser.mjs +1 -1
  116. package/web/app/keys-browser.mjs +27 -4
  117. package/web/app/shims/shapes-text.mjs +8 -0
  118. package/web/app/signup.mjs +2 -3
  119. package/web/app/site/admin/actors.js +145 -0
  120. package/web/app/site/admin/common.js +23 -0
  121. package/web/app/site/admin/connections.js +112 -0
  122. package/web/app/site/admin/gateway.js +111 -0
  123. package/web/app/site/admin/group.js +258 -0
  124. package/web/app/site/admin/index.html +7 -1
  125. package/web/app/site/admin/record.js +378 -0
  126. package/web/app/site/admin/setup/index.html +1 -0
  127. package/web/app/site/admin/setup/setup.js +2 -13
  128. package/web/app/site/admin/upkeep.js +170 -0
  129. package/web/app/site/boot.js +22 -3
  130. package/web/app/site/sw.js +21913 -5446
  131. package/web/app/sw-src.mjs +17 -2
  132. package/lib/admin.mjs +0 -1913
  133. package/lib/embed.mjs +0 -220
  134. package/lib/intake.mjs +0 -1981
  135. package/lib/mastoapi.mjs +0 -2284
  136. package/lib/publisher.mjs +0 -1192
  137. package/web/admin/admin.js +0 -1181
  138. package/web/app/site/admin/admin.js +0 -1181
  139. /package/lib/{oidc-auth.mjs → client/oidc-auth.mjs} +0 -0
  140. /package/lib/{webpush.mjs → client/webpush.mjs} +0 -0
  141. /package/lib/{bskyfeed.mjs → connections/bskyfeed.mjs} +0 -0
  142. /package/lib/{lease.mjs → core/lease.mjs} +0 -0
  143. /package/lib/{polls.mjs → core/polls.mjs} +0 -0
  144. /package/lib/{proof.mjs → core/proof.mjs} +0 -0
  145. /package/lib/{storage.mjs → core/storage.mjs} +0 -0
  146. /package/lib/{account.mjs → device/account.mjs} +0 -0
  147. /package/lib/{certs.mjs → device/certs.mjs} +0 -0
  148. /package/lib/{export-collections.mjs → device/export-collections.mjs} +0 -0
  149. /package/lib/{home.mjs → device/home.mjs} +0 -0
  150. /package/lib/{ports.mjs → device/ports.mjs} +0 -0
  151. /package/lib/{guard.mjs → shared/guard.mjs} +0 -0
  152. /package/lib/{safefetch.mjs → shared/safefetch.mjs} +0 -0
@@ -0,0 +1,152 @@
1
+ {
2
+ "@context": {
3
+ "id": "@id",
4
+ "type": "@type",
5
+ "cred": "https://w3id.org/credentials#",
6
+ "dc": "http://purl.org/dc/terms/",
7
+ "identity": "https://w3id.org/identity#",
8
+ "perm": "https://w3id.org/permissions#",
9
+ "ps": "https://w3id.org/payswarm#",
10
+ "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
11
+ "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
12
+ "sec": "https://w3id.org/security#",
13
+ "schema": "http://schema.org/",
14
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
15
+ "Group": "https://www.w3.org/ns/activitystreams#Group",
16
+ "claim": {
17
+ "@id": "cred:claim",
18
+ "@type": "@id"
19
+ },
20
+ "credential": {
21
+ "@id": "cred:credential",
22
+ "@type": "@id"
23
+ },
24
+ "issued": {
25
+ "@id": "cred:issued",
26
+ "@type": "xsd:dateTime"
27
+ },
28
+ "issuer": {
29
+ "@id": "cred:issuer",
30
+ "@type": "@id"
31
+ },
32
+ "recipient": {
33
+ "@id": "cred:recipient",
34
+ "@type": "@id"
35
+ },
36
+ "Credential": "cred:Credential",
37
+ "CryptographicKeyCredential": "cred:CryptographicKeyCredential",
38
+ "about": {
39
+ "@id": "schema:about",
40
+ "@type": "@id"
41
+ },
42
+ "address": {
43
+ "@id": "schema:address",
44
+ "@type": "@id"
45
+ },
46
+ "addressCountry": "schema:addressCountry",
47
+ "addressLocality": "schema:addressLocality",
48
+ "addressRegion": "schema:addressRegion",
49
+ "comment": "rdfs:comment",
50
+ "created": {
51
+ "@id": "dc:created",
52
+ "@type": "xsd:dateTime"
53
+ },
54
+ "creator": {
55
+ "@id": "dc:creator",
56
+ "@type": "@id"
57
+ },
58
+ "description": "schema:description",
59
+ "email": "schema:email",
60
+ "familyName": "schema:familyName",
61
+ "givenName": "schema:givenName",
62
+ "image": {
63
+ "@id": "schema:image",
64
+ "@type": "@id"
65
+ },
66
+ "label": "rdfs:label",
67
+ "name": "schema:name",
68
+ "postalCode": "schema:postalCode",
69
+ "streetAddress": "schema:streetAddress",
70
+ "title": "dc:title",
71
+ "url": {
72
+ "@id": "schema:url",
73
+ "@type": "@id"
74
+ },
75
+ "Person": "schema:Person",
76
+ "PostalAddress": "schema:PostalAddress",
77
+ "Organization": "schema:Organization",
78
+ "identityService": {
79
+ "@id": "identity:identityService",
80
+ "@type": "@id"
81
+ },
82
+ "idp": {
83
+ "@id": "identity:idp",
84
+ "@type": "@id"
85
+ },
86
+ "Identity": "identity:Identity",
87
+ "paymentProcessor": "ps:processor",
88
+ "preferences": {
89
+ "@id": "ps:preferences",
90
+ "@type": "@vocab"
91
+ },
92
+ "cipherAlgorithm": "sec:cipherAlgorithm",
93
+ "cipherData": "sec:cipherData",
94
+ "cipherKey": "sec:cipherKey",
95
+ "digestAlgorithm": "sec:digestAlgorithm",
96
+ "digestValue": "sec:digestValue",
97
+ "domain": "sec:domain",
98
+ "expires": {
99
+ "@id": "sec:expiration",
100
+ "@type": "xsd:dateTime"
101
+ },
102
+ "initializationVector": "sec:initializationVector",
103
+ "member": {
104
+ "@id": "schema:member",
105
+ "@type": "@id"
106
+ },
107
+ "memberOf": {
108
+ "@id": "schema:memberOf",
109
+ "@type": "@id"
110
+ },
111
+ "nonce": "sec:nonce",
112
+ "normalizationAlgorithm": "sec:normalizationAlgorithm",
113
+ "owner": {
114
+ "@id": "sec:owner",
115
+ "@type": "@id"
116
+ },
117
+ "password": "sec:password",
118
+ "privateKey": {
119
+ "@id": "sec:privateKey",
120
+ "@type": "@id"
121
+ },
122
+ "privateKeyPem": "sec:privateKeyPem",
123
+ "publicKey": {
124
+ "@id": "sec:publicKey",
125
+ "@type": "@id"
126
+ },
127
+ "publicKeyPem": "sec:publicKeyPem",
128
+ "publicKeyService": {
129
+ "@id": "sec:publicKeyService",
130
+ "@type": "@id"
131
+ },
132
+ "revoked": {
133
+ "@id": "sec:revoked",
134
+ "@type": "xsd:dateTime"
135
+ },
136
+ "signature": "sec:signature",
137
+ "signatureAlgorithm": "sec:signatureAlgorithm",
138
+ "signatureValue": "sec:signatureValue",
139
+ "CryptographicKey": "sec:Key",
140
+ "EncryptedMessage": "sec:EncryptedMessage",
141
+ "GraphSignature2012": "sec:GraphSignature2012",
142
+ "LinkedDataSignature2015": "sec:LinkedDataSignature2015",
143
+ "accessControl": {
144
+ "@id": "perm:accessControl",
145
+ "@type": "@id"
146
+ },
147
+ "writePermission": {
148
+ "@id": "perm:writePermission",
149
+ "@type": "@id"
150
+ }
151
+ }
152
+ }
@@ -0,0 +1,45 @@
1
+ // contexts/index.mjs — the JSON-LD contexts fediverse documents name,
2
+ // held here so reading one never reaches the network.
3
+ //
4
+ // Copied from @fedify/vocab-runtime, which keeps this set against real traffic.
5
+ // Copied rather than imported because that package pulls node:process, which
6
+ // the browser agent's bundle cannot resolve — and because what we serve for a
7
+ // stranger's document should be a file we can see, not a transitive dependency.
8
+ // To refresh: node scripts/refresh-contexts.mjs
9
+ //
10
+ // Two of these have never been fetchable in the first place. joinmastodon.org
11
+ // has never served a document for the toot: namespace that some implementations
12
+ // name; purl.archive.org, which hosts the SWICG miscellany, goes down.
13
+
14
+ import ctx0 from './activitystreams.json' with { type: 'json' };
15
+ import ctx1 from './security-v1.json' with { type: 'json' };
16
+ import ctx2 from './security-data-integrity-v1.json' with { type: 'json' };
17
+ import ctx3 from './security-data-integrity-v2.json' with { type: 'json' };
18
+ import ctx4 from './did-v1.json' with { type: 'json' };
19
+ import ctx5 from './security-multikey-v1.json' with { type: 'json' };
20
+ import ctx6 from './identity-v1.json' with { type: 'json' };
21
+ import ctx7 from './webfinger.json' with { type: 'json' };
22
+ import ctx8 from './schemaorg.json' with { type: 'json' };
23
+ import ctx9 from './gotosocial.json' with { type: 'json' };
24
+ import ctx10 from './fep-5711.json' with { type: 'json' };
25
+ import ctx11 from './join-lemmy.json' with { type: 'json' };
26
+ import ctx12 from './joinmastodon.json' with { type: 'json' };
27
+ import ctx13 from './miscellany.json' with { type: 'json' };
28
+
29
+ /** URL → the context document itself. Nothing outside this map is ever resolved. */
30
+ export const CONTEXTS = {
31
+ 'https://www.w3.org/ns/activitystreams': ctx0,
32
+ 'https://w3id.org/security/v1': ctx1,
33
+ 'https://w3id.org/security/data-integrity/v1': ctx2,
34
+ 'https://w3id.org/security/data-integrity/v2': ctx3,
35
+ 'https://www.w3.org/ns/did/v1': ctx4,
36
+ 'https://w3id.org/security/multikey/v1': ctx5,
37
+ 'https://w3id.org/identity/v1': ctx6,
38
+ 'https://purl.archive.org/socialweb/webfinger': ctx7,
39
+ 'http://schema.org/': ctx8,
40
+ 'https://gotosocial.org/ns': ctx9,
41
+ 'https://w3id.org/fep/5711': ctx10,
42
+ 'https://join-lemmy.org/context.json': ctx11,
43
+ 'http://joinmastodon.org/ns': ctx12,
44
+ 'https://purl.archive.org/miscellany': ctx13,
45
+ };
@@ -0,0 +1,33 @@
1
+ {
2
+ "@context": [
3
+ "https://w3id.org/security/v1",
4
+ {
5
+ "as": "https://www.w3.org/ns/activitystreams#",
6
+ "lemmy": "https://join-lemmy.org/ns#",
7
+ "litepub": "http://litepub.social/ns#",
8
+ "pt": "https://joinpeertube.org/ns#",
9
+ "sc": "http://schema.org/",
10
+ "mastodon": "http://joinmastodon.org/ns#",
11
+ "ChatMessage": "litepub:ChatMessage",
12
+ "commentsEnabled": "pt:commentsEnabled",
13
+ "sensitive": "as:sensitive",
14
+ "matrixUserId": "lemmy:matrixUserId",
15
+ "postingRestrictedToMods": "lemmy:postingRestrictedToMods",
16
+ "removeData": "lemmy:removeData",
17
+ "stickied": "lemmy:stickied",
18
+ "moderators": {
19
+ "@type": "@id",
20
+ "@id": "lemmy:moderators"
21
+ },
22
+ "expires": "as:endTime",
23
+ "distinguished": "lemmy:distinguished",
24
+ "language": "sc:inLanguage",
25
+ "identifier": "sc:identifier",
26
+ "Hashtag": "as:Hashtag",
27
+ "featured": {
28
+ "@type": "@id",
29
+ "@id": "mastodon:featured"
30
+ }
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "@context": {
3
+ "toot": "http://joinmastodon.org/ns#",
4
+ "Emoji": "toot:Emoji",
5
+ "featured": {
6
+ "@id": "toot:featured",
7
+ "@type": "@id"
8
+ },
9
+ "featuredTags": {
10
+ "@id": "toot:featuredTags",
11
+ "@type": "@id"
12
+ },
13
+ "focalPoint": {
14
+ "@container": "@list",
15
+ "@id": "toot:focalPoint"
16
+ },
17
+ "blurhash": "toot:blurhash",
18
+ "discoverable": "toot:discoverable",
19
+ "indexable": "toot:indexable",
20
+ "memorial": "toot:memorial",
21
+ "votersCount": "toot:votersCount",
22
+ "suspended": "toot:suspended",
23
+ "attributionDomains": {
24
+ "@id": "toot:attributionDomains",
25
+ "@type": "@id"
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "https://www.w3.org/ns/activitystreams": "activitystreams.json",
3
+ "https://w3id.org/security/v1": "security-v1.json",
4
+ "https://w3id.org/security/data-integrity/v1": "security-data-integrity-v1.json",
5
+ "https://w3id.org/security/data-integrity/v2": "security-data-integrity-v2.json",
6
+ "https://www.w3.org/ns/did/v1": "did-v1.json",
7
+ "https://w3id.org/security/multikey/v1": "security-multikey-v1.json",
8
+ "https://w3id.org/identity/v1": "identity-v1.json",
9
+ "https://purl.archive.org/socialweb/webfinger": "webfinger.json",
10
+ "http://schema.org/": "schemaorg.json",
11
+ "https://gotosocial.org/ns": "gotosocial.json",
12
+ "https://w3id.org/fep/5711": "fep-5711.json",
13
+ "https://join-lemmy.org/context.json": "join-lemmy.json",
14
+ "http://joinmastodon.org/ns": "joinmastodon.json",
15
+ "https://purl.archive.org/miscellany": "miscellany.json"
16
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "@context": {
3
+ "as": "https://www.w3.org/ns/activitystreams#",
4
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
5
+ "Hashtag": "as:Hashtag",
6
+ "manuallyApprovesFollowers": {
7
+ "@id": "as:manuallyApprovesFollowers",
8
+ "@type": "xsd:boolean"
9
+ },
10
+ "movedTo": {
11
+ "@id": "as:movedTo",
12
+ "@type": "@id"
13
+ },
14
+ "sensitive": {
15
+ "@id": "as:sensitive",
16
+ "@type": "xsd:boolean"
17
+ }
18
+ }
19
+ }