solid-server 5.8.8-a4d2fc6d → 5.8.8-aa5971f5

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 (52) hide show
  1. package/common/js/index-buttons.mjs +3 -2
  2. package/config/templates/server/index.html +1 -1
  3. package/coverage/tmp/coverage-2253-1767788604477-0.json +1 -0
  4. package/coverage/tmp/{coverage-2271-1767346114541-0.json → coverage-2254-1767788582829-0.json} +1 -1
  5. package/default-templates/server/index.html +1 -1
  6. package/eslint.config.mjs +2 -2
  7. package/lib/acl-checker.mjs +1 -2
  8. package/lib/handlers/cors-proxy.mjs +2 -2
  9. package/lib/handlers/get.mjs +10 -6
  10. package/lib/ldp.mjs +0 -1
  11. package/lib/models/account-manager.mjs +2 -2
  12. package/lib/webid/lib/get.mjs +0 -1
  13. package/package.json +20 -21
  14. package/solid-server-5.8.8.tgz +0 -0
  15. package/test/index.mjs +0 -1
  16. package/test/integration/account-manager-test.mjs +2 -2
  17. package/test/integration/acl-oidc-test.mjs +0 -1
  18. package/test/integration/authentication-oidc-test.mjs +12 -7
  19. package/test/integration/authentication-oidc-with-strict-origins-turned-off-test.mjs +14 -9
  20. package/test/integration/params-test.mjs +5 -5
  21. package/test/resources/accounts/db/oidc/op/clients/{_key_e989e9f58cf29869c56a68ceb4256b69.json → _key_d76c5ec075d1b3e130a93bf247b05f54.json} +1 -1
  22. package/test/resources/accounts/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A3457.json +1 -1
  23. package/test/resources/accounts-scenario/alice/db/oidc/op/clients/{_key_a31de046443144df66179553447ffed2.json → _key_3c318e68342b7462e295cee3a612cd2a.json} +1 -1
  24. package/test/resources/accounts-scenario/alice/db/oidc/op/provider.json +538 -313
  25. package/test/resources/accounts-scenario/alice/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7000.json +1 -1
  26. package/test/resources/accounts-scenario/bob/db/oidc/op/clients/{_key_cf92a9f132c1973db4163b653050ac5f.json → _key_95382781901361455f193f2b09fb9f46.json} +1 -1
  27. package/test/resources/accounts-scenario/bob/db/oidc/op/provider.json +538 -313
  28. package/test/resources/accounts-scenario/bob/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7001.json +1 -1
  29. package/test/resources/accounts-scenario/charlie/db/oidc/op/clients/{_key_25fe3c0bf640a75aecd0ccb1c2951eb1.json → _key_10c632398f20554089610cc169f07ef0.json} +1 -1
  30. package/test/resources/accounts-scenario/charlie/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A5002.json +1 -1
  31. package/test/resources/accounts-strict-origin-off/alice/db/oidc/op/clients/{_key_1a5ed3aa47de01ee7438f2537e1b5331.json → _key_d3f579e3e56ee4b3cc35ec8c0022368d.json} +1 -1
  32. package/test/resources/accounts-strict-origin-off/alice/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7010.json +1 -1
  33. package/test/resources/accounts-strict-origin-off/bob/db/oidc/op/clients/{_key_30b67c31ec6753bde889bbb157e879c5.json → _key_801a614f474ed46925df9e107dc94862.json} +1 -1
  34. package/test/resources/accounts-strict-origin-off/bob/db/oidc/rp/clients/_key_https%3A%2F%2Flocalhost%3A7011.json +1 -1
  35. package/test/resources/config/templates/server/index.html +1 -1
  36. package/test/unit/account-manager-test.mjs +2 -2
  37. package/test/unit/email-welcome-test.mjs +1 -1
  38. package/test/unit/utils-test.mjs +1 -3
  39. package/test/utils/index.mjs +0 -1
  40. package/test/utils.mjs +3 -4
  41. package/common/js/auth-buttons.js +0 -67
  42. package/common/js/index-buttons.js +0 -44
  43. package/config/defaults.js +0 -25
  44. package/config/templates/emails/delete-account.js +0 -49
  45. package/config/templates/emails/invalid-username.js +0 -30
  46. package/config/templates/emails/reset-password.js +0 -49
  47. package/config/templates/emails/welcome.js +0 -39
  48. package/coverage/tmp/coverage-2270-1767346136095-0.json +0 -1
  49. package/default-templates/emails/delete-account.js +0 -49
  50. package/default-templates/emails/invalid-username.js +0 -30
  51. package/default-templates/emails/reset-password.js +0 -49
  52. package/default-templates/emails/welcome.js +0 -39
@@ -48,7 +48,7 @@
48
48
  </div> <!-- end container-->
49
49
 
50
50
  <script src="/mashlib.js"></script>
51
- <script src="/common/js/index-buttons.js"></script>
51
+ <script src="/common/js/index-buttons.mjs"></script>
52
52
 
53
53
  </body>
54
54
  </html>
package/eslint.config.mjs CHANGED
@@ -21,7 +21,7 @@ export default [
21
21
  },
22
22
  rules: {
23
23
  // StandardJS-like rules
24
- 'no-unused-vars': ['error', {
24
+ 'no-unused-vars': ['warn', {
25
25
  args: 'none',
26
26
  caughtErrors: 'none',
27
27
  ignoreRestSiblings: true,
@@ -99,4 +99,4 @@ export default [
99
99
  'resources/**'
100
100
  ]
101
101
  }
102
- ]
102
+ ]
@@ -9,7 +9,6 @@ import aclCheck from '@solid/acl-check'
9
9
  import Url, { URL } from 'url'
10
10
  import { promisify } from 'util'
11
11
  import fs from 'fs'
12
- import httpFetch from 'node-fetch'
13
12
 
14
13
  export const DEFAULT_ACL_SUFFIX = '.acl'
15
14
  const ACL = rdf.Namespace('http://www.w3.org/ns/auth/acl#')
@@ -308,7 +307,7 @@ function fetchLocalOrRemote (mapper, serverUri) {
308
307
  body = await promisify(fs.readFile)(path, { encoding: 'utf8' })
309
308
  } else {
310
309
  // Fetch the acl from the internet
311
- const response = await httpFetch(url)
310
+ const response = await fetch(url)
312
311
  body = await response.text()
313
312
  contentType = response.headers.get('content-type')
314
313
  }
@@ -3,7 +3,7 @@ import cors from 'cors'
3
3
  import debug from '../debug.mjs'
4
4
  import url from 'url'
5
5
  import dns from 'dns'
6
- import isIp from 'is-ip'
6
+ import { isIP } from 'is-ip'
7
7
  import ipRange from 'ip-range-check'
8
8
  import validUrl from 'valid-url'
9
9
 
@@ -73,7 +73,7 @@ function extractProxyConfig (req, res, next) {
73
73
 
74
74
  // Parse the URL and retrieve its host's IP address
75
75
  const { protocol, host, hostname, path } = url.parse(uri)
76
- if (isIp(hostname)) {
76
+ if (isIP(hostname)) {
77
77
  addProxyConfig(null, hostname)
78
78
  } else {
79
79
  dns.lookup(hostname, addProxyConfig)
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { createRequire } from 'module'
4
4
  import fs from 'fs'
5
- import glob from 'glob'
5
+ import { glob, hasMagic } from 'glob'
6
6
  import _path from 'path'
7
7
  import $rdf from 'rdflib'
8
8
  import Negotiator from 'negotiator'
@@ -37,7 +37,7 @@ export default async function handler (req, res, next) {
37
37
 
38
38
  res.header('Accept-Patch', 'text/n3, application/sparql-update, application/sparql-update-single-match')
39
39
  res.header('Accept-Post', '*/*')
40
- if (!path.endsWith('/') && !glob.hasMagic(path)) res.header('Accept-Put', '*/*')
40
+ if (!path.endsWith('/') && !hasMagic(path)) res.header('Accept-Put', '*/*')
41
41
 
42
42
  // Set live updates
43
43
  if (ldp.live) {
@@ -62,7 +62,7 @@ export default async function handler (req, res, next) {
62
62
  // set Accept-Put if container do not exist
63
63
  if (err.status === 404 && path.endsWith('/')) res.header('Accept-Put', 'text/turtle')
64
64
  // use globHandler if magic is detected
65
- if (err.status === 404 && glob.hasMagic(path)) {
65
+ if (err.status === 404 && hasMagic(path)) {
66
66
  debug('forwarding to glob request')
67
67
  return globHandler(req, res, next)
68
68
  } else {
@@ -188,8 +188,9 @@ async function globHandler (req, res, next) {
188
188
  nodir: true
189
189
  }
190
190
 
191
- glob(`${folderPath}*`, globOptions, async (err, matches) => {
192
- if (err || matches.length === 0) {
191
+ try {
192
+ const matches = await glob(`${folderPath}*`, globOptions)
193
+ if (matches.length === 0) {
193
194
  debugGlob('No files matching the pattern')
194
195
  return next(HTTPError(404, 'No files matching glob pattern'))
195
196
  }
@@ -230,7 +231,10 @@ async function globHandler (req, res, next) {
230
231
 
231
232
  res.send(data)
232
233
  next()
233
- })
234
+ } catch (err) {
235
+ debugGlob('Error during glob: ' + err)
236
+ return next(HTTPError(500, 'Error processing glob pattern'))
237
+ }
234
238
  }
235
239
 
236
240
  // TODO: get rid of this ugly hack that uses the Allow handler to check read permissions
package/lib/ldp.mjs CHANGED
@@ -12,7 +12,6 @@ import extend from 'extend'
12
12
  import rimraf from 'rimraf'
13
13
  import { exec } from 'child_process'
14
14
  import * as ldpContainer from './ldp-container.mjs'
15
- import fetch from 'node-fetch'
16
15
  import { promisify } from 'util'
17
16
  import withLock from './lock.mjs'
18
17
  import { clearAclCache } from './acl-checker.mjs'
@@ -275,7 +275,7 @@ class AccountManager {
275
275
  webId: userAccount.webId,
276
276
  resetUrl
277
277
  }
278
- return this.emailService.sendWithTemplate('reset-password', emailData)
278
+ return this.emailService.sendWithTemplate('reset-password.mjs', emailData)
279
279
  })
280
280
  }
281
281
 
@@ -289,7 +289,7 @@ class AccountManager {
289
289
  webid: newUser.webId,
290
290
  name: newUser.displayName
291
291
  }
292
- return emailService.sendWithTemplate('welcome', emailData)
292
+ return emailService.sendWithTemplate('welcome.mjs', emailData)
293
293
  }
294
294
  }
295
295
 
@@ -1,4 +1,3 @@
1
- import fetch from 'node-fetch'
2
1
  import { URL } from 'url'
3
2
 
4
3
  export default function get (webid, callback) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "solid-server",
3
3
  "description": "Solid server on top of the file-system",
4
- "version": "5.8.8-a4d2fc6d",
4
+ "version": "5.8.8-aa5971f5",
5
5
  "author": {
6
6
  "name": "Tim Berners-Lee",
7
7
  "email": "timbl@w3.org"
@@ -59,13 +59,13 @@
59
59
  "homepage": "https://github.com/solid/node-solid-server",
60
60
  "bugs": "https://github.com/solid/node-solid-server/issues",
61
61
  "dependencies": {
62
- "@fastify/busboy": "^1.2.1",
62
+ "@fastify/busboy": "^3.2.0",
63
63
  "@fastify/pre-commit": "^2.2.1",
64
64
  "@solid/acl-check": "^0.4.5",
65
- "@solid/oidc-auth-manager": "^0.25.1",
65
+ "@solid/oidc-auth-manager": "^0.25.2",
66
66
  "@solid/oidc-op": "^0.12.1",
67
- "@solid/oidc-rp": "^0.12.0",
68
- "@solid/solid-multi-rp-client": "^0.7.0",
67
+ "@solid/oidc-rp": "^0.12.1",
68
+ "@solid/solid-multi-rp-client": "^0.7.2",
69
69
  "async-lock": "^1.4.1",
70
70
  "body-parser": "^1.20.4",
71
71
  "bootstrap": "^3.4.1",
@@ -73,7 +73,7 @@
73
73
  "camelize": "^1.0.1",
74
74
  "cheerio": "^1.1.2",
75
75
  "colorette": "^2.0.20",
76
- "commander": "^8.3.0",
76
+ "commander": "^14.0.2",
77
77
  "cors": "^2.8.5",
78
78
  "debug": "^4.4.3",
79
79
  "eslint": "^9.39.2",
@@ -85,27 +85,26 @@
85
85
  "express-session": "^1.18.2",
86
86
  "extend": "^3.0.2",
87
87
  "from2": "^2.3.0",
88
- "fs-extra": "^10.1.0",
88
+ "fs-extra": "^11.3.3",
89
89
  "get-folder-size": "^2.0.1",
90
- "glob": "^7.2.3",
90
+ "glob": "^13.0.0",
91
91
  "global-tunnel-ng": "^2.7.1",
92
92
  "handlebars": "^4.7.8",
93
93
  "http-proxy-middleware": "^2.0.9",
94
94
  "inquirer": "^8.2.7",
95
- "into-stream": "^5.1.1",
95
+ "into-stream": "^9.0.0",
96
96
  "ip-range-check": "0.2.0",
97
- "is-ip": "^2.0.0",
97
+ "is-ip": "^5.0.1",
98
98
  "li": "^1.3.0",
99
- "mashlib": "^1.11.1",
100
- "mime-types": "^2.1.35",
101
- "negotiator": "^0.6.4",
102
- "node-fetch": "^2.7.0",
99
+ "mashlib": "^2.0.0",
100
+ "mime-types": "^3.0.2",
101
+ "negotiator": "^1.0.0",
103
102
  "node-forge": "^1.3.3",
104
103
  "node-mailer": "^0.1.1",
105
104
  "nodemailer": "^7.0.12",
106
105
  "oidc-op-express": "^0.0.3",
107
106
  "owasp-password-strength-test": "^1.3.0",
108
- "rdflib": "^2.3.2",
107
+ "rdflib": "^2.3.5",
109
108
  "recursive-readdir": "^2.2.3",
110
109
  "rimraf": "^3.0.2",
111
110
  "solid-auth-client": "^2.5.6",
@@ -113,7 +112,7 @@
113
112
  "solid-ws": "^0.4.3",
114
113
  "text-encoder-lite": "^2.0.0",
115
114
  "the-big-username-blacklist": "^1.5.2",
116
- "ulid": "^2.4.0",
115
+ "ulid": "^3.0.2",
117
116
  "urijs": "^1.19.11",
118
117
  "uuid": "^13.0.0",
119
118
  "valid-url": "^1.0.9",
@@ -123,15 +122,15 @@
123
122
  "devDependencies": {
124
123
  "@cxres/structured-headers": "^2.0.0-nesting.0",
125
124
  "@eslint/js": "^9.39.2",
126
- "@solid/solid-auth-oidc": "^0.6.0",
125
+ "@solid/solid-auth-oidc": "^0.6.1",
127
126
  "c8": "^10.1.3",
128
127
  "chai": "^4.5.0",
129
128
  "chai-as-promised": "7.1.2",
130
- "cross-env": "7.0.3",
129
+ "cross-env": "^10.1.0",
131
130
  "dirty-chai": "2.0.1",
132
131
  "globals": "^17.0.0",
133
132
  "localstorage-memory": "1.0.3",
134
- "mocha": "^10.8.2",
133
+ "mocha": "^11.7.5",
135
134
  "nock": "^13.5.6",
136
135
  "node-mocks-http": "^1.17.2",
137
136
  "prep-fetch": "^0.1.0",
@@ -139,9 +138,9 @@
139
138
  "sinon": "12.0.1",
140
139
  "sinon-chai": "3.7.0",
141
140
  "snyk": "^1.1301.2",
142
- "supertest": "^6.3.4",
141
+ "supertest": "^7.2.2",
143
142
  "turtle-validator": "1.1.1",
144
- "whatwg-url": "11.0.0"
143
+ "whatwg-url": "^15.1.0"
145
144
  },
146
145
  "pre-commit": [
147
146
  "lint"
Binary file
package/test/index.mjs CHANGED
@@ -7,7 +7,6 @@ import dns from 'dns'
7
7
  import ldnode from '../../index.mjs'
8
8
  // import ldnode from '../index.mjs'
9
9
  import supertest from 'supertest'
10
- import fetch from 'node-fetch'
11
10
  import https from 'https'
12
11
 
13
12
  const __filename = fileURLToPath(import.meta.url)
@@ -51,7 +51,7 @@ describe('AccountManager', () => {
51
51
  // Note: test/resources/accounts/tim.localhost/ exists in this repo
52
52
  return accountManager.accountExists('tim')
53
53
  .then(exists => {
54
- console.log('DEBUG tim exists:', exists, typeof exists)
54
+ // console.log('DEBUG tim exists:', exists, typeof exists)
55
55
  expect(exists).to.not.be.false
56
56
  })
57
57
  })
@@ -60,7 +60,7 @@ describe('AccountManager', () => {
60
60
  // Note: test/resources/accounts/alice.localhost/ does NOT exist
61
61
  return accountManager.accountExists('alice')
62
62
  .then(exists => {
63
- console.log('DEBUG alice exists:', exists, typeof exists)
63
+ // console.log('DEBUG alice exists:', exists, typeof exists)
64
64
  expect(exists).to.not.be.false
65
65
  })
66
66
  })
@@ -1,6 +1,5 @@
1
1
  import { assert } from 'chai'
2
2
  import fs from 'fs-extra'
3
- import fetch from 'node-fetch'
4
3
  import path from 'path'
5
4
  import { fileURLToPath } from 'url'
6
5
  import { loadProvider, rm, checkDnsSettings, cleanDir } from '../utils.mjs'
@@ -6,7 +6,6 @@ import { UserStore } from '@solid/oidc-auth-manager'
6
6
  import UserAccount from '../../lib/models/user-account.mjs'
7
7
  import SolidAuthOIDC from '@solid/solid-auth-oidc'
8
8
 
9
- import fetch from 'node-fetch'
10
9
  import localStorage from 'localstorage-memory'
11
10
  import { URL, URLSearchParams } from 'whatwg-url'
12
11
  import { cleanDir, cp } from '../utils.mjs'
@@ -642,7 +641,7 @@ describe('Authentication API (OIDC)', () => {
642
641
  // Since user is not logged in, /authorize redirects to /login
643
642
  expect(res.status).to.equal(302)
644
643
 
645
- loginUri = new URL(res.headers.get('location'))
644
+ loginUri = new URL(res.headers.get('location'), aliceServerUri)
646
645
  expect(loginUri.toString().startsWith(aliceServerUri + '/login'))
647
646
  .to.be.true()
648
647
 
@@ -686,9 +685,11 @@ describe('Authentication API (OIDC)', () => {
686
685
  })
687
686
  .then(res => {
688
687
  expect(res.status).to.equal(302)
689
- postLoginUri = res.headers.get('location')
690
- cookie = res.headers.get('set-cookie')
691
-
688
+ const location = res.headers.get('location')
689
+ postLoginUri = new URL(location, aliceServerUri).toString()
690
+ // Native fetch: get first set-cookie header
691
+ const setCookieHeaders = res.headers.getSetCookie ? res.headers.getSetCookie() : [res.headers.get('set-cookie')]
692
+ cookie = setCookieHeaders[0]
692
693
  // Successful login gets redirected back to /authorize and then
693
694
  // back to app
694
695
  expect(postLoginUri.startsWith(aliceServerUri + '/sharing'))
@@ -712,7 +713,9 @@ describe('Authentication API (OIDC)', () => {
712
713
  })
713
714
  .then(res => {
714
715
  expect(res.status).to.equal(302)
715
- postSharingUri = res.headers.get('location')
716
+ const location = res.headers.get('location')
717
+ postSharingUri = new URL(location, aliceServerUri).toString()
718
+
716
719
  // cookie = res.headers.get('set-cookie')
717
720
 
718
721
  // Successful login gets redirected back to /authorize and then
@@ -724,7 +727,9 @@ describe('Authentication API (OIDC)', () => {
724
727
  .then(res => {
725
728
  // User gets redirected back to original app
726
729
  expect(res.status).to.equal(302)
727
- callbackUri = res.headers.get('location')
730
+ const location = res.headers.get('location')
731
+ callbackUri = location.startsWith('http') ? location : new URL(location, aliceServerUri).toString()
732
+
728
733
  expect(callbackUri.startsWith('https://app.example.com#'))
729
734
  })
730
735
  })
@@ -6,7 +6,6 @@ import { UserStore } from '@solid/oidc-auth-manager'
6
6
  import UserAccount from '../../lib/models/user-account.mjs'
7
7
  import SolidAuthOIDC from '@solid/solid-auth-oidc'
8
8
 
9
- import fetch from 'node-fetch'
10
9
  import localStorage from 'localstorage-memory'
11
10
  import { URL, URLSearchParams } from 'whatwg-url'
12
11
  import { cleanDir, cp } from '../utils.mjs'
@@ -463,7 +462,7 @@ describe('Authentication API (OIDC) - With strict origins turned off', () => {
463
462
  // Since user is not logged in, /authorize redirects to /login
464
463
  expect(res.status).to.equal(302)
465
464
 
466
- loginUri = new URL(res.headers.get('location'))
465
+ loginUri = new URL(res.headers.get('location'), aliceServerUri)
467
466
  expect(loginUri.toString().startsWith(aliceServerUri + '/login'))
468
467
  .to.be.true()
469
468
 
@@ -507,8 +506,11 @@ describe('Authentication API (OIDC) - With strict origins turned off', () => {
507
506
  })
508
507
  .then(res => {
509
508
  expect(res.status).to.equal(302)
510
- postLoginUri = res.headers.get('location')
511
- cookie = res.headers.get('set-cookie')
509
+ const location = res.headers.get('location')
510
+ postLoginUri = new URL(location, aliceServerUri).toString()
511
+ // Native fetch: get first set-cookie header
512
+ const setCookieHeaders = res.headers.getSetCookie ? res.headers.getSetCookie() : [res.headers.get('set-cookie')]
513
+ cookie = setCookieHeaders[0]
512
514
 
513
515
  // Successful login gets redirected back to /authorize and then
514
516
  // back to app
@@ -533,20 +535,23 @@ describe('Authentication API (OIDC) - With strict origins turned off', () => {
533
535
  })
534
536
  .then(res => {
535
537
  expect(res.status).to.equal(302)
536
- const postLoginUri = res.headers.get('location')
537
- const cookie = res.headers.get('set-cookie')
538
+ const location = res.headers.get('location')
539
+ const postSharingUri = new URL(location, aliceServerUri).toString()
540
+ const setCookieHeaders = res.headers.getSetCookie ? res.headers.getSetCookie() : [res.headers.get('set-cookie')]
541
+ const cookieFromSharing = setCookieHeaders[0] || cookie
538
542
 
539
543
  // Successful login gets redirected back to /authorize and then
540
544
  // back to app
541
- expect(postLoginUri.startsWith(aliceServerUri + '/authorize'))
545
+ expect(postSharingUri.startsWith(aliceServerUri + '/authorize'))
542
546
  .to.be.true()
543
547
 
544
- return fetch(postLoginUri, { redirect: 'manual', headers: { cookie } })
548
+ return fetch(postSharingUri, { redirect: 'manual', headers: { cookie: cookieFromSharing } })
545
549
  })
546
550
  .then(res => {
547
551
  // User gets redirected back to original app
548
552
  expect(res.status).to.equal(302)
549
- callbackUri = res.headers.get('location')
553
+ const location = res.headers.get('location')
554
+ callbackUri = location.startsWith('http') ? location : new URL(location, aliceServerUri).toString()
550
555
  expect(callbackUri.startsWith('https://app.example.com#'))
551
556
  })
552
557
  })
@@ -11,7 +11,7 @@ import ldnode, { createServer } from '../../index.mjs'
11
11
 
12
12
  const __filename = fileURLToPath(import.meta.url)
13
13
  const __dirname = path.dirname(__filename)
14
- console.log(getTestRoot())
14
+ // console.log(getTestRoot())
15
15
 
16
16
  describe('LDNODE params', function () {
17
17
  describe('suffixMeta', function () {
@@ -46,7 +46,7 @@ describe('LDNODE params', function () {
46
46
 
47
47
  it('should fallback on current working directory', function () {
48
48
  assert.equal(path.normalize(ldp.locals.ldp.resourceMapper._rootPath), path.normalize(process.cwd()))
49
- console.log('Root path is', ldp.locals.ldp.resourceMapper._rootPath)
49
+ // console.log('Root path is', ldp.locals.ldp.resourceMapper._rootPath)
50
50
  })
51
51
 
52
52
  it('new : should find resource in correct path', function (done) {
@@ -57,7 +57,7 @@ describe('LDNODE params', function () {
57
57
  const fileContent = '<#current> <#temp> 123 .'
58
58
  fs.mkdirSync(dirPath, { recursive: true })
59
59
  fs.writeFileSync(filePath, fileContent)
60
- console.log('Wrote file to', filePath)
60
+ // console.log('Wrote file to', filePath)
61
61
  server.get('/sampleContainer/example.ttl')
62
62
  .expect('Link', /http:\/\/www.w3.org\/ns\/ldp#Resource/)
63
63
  .expect(200)
@@ -71,7 +71,7 @@ describe('LDNODE params', function () {
71
71
  it.skip('initial : should find resource in correct path', function (done) {
72
72
  // Write to the default resources directory, matching the server's root
73
73
  const resourcePath = path.join('sampleContainer', 'example.ttl')
74
- console.log('initial : Writing test resource to', resourcePath)
74
+ // console.log('initial : Writing test resource to', resourcePath)
75
75
  setTestRoot(path.join(__dirname, '../resources/'))
76
76
  write('<#current> <#temp> 123 .', resourcePath)
77
77
 
@@ -102,7 +102,7 @@ describe('LDNODE params', function () {
102
102
  const fileContent = '<#current> <#temp> 123 .'
103
103
  fs.mkdirSync(dirPath, { recursive: true })
104
104
  fs.writeFileSync(filePath, fileContent)
105
- console.log('Wrote file to', filePath)
105
+ // console.log('Wrote file to', filePath)
106
106
 
107
107
  server.get('/sampleContainer/example.ttl')
108
108
  .expect('Link', /http:\/\/www.w3.org\/ns\/ldp#Resource/)
@@ -1 +1 @@
1
- {"redirect_uris":["https://localhost:3457/api/oidc/rp/https%3A%2F%2Flocalhost%3A3457"],"client_id":"e989e9f58cf29869c56a68ceb4256b69","client_secret":"83b4b30768f1e17b70b54812242c757c","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"]}
1
+ {"redirect_uris":["https://localhost:3457/api/oidc/rp/https%3A%2F%2Flocalhost%3A3457"],"client_id":"d76c5ec075d1b3e130a93bf247b05f54","client_secret":"5fa106cf0bf13777763e37fc42194dd4","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"]}
@@ -1 +1 @@
1
- {"provider":{"url":"https://localhost:3457","configuration":{"issuer":"https://localhost:3457","jwks_uri":"https://localhost:3457/jwks","scopes_supported":["openid","offline_access"],"response_types_supported":["code","code token","code id_token","id_token","id_token token","code id_token token","none"],"token_types_supported":["legacyPop","dpop"],"response_modes_supported":["query","fragment"],"grant_types_supported":["authorization_code","implicit","refresh_token","client_credentials"],"subject_types_supported":["public"],"id_token_signing_alg_values_supported":["RS256","RS384","RS512","none"],"token_endpoint_auth_methods_supported":["client_secret_basic"],"token_endpoint_auth_signing_alg_values_supported":["RS256"],"display_values_supported":[],"claim_types_supported":["normal"],"claims_supported":[],"claims_parameter_supported":false,"request_parameter_supported":true,"request_uri_parameter_supported":false,"require_request_uri_registration":false,"check_session_iframe":"https://localhost:3457/session","end_session_endpoint":"https://localhost:3457/logout","authorization_endpoint":"https://localhost:3457/authorize","token_endpoint":"https://localhost:3457/token","userinfo_endpoint":"https://localhost:3457/userinfo","registration_endpoint":"https://localhost:3457/register"},"jwks":{"keys":[{"kid":"lNZOB-DPE1k","kty":"RSA","alg":"RS256","n":"uvih8HfZj7Wu5Y8knLHxRY6v7oHL2jXWD-B6hXCreYhwaG9EEUt6Rp94p8-JBug3ywo8C_9dNg0RtQLEttcIC_vhqqlJI3pZxpGKXuD9h7XK-PppFVvgnfIGADG0Z-WzbcGDxlefStohR31Hjw5U3ioG3VtXGAYbqlOHM1l2UgDMJwBD5qwFmPP8gp5E2WQKCsuLvxDuOrkAbSDjw2zaI3RRmbLzdj4QkGej8GXhBptgM9RwcKmnoXu0sUdlootmcdiEg74yQ9M6EshNMhiv4k_W0rl7RqVOEL2PsAdmdbF_iWL8a90rGYOEILBrlU6bBR2mTvjV_Hvq-ifFy1YAmQ","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"Y38YKDtydoE","kty":"RSA","alg":"RS384","n":"tfgZKLjc8UMIblfAlVibJI_2uAxDNprn2VVLebS0sp6d1mtCXQkMYLlJ6e-7kavl8we391Ovnq5bRgpsFRq_LtRX9MpVlfioAUHwWPEG-R6vrQjgo4uynVhI3UEPHyNmZA5J4u34HNVTfAgmquomwwOmOv29ZNRxuYP1kVtscz1JeFPwg6LA7BxWrLc9ev4FQR6tjJKdo2kdLjAXR92odbCzJZ_jdYT3vIVCexMHxhoKnqCImkhfgKbGXcPHXWcelmuA2tzBaLut-Jjo0nJVQjRNDqy0Gyac0TptwFIxaiyHeTqugolUmEaJSfBSLszIRdlOTIGPJ7zdg5dJFK_Lxw","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"WyMVv6BJ5Dk","kty":"RSA","alg":"RS512","n":"5JDlpbm2TjSW1wpdUZc5NHOqVVrNH_GumoODK_mk-MqImaIRpdR9b1ZJrK6FrW7HIF2bXvebD7olmp9a1goqe-ILbL_ORmhzlhRtyhjWQ-UOZqK5yOXqXXGQXgmok6TN-s55A-h_g12A7Yk5Y5S8EVa9EA4Axwqvm-Q_AkH0yS1qJo6BXYXb1fx205ucx-Ccot2LEBfxv8M7NOFTa-_G-sNchiKQMRoLhbZtLbSK2R1jkqGciEiRSLeXNG4nDu7Wd91-vhBixA1McxnzW96mW8lQwNXXo4gNH7SjONtYLlPQhZVEbmsQmXrOQN8a5RDkybFOIsbucItizSE9V_D7WQ","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"UykSj_HLgFA","kty":"RSA","alg":"RS256","n":"u79eQlGJN2XFNR-uEmPVtrB_ENRqaS81o6m63tZ5-PwhGHCwJ7rfVnnnvf6Ij_p91Z9pNpWBIVyZcw6UmQIoIBH-3BfxdaqhBxX9bf_N78TKj8_HU5IYjGijale4gog3kj9W2tJJO7R9iA43msjwLRD7pbAHp1iKFJgVTSXJlyLRbC82Dj4ivsEgJjPGvZt16OsGP5myIQwXEGzSPcEI0R9daZE5iM6xFZosaJ8B77eU-Aj3ciwxUBPi5BSZi2P1ZsF4QgSj3N7ZLbVKNW4FFr84IamA2YI0D7PyyNAE2PUZT8n0jHWRJKunuZuy5mgBY8H41KdBI6gNJqY90nHeJw","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"BJDNTt8RpPE","kty":"RSA","alg":"RS384","n":"nXTd5AoT220nBkW6Zeax8caUI7_Tt0y4v9TEW8TOrzCVvhLBiKpQPjILUTfkGHzxPtysEzDQFSYdHWvg_fvGYItjJBunBMsKCNcb2_CDr2HXD6C0s62bAgct8bBSoaT1MLQ_3MaFKXSF3ZuB87X2B8CVUJ386HP2GY1kl54BuMdFELNZYhy9S_D0KHnQls52Vvb99X9WaYOyxvfr03PG-9EycnkWas5tn1pPFzT0DtJtBJ4IBtXQxTr98jpn_MCz1gRnMgzzkfSOcrMkkMXxePqxNINVKFXtRy7DaJiFOcCMbuK2RJUkSfY2uKcx0aKbp5Xhvix1W8N7c0Y90i6_6w","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"z8iijSOOIs4","kty":"RSA","alg":"RS512","n":"rPCHP9XeTGOLf1Ezxeq_bdGdvYQZa993YcSVudT0EN6drTWqjykhUVEkT4MGAvLvax38kLARbPUTgMUV9UckDDWn6lRq4q6IZ5pytNOieQKZHzjEmQGzlbnEn1F2m1i5SAfBL-qsnt5q2RXMAiIUXk9q1ChJEHJxOZxnRIoQMc7yTsjjSdtIZKePFiYFn0nsl3A234ByyIBRjzZeoYEtTQKjDR7fP9LO78oZAgpwoGqmfI4IltqQYkFoqrN8I8l1yiJGyuvZRgDXUZ2fxGOQx2WD4xvlFL2TOCfN1UaPE9R4JdbRLLAOf5u1Sqnh4XTjDBhBbVodsmmbtvk4wFo-GQ","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"zD76wa11A2Y","kty":"RSA","alg":"RS256","n":"nMaSioq1An1J3tbkmc-zRrR8lkbP-WUVRuYhDxQvV-OcBw1R6cdyCcoeFJ1zuUT7ne6BlU6GMPRHuRKaH0KuOaiktUYtXm06T_HvtKFgCQSAKjMUj_ZHfTAJP8ahUsIc0D995XKp7nIGRF7Iy7I24QQFPRh7PmGlREZ52GJgYQgbm020-sWani0MqHoUFBlWxZW9NEqY1c3brN_qWnzjRKly6Kkk3sW1XHPcRLvoHnHQ6TKXJ8pfl-bNjTfK6zq9fDCZ_TY3qQZy66yT_2XPO6X0GHTdJsZlCj7Jg0qrilTHUkJra1bppTSAtVSQnSmYt_IV8zOYiVdJ3kw2khPcKw","e":"AQAB","key_ops":["verify"],"ext":true}]}},"defaults":{},"registration":{"redirect_uris":["https://localhost:3457/api/oidc/rp/https%3A%2F%2Flocalhost%3A3457"],"client_id":"e989e9f58cf29869c56a68ceb4256b69","client_secret":"83b4b30768f1e17b70b54812242c757c","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"],"registration_access_token":"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2xvY2FsaG9zdDozNDU3IiwiYXVkIjoiZTk4OWU5ZjU4Y2YyOTg2OWM1NmE2OGNlYjQyNTZiNjkiLCJzdWIiOiJlOTg5ZTlmNThjZjI5ODY5YzU2YTY4Y2ViNDI1NmI2OSJ9.QMK440DC5sYY5ArnaA_K5NkJ9lDVup3mw0fXUfiM0lHpaflb6bkyAPU8WQ5qYKTlwE_eaNkHqXRugo46ImlexqvyhUzXsrf2jXUBLbAtBVJ48JQ1pICntm5x2hAntTqcvFj5xKTPGb8DbiN7Tu71igSj5EjoIETQDPh75bbNBSe-qabAsWiZiPIQkJz90A7H4DyYQ3MNMeXkRhbNMwB4V0dKUUdMn1N8tTpkT2zyKQ8OYqTlX8xWcT5Zro0CBY-CiEZqFTaGMNlD2WfLLaJPRanuzgBP898zzfUtw9ABsc-H5KWc0hYEXBhmobPAK0BhvhMbf9fHzXyx-J2-p1tZzw","registration_client_uri":"https://localhost:3457/register/e989e9f58cf29869c56a68ceb4256b69","client_id_issued_at":1767346119,"client_secret_expires_at":0},"store":{}}
1
+ {"provider":{"url":"https://localhost:3457","configuration":{"issuer":"https://localhost:3457","jwks_uri":"https://localhost:3457/jwks","scopes_supported":["openid","offline_access"],"response_types_supported":["code","code token","code id_token","id_token","id_token token","code id_token token","none"],"token_types_supported":["legacyPop","dpop"],"response_modes_supported":["query","fragment"],"grant_types_supported":["authorization_code","implicit","refresh_token","client_credentials"],"subject_types_supported":["public"],"id_token_signing_alg_values_supported":["RS256","RS384","RS512","none"],"token_endpoint_auth_methods_supported":["client_secret_basic"],"token_endpoint_auth_signing_alg_values_supported":["RS256"],"display_values_supported":[],"claim_types_supported":["normal"],"claims_supported":[],"claims_parameter_supported":false,"request_parameter_supported":true,"request_uri_parameter_supported":false,"require_request_uri_registration":false,"check_session_iframe":"https://localhost:3457/session","end_session_endpoint":"https://localhost:3457/logout","authorization_endpoint":"https://localhost:3457/authorize","token_endpoint":"https://localhost:3457/token","userinfo_endpoint":"https://localhost:3457/userinfo","registration_endpoint":"https://localhost:3457/register"},"jwks":{"keys":[{"kid":"lNZOB-DPE1k","kty":"RSA","alg":"RS256","n":"uvih8HfZj7Wu5Y8knLHxRY6v7oHL2jXWD-B6hXCreYhwaG9EEUt6Rp94p8-JBug3ywo8C_9dNg0RtQLEttcIC_vhqqlJI3pZxpGKXuD9h7XK-PppFVvgnfIGADG0Z-WzbcGDxlefStohR31Hjw5U3ioG3VtXGAYbqlOHM1l2UgDMJwBD5qwFmPP8gp5E2WQKCsuLvxDuOrkAbSDjw2zaI3RRmbLzdj4QkGej8GXhBptgM9RwcKmnoXu0sUdlootmcdiEg74yQ9M6EshNMhiv4k_W0rl7RqVOEL2PsAdmdbF_iWL8a90rGYOEILBrlU6bBR2mTvjV_Hvq-ifFy1YAmQ","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"Y38YKDtydoE","kty":"RSA","alg":"RS384","n":"tfgZKLjc8UMIblfAlVibJI_2uAxDNprn2VVLebS0sp6d1mtCXQkMYLlJ6e-7kavl8we391Ovnq5bRgpsFRq_LtRX9MpVlfioAUHwWPEG-R6vrQjgo4uynVhI3UEPHyNmZA5J4u34HNVTfAgmquomwwOmOv29ZNRxuYP1kVtscz1JeFPwg6LA7BxWrLc9ev4FQR6tjJKdo2kdLjAXR92odbCzJZ_jdYT3vIVCexMHxhoKnqCImkhfgKbGXcPHXWcelmuA2tzBaLut-Jjo0nJVQjRNDqy0Gyac0TptwFIxaiyHeTqugolUmEaJSfBSLszIRdlOTIGPJ7zdg5dJFK_Lxw","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"WyMVv6BJ5Dk","kty":"RSA","alg":"RS512","n":"5JDlpbm2TjSW1wpdUZc5NHOqVVrNH_GumoODK_mk-MqImaIRpdR9b1ZJrK6FrW7HIF2bXvebD7olmp9a1goqe-ILbL_ORmhzlhRtyhjWQ-UOZqK5yOXqXXGQXgmok6TN-s55A-h_g12A7Yk5Y5S8EVa9EA4Axwqvm-Q_AkH0yS1qJo6BXYXb1fx205ucx-Ccot2LEBfxv8M7NOFTa-_G-sNchiKQMRoLhbZtLbSK2R1jkqGciEiRSLeXNG4nDu7Wd91-vhBixA1McxnzW96mW8lQwNXXo4gNH7SjONtYLlPQhZVEbmsQmXrOQN8a5RDkybFOIsbucItizSE9V_D7WQ","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"UykSj_HLgFA","kty":"RSA","alg":"RS256","n":"u79eQlGJN2XFNR-uEmPVtrB_ENRqaS81o6m63tZ5-PwhGHCwJ7rfVnnnvf6Ij_p91Z9pNpWBIVyZcw6UmQIoIBH-3BfxdaqhBxX9bf_N78TKj8_HU5IYjGijale4gog3kj9W2tJJO7R9iA43msjwLRD7pbAHp1iKFJgVTSXJlyLRbC82Dj4ivsEgJjPGvZt16OsGP5myIQwXEGzSPcEI0R9daZE5iM6xFZosaJ8B77eU-Aj3ciwxUBPi5BSZi2P1ZsF4QgSj3N7ZLbVKNW4FFr84IamA2YI0D7PyyNAE2PUZT8n0jHWRJKunuZuy5mgBY8H41KdBI6gNJqY90nHeJw","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"BJDNTt8RpPE","kty":"RSA","alg":"RS384","n":"nXTd5AoT220nBkW6Zeax8caUI7_Tt0y4v9TEW8TOrzCVvhLBiKpQPjILUTfkGHzxPtysEzDQFSYdHWvg_fvGYItjJBunBMsKCNcb2_CDr2HXD6C0s62bAgct8bBSoaT1MLQ_3MaFKXSF3ZuB87X2B8CVUJ386HP2GY1kl54BuMdFELNZYhy9S_D0KHnQls52Vvb99X9WaYOyxvfr03PG-9EycnkWas5tn1pPFzT0DtJtBJ4IBtXQxTr98jpn_MCz1gRnMgzzkfSOcrMkkMXxePqxNINVKFXtRy7DaJiFOcCMbuK2RJUkSfY2uKcx0aKbp5Xhvix1W8N7c0Y90i6_6w","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"z8iijSOOIs4","kty":"RSA","alg":"RS512","n":"rPCHP9XeTGOLf1Ezxeq_bdGdvYQZa993YcSVudT0EN6drTWqjykhUVEkT4MGAvLvax38kLARbPUTgMUV9UckDDWn6lRq4q6IZ5pytNOieQKZHzjEmQGzlbnEn1F2m1i5SAfBL-qsnt5q2RXMAiIUXk9q1ChJEHJxOZxnRIoQMc7yTsjjSdtIZKePFiYFn0nsl3A234ByyIBRjzZeoYEtTQKjDR7fP9LO78oZAgpwoGqmfI4IltqQYkFoqrN8I8l1yiJGyuvZRgDXUZ2fxGOQx2WD4xvlFL2TOCfN1UaPE9R4JdbRLLAOf5u1Sqnh4XTjDBhBbVodsmmbtvk4wFo-GQ","e":"AQAB","key_ops":["verify"],"ext":true},{"kid":"zD76wa11A2Y","kty":"RSA","alg":"RS256","n":"nMaSioq1An1J3tbkmc-zRrR8lkbP-WUVRuYhDxQvV-OcBw1R6cdyCcoeFJ1zuUT7ne6BlU6GMPRHuRKaH0KuOaiktUYtXm06T_HvtKFgCQSAKjMUj_ZHfTAJP8ahUsIc0D995XKp7nIGRF7Iy7I24QQFPRh7PmGlREZ52GJgYQgbm020-sWani0MqHoUFBlWxZW9NEqY1c3brN_qWnzjRKly6Kkk3sW1XHPcRLvoHnHQ6TKXJ8pfl-bNjTfK6zq9fDCZ_TY3qQZy66yT_2XPO6X0GHTdJsZlCj7Jg0qrilTHUkJra1bppTSAtVSQnSmYt_IV8zOYiVdJ3kw2khPcKw","e":"AQAB","key_ops":["verify"],"ext":true}]}},"defaults":{},"registration":{"redirect_uris":["https://localhost:3457/api/oidc/rp/https%3A%2F%2Flocalhost%3A3457"],"client_id":"d76c5ec075d1b3e130a93bf247b05f54","client_secret":"5fa106cf0bf13777763e37fc42194dd4","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"],"registration_access_token":"eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2xvY2FsaG9zdDozNDU3IiwiYXVkIjoiZDc2YzVlYzA3NWQxYjNlMTMwYTkzYmYyNDdiMDVmNTQiLCJzdWIiOiJkNzZjNWVjMDc1ZDFiM2UxMzBhOTNiZjI0N2IwNWY1NCJ9.Gk-YXJTfwnp0YyIvtgvyyIowYSf0QLVfbb1ieWn1M3CM_967NVwhwhHxV7BDVkBMVODQ5-yqvU8_h16jYimfQOPQajQeJhKNR7k5w-F8oLDXYB5Nwqxr6riWdi9Zd-JIDE3TUtbJncSRFURAa85J7KtKxkS5I16BbLbGAHAR-XQCM03HITP6vd1fH2Rc1KYc2vC9B8gjbmD1NW_QwtGjx6IndNrxGas9tvDXVu9hxteu-IWRZd0NJtIxsBbDA9R7Q97Kxw1ie4tsQdRMvhEuU3WiqLVaaKsbuVW8ZnkiKXkavoQXB15Qx1stuSo7IMfWlxkPndgFKv3LNEQ4tX3n_A","registration_client_uri":"https://localhost:3457/register/d76c5ec075d1b3e130a93bf247b05f54","client_id_issued_at":1767788587,"client_secret_expires_at":0},"store":{}}
@@ -1 +1 @@
1
- {"redirect_uris":["https://localhost:7000/api/oidc/rp/https%3A%2F%2Flocalhost%3A7000"],"client_id":"a31de046443144df66179553447ffed2","client_secret":"71e7cb977973f1095ffbcfdaec210bac","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:7000","id_token_signed_response_alg":"RS256","token_endpoint_auth_method":"client_secret_basic","default_max_age":86400,"post_logout_redirect_uris":["https://localhost:7000/goodbye"]}
1
+ {"redirect_uris":["https://localhost:7000/api/oidc/rp/https%3A%2F%2Flocalhost%3A7000"],"client_id":"3c318e68342b7462e295cee3a612cd2a","client_secret":"1799a891bc2fedd28d9931bab421fa73","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:7000","id_token_signed_response_alg":"RS256","token_endpoint_auth_method":"client_secret_basic","default_max_age":86400,"post_logout_redirect_uris":["https://localhost:7000/goodbye"]}