fedipod-server 0.4.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 (289) hide show
  1. package/README.md +198 -0
  2. package/config/server.json +66 -0
  3. package/dist/adapt.d.ts +18 -0
  4. package/dist/adapt.js +79 -0
  5. package/dist/claims.d.ts +12 -0
  6. package/dist/claims.js +43 -0
  7. package/dist/components/components.jsonld +12 -0
  8. package/dist/components/context.jsonld +136 -0
  9. package/dist/directory.d.ts +38 -0
  10. package/dist/directory.js +77 -0
  11. package/dist/handler.d.ts +121 -0
  12. package/dist/handler.js +432 -0
  13. package/dist/handler.jsonld +519 -0
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.js +11 -0
  16. package/dist/store-css.d.ts +3 -0
  17. package/dist/store-css.js +41 -0
  18. package/dist/store-pod.d.ts +20 -0
  19. package/dist/store-pod.js +148 -0
  20. package/dist/streaming-handler.d.ts +14 -0
  21. package/dist/streaming-handler.js +47 -0
  22. package/dist/streaming-handler.jsonld +72 -0
  23. package/fedipod-server.svg +134 -0
  24. package/lib/account.mjs +87 -0
  25. package/lib/admin.mjs +1606 -0
  26. package/lib/atproto.mjs +310 -0
  27. package/lib/bskyfeed.mjs +166 -0
  28. package/lib/bskygroup.mjs +162 -0
  29. package/lib/c2s.mjs +305 -0
  30. package/lib/certs.mjs +265 -0
  31. package/lib/deliver.mjs +249 -0
  32. package/lib/directory.mjs +90 -0
  33. package/lib/embed.mjs +214 -0
  34. package/lib/export-collections.mjs +161 -0
  35. package/lib/front-core.mjs +322 -0
  36. package/lib/gateway-core.mjs +115 -0
  37. package/lib/guard.mjs +213 -0
  38. package/lib/home.mjs +161 -0
  39. package/lib/httpsig.mjs +109 -0
  40. package/lib/import.mjs +357 -0
  41. package/lib/intake.mjs +1710 -0
  42. package/lib/keys.mjs +139 -0
  43. package/lib/lease.mjs +190 -0
  44. package/lib/localapi.mjs +87 -0
  45. package/lib/mastoapi.mjs +1588 -0
  46. package/lib/migrate.mjs +127 -0
  47. package/lib/oidc-auth.mjs +53 -0
  48. package/lib/podrdf.mjs +132 -0
  49. package/lib/ports.mjs +27 -0
  50. package/lib/publisher.mjs +1003 -0
  51. package/lib/remote.mjs +303 -0
  52. package/lib/safefetch.mjs +235 -0
  53. package/lib/setup.mjs +262 -0
  54. package/lib/social.mjs +505 -0
  55. package/lib/storage.mjs +170 -0
  56. package/lib/store.mjs +470 -0
  57. package/lib/streaming.mjs +154 -0
  58. package/lib/tagfeed.mjs +158 -0
  59. package/lib/ua.mjs +29 -0
  60. package/lib/update.mjs +91 -0
  61. package/lib/webpush.mjs +98 -0
  62. package/lib/wire.mjs +762 -0
  63. package/package.json +56 -0
  64. package/phanpy/dist/404.html +40 -0
  65. package/phanpy/dist/_headers +2 -0
  66. package/phanpy/dist/apple-touch-icon.png +0 -0
  67. package/phanpy/dist/assets/ICONS-DIPJeU0C.js +2 -0
  68. package/phanpy/dist/assets/ICONS-DIPJeU0C.js.map +1 -0
  69. package/phanpy/dist/assets/ScheduledAtField-D-Abfo4J.js +183 -0
  70. package/phanpy/dist/assets/ScheduledAtField-D-Abfo4J.js.map +1 -0
  71. package/phanpy/dist/assets/Temml-CCjoacWt.woff2 +0 -0
  72. package/phanpy/dist/assets/__vite-browser-external-C7iut881.js +2 -0
  73. package/phanpy/dist/assets/__vite-browser-external-C7iut881.js.map +1 -0
  74. package/phanpy/dist/assets/boosts-carousel-BiOaNdMT.jpg +0 -0
  75. package/phanpy/dist/assets/catch-up-O5q5C75Z.png +0 -0
  76. package/phanpy/dist/assets/chunk-aKtaBQYM.js +1 -0
  77. package/phanpy/dist/assets/compose-CFEx7wb4.js +2 -0
  78. package/phanpy/dist/assets/compose-CFEx7wb4.js.map +1 -0
  79. package/phanpy/dist/assets/compose-ZJN5xSb4.js +35 -0
  80. package/phanpy/dist/assets/compose-ZJN5xSb4.js.map +1 -0
  81. package/phanpy/dist/assets/debug.module-YFQgwnIr.js +52 -0
  82. package/phanpy/dist/assets/debug.module-YFQgwnIr.js.map +1 -0
  83. package/phanpy/dist/assets/dom-p1YcJ5Rw.js +2 -0
  84. package/phanpy/dist/assets/dom-p1YcJ5Rw.js.map +1 -0
  85. package/phanpy/dist/assets/home-mobile-dark@2x-Dc-J8-SM.png +0 -0
  86. package/phanpy/dist/assets/home-mobile-light@2x-Bd3fod8m.png +0 -0
  87. package/phanpy/dist/assets/home-tablet-dark@2x-BgcNI8le.png +0 -0
  88. package/phanpy/dist/assets/home-tablet-light@2x-BW2RV9T6.png +0 -0
  89. package/phanpy/dist/assets/icons/add-circle-line-WD0mwORD.js +1 -0
  90. package/phanpy/dist/assets/icons/alert-line-CpFUMf9s.js +1 -0
  91. package/phanpy/dist/assets/icons/android-2-line-Bzxnrd3S.js +1 -0
  92. package/phanpy/dist/assets/icons/announcement-line-5nwaJFJm.js +1 -0
  93. package/phanpy/dist/assets/icons/arrow-down-circle-line-a7Id9-Iv.js +1 -0
  94. package/phanpy/dist/assets/icons/arrow-down-line-B8uzXzq6.js +1 -0
  95. package/phanpy/dist/assets/icons/arrow-left-line-CGrGT9C-.js +1 -0
  96. package/phanpy/dist/assets/icons/arrow-right-line-CE-HERfX.js +1 -0
  97. package/phanpy/dist/assets/icons/arrow-to-up-line-CvdQjmcy.js +1 -0
  98. package/phanpy/dist/assets/icons/arrow-up-circle-line-DEparSNF.js +1 -0
  99. package/phanpy/dist/assets/icons/arrow-up-line-C7yBeugc.js +1 -0
  100. package/phanpy/dist/assets/icons/arrows-right-line-BtbXmJGP.js +1 -0
  101. package/phanpy/dist/assets/icons/at-line-CF66Bznk.js +1 -0
  102. package/phanpy/dist/assets/icons/attachment-line-BY8It-l9.js +1 -0
  103. package/phanpy/dist/assets/icons/blockquote-line-BS6pU_hm.js +1 -0
  104. package/phanpy/dist/assets/icons/board-line-C0UWXyA6.js +1 -0
  105. package/phanpy/dist/assets/icons/bookmark-line-1CtX5JLF.js +1 -0
  106. package/phanpy/dist/assets/icons/building-5-line-Dd59MzbO.js +1 -0
  107. package/phanpy/dist/assets/icons/bus-2-line-6_dvA0GG.js +1 -0
  108. package/phanpy/dist/assets/icons/calendar-day-line-Crpl_fmu.js +1 -0
  109. package/phanpy/dist/assets/icons/calendar-month-line-vommts2C.js +1 -0
  110. package/phanpy/dist/assets/icons/calendar-time-add-line-BU_DTlQk.js +1 -0
  111. package/phanpy/dist/assets/icons/camera-line-Cv69MEei.js +1 -0
  112. package/phanpy/dist/assets/icons/celebrate-line-B8DvIoi0.js +1 -0
  113. package/phanpy/dist/assets/icons/chart-bar-line-FK-QOmtF.js +1 -0
  114. package/phanpy/dist/assets/icons/chart-line-line-BGcJAFWw.js +1 -0
  115. package/phanpy/dist/assets/icons/chat-3-line-YFK2-hwz.js +1 -0
  116. package/phanpy/dist/assets/icons/check-circle-line-DsAxFr5-.js +1 -0
  117. package/phanpy/dist/assets/icons/clipboard-line-BBp364gJ.js +1 -0
  118. package/phanpy/dist/assets/icons/close-circle-line-CICdiuGz.js +1 -0
  119. package/phanpy/dist/assets/icons/close-line-DYrFWcjv.js +1 -0
  120. package/phanpy/dist/assets/icons/cloud-line-tiQAbah8.js +1 -0
  121. package/phanpy/dist/assets/icons/code-line-fAl8iiV3.js +1 -0
  122. package/phanpy/dist/assets/icons/comment-2-line-CR3g7WeB.js +1 -0
  123. package/phanpy/dist/assets/icons/copy-2-line-CLW69yF5.js +1 -0
  124. package/phanpy/dist/assets/icons/delete-2-line-B8xmbr4n.js +1 -0
  125. package/phanpy/dist/assets/icons/document-3-line-DBGNhAg2.js +1 -0
  126. package/phanpy/dist/assets/icons/document-line-C7mb9sb7.js +1 -0
  127. package/phanpy/dist/assets/icons/down-line-BGqSSThd.js +1 -0
  128. package/phanpy/dist/assets/icons/edit-4-line-DcgGaEhx.js +1 -0
  129. package/phanpy/dist/assets/icons/emoji-2-line-D8YgnM-y.js +1 -0
  130. package/phanpy/dist/assets/icons/exit-line-Dc07BS-x.js +1 -0
  131. package/phanpy/dist/assets/icons/external-link-line-BvpSkmjO.js +1 -0
  132. package/phanpy/dist/assets/icons/eye-2-line-CiWXx-f_.js +1 -0
  133. package/phanpy/dist/assets/icons/eye-close-line-BgTaSJ4P.js +1 -0
  134. package/phanpy/dist/assets/icons/filter-2-line-B_mR2usy.js +1 -0
  135. package/phanpy/dist/assets/icons/filter-line-C_nm-3cU.js +1 -0
  136. package/phanpy/dist/assets/icons/flag-1-line-C2HB05I0.js +1 -0
  137. package/phanpy/dist/assets/icons/forbid-circle-line-D3LTT9yd.js +1 -0
  138. package/phanpy/dist/assets/icons/formula-line-DLrt2d6j.js +1 -0
  139. package/phanpy/dist/assets/icons/grid-line-CgUmEikf.js +1 -0
  140. package/phanpy/dist/assets/icons/group-line-C5fnX0wU.js +1 -0
  141. package/phanpy/dist/assets/icons/hand-finger-2-line-BGgxbuL9.js +1 -0
  142. package/phanpy/dist/assets/icons/hashtag-line-CyTEEXBb.js +1 -0
  143. package/phanpy/dist/assets/icons/heart-crack-line-BZddbO2C.js +1 -0
  144. package/phanpy/dist/assets/icons/heart-line-CJ7K47J4.js +1 -0
  145. package/phanpy/dist/assets/icons/history-2-line-kWWvFzqv.js +1 -0
  146. package/phanpy/dist/assets/icons/history-line-bGQiwbTH.js +1 -0
  147. package/phanpy/dist/assets/icons/home-3-line-fRU1zeLG.js +1 -0
  148. package/phanpy/dist/assets/icons/information-line-iNk6-sOY.js +1 -0
  149. package/phanpy/dist/assets/icons/keyboard-line-DsCyuQNz.js +1 -0
  150. package/phanpy/dist/assets/icons/layout-4-line-CZkOX52Z.js +1 -0
  151. package/phanpy/dist/assets/icons/layout-5-line-B_znt5wO.js +1 -0
  152. package/phanpy/dist/assets/icons/left-line-eUw0tya4.js +1 -0
  153. package/phanpy/dist/assets/icons/lightning-line-DaKoDdix.js +1 -0
  154. package/phanpy/dist/assets/icons/link-2-line-DCqLmMA7.js +1 -0
  155. package/phanpy/dist/assets/icons/list-check-line-BAxosBh9.js +1 -0
  156. package/phanpy/dist/assets/icons/lock-line-CPoaXeUW.js +1 -0
  157. package/phanpy/dist/assets/icons/mail-line-B0P8aa1L.js +1 -0
  158. package/phanpy/dist/assets/icons/moon-line-CEqNAToP.js +1 -0
  159. package/phanpy/dist/assets/icons/more-1-fill-Dw2e5xab.js +1 -0
  160. package/phanpy/dist/assets/icons/more-3-line-BIiVjYTz.js +1 -0
  161. package/phanpy/dist/assets/icons/notification-line-BZZq2Gtu.js +1 -0
  162. package/phanpy/dist/assets/icons/pencil-line-CKh8-A1v.js +1 -0
  163. package/phanpy/dist/assets/icons/photo-album-line-Bnfg2u40.js +1 -0
  164. package/phanpy/dist/assets/icons/pin-line-DpTolyhs.js +1 -0
  165. package/phanpy/dist/assets/icons/play-fill-B0-G_8lX.js +1 -0
  166. package/phanpy/dist/assets/icons/qrcode-2-line-B6SPCaHn.js +1 -0
  167. package/phanpy/dist/assets/icons/quill-pen-line-B6LUrnCP.js +1 -0
  168. package/phanpy/dist/assets/icons/quote-left-fill-hQZ1cj_6.js +1 -0
  169. package/phanpy/dist/assets/icons/radar-line-CKyroTth.js +1 -0
  170. package/phanpy/dist/assets/icons/react-line-CoIKhhtK.js +1 -0
  171. package/phanpy/dist/assets/icons/refresh-2-line-D0mTF97S.js +1 -0
  172. package/phanpy/dist/assets/icons/right-line-B3KWJaqc.js +1 -0
  173. package/phanpy/dist/assets/icons/rocket-line-4KZl537D.js +1 -0
  174. package/phanpy/dist/assets/icons/round-fill-C69NTrZ0.js +1 -0
  175. package/phanpy/dist/assets/icons/round-line-B9k_1uo-.js +1 -0
  176. package/phanpy/dist/assets/icons/route-line-B28ReHcE.js +1 -0
  177. package/phanpy/dist/assets/icons/rows-4-line-CrBniagM.js +1 -0
  178. package/phanpy/dist/assets/icons/scan-line-DSf74YdP.js +1 -0
  179. package/phanpy/dist/assets/icons/search-2-line-B6geIU1z.js +1 -0
  180. package/phanpy/dist/assets/icons/settings-3-line-azJwK47w.js +1 -0
  181. package/phanpy/dist/assets/icons/settings-6-line-C_5zc5YR.js +1 -0
  182. package/phanpy/dist/assets/icons/share-2-line-D5MxWjrm.js +1 -0
  183. package/phanpy/dist/assets/icons/share-forward-line-Cp61fZzZ.js +1 -0
  184. package/phanpy/dist/assets/icons/sparkles-2-line-DYYyXTaW.js +1 -0
  185. package/phanpy/dist/assets/icons/sparkles-line-C2hY1s6I.js +1 -0
  186. package/phanpy/dist/assets/icons/time-line-BF3eet1v.js +1 -0
  187. package/phanpy/dist/assets/icons/transfer-4-line-oisfvTBw.js +1 -0
  188. package/phanpy/dist/assets/icons/translate-line-BFWol2Ce.js +1 -0
  189. package/phanpy/dist/assets/icons/unlock-line-X_x5vwv3.js +1 -0
  190. package/phanpy/dist/assets/icons/upload-3-line-DgzwUJeW.js +1 -0
  191. package/phanpy/dist/assets/icons/user-4-line-BVSynZCp.js +1 -0
  192. package/phanpy/dist/assets/icons/user-add-2-line-BlGS5Q8q.js +1 -0
  193. package/phanpy/dist/assets/icons/user-add-line-BbXdHG4z.js +1 -0
  194. package/phanpy/dist/assets/icons/user-edit-line-BFAHOV0X.js +1 -0
  195. package/phanpy/dist/assets/icons/user-follow-line-BXux0wSd.js +1 -0
  196. package/phanpy/dist/assets/icons/user-star-line-DdYlpHLU.js +1 -0
  197. package/phanpy/dist/assets/icons/user-warning-line-Cj43j0_E.js +1 -0
  198. package/phanpy/dist/assets/icons/user-x-line-DIDgNlPH.js +1 -0
  199. package/phanpy/dist/assets/icons/volume-line-Bs390KQt.js +1 -0
  200. package/phanpy/dist/assets/icons/volume-mute-line-DzlzIqFZ.js +1 -0
  201. package/phanpy/dist/assets/icons/walk-line-yNXfB-md.js +1 -0
  202. package/phanpy/dist/assets/icons/world-2-line-CenkGIwj.js +1 -0
  203. package/phanpy/dist/assets/icons/zoom-in-line-CaENUphf.js +1 -0
  204. package/phanpy/dist/assets/icons/zoom-out-line-BDNk0EWo.js +1 -0
  205. package/phanpy/dist/assets/instances-BNPptnn-.json +333 -0
  206. package/phanpy/dist/assets/locales/ar-SA-CfheRbCu.js +1 -0
  207. package/phanpy/dist/assets/locales/ca-ES-DHRW86Tz.js +1 -0
  208. package/phanpy/dist/assets/locales/cs-CZ-CKoqEuA1.js +1 -0
  209. package/phanpy/dist/assets/locales/de-DE-ByRPMRFy.js +1 -0
  210. package/phanpy/dist/assets/locales/eo-UY-CPC7wLCS.js +1 -0
  211. package/phanpy/dist/assets/locales/es-ES-dJa0Fd9t.js +1 -0
  212. package/phanpy/dist/assets/locales/eu-ES-C3djlPR2.js +1 -0
  213. package/phanpy/dist/assets/locales/fa-IR-DTT490Ck.js +1 -0
  214. package/phanpy/dist/assets/locales/fi-FI-B23MCPuz.js +1 -0
  215. package/phanpy/dist/assets/locales/fr-FR-BcaQsO5C.js +1 -0
  216. package/phanpy/dist/assets/locales/gl-ES-BR-CVKBN.js +1 -0
  217. package/phanpy/dist/assets/locales/he-IL-CfheRbCu.js +1 -0
  218. package/phanpy/dist/assets/locales/hu-HU-CfheRbCu.js +1 -0
  219. package/phanpy/dist/assets/locales/it-IT-C1136UFV.js +1 -0
  220. package/phanpy/dist/assets/locales/ja-JP-CRZmRAhD.js +1 -0
  221. package/phanpy/dist/assets/locales/kab-Cz8xH_TT.js +1 -0
  222. package/phanpy/dist/assets/locales/ko-KR-CG9UiY4o.js +1 -0
  223. package/phanpy/dist/assets/locales/lt-LT-CJcI6sHZ.js +1 -0
  224. package/phanpy/dist/assets/locales/nb-NO-CfheRbCu.js +1 -0
  225. package/phanpy/dist/assets/locales/nl-NL-DxN4Yc1t.js +1 -0
  226. package/phanpy/dist/assets/locales/oc-FR-CfheRbCu.js +1 -0
  227. package/phanpy/dist/assets/locales/pl-PL-DkwGXf6P.js +1 -0
  228. package/phanpy/dist/assets/locales/pseudo-LOCALE-CQ4XxkQ0.js +1 -0
  229. package/phanpy/dist/assets/locales/pt-BR-nGL0HdFS.js +1 -0
  230. package/phanpy/dist/assets/locales/pt-PT-Cp17aj2z.js +1 -0
  231. package/phanpy/dist/assets/locales/ru-RU-0Y8cIoaK.js +1 -0
  232. package/phanpy/dist/assets/locales/th-TH-CfheRbCu.js +1 -0
  233. package/phanpy/dist/assets/locales/tok-CfheRbCu.js +1 -0
  234. package/phanpy/dist/assets/locales/tr-TR-CfheRbCu.js +1 -0
  235. package/phanpy/dist/assets/locales/uk-UA-C5E3dFBf.js +1 -0
  236. package/phanpy/dist/assets/locales/zh-CN-BHJi7_et.js +1 -0
  237. package/phanpy/dist/assets/locales/zh-TW-CfheRbCu.js +1 -0
  238. package/phanpy/dist/assets/main-BdqNbG-a.js +26 -0
  239. package/phanpy/dist/assets/main-BdqNbG-a.js.map +1 -0
  240. package/phanpy/dist/assets/mock-home-DGhR__He.js +2 -0
  241. package/phanpy/dist/assets/mock-home-DGhR__He.js.map +1 -0
  242. package/phanpy/dist/assets/multi-column-ROck0NVt.jpg +0 -0
  243. package/phanpy/dist/assets/multi-hashtag-timeline-DH5INVHi.jpg +0 -0
  244. package/phanpy/dist/assets/nested-comments-thread-hv59kZLc.jpg +0 -0
  245. package/phanpy/dist/assets/polyfill-force-H8sUkLGp.js +2 -0
  246. package/phanpy/dist/assets/polyfill-force-H8sUkLGp.js.map +1 -0
  247. package/phanpy/dist/assets/pwa-viewport-ogKbF51K.js +20 -0
  248. package/phanpy/dist/assets/pwa-viewport-ogKbF51K.js.map +1 -0
  249. package/phanpy/dist/assets/style-B1iLPTPR.css +2 -0
  250. package/phanpy/dist/assets/temml-DuyIQMei.js +97 -0
  251. package/phanpy/dist/assets/temml-DuyIQMei.js.map +1 -0
  252. package/phanpy/dist/assets/tinyld.light.node-DtbBhLYC.js +2 -0
  253. package/phanpy/dist/assets/tinyld.light.node-DtbBhLYC.js.map +1 -0
  254. package/phanpy/dist/assets/year-in-posts-B2lywqdx.png +0 -0
  255. package/phanpy/dist/assets/year-in-posts-DJv_star.js +3 -0
  256. package/phanpy/dist/assets/year-in-posts-DJv_star.js.map +1 -0
  257. package/phanpy/dist/compose/index.html +20 -0
  258. package/phanpy/dist/favicon.ico +0 -0
  259. package/phanpy/dist/index.html +73 -0
  260. package/phanpy/dist/logo-192.png +0 -0
  261. package/phanpy/dist/logo-512.png +0 -0
  262. package/phanpy/dist/logo-badge-72.png +0 -0
  263. package/phanpy/dist/logo-maskable-512.png +0 -0
  264. package/phanpy/dist/logo-monochrome-512.png +0 -0
  265. package/phanpy/dist/logo-monochrome-maskable-512.png +0 -0
  266. package/phanpy/dist/manifest.webmanifest +1 -0
  267. package/phanpy/dist/og-image-2.jpg +0 -0
  268. package/phanpy/dist/og-image.png +0 -0
  269. package/phanpy/dist/robots.txt +2 -0
  270. package/phanpy/dist/sw.js +25 -0
  271. package/phanpy/dist/version.json +1 -0
  272. package/run-agent.mjs +805 -0
  273. package/vendor/gate.cjs +132 -0
  274. package/vendor/idp-grant.cjs +394 -0
  275. package/vendor/jfetch.cjs +16 -0
  276. package/web/admin/admin.js +958 -0
  277. package/web/admin/bar.css +64 -0
  278. package/web/admin/bar.js +61 -0
  279. package/web/admin/client/client.js +66 -0
  280. package/web/admin/client/index.html +42 -0
  281. package/web/admin/index.html +493 -0
  282. package/web/admin/setup/index.html +172 -0
  283. package/web/admin/setup/setup.js +268 -0
  284. package/web/admin/window.css +55 -0
  285. package/web/admin/window.js +136 -0
  286. package/web/front/install.sh +69 -0
  287. package/web/front/new-account.html +424 -0
  288. package/web/front/run.html +138 -0
  289. package/web/front/solid-client-authn.bundle.js +2 -0
@@ -0,0 +1,519 @@
1
+ {
2
+ "@context": [
3
+ "https://linkedsoftwaredependencies.org/bundles/npm/fedipod-server/^0.0.0/components/context.jsonld",
4
+ "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld"
5
+ ],
6
+ "@id": "npmd:fedipod-server",
7
+ "components": [
8
+ {
9
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler",
10
+ "@type": "Class",
11
+ "requireElement": "FediPodServerHandler",
12
+ "extends": [
13
+ "css:dist/server/HttpHandler.jsonld#HttpHandler",
14
+ "css:dist/init/Initializable.jsonld#Initializable",
15
+ "css:dist/init/final/Finalizable.jsonld#Finalizable"
16
+ ],
17
+ "parameters": [
18
+ {
19
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_resourceStore",
20
+ "range": "css:dist/storage/ResourceStore.jsonld#ResourceStore",
21
+ "comment": "The server's ResourceStore: the handler reads pods and writes inbox items and directory rows directly through it — no HTTP, no credential."
22
+ },
23
+ {
24
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_frontHost",
25
+ "range": {
26
+ "@type": "ParameterRangeUnion",
27
+ "parameterRangeElements": [
28
+ "xsd:string",
29
+ {
30
+ "@type": "ParameterRangeUndefined"
31
+ }
32
+ ]
33
+ },
34
+ "comment": "The apex host the front answers on, e.g. fedipod.net. Defaults to the host of frontOrigin, so a server that sets nothing answers on its own address. Pod subdomains are never claimed."
35
+ },
36
+ {
37
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_frontOrigin",
38
+ "range": "xsd:string",
39
+ "comment": "The front's origin, e.g. https://fedipod.net."
40
+ },
41
+ {
42
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_directoryContainer",
43
+ "range": "xsd:string",
44
+ "comment": "An internal container URL where the handle→pod directory rows live."
45
+ },
46
+ {
47
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_gatewayWebId",
48
+ "range": {
49
+ "@type": "ParameterRangeUnion",
50
+ "parameterRangeElements": [
51
+ "xsd:string",
52
+ {
53
+ "@type": "ParameterRangeUndefined"
54
+ }
55
+ ]
56
+ },
57
+ "comment": "The WebID stamped on verification receipts."
58
+ },
59
+ {
60
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_offersPods",
61
+ "range": {
62
+ "@type": "ParameterRangeUnion",
63
+ "parameterRangeElements": [
64
+ "xsd:boolean",
65
+ {
66
+ "@type": "ParameterRangeUndefined"
67
+ }
68
+ ]
69
+ },
70
+ "comment": "Whether this host also offers pods (the signup page shows the take-one option). The front never hosts pods itself."
71
+ },
72
+ {
73
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_signupPage",
74
+ "range": {
75
+ "@type": "ParameterRangeUnion",
76
+ "parameterRangeElements": [
77
+ "xsd:string",
78
+ {
79
+ "@type": "ParameterRangeUndefined"
80
+ }
81
+ ]
82
+ },
83
+ "comment": "The new-account page HTML served at the root."
84
+ },
85
+ {
86
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_runPage",
87
+ "range": {
88
+ "@type": "ParameterRangeUnion",
89
+ "parameterRangeElements": [
90
+ "xsd:string",
91
+ {
92
+ "@type": "ParameterRangeUndefined"
93
+ }
94
+ ]
95
+ },
96
+ "comment": "The run-your-identity page HTML served at /run."
97
+ },
98
+ {
99
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentDataDir",
100
+ "range": {
101
+ "@type": "ParameterRangeUnion",
102
+ "parameterRangeElements": [
103
+ "xsd:string",
104
+ {
105
+ "@type": "ParameterRangeUndefined"
106
+ }
107
+ ]
108
+ },
109
+ "comment": "Directory holding each agent identity's signing key and log. Required when runtime opt-in is on."
110
+ },
111
+ {
112
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentWebIdSuffix",
113
+ "range": {
114
+ "@type": "ParameterRangeUnion",
115
+ "parameterRangeElements": [
116
+ "xsd:string",
117
+ {
118
+ "@type": "ParameterRangeUndefined"
119
+ }
120
+ ]
121
+ },
122
+ "comment": "Path from a pod's base to the owner's WebID."
123
+ },
124
+ {
125
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentPollSeconds",
126
+ "range": {
127
+ "@type": "ParameterRangeUnion",
128
+ "parameterRangeElements": [
129
+ "xsd:number",
130
+ {
131
+ "@type": "ParameterRangeUndefined"
132
+ }
133
+ ]
134
+ },
135
+ "comment": "Seconds between inbox sweeps. Deliveries also wake the sweep as they land."
136
+ },
137
+ {
138
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentAutoAcceptFollows",
139
+ "range": {
140
+ "@type": "ParameterRangeUnion",
141
+ "parameterRangeElements": [
142
+ "xsd:boolean",
143
+ {
144
+ "@type": "ParameterRangeUndefined"
145
+ }
146
+ ]
147
+ },
148
+ "comment": "Whether a newly provisioned identity accepts follows without review."
149
+ },
150
+ {
151
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_clusterManager",
152
+ "range": {
153
+ "@type": "ParameterRangeUnion",
154
+ "parameterRangeElements": [
155
+ "css:dist/init/cluster/ClusterManager.jsonld#ClusterManager",
156
+ {
157
+ "@type": "ParameterRangeUndefined"
158
+ }
159
+ ]
160
+ },
161
+ "comment": "The server's cluster manager, so the agent can say when it is running blind to other workers' writes."
162
+ },
163
+ {
164
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentUiPath",
165
+ "range": {
166
+ "@type": "ParameterRangeUnion",
167
+ "parameterRangeElements": [
168
+ "xsd:string",
169
+ {
170
+ "@type": "ParameterRangeUndefined"
171
+ }
172
+ ]
173
+ },
174
+ "comment": "Path on a pod's origin where its owner's pages live. Empty serves no pages at all."
175
+ },
176
+ {
177
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentRuntimeOptIn",
178
+ "range": {
179
+ "@type": "ParameterRangeUnion",
180
+ "parameterRangeElements": [
181
+ "xsd:boolean",
182
+ {
183
+ "@type": "ParameterRangeUndefined"
184
+ }
185
+ ]
186
+ },
187
+ "comment": "Whether a pod owner may opt in at runtime by proving control of their pod. Off unless the host chooses it."
188
+ },
189
+ {
190
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentAutoFront",
191
+ "range": {
192
+ "@type": "ParameterRangeUnion",
193
+ "parameterRangeElements": [
194
+ "xsd:boolean",
195
+ {
196
+ "@type": "ParameterRangeUndefined"
197
+ }
198
+ ]
199
+ },
200
+ "comment": "When this server also runs the door, give each identity a @handle@frontHost address as it starts — an inbox-only directory row, written once. The actor keeps its own ids on the pod. Off by default."
201
+ },
202
+ {
203
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentRegistryContainer",
204
+ "range": {
205
+ "@type": "ParameterRangeUnion",
206
+ "parameterRangeElements": [
207
+ "xsd:string",
208
+ {
209
+ "@type": "ParameterRangeUndefined"
210
+ }
211
+ ]
212
+ },
213
+ "comment": "An internal container URL where the runtime opt-in rows live."
214
+ }
215
+ ],
216
+ "memberFields": [
217
+ {
218
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_args",
219
+ "memberFieldName": "args"
220
+ },
221
+ {
222
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_io",
223
+ "memberFieldName": "io"
224
+ },
225
+ {
226
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_dir",
227
+ "memberFieldName": "dir",
228
+ "range": "fps:dist/directory.jsonld#Directory"
229
+ },
230
+ {
231
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_podPut",
232
+ "memberFieldName": "podPut"
233
+ },
234
+ {
235
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_logger",
236
+ "memberFieldName": "logger"
237
+ },
238
+ {
239
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_agentHosts",
240
+ "memberFieldName": "agentHosts"
241
+ },
242
+ {
243
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_agentHandles",
244
+ "memberFieldName": "agentHandles"
245
+ },
246
+ {
247
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_frontHost",
248
+ "memberFieldName": "frontHost"
249
+ },
250
+ {
251
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_uiPath",
252
+ "memberFieldName": "uiPath"
253
+ },
254
+ {
255
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_identities",
256
+ "memberFieldName": "identities"
257
+ },
258
+ {
259
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_surfaces",
260
+ "memberFieldName": "surfaces"
261
+ },
262
+ {
263
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_registry",
264
+ "memberFieldName": "registry"
265
+ },
266
+ {
267
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_doorSecrets",
268
+ "memberFieldName": "doorSecrets"
269
+ },
270
+ {
271
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_starting",
272
+ "memberFieldName": "starting"
273
+ },
274
+ {
275
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_startCancelled",
276
+ "memberFieldName": "startCancelled"
277
+ },
278
+ {
279
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_stopping",
280
+ "memberFieldName": "stopping"
281
+ },
282
+ {
283
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_onSignal",
284
+ "memberFieldName": "onSignal"
285
+ },
286
+ {
287
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_constructor",
288
+ "memberFieldName": "constructor"
289
+ },
290
+ {
291
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_validateAgentHost",
292
+ "memberFieldName": "validateAgentHost"
293
+ },
294
+ {
295
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_initialize",
296
+ "memberFieldName": "initialize"
297
+ },
298
+ {
299
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_finalize",
300
+ "memberFieldName": "finalize"
301
+ },
302
+ {
303
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_startIdentity",
304
+ "memberFieldName": "startIdentity"
305
+ },
306
+ {
307
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_frontIdentity",
308
+ "memberFieldName": "frontIdentity"
309
+ },
310
+ {
311
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_canHandle",
312
+ "memberFieldName": "canHandle"
313
+ },
314
+ {
315
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_surfaceFor",
316
+ "memberFieldName": "surfaceFor"
317
+ },
318
+ {
319
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_optInPod",
320
+ "memberFieldName": "optInPod"
321
+ },
322
+ {
323
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_optOutPod",
324
+ "memberFieldName": "optOutPod"
325
+ },
326
+ {
327
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler__member_handle",
328
+ "memberFieldName": "handle"
329
+ }
330
+ ],
331
+ "constructorArguments": [
332
+ {
333
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args__constructorArgument",
334
+ "fields": [
335
+ {
336
+ "keyRaw": "resourceStore",
337
+ "value": {
338
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_resourceStore"
339
+ }
340
+ },
341
+ {
342
+ "keyRaw": "frontHost",
343
+ "value": {
344
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_frontHost"
345
+ }
346
+ },
347
+ {
348
+ "keyRaw": "frontOrigin",
349
+ "value": {
350
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_frontOrigin"
351
+ }
352
+ },
353
+ {
354
+ "keyRaw": "directoryContainer",
355
+ "value": {
356
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_directoryContainer"
357
+ }
358
+ },
359
+ {
360
+ "keyRaw": "gatewayWebId",
361
+ "value": {
362
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_gatewayWebId"
363
+ }
364
+ },
365
+ {
366
+ "keyRaw": "offersPods",
367
+ "value": {
368
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_offersPods"
369
+ }
370
+ },
371
+ {
372
+ "keyRaw": "signupPage",
373
+ "value": {
374
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_signupPage"
375
+ }
376
+ },
377
+ {
378
+ "keyRaw": "runPage",
379
+ "value": {
380
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_runPage"
381
+ }
382
+ },
383
+ {
384
+ "keyRaw": "agentDataDir",
385
+ "value": {
386
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentDataDir"
387
+ }
388
+ },
389
+ {
390
+ "keyRaw": "agentWebIdSuffix",
391
+ "value": {
392
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentWebIdSuffix"
393
+ }
394
+ },
395
+ {
396
+ "keyRaw": "agentPollSeconds",
397
+ "value": {
398
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentPollSeconds"
399
+ }
400
+ },
401
+ {
402
+ "keyRaw": "agentAutoAcceptFollows",
403
+ "value": {
404
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentAutoAcceptFollows"
405
+ }
406
+ },
407
+ {
408
+ "keyRaw": "clusterManager",
409
+ "value": {
410
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_clusterManager"
411
+ }
412
+ },
413
+ {
414
+ "keyRaw": "agentUiPath",
415
+ "value": {
416
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentUiPath"
417
+ }
418
+ },
419
+ {
420
+ "keyRaw": "agentRuntimeOptIn",
421
+ "value": {
422
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentRuntimeOptIn"
423
+ }
424
+ },
425
+ {
426
+ "keyRaw": "agentAutoFront",
427
+ "value": {
428
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentAutoFront"
429
+ }
430
+ },
431
+ {
432
+ "keyRaw": "agentRegistryContainer",
433
+ "value": {
434
+ "@id": "fps:dist/handler.jsonld#FediPodServerHandler_args_agentRegistryContainer"
435
+ }
436
+ }
437
+ ]
438
+ }
439
+ ]
440
+ },
441
+ {
442
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs",
443
+ "@type": "AbstractClass",
444
+ "requireElement": "FediPodServerArgs",
445
+ "parameters": [],
446
+ "memberFields": [
447
+ {
448
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_resourceStore",
449
+ "memberFieldName": "resourceStore"
450
+ },
451
+ {
452
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_frontHost",
453
+ "memberFieldName": "frontHost"
454
+ },
455
+ {
456
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_frontOrigin",
457
+ "memberFieldName": "frontOrigin"
458
+ },
459
+ {
460
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_directoryContainer",
461
+ "memberFieldName": "directoryContainer"
462
+ },
463
+ {
464
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_gatewayWebId",
465
+ "memberFieldName": "gatewayWebId"
466
+ },
467
+ {
468
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_offersPods",
469
+ "memberFieldName": "offersPods"
470
+ },
471
+ {
472
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_signupPage",
473
+ "memberFieldName": "signupPage"
474
+ },
475
+ {
476
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_runPage",
477
+ "memberFieldName": "runPage"
478
+ },
479
+ {
480
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentDataDir",
481
+ "memberFieldName": "agentDataDir"
482
+ },
483
+ {
484
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentWebIdSuffix",
485
+ "memberFieldName": "agentWebIdSuffix"
486
+ },
487
+ {
488
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentPollSeconds",
489
+ "memberFieldName": "agentPollSeconds"
490
+ },
491
+ {
492
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentAutoAcceptFollows",
493
+ "memberFieldName": "agentAutoAcceptFollows"
494
+ },
495
+ {
496
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_clusterManager",
497
+ "memberFieldName": "clusterManager"
498
+ },
499
+ {
500
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentUiPath",
501
+ "memberFieldName": "agentUiPath"
502
+ },
503
+ {
504
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentRuntimeOptIn",
505
+ "memberFieldName": "agentRuntimeOptIn"
506
+ },
507
+ {
508
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentAutoFront",
509
+ "memberFieldName": "agentAutoFront"
510
+ },
511
+ {
512
+ "@id": "fps:dist/handler.jsonld#FediPodServerArgs__member_agentRegistryContainer",
513
+ "memberFieldName": "agentRegistryContainer"
514
+ }
515
+ ],
516
+ "constructorArguments": []
517
+ }
518
+ ]
519
+ }
@@ -0,0 +1,4 @@
1
+ export { FediPodServerHandler } from './handler';
2
+ export type { FediPodServerArgs } from './handler';
3
+ export { FediPodStreamingHandler } from './streaming-handler';
4
+ export type { FediPodStreamingArgs } from './streaming-handler';
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FediPodStreamingHandler = exports.FediPodServerHandler = void 0;
4
+ // Public entry: the class Components.js instantiates. The pure helpers are
5
+ // imported by the package's own tests directly from their built modules, so
6
+ // they are deliberately NOT re-exported here — the generator would otherwise
7
+ // try to treat the helper functions as components.
8
+ var handler_1 = require("./handler");
9
+ Object.defineProperty(exports, "FediPodServerHandler", { enumerable: true, get: function () { return handler_1.FediPodServerHandler; } });
10
+ var streaming_handler_1 = require("./streaming-handler");
11
+ Object.defineProperty(exports, "FediPodStreamingHandler", { enumerable: true, get: function () { return streaming_handler_1.FediPodStreamingHandler; } });
@@ -0,0 +1,3 @@
1
+ import type { ResourceStore } from '@solid/community-server';
2
+ import type { IO } from './directory';
3
+ export declare function makeStoreIO(resourceStore: ResourceStore): IO;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // store-css.ts — the real IO over CSS's ResourceStore: the only file that
3
+ // imports CSS. Turns the store's Representation-based API into the tiny
4
+ // { read, write } shape the directory and podPut are written against.
5
+ //
6
+ // Writing here bypasses WAC by design: the lowest store assumes the necessary
7
+ // Solid checks were already made, and the gateway handler is the thing that
8
+ // made them — it only ever writes verified mail into an inbox, or a directory
9
+ // row into the gateway's own internal container.
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.makeStoreIO = makeStoreIO;
12
+ const community_server_1 = require("@solid/community-server");
13
+ function makeStoreIO(resourceStore) {
14
+ return {
15
+ async read(url) {
16
+ try {
17
+ const rep = await resourceStore.getRepresentation({ path: url }, {});
18
+ return await (0, community_server_1.readableToString)(rep.data);
19
+ }
20
+ catch (e) {
21
+ if (community_server_1.NotFoundHttpError.isInstance?.(e) || e?.statusCode === 404)
22
+ return null;
23
+ throw e;
24
+ }
25
+ },
26
+ async write(url, body, contentType) {
27
+ const rep = new community_server_1.BasicRepresentation(body, { path: url }, contentType);
28
+ await resourceStore.setRepresentation({ path: url }, rep);
29
+ },
30
+ async remove(url) {
31
+ try {
32
+ await resourceStore.deleteResource({ path: url });
33
+ }
34
+ catch (e) {
35
+ if (community_server_1.NotFoundHttpError.isInstance?.(e) || e?.statusCode === 404)
36
+ return;
37
+ throw e;
38
+ }
39
+ },
40
+ };
41
+ }
@@ -0,0 +1,20 @@
1
+ import type { ResourceStore } from '@solid/community-server';
2
+ export interface StoreFetchStats {
3
+ reads: number;
4
+ writes: number;
5
+ deletes: number;
6
+ }
7
+ export interface StoreFetch {
8
+ (url: string, init?: RequestInit): Promise<Response>;
9
+ stats: () => StoreFetchStats;
10
+ }
11
+ export declare function makeStoreFetch(resourceStore: ResourceStore, podBase?: string): StoreFetch;
12
+ /**
13
+ * The session shape RemotePod consumes — the same three members its
14
+ * credential-backed session has, so the class itself needs no other change.
15
+ */
16
+ export declare function makeStoreSession(resourceStore: ResourceStore, podBase?: string): {
17
+ fetch: StoreFetch;
18
+ warmup: () => Promise<void>;
19
+ stats: () => StoreFetchStats;
20
+ };