solid-server 5.8.7 → 5.8.8-22f4cfec

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 (685) hide show
  1. package/CHANGELOG.md +0 -0
  2. package/CONTRIBUTING.md +0 -0
  3. package/CONTRIBUTORS.md +0 -0
  4. package/Dockerfile +0 -0
  5. package/LICENSE.md +0 -0
  6. package/README.md +0 -0
  7. package/bin/config.json +0 -0
  8. package/bin/lib/cli-utils.mjs +54 -0
  9. package/bin/lib/cli.mjs +44 -0
  10. package/bin/lib/{init.js → init.mjs} +93 -94
  11. package/bin/lib/{invalidUsernames.js → invalidUsernames.mjs} +136 -148
  12. package/bin/lib/{migrateLegacyResources.js → migrateLegacyResources.mjs} +64 -69
  13. package/bin/lib/{options.js → options.mjs} +379 -405
  14. package/bin/lib/{start.js → start.mjs} +124 -148
  15. package/bin/lib/{updateIndex.js → updateIndex.mjs} +55 -56
  16. package/bin/solid +2 -2
  17. package/bin/solid-test +0 -0
  18. package/common/css/bootstrap.min.css +6 -0
  19. package/common/css/solid.css +0 -0
  20. package/common/fonts/glyphicons-halflings-regular.eot +0 -0
  21. package/common/fonts/glyphicons-halflings-regular.svg +0 -0
  22. package/common/fonts/glyphicons-halflings-regular.ttf +0 -0
  23. package/common/fonts/glyphicons-halflings-regular.woff +0 -0
  24. package/common/fonts/glyphicons-halflings-regular.woff2 +0 -0
  25. package/common/img/solid-emblem.svg +0 -0
  26. package/common/js/auth-buttons.js +0 -0
  27. package/common/js/auth-buttons.mjs +57 -0
  28. package/common/js/index-buttons.js +0 -0
  29. package/common/js/index-buttons.mjs +43 -0
  30. package/common/js/solid.js +0 -0
  31. package/common/js/solid.mjs +456 -0
  32. package/common/well-known/security.txt +0 -0
  33. package/config/defaults.js +0 -0
  34. package/config/defaults.mjs +22 -0
  35. package/config/templates/emails/delete-account.js +49 -0
  36. package/config/templates/emails/delete-account.mjs +31 -0
  37. package/config/templates/emails/invalid-username.js +30 -0
  38. package/config/templates/emails/invalid-username.mjs +27 -0
  39. package/config/templates/emails/reset-password.js +49 -0
  40. package/config/templates/emails/reset-password.mjs +31 -0
  41. package/config/templates/emails/welcome.js +39 -0
  42. package/config/templates/emails/welcome.mjs +23 -0
  43. package/config/templates/new-account/favicon.ico +0 -0
  44. package/config/templates/new-account/favicon.ico.acl +26 -0
  45. package/config/templates/new-account/profile/card$.ttl +26 -0
  46. package/config/templates/new-account/robots.txt +3 -0
  47. package/config/templates/new-account/robots.txt.acl +26 -0
  48. package/config/templates/new-account/settings/prefs.ttl +15 -0
  49. package/config/templates/new-account/settings/privateTypeIndex.ttl +4 -0
  50. package/config/templates/new-account/settings/publicTypeIndex.ttl +4 -0
  51. package/{default-templates/new-account/.meta.acl → config/templates/new-account/settings/publicTypeIndex.ttl.acl} +4 -4
  52. package/config/templates/new-account/settings/serverSide.ttl.acl +13 -0
  53. package/config/templates/new-account/settings/serverSide.ttl.inactive +12 -0
  54. package/config/templates/server/favicon.ico +0 -0
  55. package/{.well-known/.acl → config/templates/server/favicon.ico.acl} +2 -2
  56. package/config/templates/server/index.html +54 -0
  57. package/config/templates/server/robots.txt +3 -0
  58. package/{default-templates/server/.well-known/.acl → config/templates/server/robots.txt.acl} +2 -2
  59. package/config/usernames-blacklist.json +0 -0
  60. package/config/views/account/account-deleted.hbs +17 -0
  61. package/config/views/account/delete-confirm.hbs +51 -0
  62. package/config/views/account/delete-link-sent.hbs +17 -0
  63. package/config/views/account/delete.hbs +51 -0
  64. package/config/views/account/invalid-username.hbs +22 -0
  65. package/config/views/account/register-disabled.hbs +6 -0
  66. package/config/views/account/register-form.hbs +133 -0
  67. package/config/views/account/register.hbs +24 -0
  68. package/config/views/auth/auth-hidden-fields.hbs +8 -0
  69. package/config/views/auth/change-password.hbs +58 -0
  70. package/config/views/auth/goodbye.hbs +23 -0
  71. package/config/views/auth/login-required.hbs +34 -0
  72. package/config/views/auth/login-tls.hbs +11 -0
  73. package/config/views/auth/login-username-password.hbs +28 -0
  74. package/config/views/auth/login.hbs +55 -0
  75. package/config/views/auth/no-permission.hbs +29 -0
  76. package/config/views/auth/password-changed.hbs +27 -0
  77. package/config/views/auth/reset-link-sent.hbs +21 -0
  78. package/config/views/auth/reset-password.hbs +52 -0
  79. package/config/views/auth/sharing.hbs +49 -0
  80. package/config/views/shared/create-account.hbs +8 -0
  81. package/config/views/shared/error.hbs +5 -0
  82. package/config.json-default +0 -0
  83. package/coverage/tmp/coverage-2260-1766832656715-0.json +1 -0
  84. package/coverage/tmp/coverage-2261-1766832635310-0.json +1 -0
  85. package/default-templates/emails/delete-account.js +0 -0
  86. package/default-templates/emails/delete-account.mjs +31 -0
  87. package/default-templates/emails/invalid-username.js +0 -0
  88. package/default-templates/emails/invalid-username.mjs +27 -0
  89. package/default-templates/emails/reset-password.js +0 -0
  90. package/default-templates/emails/reset-password.mjs +31 -0
  91. package/default-templates/emails/welcome.js +0 -0
  92. package/default-templates/emails/welcome.mjs +23 -0
  93. package/default-templates/new-account/favicon.ico +0 -0
  94. package/default-templates/new-account/favicon.ico.acl +0 -0
  95. package/default-templates/new-account/profile/card$.ttl +0 -0
  96. package/default-templates/new-account/robots.txt +0 -0
  97. package/default-templates/new-account/robots.txt.acl +0 -0
  98. package/default-templates/new-account/settings/prefs.ttl +0 -0
  99. package/default-templates/new-account/settings/privateTypeIndex.ttl +0 -0
  100. package/default-templates/new-account/settings/publicTypeIndex.ttl +0 -0
  101. package/default-templates/new-account/settings/publicTypeIndex.ttl.acl +0 -0
  102. package/default-templates/new-account/settings/serverSide.ttl.acl +0 -0
  103. package/default-templates/new-account/settings/serverSide.ttl.inactive +0 -0
  104. package/default-templates/server/favicon.ico +0 -0
  105. package/default-templates/server/favicon.ico.acl +0 -0
  106. package/default-templates/server/index.html +0 -0
  107. package/default-templates/server/robots.txt +0 -0
  108. package/default-templates/server/robots.txt.acl +0 -0
  109. package/default-views/account/account-deleted.hbs +0 -0
  110. package/default-views/account/delete-confirm.hbs +0 -0
  111. package/default-views/account/delete-link-sent.hbs +0 -0
  112. package/default-views/account/delete.hbs +0 -0
  113. package/default-views/account/invalid-username.hbs +0 -0
  114. package/default-views/account/register-disabled.hbs +0 -0
  115. package/default-views/account/register-form.hbs +0 -0
  116. package/default-views/account/register.hbs +0 -0
  117. package/default-views/auth/auth-hidden-fields.hbs +0 -0
  118. package/default-views/auth/change-password.hbs +0 -0
  119. package/default-views/auth/goodbye.hbs +0 -0
  120. package/default-views/auth/login-required.hbs +0 -0
  121. package/default-views/auth/login-tls.hbs +0 -0
  122. package/default-views/auth/login-username-password.hbs +0 -0
  123. package/default-views/auth/login.hbs +0 -0
  124. package/default-views/auth/no-permission.hbs +0 -0
  125. package/default-views/auth/password-changed.hbs +0 -0
  126. package/default-views/auth/reset-link-sent.hbs +0 -0
  127. package/default-views/auth/reset-password.hbs +0 -0
  128. package/default-views/auth/sharing.hbs +0 -0
  129. package/default-views/shared/create-account.hbs +0 -0
  130. package/default-views/shared/error.hbs +0 -0
  131. package/docker-compose.yml +0 -0
  132. package/docker-image/CONTRIBUTING.md +33 -0
  133. package/docker-image/Makefile +32 -0
  134. package/docker-image/README.md +65 -0
  135. package/docker-image/examples/docker-compose.all-in-one.yml +76 -0
  136. package/docker-image/examples/docker-compose.nginx.yml +51 -0
  137. package/docker-image/examples/docker-compose.simple.yml +34 -0
  138. package/docker-image/src/Dockerfile +34 -0
  139. package/docker-image/src/checks.sh +56 -0
  140. package/docker-image/src/create-temporary-cert.sh +14 -0
  141. package/docker-image/src/entrypoint.sh +8 -0
  142. package/{common/img/.gitkeep → docker-image/test/__init__.py} +0 -0
  143. package/docker-image/test/conftest.py +15 -0
  144. package/docker-image/test/test_image_foundations.py +51 -0
  145. package/docker-image/test/test_non_accessible_key_cert.py +36 -0
  146. package/docker-image/test/test_precondition_checks.py +41 -0
  147. package/docker-image/test/test_solid_default_config.py +66 -0
  148. package/docker-image/test/test_volumes.py +55 -0
  149. package/docker-image/test/wait_for_container.py +8 -0
  150. package/docs/how-to-delete-your-account.md +0 -0
  151. package/docs/login-and-grant-access-to-application.md +0 -0
  152. package/examples/custom-error-handling.js +0 -0
  153. package/examples/custom-error-handling.mjs +29 -0
  154. package/examples/ldp-with-webid.js +0 -0
  155. package/examples/ldp-with-webid.mjs +12 -0
  156. package/examples/simple-express-app.js +0 -0
  157. package/examples/simple-express-app.mjs +20 -0
  158. package/examples/simple-ldp-server.js +0 -0
  159. package/examples/simple-ldp-server.mjs +8 -0
  160. package/favicon.ico +0 -0
  161. package/favicon.ico.acl +0 -0
  162. package/index.cjs +4 -0
  163. package/index.html +0 -0
  164. package/index.mjs +23 -0
  165. package/lib/{acl-checker.js → acl-checker.mjs} +13 -15
  166. package/lib/api/accounts/{user-accounts.js → user-accounts.mjs} +17 -16
  167. package/lib/api/authn/{force-user.js → force-user.mjs} +5 -4
  168. package/lib/api/authn/index.mjs +8 -0
  169. package/lib/api/authn/{webid-oidc.js → webid-oidc.mjs} +27 -20
  170. package/lib/api/authn/{webid-tls.js → webid-tls.mjs} +12 -11
  171. package/lib/api/index.mjs +7 -0
  172. package/lib/{capability-discovery.js → capability-discovery.mjs} +3 -6
  173. package/lib/common/{fs-utils.js → fs-utils.mjs} +35 -43
  174. package/lib/common/template-utils.mjs +29 -0
  175. package/lib/common/{user-utils.js → user-utils.mjs} +24 -28
  176. package/lib/{create-app.js → create-app.mjs} +372 -361
  177. package/lib/{create-server.js → create-server.mjs} +32 -11
  178. package/lib/debug.mjs +37 -0
  179. package/lib/handlers/{allow.js → allow.mjs} +79 -83
  180. package/lib/handlers/{auth-proxy.js → auth-proxy.mjs} +4 -5
  181. package/lib/handlers/{copy.js → copy.mjs} +37 -39
  182. package/lib/handlers/{cors-proxy.js → cors-proxy.mjs} +9 -11
  183. package/lib/handlers/{delete.js → delete.mjs} +20 -22
  184. package/lib/handlers/{error-pages.js → error-pages.mjs} +144 -212
  185. package/lib/handlers/{get.js → get.mjs} +254 -252
  186. package/lib/handlers/{index.js → index.mjs} +7 -8
  187. package/lib/handlers/{notify.js → notify.mjs} +8 -10
  188. package/lib/handlers/{options.js → options.mjs} +3 -5
  189. package/lib/handlers/patch/{n3-patch-parser.js → n3-patch-parser.mjs} +57 -59
  190. package/lib/handlers/patch/{sparql-update-parser.js → sparql-update-parser.mjs} +14 -16
  191. package/lib/handlers/{patch.js → patch.mjs} +241 -235
  192. package/lib/handlers/{post.js → post.mjs} +101 -99
  193. package/lib/handlers/{put.js → put.mjs} +101 -105
  194. package/lib/handlers/{restrict-to-top-domain.js → restrict-to-top-domain.mjs} +2 -2
  195. package/lib/{header.js → header.mjs} +138 -143
  196. package/lib/{http-error.js → http-error.mjs} +35 -34
  197. package/lib/{ldp-container.js → ldp-container.mjs} +10 -12
  198. package/lib/ldp-copy.mjs +82 -0
  199. package/lib/ldp-middleware.mjs +38 -0
  200. package/lib/{ldp.js → ldp.mjs} +286 -75
  201. package/lib/{lock.js → lock.mjs} +10 -10
  202. package/lib/{metadata.js → metadata.mjs} +11 -11
  203. package/lib/models/account-manager.mjs +297 -0
  204. package/lib/models/account-template.mjs +70 -0
  205. package/lib/models/authenticator.mjs +161 -0
  206. package/lib/models/oidc-manager.mjs +23 -0
  207. package/lib/models/solid-host.mjs +63 -0
  208. package/lib/models/user-account.mjs +50 -0
  209. package/lib/models/webid-tls-certificate.mjs +97 -0
  210. package/lib/{payment-pointer-discovery.js → payment-pointer-discovery.mjs} +5 -8
  211. package/lib/{rdf-notification-template.js → rdf-notification-template.mjs} +3 -5
  212. package/lib/requests/add-cert-request.mjs +70 -0
  213. package/lib/requests/auth-request.mjs +151 -0
  214. package/lib/requests/{create-account-request.js → create-account-request.mjs} +249 -452
  215. package/lib/requests/delete-account-confirm-request.mjs +85 -0
  216. package/lib/requests/{delete-account-request.js → delete-account-request.mjs} +73 -134
  217. package/lib/requests/login-request.mjs +89 -0
  218. package/lib/requests/{password-change-request.js → password-change-request.mjs} +132 -201
  219. package/lib/requests/{password-reset-email-request.js → password-reset-email-request.mjs} +123 -202
  220. package/lib/requests/password-reset-request.mjs +47 -0
  221. package/lib/requests/register-request.mjs +48 -0
  222. package/lib/requests/{sharing-request.js → sharing-request.mjs} +174 -261
  223. package/lib/{resource-mapper.js → resource-mapper.mjs} +7 -6
  224. package/lib/{server-config.js → server-config.mjs} +15 -20
  225. package/lib/services/{blacklist-service.js → blacklist-service.mjs} +36 -33
  226. package/lib/services/email-service.mjs +76 -0
  227. package/lib/services/{token-service.js → token-service.mjs} +36 -44
  228. package/lib/{utils.js → utils.mjs} +309 -254
  229. package/lib/webid/{index.js → index.mjs} +9 -13
  230. package/lib/webid/lib/{get.js → get.mjs} +31 -35
  231. package/lib/webid/lib/{parse.js → parse.mjs} +10 -12
  232. package/lib/webid/lib/verify.mjs +77 -0
  233. package/lib/webid/tls/generate.mjs +53 -0
  234. package/lib/webid/tls/index.mjs +7 -0
  235. package/package.json +60 -40
  236. package/renovate.json +0 -0
  237. package/robots.txt +0 -0
  238. package/robots.txt.acl +0 -0
  239. package/solid-server-5.8.8.tgz +0 -0
  240. package/static/account-recovery.html +0 -0
  241. package/static/popup-redirect.html +0 -0
  242. package/static/signup.html +0 -0
  243. package/static/signup.html.acl +0 -0
  244. package/test/index.mjs +168 -0
  245. package/test/integration/account-creation-tls-test.mjs +127 -0
  246. package/test/integration/account-manager-test.mjs +151 -0
  247. package/test/integration/account-template-test.mjs +136 -0
  248. package/test/integration/acl-oidc-test.mjs +1048 -0
  249. package/test/integration/acl-tls-test.mjs +964 -0
  250. package/test/integration/auth-proxy-test.mjs +144 -0
  251. package/test/integration/authentication-oidc-test.mjs +812 -0
  252. package/test/integration/authentication-oidc-with-strict-origins-turned-off-test.mjs +638 -0
  253. package/test/integration/capability-discovery-test.mjs +116 -0
  254. package/test/integration/cors-proxy-test.mjs +145 -0
  255. package/test/integration/errors-oidc-test.mjs +109 -0
  256. package/test/integration/errors-test.mjs +49 -0
  257. package/test/integration/formats-test.mjs +136 -0
  258. package/test/integration/header-test.mjs +101 -0
  259. package/test/integration/http-copy-test.mjs +109 -0
  260. package/test/integration/http-test.mjs +1197 -0
  261. package/test/integration/ldp-test.mjs +528 -0
  262. package/test/integration/oidc-manager-test.mjs +42 -0
  263. package/test/integration/params-test.mjs +192 -0
  264. package/test/integration/patch-sparql-update-test.mjs +195 -0
  265. package/test/integration/patch-test.mjs +590 -0
  266. package/test/integration/payment-pointer-test.mjs +155 -0
  267. package/test/integration/prep-test.mjs +314 -0
  268. package/test/integration/quota-test.mjs +51 -0
  269. package/test/integration/special-root-acl-handling-test.mjs +68 -0
  270. package/test/integration/validate-tts-test.mjs +57 -0
  271. package/test/integration/www-account-creation-oidc-test.mjs +311 -0
  272. package/test/keys/cert.pem +21 -0
  273. package/test/keys/client-cert.pem +19 -0
  274. package/test/keys/client-key.pem +27 -0
  275. package/test/keys/key.pem +27 -0
  276. package/test/keys/user1-cert.pem +23 -0
  277. package/test/keys/user1-key.pem +28 -0
  278. package/test/keys/user2-cert.pem +23 -0
  279. package/test/keys/user2-key.pem +27 -0
  280. package/test/mocha.opts +2 -0
  281. package/test/resources/Makefile +146 -0
  282. package/test/resources/accounts/alice.localhost/profile/card +0 -0
  283. package/test/resources/accounts/db/oidc/op/clients/_key_5319f8e8e4ea3214c2e92b252520d355.json +1 -0
  284. package/test/resources/accounts/db/oidc/op/provider.json +763 -0
  285. package/test/resources/accounts/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A3457.json +1 -0
  286. package/test/resources/accounts/localhost/samplePublicContainer/nicola.jpg +0 -0
  287. package/test/resources/accounts/tim.localhost/hello.html +9 -0
  288. package/test/resources/accounts/tim.localhost/profile/card +0 -0
  289. package/test/resources/accounts-acl/config/templates/emails/welcome-test.js +39 -0
  290. package/test/resources/accounts-acl/config/templates/new-account/favicon.ico +0 -0
  291. package/test/resources/accounts-acl/config/templates/new-account/favicon.ico.acl +26 -0
  292. package/test/resources/accounts-acl/config/templates/new-account/index.html +28 -0
  293. package/test/resources/accounts-acl/config/templates/new-account/index.html.acl +22 -0
  294. package/test/resources/accounts-acl/config/templates/new-account/profile/card +27 -0
  295. package/{default-templates/new-account/inbox/.acl → test/resources/accounts-acl/config/templates/new-account/profile/card.acl} +5 -6
  296. package/test/resources/accounts-acl/config/templates/new-account/settings/prefs.ttl +9 -0
  297. package/test/resources/accounts-acl/config/templates/new-account/settings/privateTypeIndex.ttl +4 -0
  298. package/test/resources/accounts-acl/config/templates/new-account/settings/publicTypeIndex.ttl +4 -0
  299. package/test/resources/accounts-acl/config/templates/new-account/settings/publicTypeIndex.ttl.acl +25 -0
  300. package/test/resources/accounts-acl/config/templates/new-account/settings/serverSide.ttl +14 -0
  301. package/test/resources/accounts-acl/config/templates/server/index.html +35 -0
  302. package/{.acl → test/resources/accounts-acl/config/templates/server/index.html.acl} +4 -3
  303. package/test/resources/accounts-acl/config/views/account/register.hbs +58 -0
  304. package/test/resources/accounts-acl/config/views/auth/consent.hbs +49 -0
  305. package/test/resources/accounts-acl/config/views/auth/goodbye.hbs +20 -0
  306. package/test/resources/accounts-acl/config/views/auth/login-required.hbs +0 -0
  307. package/test/resources/accounts-acl/config/views/auth/login.hbs +51 -0
  308. package/test/resources/accounts-acl/config/views/auth/no-permission.hbs +0 -0
  309. package/test/resources/accounts-acl/db/oidc/op/clients/_key_77bb3b35edb1f3f7b887c25d1211a491.json +1 -0
  310. package/test/resources/accounts-acl/db/oidc/op/provider.json +763 -0
  311. package/test/resources/accounts-acl/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7777.json +1 -0
  312. package/test/resources/accounts-acl/localhost/favicon.ico +0 -0
  313. package/test/resources/accounts-acl/localhost/index.html +35 -0
  314. package/{default-templates/server/.acl → test/resources/accounts-acl/localhost/index.html.acl} +4 -3
  315. package/test/resources/accounts-acl/nicola.localhost/index.html +1 -0
  316. package/test/resources/accounts-acl/nicola.localhost/index.html.acl +10 -0
  317. package/test/resources/accounts-acl/quota/settings/serverSide.ttl +11 -0
  318. package/test/resources/accounts-acl/tim.localhost/append-acl/abc.ttl +1 -0
  319. package/test/resources/accounts-acl/tim.localhost/append-acl/abc.ttl.acl +8 -0
  320. package/test/resources/accounts-acl/tim.localhost/append-acl/abc2.ttl +1 -0
  321. package/test/resources/accounts-acl/tim.localhost/append-acl/abc2.ttl.acl +8 -0
  322. package/test/resources/accounts-acl/tim.localhost/fake-account/hello.html +9 -0
  323. package/test/resources/accounts-acl/tim.localhost/group/test-folder/group-listing-error.ttl +1 -0
  324. package/test/resources/accounts-acl/tim.localhost/group/test-folder/group-listing.ttl +14 -0
  325. package/test/resources/accounts-acl/tim.localhost/group/test-folder/some-other-file.txt +1 -0
  326. package/test/resources/accounts-acl/tim.localhost/multi-server/protected.txt +1 -0
  327. package/test/resources/accounts-acl/tim.localhost/multi-server/protected.txt.acl +8 -0
  328. package/test/resources/accounts-acl/tim.localhost/no-acl/test-file.html +1 -0
  329. package/test/resources/accounts-acl/tim.localhost/read-acl/deeper-tree/acls-only-on-top/example.ttl +1 -0
  330. package/test/resources/accounts-acl/tim.localhost/write-acl/test-file$.txt +1 -0
  331. package/test/resources/accounts-scenario/alice/db/oidc/op/clients/_key_9c0fd8442675a1afbe5115b9ae300c65.json +1 -0
  332. package/test/resources/accounts-scenario/alice/db/oidc/op/provider.json +761 -0
  333. package/test/resources/accounts-scenario/alice/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7000.json +1 -0
  334. package/test/resources/accounts-scenario/alice/private-for-alice.txt +1 -0
  335. package/test/resources/accounts-scenario/alice/private-for-alice.txt.acl +12 -0
  336. package/test/resources/accounts-scenario/alice/profile/card$.ttl +10 -0
  337. package/test/resources/accounts-scenario/bob/db/oidc/op/clients/_key_f15f340b6dc71b68d20eca0d7e87a972.json +1 -0
  338. package/test/resources/accounts-scenario/bob/db/oidc/op/provider.json +761 -0
  339. package/test/resources/accounts-scenario/bob/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7001.json +1 -0
  340. package/test/resources/accounts-scenario/bob/profile/card$.ttl +5 -0
  341. package/test/resources/accounts-scenario/bob/shared-with-alice.txt +1 -0
  342. package/test/resources/accounts-scenario/bob/shared-with-alice.txt.acl +15 -0
  343. package/test/resources/accounts-scenario/charlie/db/oidc/op/clients/_key_7c634dfe325475cc8750e19c72acf6d9.json +1 -0
  344. package/test/resources/accounts-scenario/charlie/db/oidc/op/provider.json +759 -0
  345. package/test/resources/accounts-scenario/charlie/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A5002.json +1 -0
  346. package/test/resources/accounts-scenario/charlie/profile/card$.ttl +5 -0
  347. package/test/resources/accounts-strict-origin-off/alice/db/oidc/op/clients/_key_3f1cecaefd21253767f6e047bd9b572f.json +1 -0
  348. package/test/resources/accounts-strict-origin-off/alice/db/oidc/op/provider.json +763 -0
  349. package/test/resources/accounts-strict-origin-off/alice/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7010.json +1 -0
  350. package/test/resources/accounts-strict-origin-off/alice/private-for-alice.txt +1 -0
  351. package/test/resources/accounts-strict-origin-off/alice/private-for-alice.txt.acl +12 -0
  352. package/test/resources/accounts-strict-origin-off/alice/profile/card$.ttl +10 -0
  353. package/test/resources/accounts-strict-origin-off/bob/db/oidc/op/clients/_key_a17f603b5907c97a5fac61a2eea7ecb2.json +1 -0
  354. package/test/resources/accounts-strict-origin-off/bob/db/oidc/op/provider.json +763 -0
  355. package/test/resources/accounts-strict-origin-off/bob/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7011.json +1 -0
  356. package/test/resources/accounts-strict-origin-off/bob/shared-with-alice.txt +1 -0
  357. package/test/resources/accounts-strict-origin-off/bob/shared-with-alice.txt.acl +15 -0
  358. package/test/resources/acl-tls/config/templates/emails/delete-account.js +49 -0
  359. package/test/resources/acl-tls/config/templates/emails/invalid-username.js +30 -0
  360. package/test/resources/acl-tls/config/templates/emails/reset-password.js +49 -0
  361. package/test/resources/acl-tls/config/templates/emails/welcome.js +39 -0
  362. package/test/resources/acl-tls/config/templates/new-account/favicon.ico +0 -0
  363. package/test/resources/acl-tls/config/templates/new-account/favicon.ico.acl +26 -0
  364. package/test/resources/acl-tls/config/templates/new-account/profile/card$.ttl +26 -0
  365. package/test/resources/acl-tls/config/templates/new-account/robots.txt +3 -0
  366. package/test/resources/acl-tls/config/templates/new-account/robots.txt.acl +26 -0
  367. package/test/resources/acl-tls/config/templates/new-account/settings/prefs.ttl +15 -0
  368. package/test/resources/acl-tls/config/templates/new-account/settings/privateTypeIndex.ttl +4 -0
  369. package/test/resources/acl-tls/config/templates/new-account/settings/publicTypeIndex.ttl +4 -0
  370. package/test/resources/acl-tls/config/templates/new-account/settings/publicTypeIndex.ttl.acl +25 -0
  371. package/test/resources/acl-tls/config/templates/new-account/settings/serverSide.ttl.acl +13 -0
  372. package/test/resources/acl-tls/config/templates/new-account/settings/serverSide.ttl.inactive +12 -0
  373. package/test/resources/acl-tls/config/templates/server/favicon.ico +0 -0
  374. package/test/resources/acl-tls/config/templates/server/favicon.ico.acl +15 -0
  375. package/test/resources/acl-tls/config/templates/server/index.html +55 -0
  376. package/test/resources/acl-tls/config/templates/server/robots.txt +3 -0
  377. package/test/resources/acl-tls/config/templates/server/robots.txt.acl +15 -0
  378. package/test/resources/acl-tls/config/views/account/account-deleted.hbs +17 -0
  379. package/test/resources/acl-tls/config/views/account/delete-confirm.hbs +51 -0
  380. package/test/resources/acl-tls/config/views/account/delete-link-sent.hbs +17 -0
  381. package/test/resources/acl-tls/config/views/account/delete.hbs +51 -0
  382. package/test/resources/acl-tls/config/views/account/invalid-username.hbs +22 -0
  383. package/test/resources/acl-tls/config/views/account/register-disabled.hbs +6 -0
  384. package/test/resources/acl-tls/config/views/account/register-form.hbs +147 -0
  385. package/test/resources/acl-tls/config/views/account/register.hbs +24 -0
  386. package/test/resources/acl-tls/config/views/auth/auth-hidden-fields.hbs +8 -0
  387. package/test/resources/acl-tls/config/views/auth/change-password.hbs +58 -0
  388. package/test/resources/acl-tls/config/views/auth/goodbye.hbs +23 -0
  389. package/test/resources/acl-tls/config/views/auth/login-required.hbs +34 -0
  390. package/test/resources/acl-tls/config/views/auth/login-tls.hbs +11 -0
  391. package/test/resources/acl-tls/config/views/auth/login-username-password.hbs +28 -0
  392. package/test/resources/acl-tls/config/views/auth/login.hbs +55 -0
  393. package/test/resources/acl-tls/config/views/auth/no-permission.hbs +29 -0
  394. package/test/resources/acl-tls/config/views/auth/password-changed.hbs +27 -0
  395. package/test/resources/acl-tls/config/views/auth/reset-link-sent.hbs +21 -0
  396. package/test/resources/acl-tls/config/views/auth/reset-password.hbs +52 -0
  397. package/test/resources/acl-tls/config/views/auth/sharing.hbs +49 -0
  398. package/test/resources/acl-tls/config/views/shared/create-account.hbs +8 -0
  399. package/test/resources/acl-tls/config/views/shared/error.hbs +5 -0
  400. package/test/resources/acl-tls/localhost/favicon.ico +0 -0
  401. package/test/resources/acl-tls/localhost/favicon.ico.acl +15 -0
  402. package/test/resources/acl-tls/localhost/index.html +48 -0
  403. package/test/resources/acl-tls/localhost/robots.txt +3 -0
  404. package/test/resources/acl-tls/localhost/robots.txt.acl +15 -0
  405. package/test/resources/acl-tls/tim.localhost/append-acl/abc.ttl +1 -0
  406. package/test/resources/acl-tls/tim.localhost/append-acl/abc.ttl.acl +8 -0
  407. package/test/resources/acl-tls/tim.localhost/append-acl/abc2.ttl +1 -0
  408. package/test/resources/acl-tls/tim.localhost/append-acl/abc2.ttl.acl +8 -0
  409. package/test/resources/acl-tls/tim.localhost/fake-account/hello.html +9 -0
  410. package/test/resources/acl-tls/tim.localhost/no-acl/test-file.html +1 -0
  411. package/test/resources/acl-tls/tim.localhost/profile/card$.ttl +17 -0
  412. package/test/resources/acl-tls/write-acl/test-file$.ttl +1 -0
  413. package/test/resources/auth-proxy/index.html +0 -0
  414. package/test/resources/auth-proxy/index.html.acl +0 -0
  415. package/test/resources/config/templates/emails/delete-account.js +49 -0
  416. package/test/resources/config/templates/emails/delete-account.mjs +31 -0
  417. package/test/resources/config/templates/emails/invalid-username.js +30 -0
  418. package/test/resources/config/templates/emails/invalid-username.mjs +27 -0
  419. package/test/resources/config/templates/emails/reset-password.js +49 -0
  420. package/test/resources/config/templates/emails/reset-password.mjs +31 -0
  421. package/test/resources/config/templates/emails/welcome.js +39 -0
  422. package/test/resources/config/templates/emails/welcome.mjs +23 -0
  423. package/test/resources/config/templates/new-account/favicon.ico +0 -0
  424. package/test/resources/config/templates/new-account/favicon.ico.acl +26 -0
  425. package/test/resources/config/templates/new-account/profile/card$.ttl +26 -0
  426. package/test/resources/config/templates/new-account/robots.txt +3 -0
  427. package/test/resources/config/templates/new-account/robots.txt.acl +26 -0
  428. package/test/resources/config/templates/new-account/settings/prefs.ttl +15 -0
  429. package/test/resources/config/templates/new-account/settings/privateTypeIndex.ttl +4 -0
  430. package/test/resources/config/templates/new-account/settings/publicTypeIndex.ttl +4 -0
  431. package/test/resources/config/templates/new-account/settings/publicTypeIndex.ttl.acl +25 -0
  432. package/test/resources/config/templates/new-account/settings/serverSide.ttl.acl +13 -0
  433. package/test/resources/config/templates/new-account/settings/serverSide.ttl.inactive +12 -0
  434. package/test/resources/config/templates/server/favicon.ico +0 -0
  435. package/test/resources/config/templates/server/favicon.ico.acl +15 -0
  436. package/test/resources/config/templates/server/index.html +54 -0
  437. package/test/resources/config/templates/server/robots.txt +3 -0
  438. package/test/resources/config/templates/server/robots.txt.acl +15 -0
  439. package/test/resources/config/views/account/account-deleted.hbs +17 -0
  440. package/test/resources/config/views/account/delete-confirm.hbs +51 -0
  441. package/test/resources/config/views/account/delete-link-sent.hbs +17 -0
  442. package/test/resources/config/views/account/delete.hbs +51 -0
  443. package/test/resources/config/views/account/invalid-username.hbs +22 -0
  444. package/test/resources/config/views/account/register-disabled.hbs +6 -0
  445. package/test/resources/config/views/account/register-form.hbs +133 -0
  446. package/test/resources/config/views/account/register.hbs +24 -0
  447. package/test/resources/config/views/auth/auth-hidden-fields.hbs +8 -0
  448. package/test/resources/config/views/auth/change-password.hbs +58 -0
  449. package/test/resources/config/views/auth/goodbye.hbs +23 -0
  450. package/test/resources/config/views/auth/login-required.hbs +34 -0
  451. package/test/resources/config/views/auth/login-tls.hbs +11 -0
  452. package/test/resources/config/views/auth/login-username-password.hbs +28 -0
  453. package/test/resources/config/views/auth/login.hbs +55 -0
  454. package/test/resources/config/views/auth/no-permission.hbs +29 -0
  455. package/test/resources/config/views/auth/password-changed.hbs +27 -0
  456. package/test/resources/config/views/auth/reset-link-sent.hbs +21 -0
  457. package/test/resources/config/views/auth/reset-password.hbs +52 -0
  458. package/test/resources/config/views/auth/sharing.hbs +49 -0
  459. package/test/resources/config/views/shared/create-account.hbs +8 -0
  460. package/test/resources/config/views/shared/error.hbs +5 -0
  461. package/test/resources/empty.spatch +0 -0
  462. package/test/resources/errorPages/401.html +5 -0
  463. package/test/resources/errorPages/403.html +5 -0
  464. package/test/resources/errorPages/404.html +5 -0
  465. package/test/resources/errorPages/405.html +5 -0
  466. package/test/resources/errorPages/415.html +5 -0
  467. package/test/resources/errorPages/500.html +5 -0
  468. package/test/resources/example_spkac.cnf +1 -0
  469. package/test/resources/external-servers/example.com/jwks.json +81 -0
  470. package/test/resources/external-servers/example.com/openid-configuration.json +53 -0
  471. package/test/resources/favicon.ico +0 -0
  472. package/test/resources/favicon.ico.acl +15 -0
  473. package/test/resources/headers/index.html +0 -0
  474. package/test/resources/headers/public-ra +0 -0
  475. package/test/resources/headers/public-ra.acl +7 -0
  476. package/test/resources/headers/user-rw-public-r +0 -0
  477. package/test/resources/headers/user-rw-public-r.acl +12 -0
  478. package/test/resources/headers/user-rwac-public-0 +0 -0
  479. package/test/resources/headers/user-rwac-public-0.acl +7 -0
  480. package/test/resources/hello.html +3 -0
  481. package/test/resources/invalid1.ttl +13 -0
  482. package/test/resources/invalid2.ttl +9 -0
  483. package/test/resources/ldpatch-example-final.ttl +23 -0
  484. package/test/resources/ldpatch-example-initial.ttl +22 -0
  485. package/test/resources/ldpatch-example-patch-1.spatch +8 -0
  486. package/test/resources/ldpatch-example-patch-2.spatch +12 -0
  487. package/test/resources/ldpatch-example-patch-3.spatch +14 -0
  488. package/test/resources/ldpatch-example-patch.ldpatch +25 -0
  489. package/test/resources/ldpatch-example-patch.spatch +24 -0
  490. package/test/resources/lennon.jsonld +7 -0
  491. package/test/resources/lfs-0.sparql +9 -0
  492. package/test/resources/lfs-1-final.json +10 -0
  493. package/test/resources/lfs-1.sparql +11 -0
  494. package/test/resources/messaging-scenario/user1.databox.me/profile/card +21 -0
  495. package/test/resources/nicola.jpg +0 -0
  496. package/test/resources/patch/append-only.ttl +2 -0
  497. package/test/resources/patch/append-only.ttl.acl +6 -0
  498. package/test/resources/patch/favicon.ico +0 -0
  499. package/test/resources/patch/favicon.ico.acl +15 -0
  500. package/test/resources/patch/index.html +0 -0
  501. package/test/resources/patch/read-append.ttl +2 -0
  502. package/test/resources/patch/read-append.ttl.acl +6 -0
  503. package/test/resources/patch/read-only.ttl +2 -0
  504. package/test/resources/patch/read-only.ttl.acl +6 -0
  505. package/test/resources/patch/read-write.ttl +2 -0
  506. package/test/resources/patch/read-write.ttl.acl +6 -0
  507. package/test/resources/patch/robots.txt +3 -0
  508. package/test/resources/patch/robots.txt.acl +15 -0
  509. package/test/resources/patch/write-only.ttl +2 -0
  510. package/test/resources/patch/write-only.ttl.acl +6 -0
  511. package/test/resources/patch-1-initial.ttl +3 -0
  512. package/test/resources/patch-2-final.ttl +2 -0
  513. package/test/resources/patch-2-initial.ttl +3 -0
  514. package/test/resources/patch-2.spatch +2 -0
  515. package/test/resources/patch-2n.spatch +2 -0
  516. package/test/resources/patch-3-final.ttl +28 -0
  517. package/test/resources/patch-4-final.ttl +29 -0
  518. package/test/resources/patch-5-final.ttl +1 -0
  519. package/test/resources/patch-5-initial.ttl +3 -0
  520. package/test/resources/patch-5.spatch +2 -0
  521. package/test/resources/put-input-2.html +13 -0
  522. package/test/resources/put-input.txt +6 -0
  523. package/test/resources/robots.txt +3 -0
  524. package/test/resources/robots.txt.acl +15 -0
  525. package/test/resources/sampleContainer/blank +0 -0
  526. package/test/resources/sampleContainer/cert.pkcs +0 -0
  527. package/test/resources/sampleContainer/example.ttl.old +1 -0
  528. package/test/resources/sampleContainer/example1.ttl +12 -0
  529. package/test/resources/sampleContainer/example2.ttl +3 -0
  530. package/test/resources/sampleContainer/example3.ttl +7 -0
  531. package/test/resources/sampleContainer/example4$.ttl +7 -0
  532. package/test/resources/sampleContainer/filename with spaces.txt +0 -0
  533. package/test/resources/sampleContainer/index.html +9 -0
  534. package/test/resources/sampleContainer/post2.ttl +6 -0
  535. package/test/resources/sampleContainer/put1.ttl +13 -0
  536. package/test/resources/sampleContainer/solid.png +0 -0
  537. package/test/resources/sampleContainer/user1.pfx +0 -0
  538. package/test/resources/sampleContainer/user2.pfx +0 -0
  539. package/test/resources/sampleContainer2/example1.ttl +10 -0
  540. package/test/resources/sampleContainer2/example2.ttl +7 -0
  541. package/test/resources/timbl.jpg +0 -0
  542. package/test/scenarios.md +23 -0
  543. package/test/surface/docker/cookie/Dockerfile +6 -0
  544. package/test/surface/docker/cookie/app/index.js +29 -0
  545. package/test/surface/docker/cookie/app/package-lock.json +13 -0
  546. package/test/surface/docker/cookie/app/package.json +14 -0
  547. package/test/surface/docker/server/Dockerfile +19 -0
  548. package/test/surface/docker/server/config/defaults.js +10 -0
  549. package/test/surface/docker/server/config/templates/emails/delete-account.js +49 -0
  550. package/test/surface/docker/server/config/templates/emails/invalid-username.js +30 -0
  551. package/test/surface/docker/server/config/templates/emails/reset-password.js +49 -0
  552. package/test/surface/docker/server/config/templates/emails/welcome.js +39 -0
  553. package/test/surface/docker/server/config/templates/new-account/favicon.ico +0 -0
  554. package/test/surface/docker/server/config/templates/new-account/favicon.ico.acl +26 -0
  555. package/test/surface/docker/server/config/templates/new-account/profile/card$.ttl +26 -0
  556. package/test/surface/docker/server/config/templates/new-account/robots.txt +3 -0
  557. package/test/surface/docker/server/config/templates/new-account/robots.txt.acl +26 -0
  558. package/test/surface/docker/server/config/templates/new-account/settings/prefs.ttl +15 -0
  559. package/test/surface/docker/server/config/templates/new-account/settings/privateTypeIndex.ttl +4 -0
  560. package/test/surface/docker/server/config/templates/new-account/settings/publicTypeIndex.ttl +4 -0
  561. package/test/surface/docker/server/config/templates/new-account/settings/publicTypeIndex.ttl.acl +25 -0
  562. package/test/surface/docker/server/config/templates/new-account/settings/serverSide.ttl.acl +13 -0
  563. package/test/surface/docker/server/config/templates/new-account/settings/serverSide.ttl.inactive +12 -0
  564. package/test/surface/docker/server/config/templates/server/favicon.ico +0 -0
  565. package/test/surface/docker/server/config/templates/server/favicon.ico.acl +15 -0
  566. package/test/surface/docker/server/config/templates/server/index.html +55 -0
  567. package/test/surface/docker/server/config/templates/server/robots.txt +3 -0
  568. package/test/surface/docker/server/config/templates/server/robots.txt.acl +15 -0
  569. package/test/surface/docker/server/config/usernames-blacklist.json +4 -0
  570. package/test/surface/docker/server/config/views/account/account-deleted.hbs +17 -0
  571. package/test/surface/docker/server/config/views/account/delete-confirm.hbs +51 -0
  572. package/test/surface/docker/server/config/views/account/delete-link-sent.hbs +17 -0
  573. package/test/surface/docker/server/config/views/account/delete.hbs +51 -0
  574. package/test/surface/docker/server/config/views/account/invalid-username.hbs +22 -0
  575. package/test/surface/docker/server/config/views/account/register-disabled.hbs +6 -0
  576. package/test/surface/docker/server/config/views/account/register-form.hbs +147 -0
  577. package/test/surface/docker/server/config/views/account/register.hbs +24 -0
  578. package/test/surface/docker/server/config/views/auth/auth-hidden-fields.hbs +8 -0
  579. package/test/surface/docker/server/config/views/auth/change-password.hbs +58 -0
  580. package/test/surface/docker/server/config/views/auth/goodbye.hbs +23 -0
  581. package/test/surface/docker/server/config/views/auth/login-required.hbs +34 -0
  582. package/test/surface/docker/server/config/views/auth/login-tls.hbs +11 -0
  583. package/test/surface/docker/server/config/views/auth/login-username-password.hbs +28 -0
  584. package/test/surface/docker/server/config/views/auth/login.hbs +55 -0
  585. package/test/surface/docker/server/config/views/auth/no-permission.hbs +29 -0
  586. package/test/surface/docker/server/config/views/auth/password-changed.hbs +27 -0
  587. package/test/surface/docker/server/config/views/auth/reset-link-sent.hbs +21 -0
  588. package/test/surface/docker/server/config/views/auth/reset-password.hbs +52 -0
  589. package/test/surface/docker/server/config/views/auth/sharing.hbs +49 -0
  590. package/test/surface/docker/server/config/views/shared/create-account.hbs +8 -0
  591. package/test/surface/docker/server/config/views/shared/error.hbs +5 -0
  592. package/test/surface/docker/server/config.json +22 -0
  593. package/test/surface/docker/server/data/favicon.ico +0 -0
  594. package/test/surface/docker/server/data/favicon.ico.acl +26 -0
  595. package/test/surface/docker/server/data/index.html +48 -0
  596. package/test/surface/docker/server/data/profile/card$.ttl +31 -0
  597. package/test/surface/docker/server/data/robots.txt +3 -0
  598. package/test/surface/docker/server/data/robots.txt.acl +26 -0
  599. package/test/surface/docker/server/data/settings/prefs.ttl +15 -0
  600. package/test/surface/docker/server/data/settings/privateTypeIndex.ttl +4 -0
  601. package/test/surface/docker/server/data/settings/publicTypeIndex.ttl +4 -0
  602. package/test/surface/docker/server/data/settings/publicTypeIndex.ttl.acl +25 -0
  603. package/test/surface/docker/server/data/settings/serverSide.ttl +0 -0
  604. package/test/surface/docker/server/data/settings/serverSide.ttl.acl +13 -0
  605. package/test/surface/docker/server/data/settings/serverSide.ttl.inactive +12 -0
  606. package/test/surface/docker/server/env.list +4 -0
  607. package/test/surface/docker/solid-crud/Dockerfile +4 -0
  608. package/test/surface/docker/web-access-control/Dockerfile +1 -0
  609. package/test/surface/docker/webid-provider/Dockerfile +1 -0
  610. package/test/surface/run-solid-test-suite.sh +75 -0
  611. package/test/surface/server-env.list +5 -0
  612. package/test/surface/solid-crud-tests-env.list +5 -0
  613. package/test/surface/thirdparty-config.json +23 -0
  614. package/test/surface/thirdparty-env.list +6 -0
  615. package/test/surface/web-access-control-tests-env.list +6 -0
  616. package/test/surface/webid-provider-tests-env.list +4 -0
  617. package/test/test-helpers.mjs +63 -0
  618. package/test/unit/account-manager-test.mjs +610 -0
  619. package/test/unit/account-template-test.mjs +59 -0
  620. package/test/unit/acl-checker-test.mjs +51 -0
  621. package/test/unit/add-cert-request-test.mjs +120 -0
  622. package/test/unit/auth-handlers-test.mjs +108 -0
  623. package/test/unit/auth-proxy-test.mjs +224 -0
  624. package/test/unit/auth-request-test.mjs +96 -0
  625. package/test/unit/authenticator-test.mjs +34 -0
  626. package/test/unit/blacklist-service-test.mjs +49 -0
  627. package/test/unit/create-account-request-test.mjs +306 -0
  628. package/test/unit/delete-account-confirm-request-test.mjs +234 -0
  629. package/test/unit/delete-account-request-test.mjs +180 -0
  630. package/test/unit/email-service-test.mjs +166 -0
  631. package/test/unit/email-welcome-test.mjs +81 -0
  632. package/test/unit/error-pages-test.mjs +100 -0
  633. package/test/unit/esm-imports.test.mjs +149 -0
  634. package/test/unit/force-user-test.mjs +73 -0
  635. package/test/unit/getAvailableUrl-test.mjs +30 -0
  636. package/test/unit/getTrustedOrigins-test.mjs +20 -0
  637. package/test/unit/login-request-test.mjs +246 -0
  638. package/test/unit/oidc-manager-test.mjs +50 -0
  639. package/test/unit/password-authenticator-test.mjs +125 -0
  640. package/test/unit/password-change-request-test.mjs +259 -0
  641. package/test/unit/password-reset-email-request-test.mjs +234 -0
  642. package/test/unit/resource-mapper-test.mjs +673 -0
  643. package/test/unit/solid-host-test.mjs +119 -0
  644. package/test/unit/tls-authenticator-test.mjs +174 -0
  645. package/test/unit/token-service-test.mjs +82 -0
  646. package/test/unit/user-account-test.mjs +38 -0
  647. package/test/unit/user-accounts-api-test.mjs +59 -0
  648. package/test/unit/user-utils-test.mjs +64 -0
  649. package/test/unit/utils-test.mjs +114 -0
  650. package/test/utils/index.mjs +167 -0
  651. package/test/utils.mjs +205 -0
  652. package/test/validate-turtle.mjs +43 -0
  653. package/.github/workflows/ci.yml +0 -113
  654. package/.nvmrc +0 -1
  655. package/.snyk +0 -35
  656. package/bin/lib/cli-utils.js +0 -85
  657. package/bin/lib/cli.js +0 -39
  658. package/bin/solid.js +0 -3
  659. package/default-templates/new-account/.acl +0 -26
  660. package/default-templates/new-account/.meta +0 -5
  661. package/default-templates/new-account/.well-known/.acl +0 -19
  662. package/default-templates/new-account/private/.acl +0 -10
  663. package/default-templates/new-account/profile/.acl +0 -19
  664. package/default-templates/new-account/public/.acl +0 -19
  665. package/default-templates/new-account/settings/.acl +0 -20
  666. package/index.js +0 -3
  667. package/lib/api/authn/index.js +0 -5
  668. package/lib/api/index.js +0 -6
  669. package/lib/common/template-utils.js +0 -50
  670. package/lib/debug.js +0 -18
  671. package/lib/ldp-copy.js +0 -73
  672. package/lib/ldp-middleware.js +0 -40
  673. package/lib/models/account-manager.js +0 -604
  674. package/lib/models/account-template.js +0 -156
  675. package/lib/models/authenticator.js +0 -337
  676. package/lib/models/oidc-manager.js +0 -53
  677. package/lib/models/solid-host.js +0 -131
  678. package/lib/models/user-account.js +0 -113
  679. package/lib/models/webid-tls-certificate.js +0 -184
  680. package/lib/requests/add-cert-request.js +0 -138
  681. package/lib/requests/auth-request.js +0 -234
  682. package/lib/requests/delete-account-confirm-request.js +0 -170
  683. package/lib/requests/login-request.js +0 -205
  684. package/lib/services/email-service.js +0 -162
  685. package/lib/webid/tls/index.js +0 -185
@@ -0,0 +1,311 @@
1
+ /* eslint-disable no-unused-expressions */
2
+ import supertest from 'supertest'
3
+ import rdf from 'rdflib'
4
+ import ldnode from '../../index.mjs'
5
+ import path from 'path'
6
+ import { fileURLToPath } from 'url'
7
+ import fs from 'fs-extra'
8
+ import { rm, read, checkDnsSettings, cleanDir } from '../utils/index.mjs'
9
+
10
+ const __filename = fileURLToPath(import.meta.url)
11
+ const __dirname = path.dirname(__filename)
12
+ const $rdf = rdf
13
+
14
+ // FIXME: #1502
15
+ describe('AccountManager (OIDC account creation tests)', function () {
16
+ const port = 7457
17
+ const serverUri = `https://localhost:${port}`
18
+ const host = `localhost:${port}`
19
+ const root = path.normalize(path.join(__dirname, '../resources/accounts/'))
20
+ const configPath = path.normalize(path.join(__dirname, '../resources/config'))
21
+ const dbPath = path.normalize(path.join(__dirname, '../resources/accounts/db'))
22
+
23
+ let ldpHttpsServer
24
+
25
+ const ldp = ldnode.createServer({
26
+ root,
27
+ configPath,
28
+ sslKey: path.normalize(path.join(__dirname, '../keys/key.pem')),
29
+ sslCert: path.normalize(path.join(__dirname, '../keys/cert.pem')),
30
+ auth: 'oidc',
31
+ webid: true,
32
+ multiuser: true,
33
+ strictOrigin: true,
34
+ dbPath,
35
+ serverUri,
36
+ enforceToc: true
37
+ })
38
+
39
+ before(checkDnsSettings)
40
+
41
+ before(function (done) {
42
+ ldpHttpsServer = ldp.listen(port, done)
43
+ })
44
+
45
+ after(function () {
46
+ if (ldpHttpsServer) ldpHttpsServer.close()
47
+ fs.removeSync(path.join(dbPath, 'oidc/users/users'))
48
+ cleanDir(path.join(root, 'localhost'))
49
+ })
50
+
51
+ const server = supertest(serverUri)
52
+
53
+ it('should expect a 404 on GET /accounts', function (done) {
54
+ server.get('/api/accounts')
55
+ .expect(404, done)
56
+ })
57
+
58
+ describe('accessing accounts', function () {
59
+ it('should be able to access public file of an account', function (done) {
60
+ const subdomain = supertest('https://tim.' + host)
61
+ subdomain.get('/hello.html')
62
+ .expect(200, done)
63
+ })
64
+ it('should get 404 if root does not exist', function (done) {
65
+ const subdomain = supertest('https://nicola.' + host)
66
+ subdomain.get('/')
67
+ .set('Accept', 'text/turtle')
68
+ .set('Origin', 'http://example.com')
69
+ .expect(404)
70
+ .expect('Access-Control-Allow-Origin', 'http://example.com')
71
+ .expect('Access-Control-Allow-Credentials', 'true')
72
+ .end(function (err, res) {
73
+ done(err)
74
+ })
75
+ })
76
+ })
77
+
78
+ describe('creating an account with POST', function () {
79
+ beforeEach(function () {
80
+ rm('accounts/nicola.localhost')
81
+ })
82
+
83
+ after(function () {
84
+ rm('accounts/nicola.localhost')
85
+ })
86
+
87
+ it('should not create WebID if no username is given', (done) => {
88
+ const subdomain = supertest('https://' + host)
89
+ subdomain.post('/api/accounts/new')
90
+ .send('username=&password=12345')
91
+ .expect(400, done)
92
+ })
93
+
94
+ it('should not create WebID if no password is given', (done) => {
95
+ const subdomain = supertest('https://' + host)
96
+ subdomain.post('/api/accounts/new')
97
+ .send('username=nicola&password=')
98
+ .expect(400, done)
99
+ })
100
+
101
+ it('should not create a WebID if it already exists', function (done) {
102
+ const subdomain = supertest('https://' + host)
103
+ subdomain.post('/api/accounts/new')
104
+ .send('username=nicola&password=12345&acceptToc=true')
105
+ .expect(302)
106
+ .end((err, res) => {
107
+ if (err) {
108
+ return done(err)
109
+ }
110
+ subdomain.post('/api/accounts/new')
111
+ .send('username=nicola&password=12345&acceptToc=true')
112
+ .expect(400)
113
+ .end((err) => {
114
+ done(err)
115
+ })
116
+ })
117
+ })
118
+
119
+ it('should not create WebID if T&C is not accepted', (done) => {
120
+ const subdomain = supertest('https://' + host)
121
+ subdomain.post('/api/accounts/new')
122
+ .send('username=nicola&password=12345&acceptToc=')
123
+ .expect(400, done)
124
+ })
125
+
126
+ it('should create the default folders', function (done) {
127
+ const subdomain = supertest('https://' + host)
128
+ subdomain.post('/api/accounts/new')
129
+ .send('username=nicola&password=12345&acceptToc=true')
130
+ .expect(302)
131
+ .end(function (err) {
132
+ if (err) {
133
+ return done(err)
134
+ }
135
+ const domain = host.split(':')[0]
136
+ const card = read(path.normalize(path.join('accounts/nicola.' + domain,
137
+ 'profile/card$.ttl')))
138
+ const cardAcl = read(path.normalize(path.join('accounts/nicola.' + domain,
139
+ 'profile/.acl')))
140
+ const prefs = read(path.normalize(path.join('accounts/nicola.' + domain,
141
+ 'settings/prefs.ttl')))
142
+ const inboxAcl = read(path.normalize(path.join('accounts/nicola.' + domain,
143
+ 'inbox/.acl')))
144
+ const rootMeta = read(path.normalize(path.join('accounts/nicola.' + domain, '.meta')))
145
+ const rootMetaAcl = read(path.normalize(path.join('accounts/nicola.' + domain,
146
+ '.meta.acl')))
147
+
148
+ if (domain && card && cardAcl && prefs && inboxAcl && rootMeta &&
149
+ rootMetaAcl) {
150
+ done()
151
+ } else {
152
+ done(new Error('failed to create default files'))
153
+ }
154
+ })
155
+ }).timeout(20000)
156
+
157
+ it('should link WebID to the root account', function (done) {
158
+ const domain = supertest('https://' + host)
159
+ domain.post('/api/accounts/new')
160
+ .send('username=nicola&password=12345&acceptToc=true')
161
+ .expect(302)
162
+ .end(function (err) {
163
+ if (err) {
164
+ return done(err)
165
+ }
166
+ const subdomain = supertest('https://nicola.' + host)
167
+ subdomain.get('/.meta')
168
+ .expect(200)
169
+ .end(function (err, data) {
170
+ if (err) {
171
+ return done(err)
172
+ }
173
+ const graph = $rdf.graph()
174
+ $rdf.parse(
175
+ data.text,
176
+ graph,
177
+ 'https://nicola.' + host + '/.meta',
178
+ 'text/turtle')
179
+ const statements = graph.statementsMatching(
180
+ undefined,
181
+ $rdf.sym('http://www.w3.org/ns/solid/terms#account'),
182
+ undefined)
183
+ if (statements.length === 1) {
184
+ done()
185
+ } else {
186
+ done(new Error('missing link to WebID of account'))
187
+ }
188
+ })
189
+ })
190
+ }).timeout(20000)
191
+
192
+ describe('after setting up account', () => {
193
+ beforeEach(done => {
194
+ const subdomain = supertest('https://' + host)
195
+ subdomain.post('/api/accounts/new')
196
+ .send('username=nicola&password=12345&acceptToc=true')
197
+ .end(done)
198
+ })
199
+
200
+ it('should create a private settings container', function (done) {
201
+ const subdomain = supertest('https://nicola.' + host)
202
+ subdomain.head('/settings/')
203
+ .expect(401)
204
+ .end(function (err) {
205
+ done(err)
206
+ })
207
+ })
208
+
209
+ it('should create a private prefs file in the settings container', function (done) {
210
+ const subdomain = supertest('https://nicola.' + host)
211
+ subdomain.head('/inbox/prefs.ttl')
212
+ .expect(401)
213
+ .end(function (err) {
214
+ done(err)
215
+ })
216
+ })
217
+
218
+ it('should create a private inbox container', function (done) {
219
+ const subdomain = supertest('https://nicola.' + host)
220
+ subdomain.head('/inbox/')
221
+ .expect(401)
222
+ .end(function (err) {
223
+ done(err)
224
+ })
225
+ })
226
+ })
227
+ })
228
+ })
229
+
230
+ // FIXME: #1502
231
+ describe('Single User signup page', () => {
232
+ const serverUri = 'https://localhost:7457'
233
+ const port = 7457
234
+ let ldpHttpsServer
235
+ rm('resources/accounts/single-user/')
236
+ const rootDir = path.normalize(path.join(__dirname, '../resources/accounts/single-user/'))
237
+ const configPath = path.normalize(path.join(__dirname, '../resources/config'))
238
+ const ldp = ldnode.createServer({
239
+ port,
240
+ root: rootDir,
241
+ configPath,
242
+ sslKey: path.normalize(path.join(__dirname, '../keys/key.pem')),
243
+ sslCert: path.normalize(path.join(__dirname, '../keys/cert.pem')),
244
+ webid: true,
245
+ multiuser: false,
246
+ strictOrigin: true
247
+ })
248
+ const server = supertest(serverUri)
249
+
250
+ before(function (done) {
251
+ ldpHttpsServer = ldp.listen(port, () => server.post('/api/accounts/new')
252
+ .send('username=foo&password=12345&acceptToc=true')
253
+ .end(done))
254
+ })
255
+
256
+ after(function () {
257
+ if (ldpHttpsServer) ldpHttpsServer.close()
258
+ fs.removeSync(rootDir)
259
+ })
260
+
261
+ it('should return a 406 not acceptable without accept text/html', done => {
262
+ server.get('/')
263
+ .set('accept', 'text/plain')
264
+ .expect(406)
265
+ .end(done)
266
+ })
267
+ })
268
+
269
+ // FIXME: #1502
270
+ describe('Signup page where Terms & Conditions are not being enforced', () => {
271
+ const port = 3457
272
+ const host = `localhost:${port}`
273
+ const root = path.normalize(path.join(__dirname, '../resources/accounts/'))
274
+ const configPath = path.normalize(path.join(__dirname, '../resources/config'))
275
+ const dbPath = path.normalize(path.join(__dirname, '../resources/accounts/db'))
276
+ const ldp = ldnode.createServer({
277
+ port,
278
+ root,
279
+ configPath,
280
+ sslKey: path.normalize(path.join(__dirname, '../keys/key.pem')),
281
+ sslCert: path.normalize(path.join(__dirname, '../keys/cert.pem')),
282
+ auth: 'oidc',
283
+ webid: true,
284
+ multiuser: true,
285
+ strictOrigin: true,
286
+ enforceToc: false
287
+ })
288
+ let ldpHttpsServer
289
+
290
+ before(function (done) {
291
+ ldpHttpsServer = ldp.listen(port, done)
292
+ })
293
+
294
+ after(function () {
295
+ if (ldpHttpsServer) ldpHttpsServer.close()
296
+ fs.removeSync(path.join(dbPath, 'oidc/users/users'))
297
+ cleanDir(path.join(root, 'localhost'))
298
+ rm('accounts/nicola.localhost')
299
+ })
300
+
301
+ beforeEach(function () {
302
+ rm('accounts/nicola.localhost')
303
+ })
304
+
305
+ it('should not enforce T&C upon creating account', function (done) {
306
+ const subdomain = supertest('https://' + host)
307
+ subdomain.post('/api/accounts/new')
308
+ .send('username=nicola&password=12345')
309
+ .expect(302, done)
310
+ })
311
+ })
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDiTCCAnGgAwIBAgIJALcFbDEc4HZSMA0GCSqGSIb3DQEBBQUAMFsxCzAJBgNV
3
+ BAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
4
+ aWRnaXRzIFB0eSBMdGQxFDASBgNVBAMMCyoubG9jYWxob3N0MB4XDTE2MDExMDAy
5
+ MjU0OVoXDTI2MDEwNzAyMjU0OVowWzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNv
6
+ bWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIG
7
+ A1UEAwwLKi5sb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
8
+ AQDXAYXG39aEz6p7CLP7qgqWEy4uGlgecA3Z6RbpQW1OJELPFf4h+R/CezF7kKTi
9
+ SEXPRq30y6NgJzW0VI9Vz78d1YDoFD4JaRtgTAAVtk35VKq7WsTC4PFJ6sY8JUOX
10
+ rrSxIy74mMGkBsZpdM6HDcGfP+uvptPTWzB4pAnojsJVEgCjHGhyDsm/KzaudOoG
11
+ f5ItLmiXxwhAklHpJRjvTpkDp48hhv88gkzoOB+Xs3R65bU3rbupKAufkTLtYVWD
12
+ k2a70F0RK8BgkJmu5iM7hmBmZ6NAyqUUd52PLKtpPPZfU9bTu9KXSiJogPfzSz3K
13
+ 0sMxQXnVVi/IcOBiD2QrmIxhAgMBAAGjUDBOMB0GA1UdDgQWBBQurZ2WGwLpPmLj
14
+ NGvA6pnUv8wQRzAfBgNVHSMEGDAWgBQurZ2WGwLpPmLjNGvA6pnUv8wQRzAMBgNV
15
+ HRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQB3C3pYHpiIM1k/Cc0MKdnkLiCS
16
+ ZvaLj1pqJ5p5CnuQ7XqlM5tusBLUf8NMtIJZGYqJvIjGFM1Nkc8k2SCd0V4AkT/N
17
+ jD8peuXZGxaKE8sj0U3yv+dAlMqfMS5RfnzY6+ns+n911tl6KDBptHC+ZwjMaOLm
18
+ IYbkuyZkwgTY7OdXJnAePxCrdHKcpIPvd/2N95IXGxE81u8OEXUm7vKYfQ6fBitY
19
+ mem3BzWBSGrX2R7DflCF5VNCurit4OpCa7+n6OaN6OxEjkxS2Q+dsPhpK2/z9bK8
20
+ RifxUk7xu8wNgt3pSHkmj4c9OexEtaXgpF1N+gzRUyjUOi0xP/Y8Qh/2dA+1
21
+ -----END CERTIFICATE-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDBDCCAm2gAwIBAgIEC3cqETANBgkqhkiG9w0BAQUFADBCMQswCQYDVQQGEwJV
3
+ UzETMBEGA1UECAwKU29tZS1TdGF0ZTEOMAwGA1UECgwFV2ViSUQxDjAMBgNVBAMM
4
+ BVdlYklEMB4XDTE0MDkwNjE1NDk0OFoXDTE1MDkwMTE1NDk0OFowQzELMAkGA1UE
5
+ BhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxDjAMBgNVBAoMBVdlYklEMQ8wDQYD
6
+ VQQDEwZNYXJ0aW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6+jdf
7
+ x9ciAyh6Fwk8x2863DBMwM2rgo1aTd9p/EtKwS0QEjGmsfxNcuhuEs4viegYkA+E
8
+ NYMnzpbVSmpkrW/4B+AdpjqSCg52lE+97VsgEsjydpcr0F56DFXZREoUSxv6aGjK
9
+ JvuV3Xwutt86ZPmY2hI8ibhrkYYVLjW4NUUa/Kz4y7Sat+JjpKLeygRl9pmFDZqn
10
+ dnkaigfO+l4ADOKBvnqvZmuySyiCfA8UQLTTi2Xu9R5FYp4muYGf/WUL4/X38Cy9
11
+ pn4aZsg5wlJIxdMv8mrNOkw0+UMuB3w1qlBdpNxP+ssvzm51rbaSKAUiC7kjDqV5
12
+ IVekpPPsaYcNgmOtAgMBAAGjgYEwfzAJBgNVHRMEAjAAMDIGA1UdEQQrMCmGJ2h0
13
+ dHBzOi8vbWFydGlubXIucnd3LmlvL3Byb2ZpbGUvY2FyZCNtZTAdBgNVHQ4EFgQU
14
+ FKH1bXMdGeDQ+eg2r8XRb0OHR6AwHwYDVR0jBBgwFoAUPeiGwB03YrZL1o9JV66Y
15
+ 7fia1IIwDQYJKoZIhvcNAQEFBQADgYEAUpj/YkL8CRotpodm5CPQpT2wUwnNiDWr
16
+ lUwystTT4mo+42d8mt3hxArNtSRkxvEFHK73m9vfbfNkazejawGnf9EO8MdH+XYF
17
+ q0jQqtjkDodsFX5R79G/p7qs/FAPv5t4W9NSKB50A9qqcAfsHigT3E7smfO3CdVC
18
+ fQ6/1y6YiXQ=
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpQIBAAKCAQEAuvo3X8fXIgMoehcJPMdvOtwwTMDNq4KNWk3fafxLSsEtEBIx
3
+ prH8TXLobhLOL4noGJAPhDWDJ86W1UpqZK1v+AfgHaY6kgoOdpRPve1bIBLI8naX
4
+ K9BeegxV2URKFEsb+mhoyib7ld18LrbfOmT5mNoSPIm4a5GGFS41uDVFGvys+Mu0
5
+ mrfiY6Si3soEZfaZhQ2ap3Z5GooHzvpeAAzigb56r2ZrsksognwPFEC004tl7vUe
6
+ RWKeJrmBn/1lC+P19/AsvaZ+GmbIOcJSSMXTL/JqzTpMNPlDLgd8NapQXaTcT/rL
7
+ L85uda22kigFIgu5Iw6leSFXpKTz7GmHDYJjrQIDAQABAoIBAQCpCDFtPm2HixFZ
8
+ pl+seaNds9daW+bTCVgebk3uM64ha5gAcmI+j6NGpP3pHMkXgvW21u2gGPxzzTjg
9
+ o8ChOYYC1aPPSgqjIcJHgva//ccmrLTLNVievGXcsjAeFbVeuTQW4bLyJeHFbxCn
10
+ 7pzJ3qUigOqBngOCA3ISzc60tDvAE2fsVQCBf6Smb+KzoYhXsL/BPUHATGL23r+Y
11
+ HPHYHEjKUXdpWUGTfIOo35+n4fH2PBvPFN+vtexyNJqviDx3E55Bj/ocLSpBY9xc
12
+ KLipB8i0melG5GxUFkQM3llYqiCiYA1c1Vu++YH+sgoLlzB7VydXJr+SNoyxB7uk
13
+ jgHl+76FAoGBAN63BXsMa1jIegz8ebfMamD/8IhkQb4IxrMMd9TUxCL9LWGPrirb
14
+ ZHfZCZ96TtLuljutiX/8uvWMCnJPvrI22LZ5rm41PyFRXMP5+DOd43DOo1gKwPG9
15
+ wfCQHWtmUcUKWelJV5wzb4UzPgYu7oBaHXDzFSgK1nb/rhD56Ik5VHMbAoGBANbr
16
+ 5H5OyRdJsqmtApaK03hr9iqCTJBLtjX6dXYCjyc3eOgYdBQbOh8g0bJHeULQyHpq
17
+ e7OgYjrU1HLwkVTTUuiagpf6EWjLhNFGh588nhSr5vHQTnexv6nip1iHMHDT1QL7
18
+ xYcfOe7fGUofTbSg1kAj/O9WoXkUJda44/1o5KjXAoGBAJVO3b3Adbbvr+NE39T4
19
+ ldixvO+zRt+/wnYGxc9JVLSgRuxBBuJ0csZmGq1vsah3iwA3Nxc2t6AmYlqAW7fe
20
+ TSsIKIh56fjMMwSvcFYqY3AdGCTOEMwACyTbeN2nmuoeJmjfYny1fu4tjEdY70vd
21
+ Hh+611Qg7+aXQnrfD6XvaU5BAoGASLNpCpTqDxed+SmOG5CAclbK4ZxL+++whlff
22
+ zfiVpiVsn85NzdNb+NWoOY9V5JUti8NjbuLM96uw5eSctL37aLWDgZdUtkdJ+WTL
23
+ UcE2lDWGHLxjHrgg5n3GL/sjFreBcc3rBoc4mKYdLuah6X0SnIXP9MIwQv3ewuCu
24
+ NrV5y+cCgYEAwIBUkAC7uQO+BK+jlC0hIGYLlMqTu4JwRNCJ5ICyWBNarYsMJZDT
25
+ Tf94gclKf+TtheS0QUK3KyY7Tpp05dbeHi7aQNZTag7lUsEdDOKiSgZilzs2MOek
26
+ 4hWWYVAOXeGI0sa30/9RETCQz04knWVzi4v6OSlR8HY7UThxO56mw78=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpQIBAAKCAQEA1wGFxt/WhM+qewiz+6oKlhMuLhpYHnAN2ekW6UFtTiRCzxX+
3
+ Ifkfwnsxe5Ck4khFz0at9MujYCc1tFSPVc+/HdWA6BQ+CWkbYEwAFbZN+VSqu1rE
4
+ wuDxSerGPCVDl660sSMu+JjBpAbGaXTOhw3Bnz/rr6bT01sweKQJ6I7CVRIAoxxo
5
+ cg7Jvys2rnTqBn+SLS5ol8cIQJJR6SUY706ZA6ePIYb/PIJM6Dgfl7N0euW1N627
6
+ qSgLn5Ey7WFVg5Nmu9BdESvAYJCZruYjO4ZgZmejQMqlFHedjyyraTz2X1PW07vS
7
+ l0oiaID380s9ytLDMUF51VYvyHDgYg9kK5iMYQIDAQABAoIBAQCjdpLgyplry/7P
8
+ H6TG91apFtgLURghvAur2t0CZi3WNRdeHlhiN+d/ku3iBex15YC9v/zNmm0R032v
9
+ JoL7OMESy5n/2DP6L6ESq3V9DGdn4okTfEUP7LlF+2rPm30yOy9BZYB2nJzMOiJr
10
+ VtUWNM06Z/ymRO3TSQcnEYA/ARqaVXpN1TMLI/kYkPZ9/QxaxoC/t9Pty93eVepW
11
+ H3WqIecYvOw8iCOUKQQVAOWqYUrBA+3RR6fe3n3RmmX7vgyVJIrfMszyKH5D8jmz
12
+ ssSPtH3evVhHQwT1C/xshZxXWGPcw0T8Jec3ydESKMdu4SOk1O8WAG7GQwXnUdJD
13
+ OzoqQNKJAoGBAPdU0yIR/Foi7/DvaIIaRyFpyAdL27ZgZxfEDe0XqTR1qNEnWHQ1
14
+ Rp1kxfzxDo+1Op3VVjPTkRHSuSU/aUWFLfXNDY6BsopQC1t57g3tEr0yithZxJX3
15
+ 3MdIz3wp4GKZmlYHNnXVONh1eonEBt4HWDkkMpTCzlGdgX/nubAYb1x3AoGBAN6K
16
+ qKupZQVjETKzTj2wtYo++8f5UD1if1dOqtMiQrVW4tahsgAT8PLhmPwMc5BtWDvO
17
+ NZLWRB5phxKCKcukvqe8D+J1rIayN6HKKRECPcON/COB14Tcf/K0jQDmH4hz7HuC
18
+ h+n6u6gTTVMxJQUhrHBTcxmb2MSe05VE8c46tQvnAoGBAIjYmR0/wFWLASFZBYT+
19
+ zx5wrelDkqR9AG2I33+wWMGa3DYlQ+7AT3rkeBt0sO7Ygj8z+8cfJyQqaKBwTmnV
20
+ v1FCDF8t6cBXe4E4nHt+EaE3JtWADaJAixqEcbCsZueHP3qb8QkPWa2CirNRD8+n
21
+ Vqv/GDFw+8DymeVQLFB/pJYPAoGBAKC3fuzKX1yumSMGf4Dp95GpvuhC04Ihelmx
22
+ RIlKeua/ov7is8x+mkquRm/xBhzN+yTl3ab3+yYDjDr/qfOaPN6iYM5psXlth+Pe
23
+ Ph48giKSjf+Oq/kVzYmYfyShDTDcl3LzZ/jAzXmqxvNH0LaOBRzyB3P9K2WEVsW8
24
+ ju0jVNENAoGAS1ycNPlS3McBwGx40hvQpsiEc1mQQUKzwU18x1WF/iHtWS0Owx17
25
+ 8T0uvqPO6tjLU1fgZrVUoF5NJkrpaBYzxWbXEoI45w1637HLLAu5zOeO1dHCLb2j
26
+ cu7AKs0kWiK5+5m9PEQOuHxyDcEBLyF64iAZxcogpZBz0Mm9eWtSF3U=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,23 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIID0zCCArugAwIBAgIJAJIyT436cY6uMA0GCSqGSIb3DQEBBQUAMGAxIjAgBgNV
3
+ BAMTGVdlYklEIGZvciBUaW0gQmVybmVycy1MZWUxOjA4BgoJkiaJk/IsZAEBFCpo
4
+ dHRwczovL3RpbS5sb2NhbGhvc3Q6Nzc3Ny9wcm9maWxlL2NhcmQjbWUwHhcNMTkx
5
+ MDI0MTgyMzUyWhcNMjkxMDIxMTgyMzUyWjBgMSIwIAYDVQQDExlXZWJJRCBmb3Ig
6
+ VGltIEJlcm5lcnMtTGVlMTowOAYKCZImiZPyLGQBARQqaHR0cHM6Ly90aW0ubG9j
7
+ YWxob3N0Ojc3NzcvcHJvZmlsZS9jYXJkI21lMIIBIjANBgkqhkiG9w0BAQEFAAOC
8
+ AQ8AMIIBCgKCAQEAtVinQ0UG3k3P0G/rQiH8hzTdpyeHePZXZHEx4fTXiIrPgDyY
9
+ oLxzzzl3A6VQ+zCV0SQ17npauEGQzVXg+QhOwRUbH4rfOoT6CrYmcnhrmkiGAqfY
10
+ HO2I5DsJAyiLtuTmMPBVkLgDuhs0eOR0jsjbBE1AJ809i4Nngu5vYSNhf3rZz/qU
11
+ ZEvvWDnb50EQJrAGeWndNl/+EohENPKlpFmBedgttwJGc/skuNpAwBta+F03EdO8
12
+ 6V2Z+qDQKdyG1VvXVF5SVB9jPOXkWLQrTTyjcyyE8Sx62ZXxDlsYvQAGd27Iuw4E
13
+ emmST8jxvjob8mC5Pb1KAhAK7EIbMIUAP456TwIDAQABo4GPMIGMMB0GA1UdDgQW
14
+ BBSKeuVdr8beU5Y6NkeggCSCtlZZrDA4BgNVHREBAf8ELjAshipodHRwczovL3Rp
15
+ bS5sb2NhbGhvc3Q6Nzc3Ny9wcm9maWxlL2NhcmQjbWUwCQYDVR0TBAIwADATBgNV
16
+ HSUEDDAKBggrBgEFBQcDAjARBglghkgBhvhCAQEEBAMCB4AwDQYJKoZIhvcNAQEF
17
+ BQADggEBACH7beIj0OFsq6FwkthagI53cxPhjIxFOYdy8G5mN/JcCyL0xemJm5Fz
18
+ HEXKv/QhFdbX6NCCal/d+2r566fRf1C/8sY/Cx4yKqYaZ/ZZeH/q3IlfQSyEZEJy
19
+ XLARCG9WzeXHJsL6u/lN/rcrI3ylUb9qAAzlNWyg3xtb58ieUSUjuO0fOfKMu+LJ
20
+ VGPpMyhtjwBhelJ32l6ffHpnyzj6v14QxTEGWQpLvtX1iUDExNbHcm8khlbEgGzG
21
+ Zyrojk0cHg3tH4nmBei7QvuLOiDaBs2N5ITTETwExiWD2CUPCiYO0DMr0oljN/nS
22
+ KRRJsj1QOjM4/A46RjXWhmvx7RTXQdM=
23
+ -----END CERTIFICATE-----
@@ -0,0 +1,28 @@
1
+ -----BEGIN PRIVATE KEY-----
2
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1WKdDRQbeTc/Q
3
+ b+tCIfyHNN2nJ4d49ldkcTHh9NeIis+APJigvHPPOXcDpVD7MJXRJDXuelq4QZDN
4
+ VeD5CE7BFRsfit86hPoKtiZyeGuaSIYCp9gc7YjkOwkDKIu25OYw8FWQuAO6GzR4
5
+ 5HSOyNsETUAnzT2Lg2eC7m9hI2F/etnP+pRkS+9YOdvnQRAmsAZ5ad02X/4SiEQ0
6
+ 8qWkWYF52C23AkZz+yS42kDAG1r4XTcR07zpXZn6oNAp3IbVW9dUXlJUH2M85eRY
7
+ tCtNPKNzLITxLHrZlfEOWxi9AAZ3bsi7DgR6aZJPyPG+OhvyYLk9vUoCEArsQhsw
8
+ hQA/jnpPAgMBAAECggEBAKEUhzYciTZLfa1SzHCoyau7jKseVJpgjk38sedYWV7C
9
+ lf/9U0FrQ58tFwcY/+6vQFROSs1yx0RlkN6jSrtJ4tJlEfuZmiFb3tJG663AQyv/
10
+ AXI4bqF7aJ35xk6U5E1n0wRjZk2u9jiIU7qSiuoNhWWzzKnOB7310aseabap+7+D
11
+ +/gTd4rrJUCM3K4BMCLmtGUKSh/F2EpIyGM2qQC7zhsvj/F1W3V6n2UhxyNs/2dn
12
+ MS34ddmuYRTUt4qbOXeRt2duKFGHmlBhey0Q+/hdE74zV7n2Rq92UvSitP3me5al
13
+ RPpgTZ4NFa4w0rshvzbWXKBJWRj2bBk5aumx9ZWlimECgYEA4NQ7MIVpsBGwFiss
14
+ JqD4eBr+7lRRxe0+oUtYdHkoC5iGnRQACQyKjk7/5kZRWEvix9SsnhJ5YZ/GWpEl
15
+ T8FR/tCjVyOMyuNfQJ2RQ/sPcVVUys4/CCTg4UROJygpP4fz46mHysL9mREA9rFK
16
+ QWprKAZEBYi+Rv0Q9hJNRMaxDd8CgYEAzn0bVVSQ6pmqk+s1GRG62UHlXyDRn7kH
17
+ 0XvK/wQqO0A1QJzdKefXgZL6m+PI7wuYvrL9PzSYb8THwAnWWIKTqeK+T7Nb4Dzx
18
+ MSgj2DNLzGpbXdC8TlNJRytAzoVN7dhiXuyfWWZjQRe8l1NMD9h1wIqROWG152GC
19
+ xgA8MddAQZECgYBsPqIUtVbyF0IBGl4SZxPZt52fn2cTdSrfO0hmI2LdWl0NSXDO
20
+ 6oPXCj/4XUiSy05vSXymSly4XNWCCzm8kWXp2geaT5pcoGXe1T34TercdOnzDqOY
21
+ RzEiI+HAxnw9gzYwGRIw0/qG9IHTQ/5tSlA3H/Ul+PUrdnHxF1SuVT8vXwKBgAQO
22
+ 4WKj7tUtf/S4QqrjdlCewutDsdr5v/WWAT9RzaKseF90tcQFEm8xfEtkBqbsC2x0
23
+ CBYd6oEH1QUpLFVA+7XzBtp6I+wcRoE40LuHBo5V6MXHPGwtptsHNpbYd9ec0RIc
24
+ hGU1Ze35kXNH587H6kiGcKQ4D2Mkv3U0u/oeyNyBAoGAfUJI8H63XOar6TXs0Ug4
25
+ IW34WrdC8BM4cz342rXKusS6+o15wnI8kAyVkSEx54W/cK5QaIUIQNGia74UlGhq
26
+ wqGyBxn3ahZPZhu0eOE2PHIDcxS+09d87bNjpUjMcysORJV2u9klyVMc5ornV6aO
27
+ cpKHUgbAsaKX3NgPiLrgxFQ=
28
+ -----END PRIVATE KEY-----
@@ -0,0 +1,23 @@
1
+ Bag Attributes
2
+ friendlyName: user2 [on user2.databox.me]'s WebID ID
3
+ localKeyID: A4 46 1F 69 0A FB 44 4A 65 49 A9 4E 01 AC ED 57 98 90 97 37
4
+ subject=/O=WebID/CN=user2 [on user2.databox.me]
5
+ issuer=/O=WebID/CN=user2 [on user2.databox.me]
6
+ -----BEGIN CERTIFICATE-----
7
+ MIIC6TCCAlSgAwIBAgIBKjALBgkqhkiG9w0BAQswNjEOMAwGA1UEChMFV2ViSUQx
8
+ JDAiBgNVBAMMG3VzZXIyIFtvbiB1c2VyMi5kYXRhYm94Lm1lXTAeFw0wMDAxMDEw
9
+ MDAwMDBaFw00OTEyMzEyMzU5NTlaMDYxDjAMBgNVBAoTBVdlYklEMSQwIgYDVQQD
10
+ DBt1c2VyMiBbb24gdXNlcjIuZGF0YWJveC5tZV0wggEiMA0GCSqGSIb3DQEBAQUA
11
+ A4IBDwAwggEKAoIBAQDLOMg2TuQ7Hb9JxQaaDwJmEKE8YNiLN1F0vA59Xq5dwLzR
12
+ l10fJunavKMWq/E10G4QpmUcXhQgRV2T1yUA/X8fvffQrIGSqXEImPxf70zOuPB8
13
+ SkOC2DuY2agVMM+Zr9sYlzPEcqYKF1VDCUKPXtmqS7MemeyMMJjdAaEKV3p9auxM
14
+ A54JB2DgiBcXK+Hh0pw1TifD29yBPkRTPUDe28zTXfCQCfCKGkYWRd0ExKERp4TO
15
+ 00/FSx6IiS9yqkKOjqlo+1tXCqPfToACAvKSN5wQU0T5yNRpV8rSEoUeeRYH473e
16
+ W3Jp8c9A9nO//BYBJXdvuNy+fjuAWjzbIH/apAZJAgMBAAGjgYYwgYMwDAYDVR0T
17
+ AQH/BAIwADAdBgNVHQ4EFgQUMIIBIjANBgkqhkiG9w0BAQEFAAMwHwYDVR0jBBgw
18
+ FoAUMIIBIjANBgkqhkiG9w0BAQEFAAMwMwYDVR0RBCwwKoYoaHR0cHM6Ly91c2Vy
19
+ Mi5kYXRhYm94Lm1lL3Byb2ZpbGUvY2FyZCNtZTALBgkqhkiG9w0BAQsDgYEAB7ZM
20
+ UsOgkIQZFi2AsvzDWlIApAve12jyEWVL5d9RKQp1au8cNSM6M3KY1BqowiaRCW+L
21
+ 4ac1C8Ra20qcBXNHShNWU9KDhB/3dwHCfFP7CQttMI/nAK0gyvs4zfUVVA5RqAMt
22
+ sKD2YvmKfxSqgic/txA5Hor+FL2PNrcIcErJCmk=
23
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAyzjINk7kOx2/ScUGmg8CZhChPGDYizdRdLwOfV6uXcC80Zdd
3
+ Hybp2ryjFqvxNdBuEKZlHF4UIEVdk9clAP1/H7330KyBkqlxCJj8X+9MzrjwfEpD
4
+ gtg7mNmoFTDPma/bGJczxHKmChdVQwlCj17ZqkuzHpnsjDCY3QGhCld6fWrsTAOe
5
+ CQdg4IgXFyvh4dKcNU4nw9vcgT5EUz1A3tvM013wkAnwihpGFkXdBMShEaeEztNP
6
+ xUseiIkvcqpCjo6paPtbVwqj306AAgLykjecEFNE+cjUaVfK0hKFHnkWB+O93lty
7
+ afHPQPZzv/wWASV3b7jcvn47gFo82yB/2qQGSQIDAQABAoIBAF8Zwm/PuXSEtjjC
8
+ cBV2QqwayilkNNHpYEAdpTY8MaMECBiZGeXzIurO7g81BZsmX+uAwr5ktExpyaHe
9
+ w51UA8KJ9sd7guNsUc4xMaF/bdUrrLatViyMHk+oQ8Uu42fLaN94Gqyq7lK4mpjV
10
+ Y4WOYJQV+suuQolUUKTUF1WsnFDF/DSpXTtiBRhGIxkWVfIG+CDesyo5gEPV4mXi
11
+ aPLYnLHUzfFCM7U5Q05g7ibLncYOuPu72gIl8jyzGUbu4OC6gGJS62ySJxKzaUYI
12
+ tP3CMCqhOERAYJqO3flbTmZOHcU6Rd1MGOxqzu8srOhXC4VgYelR24V4Xj3EK6GH
13
+ 3rd53ZECgYEA5a+YJPykS9Q5nRkEYrx6ohaS6fpJjG7rck/NgXVchiM03YUkbzPL
14
+ lshkyJx1ZfAAC+IpbJgAFg7o/iyG5Tky6MoLb/xfhS9MO/kviLWUqBHxqKKbUKzx
15
+ yt4Xz5RHXyDB+DNtCQVt3oiGtu1BSeZc5CUwXNfA5XqRdKEuiaAYI1UCgYEA4oEH
16
+ Jhq9+qj/gk4CG/yPW/4A5fviAfbPV4DuBoDDs66ajEj05/Q2H3fp6Bgx8bzB7r/m
17
+ Jd74xtPQeQr40g40K0qC22gtf2QWTJpzeqLFtiA1kD3UkXFLefID8XNrM3Co7dio
18
+ U6tAcSaFwb1RzJOvXUuv4gt8HzBTlZHahVahPyUCgYEAnufOLgCwNlochgiR1TGq
19
+ 8ksF12S2z7bJo+t8NU2Z9p+S6pM7sse12ZrIx1YfjqftkEsm959tp9Um8vqhVSMu
20
+ iomGQjLrbvxbFL8AWOevclv/wfjF1ZnhKsZe2NkwS6shJ3OEwxIDgksYUKRyYAtF
21
+ Rv5HqGQIa3tR+Muuo76kFIUCgYBG1G513fr2vY5ZIyfJtKrn64BAawn770BbbrgA
22
+ VJfeQoWVxOLA/j9Gi+sbZyWHIK3MiTnhMd693lLc5y90EHkD6KMPFX7UzWmjvtDJ
23
+ 0sjc8SmO16b3bGRb1/CfuqYVSe+poQzSTUUznQZK1XcU8EHwfNCdcVX5MtWQejHJ
24
+ bJOz+QKBgDeqWqeOyNjvKKdBNvMUfmD0synqloshBsEOV8NM7YEdiiKsz4azIFQ/
25
+ C9OehEM/dLCUYYtIploGfnQC59gFmWNf+Hlptlymsdo00kEYBo8uYV1hgTSrid11
26
+ bcmmq8lp9j6JntmR0AND1VEXXxvLSnJv3jXK2LcW45lRDMs7zWVi
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,2 @@
1
+ --recursive
2
+ --timeout 10000
@@ -0,0 +1,146 @@
1
+ # Run tests on node server
2
+ #
3
+ # First do make run-for-test
4
+ # in parent directory.
5
+
6
+ T=http://localhost:3456/test
7
+ W=/devel/WWW
8
+ S=$W/2000/10/swap
9
+ C=python $S/cwm.py --quiet
10
+ D=python $S/cant.py
11
+
12
+ all: get-1 put-1 put-2 post-1 post-2 post-2n post-3 post-4 post-5 delete-1
13
+
14
+ clean :
15
+ rm *result* *headers.txt *.nt || echo Never mind
16
+
17
+ ws-1 :
18
+ curl -v -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" \
19
+ -H "Host: localhost:3333" -H "Origin: http://localhost:3333" $T/patch-1-initial.ttl,changes
20
+ get-1 :
21
+ curl --dump-header get-1-headers.txt $T/patch-1-initial.ttl > get-1-result.ttl
22
+ diff patch-1-initial.ttl get-1-result.ttl
23
+ # grep -i updates-via get-1-headers.txt
24
+
25
+ put-1 :
26
+ curl --upload-file put-input.txt $T/put-result.txt
27
+ diff put-input.txt put-result.txt
28
+
29
+ put-2 :
30
+ curl --upload-file put-input-2.html $T/put-result-2.html
31
+ diff put-input-2.html put-result-2.html
32
+
33
+ # try an empty patch file -- nothing should change
34
+ post-1:
35
+ cp patch-1-initial.ttl post-1-result.ttl
36
+ curl -HContent-type:application/sparql-update --data-binary @empty.spatch $T/post-1-result.ttl
37
+ # diff post-1-result.ttl patch-1-initial.ttl
38
+ $C --n3 --ntriples < post-1-result.ttl > post-1-result.nt
39
+ $C --n3 --ntriples < patch-1-initial.ttl > patch-1-final.nt
40
+ $D --from=patch-1-final.nt --diff=post-1-result.nt
41
+
42
+
43
+ #patch-2:
44
+ # cp patch-2-initial.ttl patch-2-result.ttl
45
+ # curl --request PATCH -HContent-type:application/sparql-update --data-binary @patch-2.spatch $T/patch-2-result.ttl
46
+ # diff patch-2-final.ttl patch-2-result.ttl
47
+
48
+ post-2n: # Negative test
49
+ cp patch-2-initial.ttl post-2n-result.ttl
50
+ curl --request POST -HContent-type:application/sparql-update --data-binary @patch-2n.spatch \
51
+ --dump-header post-2n-headers.txt $T/post-2n-result.ttl
52
+ # diff patch-2-final.ttl post-2-result.ttl
53
+ $C --n3 --ntriples < post-2n-result.ttl > post-2n-result.nt
54
+ $C --n3 --ntriples < patch-2-initial.ttl > patch-2n-final.nt # unchanged!
55
+ $D --from=patch-2n-final.nt --diff=post-2n-result.nt
56
+ grep 409 post-2n-headers.txt
57
+
58
+ post-2:
59
+ cp patch-2-initial.ttl post-2-result.ttl
60
+ curl --request POST -HContent-type:application/sparql-update --data-binary @patch-2.spatch \
61
+ --dump-header post-2-headers.txt $T/post-2-result.ttl
62
+ # diff patch-2-final.ttl post-2-result.ttl
63
+ $C --n3 --ntriples < post-2-result.ttl > post-2-result.nt
64
+ $C --n3 --ntriples < patch-2-final.ttl > patch-2-final.nt
65
+ $D --from=patch-2-final.nt --diff=post-2-result.nt
66
+
67
+
68
+ ################### LDPATCH example
69
+
70
+ post-3:
71
+ cp ldpatch-example-initial.ttl post-3-result.ttl
72
+ curl -HContent-type:application/sparql-update --data-binary @ldpatch-example-patch-1.spatch \
73
+ --dump-header post-3-headers.txt $T/post-3-result.ttl
74
+ # patch-3-final.ttl post-3-result.ttl
75
+ $C --n3 --ntriples < post-3-result.ttl > post-3-result.nt
76
+ $C --n3 --ntriples < patch-3-final.ttl > patch-3-final.nt
77
+ $D --from=patch-3-final.nt --diff=post-3-result.nt
78
+
79
+ post-4:
80
+ cp ldpatch-example-initial.ttl post-4-result.ttl
81
+ curl -HContent-type:application/sparql-update --data-binary @ldpatch-example-patch-2.spatch \
82
+ --dump-header post-4-headers.txt $T/post-4-result.ttl
83
+ # diff patch-4-final.ttl post-4-result.ttl
84
+ $C --n3 --ntriples < post-4-result.ttl > post-4-result.nt
85
+ $C --n3 --ntriples < patch-4-final.ttl > patch-4-final.nt
86
+ $D --from=patch-4-final.nt --diff=post-4-result.nt
87
+
88
+
89
+ ####### "DELETE DATA" in patch
90
+
91
+ post-5:
92
+ cp patch-5-initial.ttl post-5-result.ttl
93
+ curl -HContent-type:application/sparql-update --data-binary @patch-5.spatch \
94
+ --dump-header post-5-headers.txt $T/post-5-result.ttl
95
+ # diff patch-4-final.ttl post-4-result.ttl
96
+ $C --n3 --ntriples < post-5-result.ttl > post-5-result.nt
97
+ $C --n3 --ntriples < patch-5-final.ttl > patch-5-final.nt
98
+ $D --from=patch-5-final.nt --diff=post-5-result.nt
99
+
100
+ ###### DELETE method
101
+
102
+ delete-1:
103
+ cp patch-5-initial.ttl del-1-result.ttl
104
+ curl --request DELETE \
105
+ --dump-header del-1-headers.txt $T/del-1-result.ttl
106
+ echo Ignore_this_file > del-1-result.txt
107
+
108
+ #### Link-following Sparql
109
+
110
+
111
+ lfs-0:
112
+ curl http://www.w3.org/2015/02/lf-sparql/example1/q0.sparql > lfs-0.sparql
113
+ curl http://www.w3.org/2015/02/lf-sparql/example1/alice > lfs-1-target.ttl
114
+ curl -HContent-type:application/sparql --data-binary @lfs-0.sparql \
115
+ --dump-header lfs-1-headers.txt $T/lfs-1-target.ttl > lfs-0-result.json
116
+ diff lfs-0-result.json lfs-0-final.json
117
+
118
+ lfs-1:
119
+ curl http://www.w3.org/2015/02/lf-sparql/example1/q1.sparql > lfs-1.sparql
120
+ curl http://www.w3.org/2015/02/lf-sparql/example1/alice > lfs-1-target.ttl
121
+ curl -HContent-type:application/sparql --data-binary @lfs-1.sparql \
122
+ --dump-header lfs-1-headers.txt $T/lfs-1-target.ttl > lfs-1-result.json
123
+ diff lfs-1-result.json lfs-1-final.json
124
+
125
+ ######### Live update
126
+
127
+ live-2:
128
+ ./live-2.bash
129
+ mv live-2-result.n3 live-2-saved-result.n3
130
+ $C live-2-saved-result.n3 --no
131
+ grep insert live-2-saved-result.n3
132
+ grep logged live-2-saved-result.n3
133
+
134
+ # curl http://localhost:3456/test/post-1-result.ttl,changes > live-2-result.n3 &
135
+ # cp patch-2-initial.ttl post-2-result.ttl
136
+ # curl --request POST -HContent-type:application/sparql-update --data-binary @patch-2.spatch \
137
+ # --dump-header post-2-headers.txt $T/post-2-result.ttl
138
+ # $C --n3 --ntriples < post-2-result.ttl > post-2-result.nt
139
+ # $C --n3 --ntriples < patch-2-final.ttl > patch-2-final.nt
140
+ # $D --from=patch-2-final.nt --diff=post-2-result.nt
141
+ # sleep 1
142
+ # mv live-2-result.n3 live-2-saved-result.n3
143
+ # $C live-2-saved-result.n3 --no
144
+
145
+
146
+
@@ -0,0 +1 @@
1
+ {"redirect_uris":["https://localhost:3457/api/oidc/rp/https%3A%2F%2Flocalhost%3A3457"],"client_id":"5319f8e8e4ea3214c2e92b252520d355","client_secret":"b6af582c2fc6ef6aeda6d1a208a0e4aa","response_types":["code","id_token token","code id_token token"],"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"application_type":"web","client_name":"Solid OIDC RP for https://localhost:3457","id_token_signed_response_alg":"RS256","token_endpoint_auth_method":"client_secret_basic","default_max_age":86400,"post_logout_redirect_uris":["https://localhost:3457/goodbye"]}