diff --git a/lerna.json b/lerna.json
index 1184ffb..aea92b0 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,4 +1,4 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
- "version": "0.0.1-alpha.23"
+ "version": "0.0.1-alpha.28"
}
diff --git a/package-lock.json b/package-lock.json
index f2770f7..fc196ca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -50,75 +50,18 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.23.5",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/highlight": "^7.23.4",
- "chalk": "^2.4.2"
+ "@babel/highlight": "^7.25.7",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "license": "MIT",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "license": "MIT"
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/compat-data": {
- "version": "7.23.5",
+ "version": "7.25.8",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
@@ -194,45 +137,46 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.23.6",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.23.6",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
+ "@babel/types": "^7.25.7",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.15",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.15"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.23.6",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.23.5",
- "@babel/helper-validator-option": "^7.23.5",
- "browserslist": "^4.22.2",
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -259,17 +203,15 @@
"license": "ISC"
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.24.0",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-member-expression-to-functions": "^7.23.0",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.20",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-member-expression-to-functions": "^7.25.7",
+ "@babel/helper-optimise-call-expression": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
"semver": "^6.3.1"
},
"engines": {
@@ -287,11 +229,11 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.22.15",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "regexpu-core": "^5.3.1",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "regexpu-core": "^6.1.1",
"semver": "^6.3.1"
},
"engines": {
@@ -337,63 +279,36 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.23.0",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.23.0"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.15",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.15"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.20"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -403,29 +318,29 @@
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.22.5",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.0",
+ "version": "7.25.7",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.22.20",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-wrap-function": "^7.22.20"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-wrap-function": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -435,12 +350,12 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.22.20",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-member-expression-to-functions": "^7.22.15",
- "@babel/helper-optimise-call-expression": "^7.22.5"
+ "@babel/helper-member-expression-to-functions": "^7.25.7",
+ "@babel/helper-optimise-call-expression": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -450,63 +365,55 @@
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.22.5",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.23.4",
+ "version": "7.25.7",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
+ "version": "7.25.7",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.23.5",
+ "version": "7.25.7",
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.22.20",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.22.19"
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -525,12 +432,13 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.23.4",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -594,8 +502,11 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.9",
+ "version": "7.25.8",
"license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.8"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -603,11 +514,38 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.25.7",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.25.7",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -617,12 +555,12 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.23.3"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -632,11 +570,11 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.23.7",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -771,19 +709,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-syntax-decorators": {
"version": "7.24.0",
"license": "MIT",
@@ -797,26 +722,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-syntax-flow": {
"version": "7.23.3",
"license": "MIT",
@@ -831,10 +736,10 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -844,10 +749,10 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -949,19 +854,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
"node_modules/@babel/plugin-syntax-top-level-await": {
"version": "7.14.5",
"license": "MIT",
@@ -1003,10 +895,10 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1016,13 +908,12 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.23.9",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.20",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-remap-async-to-generator": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1032,12 +923,12 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.20"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-remap-async-to-generator": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1047,10 +938,10 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1060,10 +951,10 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.23.4",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1073,11 +964,11 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1087,12 +978,11 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1102,16 +992,14 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.23.8",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.20",
- "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
"globals": "^11.1.0"
},
"engines": {
@@ -1129,11 +1017,11 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.15"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/template": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1143,10 +1031,10 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1156,11 +1044,11 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1170,10 +1058,10 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1182,12 +1070,25 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.25.7",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1197,11 +1098,11 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1211,11 +1112,10 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1239,11 +1139,11 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.23.6",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1253,12 +1153,12 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1268,11 +1168,10 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1282,10 +1181,10 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1295,11 +1194,10 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1309,10 +1207,10 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1322,11 +1220,11 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1336,12 +1234,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1351,13 +1249,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.23.9",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1367,11 +1265,11 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1381,11 +1279,11 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.22.5",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1395,10 +1293,10 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1408,11 +1306,10 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1422,11 +1319,10 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1436,14 +1332,12 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.24.0",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.23.5",
- "@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.23.3"
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1453,11 +1347,11 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.20"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1467,11 +1361,10 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1481,12 +1374,11 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1496,10 +1388,10 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1509,11 +1401,11 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1523,13 +1415,12 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.23.4",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1539,10 +1430,10 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1622,10 +1513,10 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/helper-plugin-utils": "^7.25.7",
"regenerator-transform": "^0.15.2"
},
"engines": {
@@ -1636,10 +1527,10 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1674,10 +1565,10 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1687,11 +1578,11 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1701,10 +1592,10 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1714,10 +1605,10 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1727,10 +1618,10 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1756,10 +1647,10 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1769,11 +1660,11 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1783,11 +1674,11 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1797,11 +1688,11 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.23.3",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1811,88 +1702,76 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.24.0",
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.23.5",
- "@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-plugin-utils": "^7.24.0",
- "@babel/helper-validator-option": "^7.23.5",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7",
+ "version": "7.25.8",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.8",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.23.3",
- "@babel/plugin-syntax-import-attributes": "^7.23.3",
- "@babel/plugin-syntax-import-meta": "^7.10.4",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-syntax-import-assertions": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.23.3",
- "@babel/plugin-transform-async-generator-functions": "^7.23.9",
- "@babel/plugin-transform-async-to-generator": "^7.23.3",
- "@babel/plugin-transform-block-scoped-functions": "^7.23.3",
- "@babel/plugin-transform-block-scoping": "^7.23.4",
- "@babel/plugin-transform-class-properties": "^7.23.3",
- "@babel/plugin-transform-class-static-block": "^7.23.4",
- "@babel/plugin-transform-classes": "^7.23.8",
- "@babel/plugin-transform-computed-properties": "^7.23.3",
- "@babel/plugin-transform-destructuring": "^7.23.3",
- "@babel/plugin-transform-dotall-regex": "^7.23.3",
- "@babel/plugin-transform-duplicate-keys": "^7.23.3",
- "@babel/plugin-transform-dynamic-import": "^7.23.4",
- "@babel/plugin-transform-exponentiation-operator": "^7.23.3",
- "@babel/plugin-transform-export-namespace-from": "^7.23.4",
- "@babel/plugin-transform-for-of": "^7.23.6",
- "@babel/plugin-transform-function-name": "^7.23.3",
- "@babel/plugin-transform-json-strings": "^7.23.4",
- "@babel/plugin-transform-literals": "^7.23.3",
- "@babel/plugin-transform-logical-assignment-operators": "^7.23.4",
- "@babel/plugin-transform-member-expression-literals": "^7.23.3",
- "@babel/plugin-transform-modules-amd": "^7.23.3",
- "@babel/plugin-transform-modules-commonjs": "^7.23.3",
- "@babel/plugin-transform-modules-systemjs": "^7.23.9",
- "@babel/plugin-transform-modules-umd": "^7.23.3",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.23.3",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4",
- "@babel/plugin-transform-numeric-separator": "^7.23.4",
- "@babel/plugin-transform-object-rest-spread": "^7.24.0",
- "@babel/plugin-transform-object-super": "^7.23.3",
- "@babel/plugin-transform-optional-catch-binding": "^7.23.4",
- "@babel/plugin-transform-optional-chaining": "^7.23.4",
- "@babel/plugin-transform-parameters": "^7.23.3",
- "@babel/plugin-transform-private-methods": "^7.23.3",
- "@babel/plugin-transform-private-property-in-object": "^7.23.4",
- "@babel/plugin-transform-property-literals": "^7.23.3",
- "@babel/plugin-transform-regenerator": "^7.23.3",
- "@babel/plugin-transform-reserved-words": "^7.23.3",
- "@babel/plugin-transform-shorthand-properties": "^7.23.3",
- "@babel/plugin-transform-spread": "^7.23.3",
- "@babel/plugin-transform-sticky-regex": "^7.23.3",
- "@babel/plugin-transform-template-literals": "^7.23.3",
- "@babel/plugin-transform-typeof-symbol": "^7.23.3",
- "@babel/plugin-transform-unicode-escapes": "^7.23.3",
- "@babel/plugin-transform-unicode-property-regex": "^7.23.3",
- "@babel/plugin-transform-unicode-regex": "^7.23.3",
- "@babel/plugin-transform-unicode-sets-regex": "^7.23.3",
+ "@babel/plugin-transform-arrow-functions": "^7.25.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.8",
+ "@babel/plugin-transform-async-to-generator": "^7.25.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-class-static-block": "^7.25.8",
+ "@babel/plugin-transform-classes": "^7.25.7",
+ "@babel/plugin-transform-computed-properties": "^7.25.7",
+ "@babel/plugin-transform-destructuring": "^7.25.7",
+ "@babel/plugin-transform-dotall-regex": "^7.25.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-dynamic-import": "^7.25.8",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.8",
+ "@babel/plugin-transform-for-of": "^7.25.7",
+ "@babel/plugin-transform-function-name": "^7.25.7",
+ "@babel/plugin-transform-json-strings": "^7.25.8",
+ "@babel/plugin-transform-literals": "^7.25.7",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.8",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.7",
+ "@babel/plugin-transform-modules-amd": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.7",
+ "@babel/plugin-transform-modules-umd": "^7.25.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-new-target": "^7.25.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.8",
+ "@babel/plugin-transform-numeric-separator": "^7.25.8",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.8",
+ "@babel/plugin-transform-object-super": "^7.25.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.8",
+ "@babel/plugin-transform-optional-chaining": "^7.25.8",
+ "@babel/plugin-transform-parameters": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.8",
+ "@babel/plugin-transform-property-literals": "^7.25.7",
+ "@babel/plugin-transform-regenerator": "^7.25.7",
+ "@babel/plugin-transform-reserved-words": "^7.25.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.7",
+ "@babel/plugin-transform-spread": "^7.25.7",
+ "@babel/plugin-transform-sticky-regex": "^7.25.7",
+ "@babel/plugin-transform-template-literals": "^7.25.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
"@babel/preset-modules": "0.1.6-no-external-plugins",
- "babel-plugin-polyfill-corejs2": "^0.4.8",
- "babel-plugin-polyfill-corejs3": "^0.9.0",
- "babel-plugin-polyfill-regenerator": "^0.5.5",
- "core-js-compat": "^3.31.0",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.38.1",
"semver": "^6.3.1"
},
"engines": {
@@ -1902,6 +1781,56 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/resolve": {
+ "version": "1.22.8",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/@babel/preset-env/node_modules/semver": {
"version": "6.3.1",
"license": "ISC",
@@ -1956,10 +1885,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "license": "MIT"
- },
"node_modules/@babel/runtime": {
"version": "7.23.9",
"license": "MIT",
@@ -1971,29 +1896,26 @@
}
},
"node_modules/@babel/template": {
- "version": "7.23.9",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.23.5",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.23.9",
+ "version": "7.25.7",
"license": "MIT",
"dependencies": {
- "@babel/code-frame": "^7.23.5",
- "@babel/generator": "^7.23.6",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -2009,11 +1931,11 @@
}
},
"node_modules/@babel/types": {
- "version": "7.23.9",
+ "version": "7.25.8",
"license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^7.23.4",
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -2790,30 +2712,6 @@
"sparqlalgebrajs": "^4.2.0"
}
},
- "node_modules/@comunica/actor-query-operation-sparql-endpoint/node_modules/fetch-sparql-endpoint": {
- "version": "4.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rdfjs/types": "*",
- "@smessie/readable-web-to-node-stream": "^3.0.3",
- "@types/readable-stream": "^2.3.11",
- "@types/sparqljs": "^3.1.3",
- "abort-controller": "^3.0.0",
- "cross-fetch": "^3.0.6",
- "is-stream": "^2.0.0",
- "minimist": "^1.2.0",
- "n3": "^1.6.3",
- "rdf-string": "^1.6.0",
- "sparqljs": "^3.1.2",
- "sparqljson-parse": "^2.2.0",
- "sparqlxml-parse": "^2.1.1",
- "stream-to-string": "^1.1.0"
- },
- "bin": {
- "fetch-sparql-endpoint": "bin/fetch-sparql-endpoint.js"
- }
- },
"node_modules/@comunica/actor-query-operation-union": {
"version": "2.10.1",
"dev": true,
@@ -4110,30 +4008,6 @@
"sparqlalgebrajs": "^4.2.0"
}
},
- "node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql/node_modules/fetch-sparql-endpoint": {
- "version": "4.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rdfjs/types": "*",
- "@smessie/readable-web-to-node-stream": "^3.0.3",
- "@types/readable-stream": "^2.3.11",
- "@types/sparqljs": "^3.1.3",
- "abort-controller": "^3.0.0",
- "cross-fetch": "^3.0.6",
- "is-stream": "^2.0.0",
- "minimist": "^1.2.0",
- "n3": "^1.6.3",
- "rdf-string": "^1.6.0",
- "sparqljs": "^3.1.2",
- "sparqljson-parse": "^2.2.0",
- "sparqlxml-parse": "^2.1.1",
- "stream-to-string": "^1.1.0"
- },
- "bin": {
- "fetch-sparql-endpoint": "bin/fetch-sparql-endpoint.js"
- }
- },
"node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql/node_modules/lru-cache": {
"version": "10.2.0",
"dev": true,
@@ -4525,30 +4399,6 @@
"stream-to-string": "^1.2.0"
}
},
- "node_modules/@comunica/actor-rdf-update-hypermedia-sparql/node_modules/fetch-sparql-endpoint": {
- "version": "4.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@rdfjs/types": "*",
- "@smessie/readable-web-to-node-stream": "^3.0.3",
- "@types/readable-stream": "^2.3.11",
- "@types/sparqljs": "^3.1.3",
- "abort-controller": "^3.0.0",
- "cross-fetch": "^3.0.6",
- "is-stream": "^2.0.0",
- "minimist": "^1.2.0",
- "n3": "^1.6.3",
- "rdf-string": "^1.6.0",
- "sparqljs": "^3.1.2",
- "sparqljson-parse": "^2.2.0",
- "sparqlxml-parse": "^2.1.1",
- "stream-to-string": "^1.1.0"
- },
- "bin": {
- "fetch-sparql-endpoint": "bin/fetch-sparql-endpoint.js"
- }
- },
"node_modules/@comunica/actor-rdf-update-quads-hypermedia": {
"version": "2.10.2",
"dev": true,
@@ -5684,14 +5534,6 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@fastify/busboy": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@gar/promisify": {
"version": "1.1.3",
"dev": true,
@@ -5784,18 +5626,6 @@
"uuid": "^9.0.1"
}
},
- "node_modules/@inrupt/oidc-client-ext/node_modules/@inrupt/solid-client-authn-core": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "events": "^3.3.0",
- "jose": "^5.1.3",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": "^18.0.0 || ^20.0.0"
- }
- },
"node_modules/@inrupt/oidc-client-ext/node_modules/jose": {
"version": "5.2.2",
"license": "MIT",
@@ -5824,18 +5654,6 @@
"uuid": "^9.0.1"
}
},
- "node_modules/@inrupt/solid-client-authn-browser/node_modules/@inrupt/solid-client-authn-core": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "events": "^3.3.0",
- "jose": "^5.1.3",
- "uuid": "^9.0.1"
- },
- "engines": {
- "node": "^18.0.0 || ^20.0.0"
- }
- },
"node_modules/@inrupt/solid-client-authn-browser/node_modules/jose": {
"version": "5.2.2",
"license": "MIT",
@@ -5844,29 +5662,33 @@
}
},
"node_modules/@inrupt/solid-client-authn-core": {
- "version": "1.17.5",
- "dev": true,
+ "version": "2.2.6",
"license": "MIT",
"dependencies": {
- "@inrupt/universal-fetch": "^1.0.1",
"events": "^3.3.0",
- "jose": "^4.15.4",
- "uuid": "^9.0.1"
+ "jose": "^5.1.3",
+ "uuid": "^10.0.0"
},
"engines": {
- "node": "^16.0.0 || ^18.0.0 || ^20.0.0"
+ "node": "^18.0.0 || ^20.0.0 || ^22.0.0"
}
},
- "node_modules/@inrupt/universal-fetch": {
- "version": "1.0.3",
- "dev": true,
+ "node_modules/@inrupt/solid-client-authn-core/node_modules/jose": {
+ "version": "5.9.4",
"license": "MIT",
- "dependencies": {
- "node-fetch": "^2.6.7",
- "undici": "^5.19.1"
- },
- "engines": {
- "node": "^14.17.0 || ^16.0.0 || ^18.0.0 || ^20.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/@inrupt/solid-client-authn-core/node_modules/uuid": {
+ "version": "10.0.0",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
}
},
"node_modules/@ioredis/commands": {
@@ -6308,12 +6130,12 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
+ "version": "0.3.5",
"license": "MIT",
"dependencies": {
- "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
@@ -6327,7 +6149,7 @@
}
},
"node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
+ "version": "1.2.1",
"license": "MIT",
"engines": {
"node": ">=6.0.0"
@@ -6346,7 +6168,7 @@
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.22",
+ "version": "0.3.25",
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
@@ -6354,16 +6176,36 @@
}
},
"node_modules/@koa/cors": {
- "version": "3.4.3",
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vary": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@koa/router": {
+ "version": "12.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "vary": "^1.1.2"
+ "debug": "^4.3.4",
+ "http-errors": "^2.0.0",
+ "koa-compose": "^4.1.0",
+ "methods": "^1.1.2",
+ "path-to-regexp": "^6.3.0"
},
"engines": {
- "node": ">= 8.0.0"
+ "node": ">= 12"
}
},
+ "node_modules/@koa/router/node_modules/path-to-regexp": {
+ "version": "6.3.0",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@ldo/cli": {
"resolved": "packages/cli",
"link": true
@@ -7619,11 +7461,11 @@
"license": "MIT"
},
"node_modules/@sindresorhus/is": {
- "version": "4.6.0",
+ "version": "5.6.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sindresorhus/is?sponsor=1"
@@ -7742,88 +7584,139 @@
}
},
"node_modules/@solid/community-server": {
- "version": "6.1.0",
+ "version": "7.1.3",
"dev": true,
"license": "MIT",
"dependencies": {
- "@comunica/context-entries": "^2.6.8",
- "@comunica/query-sparql": "^2.6.9",
+ "@comunica/context-entries": "^2.8.2",
+ "@comunica/query-sparql": "^2.9.0",
"@rdfjs/types": "^1.1.0",
"@solid/access-control-policy": "^0.1.3",
- "@solid/access-token-verifier": "^2.0.5",
+ "@solid/access-token-verifier": "^2.1.0",
"@types/async-lock": "^1.4.0",
- "@types/bcryptjs": "^2.4.2",
- "@types/cors": "^2.8.12",
- "@types/ejs": "^3.1.2",
- "@types/end-of-stream": "^1.4.1",
- "@types/fs-extra": "^11.0.1",
+ "@types/bcryptjs": "^2.4.4",
+ "@types/cookie": "^0.5.2",
+ "@types/cors": "^2.8.14",
+ "@types/ejs": "^3.1.3",
+ "@types/end-of-stream": "^1.4.2",
+ "@types/fs-extra": "^11.0.2",
"@types/lodash.orderby": "^4.6.7",
- "@types/marked": "^4.0.8",
- "@types/mime-types": "^2.1.1",
- "@types/n3": "^1.10.4",
- "@types/node": "^14.18.43",
- "@types/nodemailer": "^6.4.7",
- "@types/oidc-provider": "^7.11.1",
+ "@types/mime-types": "^2.1.2",
+ "@types/n3": "^1.16.3",
+ "@types/node": "^18.18.4",
+ "@types/nodemailer": "^6.4.11",
+ "@types/oidc-provider": "^8.4.0",
"@types/proper-lockfile": "^4.1.2",
"@types/pump": "^1.1.1",
"@types/punycode": "^2.1.0",
- "@types/rdf-validate-shacl": "^0.4.1",
- "@types/sparqljs": "^3.1.4",
+ "@types/rdf-validate-shacl": "^0.4.4",
+ "@types/sparqljs": "^3.1.6",
"@types/url-join": "^4.0.1",
- "@types/uuid": "^9.0.1",
- "@types/ws": "^8.5.4",
- "@types/yargs": "^17.0.24",
+ "@types/uuid": "^9.0.5",
+ "@types/ws": "^8.5.7",
+ "@types/yargs": "^17.0.28",
"arrayify-stream": "^2.0.1",
"async-lock": "^1.4.0",
"bcryptjs": "^2.4.3",
- "componentsjs": "^5.3.2",
+ "componentsjs": "^5.4.2",
+ "cookie": "^0.7.0",
"cors": "^2.8.5",
- "cross-fetch": "^3.1.5",
+ "cross-fetch": "^4.0.0",
"ejs": "^3.1.9",
"end-of-stream": "^1.4.4",
"escape-string-regexp": "^4.0.0",
- "fetch-sparql-endpoint": "^3.2.1",
+ "fetch-sparql-endpoint": "^4.1.0",
"fs-extra": "^11.1.1",
- "handlebars": "^4.7.7",
+ "handlebars": "^4.7.8",
"ioredis": "^5.3.2",
"iso8601-duration": "^2.1.1",
- "jose": "^4.14.1",
- "jsonld-context-parser": "^2.3.0",
+ "jose": "^4.15.2",
+ "jsonld-context-parser": "^2.3.2",
"lodash.orderby": "^4.6.0",
- "marked": "^4.3.0",
+ "marked": "^9.1.0",
"mime-types": "^2.1.35",
- "n3": "^1.16.4",
- "nodemailer": "^6.9.1",
- "oidc-provider": "7.10.6",
+ "n3": "^1.17.1",
+ "nodemailer": "^6.9.9",
+ "oidc-provider": "^8.4.0",
"proper-lockfile": "^4.1.2",
"pump": "^3.0.0",
- "punycode": "^2.1.1",
- "rdf-dereference": "^2.1.0",
+ "punycode": "^2.3.0",
+ "rdf-dereference": "^2.2.0",
"rdf-parse": "^2.3.2",
"rdf-serialize": "^2.2.2",
"rdf-string": "^1.6.3",
- "rdf-terms": "^1.9.1",
+ "rdf-terms": "^1.11.0",
"rdf-validate-shacl": "^0.4.5",
- "sparqlalgebrajs": "^4.0.5",
- "sparqljs": "^3.6.2",
+ "sparqlalgebrajs": "^4.3.0",
+ "sparqljs": "^3.7.1",
"url-join": "^4.0.1",
- "uuid": "^9.0.0",
- "winston": "^3.8.2",
+ "uuid": "^9.0.1",
+ "winston": "^3.11.0",
"winston-transport": "^4.5.0",
- "ws": "^8.13.0",
- "yargs": "^17.7.1"
+ "ws": "^8.14.2",
+ "yargs": "^17.7.2",
+ "yup": "^1.3.2"
},
"bin": {
"community-solid-server": "bin/server.js"
},
"engines": {
- "node": ">=14.14"
+ "node": ">=18.0"
}
},
"node_modules/@solid/community-server/node_modules/@types/node": {
- "version": "14.18.63",
+ "version": "18.19.56",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@solid/community-server/node_modules/cookie": {
+ "version": "0.7.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/@solid/community-server/node_modules/cross-fetch": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "node_modules/@solid/community-server/node_modules/marked": {
+ "version": "9.1.6",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "node_modules/@solid/community-server/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
},
"node_modules/@solid/community-server/node_modules/yargs": {
"version": "17.7.2",
@@ -8092,14 +7985,14 @@
}
},
"node_modules/@szmarczak/http-timer": {
- "version": "4.0.6",
+ "version": "5.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "defer-to-connect": "^2.0.0"
+ "defer-to-connect": "^2.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=14.16"
}
},
"node_modules/@testing-library/dom": {
@@ -8311,17 +8204,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/cacheable-request": {
- "version": "6.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/http-cache-semantics": "*",
- "@types/keyv": "^3.1.4",
- "@types/node": "*",
- "@types/responselike": "^1.0.0"
- }
- },
"node_modules/@types/child-process-promise": {
"version": "2.2.6",
"dev": true,
@@ -8366,6 +8248,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/cookie": {
+ "version": "0.5.4",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@types/cookies": {
"version": "0.9.0",
"dev": true,
@@ -8574,14 +8461,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/keyv": {
- "version": "3.1.4",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/koa": {
"version": "2.15.0",
"dev": true,
@@ -8618,11 +8497,6 @@
"@types/lodash": "*"
}
},
- "node_modules/@types/marked": {
- "version": "4.3.2",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/mime": {
"version": "1.3.5",
"license": "MIT"
@@ -8679,11 +8553,12 @@
"license": "MIT"
},
"node_modules/@types/oidc-provider": {
- "version": "7.14.0",
+ "version": "8.5.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/koa": "*"
+ "@types/koa": "*",
+ "@types/node": "*"
}
},
"node_modules/@types/parse-json": {
@@ -8798,14 +8673,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/responselike": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/retry": {
"version": "0.12.5",
"dev": true,
@@ -10166,17 +10033,46 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.8",
+ "version": "0.4.11",
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.5.0",
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
"semver": "^6.3.1"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/resolve": {
+ "version": "1.22.8",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
"version": "6.3.1",
"license": "ISC",
@@ -10381,20 +10277,6 @@
"ms": "2.0.0"
}
},
- "node_modules/body-parser/node_modules/http-errors": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
"license": "MIT"
@@ -10412,13 +10294,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/body-parser/node_modules/statuses": {
- "version": "2.0.1",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/bonjour-service": {
"version": "1.2.1",
"license": "MIT",
@@ -10453,7 +10328,7 @@
"license": "BSD-2-Clause"
},
"node_modules/browserslist": {
- "version": "4.23.0",
+ "version": "4.24.2",
"funding": [
{
"type": "opencollective",
@@ -10470,10 +10345,10 @@
],
"license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
+ "caniuse-lite": "^1.0.30001669",
+ "electron-to-chromium": "^1.5.41",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.1"
},
"bin": {
"browserslist": "cli.js"
@@ -10638,39 +10513,47 @@
}
},
"node_modules/cacheable-lookup": {
- "version": "6.1.0",
+ "version": "7.0.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10.6.0"
+ "node": ">=14.16"
}
},
"node_modules/cacheable-request": {
- "version": "7.0.4",
+ "version": "10.2.14",
"dev": true,
"license": "MIT",
"dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^4.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^6.0.1",
- "responselike": "^2.0.0"
+ "@types/http-cache-semantics": "^4.0.2",
+ "get-stream": "^6.0.1",
+ "http-cache-semantics": "^4.1.1",
+ "keyv": "^4.5.3",
+ "mimic-response": "^4.0.0",
+ "normalize-url": "^8.0.0",
+ "responselike": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
}
},
"node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
+ "version": "6.0.1",
"dev": true,
"license": "MIT",
- "dependencies": {
- "pump": "^3.0.0"
+ "engines": {
+ "node": ">=10"
},
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/normalize-url": {
+ "version": "8.0.1",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -10749,7 +10632,7 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001591",
+ "version": "1.0.30001669",
"funding": [
{
"type": "opencollective",
@@ -11046,17 +10929,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/clone-response": {
- "version": "1.0.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "mimic-response": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/clownface": {
"version": "1.5.1",
"dev": true,
@@ -11626,10 +11498,10 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.36.0",
+ "version": "3.38.1",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.22.3"
+ "browserslist": "^4.23.3"
},
"funding": {
"type": "opencollective",
@@ -11735,6 +11607,23 @@
"devOptional": true,
"license": "MIT"
},
+ "node_modules/cross-env": {
+ "version": "7.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
"node_modules/cross-fetch": {
"version": "3.1.8",
"license": "MIT",
@@ -12733,7 +12622,7 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.681",
+ "version": "1.5.42",
"license": "ISC"
},
"node_modules/emittery": {
@@ -13023,7 +12912,7 @@
}
},
"node_modules/escalade": {
- "version": "3.1.2",
+ "version": "3.2.0",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -14018,6 +13907,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eta": {
+ "version": "3.5.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/eta-dev/eta?sponsor=1"
+ }
+ },
"node_modules/etag": {
"version": "1.8.1",
"license": "MIT",
@@ -14175,20 +14075,6 @@
"ms": "2.0.0"
}
},
- "node_modules/express/node_modules/http-errors": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/express/node_modules/ms": {
"version": "2.0.0",
"license": "MIT"
@@ -14321,11 +14207,12 @@
}
},
"node_modules/fetch-sparql-endpoint": {
- "version": "3.3.3",
+ "version": "4.2.1",
"dev": true,
"license": "MIT",
"dependencies": {
"@rdfjs/types": "*",
+ "@smessie/readable-web-to-node-stream": "^3.0.3",
"@types/readable-stream": "^2.3.11",
"@types/sparqljs": "^3.1.3",
"abort-controller": "^3.0.0",
@@ -14334,7 +14221,6 @@
"minimist": "^1.2.0",
"n3": "^1.6.3",
"rdf-string": "^1.6.0",
- "readable-web-to-node-stream": "^3.0.2",
"sparqljs": "^3.1.2",
"sparqljson-parse": "^2.2.0",
"sparqlxml-parse": "^2.1.1",
@@ -14707,6 +14593,14 @@
"node": ">= 6"
}
},
+ "node_modules/form-data-encoder": {
+ "version": "2.1.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.17"
+ }
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"license": "MIT",
@@ -15148,35 +15042,38 @@
}
},
"node_modules/got": {
- "version": "11.8.6",
+ "version": "13.0.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@sindresorhus/is": "^4.0.0",
- "@szmarczak/http-timer": "^4.0.5",
- "@types/cacheable-request": "^6.0.1",
- "@types/responselike": "^1.0.0",
- "cacheable-lookup": "^5.0.3",
- "cacheable-request": "^7.0.2",
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
"decompress-response": "^6.0.0",
- "http2-wrapper": "^1.0.0-beta.5.2",
- "lowercase-keys": "^2.0.0",
- "p-cancelable": "^2.0.0",
- "responselike": "^2.0.0"
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
},
"engines": {
- "node": ">=10.19.0"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sindresorhus/got?sponsor=1"
}
},
- "node_modules/got/node_modules/cacheable-lookup": {
- "version": "5.0.4",
+ "node_modules/got/node_modules/get-stream": {
+ "version": "6.0.1",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10.6.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/graceful-fs": {
@@ -15515,18 +15412,41 @@
"dev": true,
"license": "MIT",
"dependencies": {
- "deep-equal": "~1.0.1",
- "http-errors": "~1.8.0"
+ "deep-equal": "~1.0.1",
+ "http-errors": "~1.8.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-assert/node_modules/deep-equal": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-assert/node_modules/depd": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/http-assert/node_modules/http-errors": {
+ "version": "1.8.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.6"
}
},
- "node_modules/http-assert/node_modules/deep-equal": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT"
- },
"node_modules/http-basic": {
"version": "8.1.3",
"license": "MIT",
@@ -15591,26 +15511,24 @@
"license": "MIT"
},
"node_modules/http-errors": {
- "version": "1.8.1",
- "dev": true,
+ "version": "2.0.0",
"license": "MIT",
"dependencies": {
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
+ "statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
- "node_modules/http-errors/node_modules/depd": {
- "version": "1.1.2",
- "dev": true,
+ "node_modules/http-errors/node_modules/statuses": {
+ "version": "2.0.1",
"license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/http-link-header": {
@@ -15693,12 +15611,12 @@
"license": "MIT"
},
"node_modules/http2-wrapper": {
- "version": "1.0.3",
+ "version": "2.2.1",
"dev": true,
"license": "MIT",
"dependencies": {
"quick-lru": "^5.1.1",
- "resolve-alpn": "^1.0.0"
+ "resolve-alpn": "^1.2.0"
},
"engines": {
"node": ">=10.19.0"
@@ -17792,7 +17710,7 @@
}
},
"node_modules/jose": {
- "version": "4.15.4",
+ "version": "4.15.9",
"dev": true,
"license": "MIT",
"funding": {
@@ -17942,13 +17860,13 @@
}
},
"node_modules/jsesc": {
- "version": "2.5.2",
+ "version": "3.0.2",
"license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
"node_modules/json-buffer": {
@@ -18275,7 +18193,7 @@
}
},
"node_modules/koa": {
- "version": "2.15.0",
+ "version": "2.15.3",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -18324,6 +18242,29 @@
"node": ">= 10"
}
},
+ "node_modules/koa/node_modules/http-errors": {
+ "version": "1.8.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/koa/node_modules/http-errors/node_modules/depd": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/kuler": {
"version": "2.0.0",
"dev": true,
@@ -18935,11 +18876,14 @@
}
},
"node_modules/lowercase-keys": {
- "version": "2.0.0",
+ "version": "3.0.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/lru-cache": {
@@ -19383,11 +19327,14 @@
}
},
"node_modules/mimic-response": {
- "version": "1.0.1",
+ "version": "4.0.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=4"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/min-indent": {
@@ -19858,7 +19805,7 @@
"license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.14",
+ "version": "2.0.18",
"license": "MIT"
},
"node_modules/node-version": {
@@ -20541,8 +20488,7 @@
}
},
"node_modules/object-hash": {
- "version": "2.2.0",
- "dev": true,
+ "version": "3.0.0",
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -20679,53 +20625,80 @@
"license": "MIT"
},
"node_modules/oidc-provider": {
- "version": "7.10.6",
+ "version": "8.5.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "@koa/cors": "^3.1.0",
- "cacheable-lookup": "^6.0.1",
- "debug": "^4.3.2",
- "ejs": "^3.1.6",
- "got": "^11.8.2",
- "jose": "^4.1.4",
+ "@koa/cors": "^5.0.0",
+ "@koa/router": "^12.0.1",
+ "debug": "^4.3.5",
+ "eta": "^3.4.0",
+ "got": "^13.0.0",
+ "jose": "^5.6.2",
"jsesc": "^3.0.2",
- "koa": "^2.13.3",
- "koa-compose": "^4.1.0",
- "nanoid": "^3.1.28",
- "object-hash": "^2.2.0",
- "oidc-token-hash": "^5.0.1",
- "paseto2": "npm:paseto@^2.1.3",
- "quick-lru": "^5.1.1",
- "raw-body": "^2.4.1"
+ "koa": "^2.15.3",
+ "nanoid": "^5.0.7",
+ "object-hash": "^3.0.0",
+ "oidc-token-hash": "^5.0.3",
+ "quick-lru": "^7.0.0",
+ "raw-body": "^2.5.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/oidc-provider/node_modules/debug": {
+ "version": "4.3.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
},
"engines": {
- "node": "^12.19.0 || ^14.15.0 || ^16.13.0"
+ "node": ">=6.0"
},
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/oidc-provider/node_modules/jose": {
+ "version": "5.9.4",
+ "dev": true,
+ "license": "MIT",
"funding": {
"url": "https://github.com/sponsors/panva"
- },
- "optionalDependencies": {
- "paseto3": "npm:paseto@^3.0.0"
}
},
- "node_modules/oidc-provider/node_modules/jsesc": {
- "version": "3.0.2",
+ "node_modules/oidc-provider/node_modules/ms": {
+ "version": "2.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/oidc-provider/node_modules/nanoid": {
+ "version": "5.0.7",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"license": "MIT",
"bin": {
- "jsesc": "bin/jsesc"
+ "nanoid": "bin/nanoid.js"
},
"engines": {
- "node": ">=6"
+ "node": "^18 || >=20"
}
},
"node_modules/oidc-provider/node_modules/quick-lru": {
- "version": "5.1.1",
+ "version": "7.0.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -20849,11 +20822,11 @@
}
},
"node_modules/p-cancelable": {
- "version": "2.1.1",
+ "version": "3.0.0",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12.20"
}
},
"node_modules/p-finally": {
@@ -21292,31 +21265,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/paseto2": {
- "name": "paseto",
- "version": "2.1.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.19.0 || >=14.15.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
- "node_modules/paseto3": {
- "name": "paseto",
- "version": "3.1.4",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
"node_modules/path-exists": {
"version": "4.0.0",
"license": "MIT",
@@ -21397,7 +21345,7 @@
"license": "MIT"
},
"node_modules/picocolors": {
- "version": "1.0.0",
+ "version": "1.1.1",
"license": "ISC"
},
"node_modules/picomatch": {
@@ -22858,6 +22806,11 @@
"signal-exit": "^3.0.2"
}
},
+ "node_modules/property-expr": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/protocols": {
"version": "2.0.1",
"dev": true,
@@ -22909,7 +22862,7 @@
"license": "MIT"
},
"node_modules/pump": {
- "version": "3.0.0",
+ "version": "3.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -23009,27 +22962,6 @@
"node": ">= 0.8"
}
},
- "node_modules/raw-body/node_modules/http-errors": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/statuses": {
- "version": "2.0.1",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/rdf-canonize": {
"version": "3.4.0",
"dev": true,
@@ -23994,21 +23926,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/readable-web-to-node-stream": {
- "version": "3.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Borewit"
- }
- },
"node_modules/readdirp": {
"version": "3.6.0",
"license": "MIT",
@@ -24102,7 +24019,7 @@
"license": "MIT"
},
"node_modules/regenerate-unicode-properties": {
- "version": "10.1.1",
+ "version": "10.2.0",
"license": "MIT",
"dependencies": {
"regenerate": "^1.4.2"
@@ -24143,13 +24060,13 @@
}
},
"node_modules/regexpu-core": {
- "version": "5.3.2",
+ "version": "6.1.1",
"license": "MIT",
"dependencies": {
- "@babel/regjsgen": "^0.8.0",
"regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsparser": "^0.9.1",
+ "regenerate-unicode-properties": "^10.2.0",
+ "regjsgen": "^0.8.0",
+ "regjsparser": "^0.11.0",
"unicode-match-property-ecmascript": "^2.0.0",
"unicode-match-property-value-ecmascript": "^2.1.0"
},
@@ -24157,22 +24074,20 @@
"node": ">=4"
}
},
+ "node_modules/regjsgen": {
+ "version": "0.8.0",
+ "license": "MIT"
+ },
"node_modules/regjsparser": {
- "version": "0.9.1",
+ "version": "0.11.1",
"license": "BSD-2-Clause",
"dependencies": {
- "jsesc": "~0.5.0"
+ "jsesc": "~3.0.2"
},
"bin": {
"regjsparser": "bin/parser"
}
},
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "bin": {
- "jsesc": "bin/jsesc"
- }
- },
"node_modules/relateurl": {
"version": "0.2.7",
"license": "MIT",
@@ -24375,11 +24290,14 @@
}
},
"node_modules/responselike": {
- "version": "2.0.1",
+ "version": "3.0.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "lowercase-keys": "^2.0.0"
+ "lowercase-keys": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -24700,20 +24618,6 @@
"version": "2.0.0",
"license": "MIT"
},
- "node_modules/send/node_modules/http-errors": {
- "version": "2.0.0",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"license": "MIT"
@@ -26338,13 +26242,6 @@
"node": ">=14.0.0"
}
},
- "node_modules/tailwindcss/node_modules/object-hash": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/tailwindcss/node_modules/resolve": {
"version": "1.22.8",
"license": "MIT",
@@ -26707,6 +26604,11 @@
"version": "1.1.0",
"license": "MIT"
},
+ "node_modules/tiny-case": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/tmp": {
"version": "0.2.1",
"dev": true,
@@ -26746,6 +26648,11 @@
"node": ">=0.6"
}
},
+ "node_modules/toposort": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/tough-cookie": {
"version": "4.1.3",
"license": "BSD-3-Clause",
@@ -27341,23 +27248,12 @@
"version": "1.12.1",
"license": "MIT"
},
- "node_modules/undici": {
- "version": "5.28.3",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
- "engines": {
- "node": ">=14.0"
- }
- },
"node_modules/undici-types": {
"version": "5.26.5",
"license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
+ "version": "2.0.1",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -27375,7 +27271,7 @@
}
},
"node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
+ "version": "2.2.0",
"license": "MIT",
"engines": {
"node": ">=4"
@@ -27461,7 +27357,7 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.13",
+ "version": "1.1.1",
"funding": [
{
"type": "opencollective",
@@ -27478,8 +27374,8 @@
],
"license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -28696,7 +28592,7 @@
}
},
"node_modules/ylru": {
- "version": "1.3.2",
+ "version": "1.4.0",
"dev": true,
"license": "MIT",
"engines": {
@@ -28721,12 +28617,34 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/yup": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "property-expr": "^2.0.5",
+ "tiny-case": "^1.0.3",
+ "toposort": "^2.0.2",
+ "type-fest": "^2.19.0"
+ }
+ },
+ "node_modules/yup/node_modules/type-fest": {
+ "version": "2.19.0",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"packages/cli": {
"name": "@ldo/cli",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"license": "MIT",
"dependencies": {
- "@ldo/schema-converter-shex": "^0.0.1-alpha.23",
+ "@ldo/schema-converter-shex": "^0.0.1-alpha.24",
"@shexjs/parser": "^1.0.0-alpha.24",
"child-process-promise": "^2.2.1",
"commander": "^9.3.0",
@@ -28827,10 +28745,10 @@
},
"packages/dataset": {
"name": "@ldo/dataset",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"@rdfjs/dataset": "^1.1.0",
"buffer": "^6.0.3",
"readable-stream": "^4.2.0"
@@ -28970,10 +28888,10 @@
},
"packages/demo-react": {
"name": "@ldo/demo-react",
- "version": "0.0.1-alpha.19",
+ "version": "0.0.1-alpha.28",
"dependencies": {
"@inrupt/solid-client-authn-browser": "^2.0.0",
- "@ldo/solid-react": "^0.0.1-alpha.19",
+ "@ldo/solid-react": "^0.0.1-alpha.28",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.15.0",
@@ -28982,7 +28900,7 @@
},
"devDependencies": {
"@craco/craco": "^7.1.0",
- "@ldo/cli": "^0.0.1-alpha.19",
+ "@ldo/cli": "^0.0.1-alpha.28",
"@types/jsonld": "^1.5.9",
"@types/react": "^18.2.21",
"@types/shexj": "^2.1.4",
@@ -29161,11 +29079,11 @@
},
"packages/jsonld-dataset-proxy": {
"name": "@ldo/jsonld-dataset-proxy",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
- "@ldo/subscribable-dataset": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
+ "@ldo/subscribable-dataset": "^0.0.1-alpha.24",
"@rdfjs/data-model": "^1.2.0",
"@rdfjs/dataset": "^1.1.0",
"jsonld2graphobject": "^0.0.4"
@@ -29241,18 +29159,18 @@
},
"packages/ldo": {
"name": "@ldo/ldo",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"license": "MIT",
"dependencies": {
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.23",
- "@ldo/subscribable-dataset": "^0.0.1-alpha.23",
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.24",
+ "@ldo/subscribable-dataset": "^0.0.1-alpha.24",
"@rdfjs/data-model": "^1.2.0",
"buffer": "^6.0.3",
"readable-stream": "^4.3.0"
},
"devDependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"@rdfjs/types": "^1.0.1",
"@types/jest": "^27.0.3",
"@types/jsonld": "^1.5.6",
@@ -29360,7 +29278,7 @@
},
"packages/rdf-utils": {
"name": "@ldo/rdf-utils",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
"@rdfjs/data-model": "^1.2.0",
@@ -29430,10 +29348,10 @@
},
"packages/schema-converter-shex": {
"name": "@ldo/schema-converter-shex",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
- "@ldo/traverser-shexj": "^0.0.1-alpha.23",
+ "@ldo/traverser-shexj": "^0.0.1-alpha.24",
"dts-dom": "^3.6.0",
"jsonld2graphobject": "^0.0.5"
},
@@ -29542,22 +29460,23 @@
},
"packages/solid": {
"name": "@ldo/solid",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"license": "MIT",
"dependencies": {
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/ldo": "^0.0.1-alpha.23",
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/ldo": "^0.0.1-alpha.28",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"cross-fetch": "^3.1.6",
"http-link-header": "^1.1.1"
},
"devDependencies": {
- "@inrupt/solid-client-authn-core": "^1.17.1",
- "@ldo/cli": "^0.0.1-alpha.23",
+ "@inrupt/solid-client-authn-core": "^2.2.6",
+ "@ldo/cli": "^0.0.1-alpha.28",
"@rdfjs/data-model": "^1.2.0",
"@rdfjs/types": "^1.0.1",
- "@solid/community-server": "^6.0.2",
+ "@solid/community-server": "^7.1.3",
"@types/jest": "^27.0.3",
+ "cross-env": "^7.0.3",
"dotenv": "^16.3.1",
"jest-rdf": "^1.8.0",
"ts-jest": "^27.1.2",
@@ -29569,20 +29488,20 @@
},
"packages/solid-react": {
"name": "@ldo/solid-react",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"license": "MIT",
"dependencies": {
"@inrupt/solid-client-authn-browser": "^2.0.0",
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.23",
- "@ldo/ldo": "^0.0.1-alpha.23",
- "@ldo/solid": "^0.0.1-alpha.23",
- "@ldo/subscribable-dataset": "^0.0.1-alpha.23",
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.24",
+ "@ldo/ldo": "^0.0.1-alpha.28",
+ "@ldo/solid": "^0.0.1-alpha.28",
+ "@ldo/subscribable-dataset": "^0.0.1-alpha.24",
"@rdfjs/data-model": "^1.2.0",
"cross-fetch": "^3.1.6"
},
"devDependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"@rdfjs/types": "^1.0.1",
"@testing-library/react": "^14.1.2",
"@types/jest": "^27.0.3",
@@ -29704,11 +29623,11 @@
},
"packages/subscribable-dataset": {
"name": "@ldo/subscribable-dataset",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/rdf-utils": "^0.0.1-alpha.23"
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24"
},
"devDependencies": {
"@rdfjs/data-model": "^1.2.0",
@@ -29809,10 +29728,10 @@
},
"packages/traverser-shexj": {
"name": "@ldo/traverser-shexj",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
- "@ldo/type-traverser": "^0.0.1-alpha.23"
+ "@ldo/type-traverser": "^0.0.1-alpha.24"
},
"devDependencies": {
"@types/jest": "^27.0.3",
@@ -29878,7 +29797,7 @@
},
"packages/type-traverser": {
"name": "@ldo/type-traverser",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"license": "MIT",
"dependencies": {
"uuid": "^8.3.2"
diff --git a/packages/cli/package.json b/packages/cli/package.json
index 763ccbf..80759b4 100644
--- a/packages/cli/package.json
+++ b/packages/cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/cli",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"description": "A Command Line Interface for Linked Data Objects",
"main": "./dist/index.js",
"bin": {
@@ -19,7 +19,8 @@
"test": "jest --coverage",
"test:watch": "jest --watch",
"prepublishOnly": "npm run test && npm run build",
- "lint": "eslint src/** --fix --no-error-on-unmatched-pattern"
+ "lint": "eslint src/** --fix --no-error-on-unmatched-pattern",
+ "build:ldo": "./dist/index.js build --input test/.shapes --output test/.ldo"
},
"repository": {
"type": "git",
@@ -43,7 +44,7 @@
"ts-jest": "^27.0.7"
},
"dependencies": {
- "@ldo/schema-converter-shex": "^0.0.1-alpha.23",
+ "@ldo/schema-converter-shex": "^0.0.1-alpha.24",
"@shexjs/parser": "^1.0.0-alpha.24",
"child-process-promise": "^2.2.1",
"commander": "^9.3.0",
@@ -59,5 +60,5 @@
"publishConfig": {
"access": "public"
},
- "gitHead": "d2364cd2f8da5f0b673b1202d29df5b7c071a17c"
+ "gitHead": "c63f055aab22155b60a5fdee4172979b9c287dfa"
}
diff --git a/packages/cli/src/build.ts b/packages/cli/src/build.ts
index 563fc7c..0aebb7f 100644
--- a/packages/cli/src/build.ts
+++ b/packages/cli/src/build.ts
@@ -38,9 +38,19 @@ export async function build(options: BuildOptions) {
"utf8",
);
// Convert to ShexJ
- const schema: Schema = parser
- .construct("https://ldo.js.org/")
- .parse(shexC);
+ let schema: Schema;
+ try {
+ schema = parser.construct("https://ldo.js.org/").parse(shexC);
+ } catch (err) {
+ const errMessage =
+ err instanceof Error
+ ? err.message
+ : typeof err === "string"
+ ? err
+ : "Unknown Error";
+ console.error(`Error processing ${file.name}: ${errMessage}`);
+ return;
+ }
// Convert the content to types
const [typings, context] = await schemaConverterShex(schema);
await Promise.all(
diff --git a/packages/cli/test/.shapes/foafProfile.shex b/packages/cli/test/.shapes/foafProfile.shex
new file mode 100644
index 0000000..95c472b
--- /dev/null
+++ b/packages/cli/test/.shapes/foafProfile.shex
@@ -0,0 +1,19 @@
+# This shape is provided by default as an example
+# You can create your own shape to fit your needs using ShEx (https://shex.io)
+# Also check out https://shaperepo.com for examples of more shapes.
+
+PREFIX ex:
+PREFIX foaf:
+PREFIX rdfs:
+PREFIX xsd:
+
+ex:FoafProfile EXTRA a {
+ a [ foaf:Person ]
+ // rdfs:comment "Defines the node as a Person (from foaf)" ;
+ foaf:name xsd:string ?
+ // rdfs:comment "Define a person's name." ;
+ foaf:img xsd:string ?
+ // rdfs:comment "Photo link but in string form"
+ foaf:knows @ex:FoafProfile *
+ // rdfs:comment "A list of WebIds for all the people this user knows." ;
+}
diff --git a/packages/dataset/example/loadDataExample.ts b/packages/dataset/example/loadDataExample.ts
index a3fccf0..6d8b50f 100644
--- a/packages/dataset/example/loadDataExample.ts
+++ b/packages/dataset/example/loadDataExample.ts
@@ -34,7 +34,7 @@ async function run(): Promise {
const jsonLdDataset = await serializedToDataset(JSON.stringify(jsonLdData), {
baseIRI:
"https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#",
- format: "application/json-ld",
+ format: "application/ld+json",
});
// Returns true because the input data describes the same triple.
console.log(turtleDataset.equals(jsonLdDataset));
diff --git a/packages/dataset/package.json b/packages/dataset/package.json
index ae981b1..1d25f2a 100644
--- a/packages/dataset/package.json
+++ b/packages/dataset/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/dataset",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "An RDFJS dataset implementation",
"main": "dist/index.js",
"scripts": {
@@ -34,7 +34,7 @@
"ts-node": "^9.1.1"
},
"dependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"@rdfjs/dataset": "^1.1.0",
"buffer": "^6.0.3",
"readable-stream": "^4.2.0"
diff --git a/packages/dataset/test/createExtendedDatasetFromSerializedInput.test.ts b/packages/dataset/test/createExtendedDatasetFromSerializedInput.test.ts
index ef56f4a..2a91f4d 100644
--- a/packages/dataset/test/createExtendedDatasetFromSerializedInput.test.ts
+++ b/packages/dataset/test/createExtendedDatasetFromSerializedInput.test.ts
@@ -12,7 +12,7 @@ describe("createExtendedDatasetFromSerializedInput", () => {
it.skip("creates a dataset with json-ld", async () => {
const dataset = await serializedToDataset(JSON.stringify(jsonLdData), {
- format: "application/json-ld",
+ format: "application/ld+json",
});
expect(dataset.size).toBe(9);
});
@@ -26,7 +26,7 @@ describe("createExtendedDatasetFromSerializedInput", () => {
it.skip("Should error when given invalid JSON", async () => {
await expect(
- serializedToDataset('{ bad" json', { format: "application/json-ld" }),
+ serializedToDataset('{ bad" json', { format: "application/ld+json" }),
).rejects.toThrow("Unexpected token b in JSON at position 2");
});
});
diff --git a/packages/demo-react/package.json b/packages/demo-react/package.json
index 3eaec63..f2dfee2 100644
--- a/packages/demo-react/package.json
+++ b/packages/demo-react/package.json
@@ -1,9 +1,9 @@
{
"name": "@ldo/demo-react",
- "version": "0.0.1-alpha.19",
+ "version": "0.0.1-alpha.28",
"dependencies": {
"@inrupt/solid-client-authn-browser": "^2.0.0",
- "@ldo/solid-react": "^0.0.1-alpha.19",
+ "@ldo/solid-react": "^0.0.1-alpha.28",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.15.0",
@@ -37,13 +37,13 @@
},
"devDependencies": {
"@craco/craco": "^7.1.0",
- "@ldo/cli": "^0.0.1-alpha.19",
+ "@ldo/cli": "^0.0.1-alpha.28",
"@types/jsonld": "^1.5.9",
"@types/react": "^18.2.21",
"@types/shexj": "^2.1.4",
"tsconfig-paths-webpack-plugin": "^4.1.0"
},
- "gitHead": "4548985c0de9b0ec83cf5ee93f2d7c1ca2c1b8d8",
+ "gitHead": "c63f055aab22155b60a5fdee4172979b9c287dfa",
"publishConfig": {
"access": "public"
}
diff --git a/packages/jsonld-dataset-proxy/package.json b/packages/jsonld-dataset-proxy/package.json
index 75d680c..c7e3129 100644
--- a/packages/jsonld-dataset-proxy/package.json
+++ b/packages/jsonld-dataset-proxy/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/jsonld-dataset-proxy",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "",
"main": "dist/index.js",
"scripts": {
@@ -40,8 +40,8 @@
"src"
],
"dependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
- "@ldo/subscribable-dataset": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
+ "@ldo/subscribable-dataset": "^0.0.1-alpha.24",
"@rdfjs/data-model": "^1.2.0",
"@rdfjs/dataset": "^1.1.0",
"jsonld2graphobject": "^0.0.4"
diff --git a/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts b/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts
index d1dcd08..62a3093 100644
--- a/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts
+++ b/packages/jsonld-dataset-proxy/src/util/nodeToJsonldRepresentation.ts
@@ -34,6 +34,7 @@ export function literalToJsonldRepresentation(literal: Literal) {
case "http://www.w3.org/2001/XMLSchema#integer":
case "http://www.w3.org/2001/XMLSchema#byte":
case "http://www.w3.org/2001/XMLSchema#decimal":
+ case "http://www.w3.org/2001/XMLSchema#double":
case "http://www.w3.org/2001/XMLSchema#int":
case "http://www.w3.org/2001/XMLSchema#long":
case "http://www.w3.org/2001/XMLSchema#negativeInteger":
diff --git a/packages/ldo/package.json b/packages/ldo/package.json
index 0220c4a..a2801b7 100644
--- a/packages/ldo/package.json
+++ b/packages/ldo/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/ldo",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"description": "",
"main": "dist/index.js",
"scripts": {
@@ -23,7 +23,7 @@
},
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/ldo#readme",
"devDependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"@rdfjs/types": "^1.0.1",
"@types/jest": "^27.0.3",
"@types/jsonld": "^1.5.6",
@@ -38,9 +38,9 @@
"typedoc-plugin-markdown": "^3.17.1"
},
"dependencies": {
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.23",
- "@ldo/subscribable-dataset": "^0.0.1-alpha.23",
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.24",
+ "@ldo/subscribable-dataset": "^0.0.1-alpha.24",
"@rdfjs/data-model": "^1.2.0",
"buffer": "^6.0.3",
"readable-stream": "^4.3.0"
@@ -55,5 +55,5 @@
"publishConfig": {
"access": "public"
},
- "gitHead": "d2364cd2f8da5f0b673b1202d29df5b7c071a17c"
+ "gitHead": "c63f055aab22155b60a5fdee4172979b9c287dfa"
}
diff --git a/packages/ldo/src/parseRdf.ts b/packages/ldo/src/parseRdf.ts
index 45925d5..9809436 100644
--- a/packages/ldo/src/parseRdf.ts
+++ b/packages/ldo/src/parseRdf.ts
@@ -24,7 +24,7 @@ import type { LdoDataset } from "./LdoDataset";
* import { parseRdf } from "ldo";
*
* const rawTurtle = "...";
- * const ldoDataset = parseRdf(rawTurtle, { baseIRI: "https://example.com/" });
+ * const ldoDataset = await parseRdf(rawTurtle, { baseIRI: "https://example.com/" });
* ```
*/
export async function parseRdf(
@@ -47,7 +47,7 @@ export async function parseRdf(
ldoDatasetFactory,
JSON.stringify(data),
{
- format: "application/json-ld",
+ format: "application/ld+json",
},
);
}
diff --git a/packages/rdf-utils/package.json b/packages/rdf-utils/package.json
index 408dbe4..745c35f 100644
--- a/packages/rdf-utils/package.json
+++ b/packages/rdf-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/rdf-utils",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "Some RDF Utilities to support LDO librariers",
"main": "dist/index.js",
"scripts": {
diff --git a/packages/rdf-utils/src/serializedToQuads.ts b/packages/rdf-utils/src/serializedToQuads.ts
index a0b4c0b..8230967 100644
--- a/packages/rdf-utils/src/serializedToQuads.ts
+++ b/packages/rdf-utils/src/serializedToQuads.ts
@@ -9,7 +9,7 @@ export async function serializedToQuads(
options?: ParserOptions,
): Promise {
// JSON-LD Parsing
- if (options && options.format === "application/json-ld") {
+ if (options && options.format === "application/ld+json") {
throw new Error("Not Implemented");
// return new Promise((resolve, reject) => {
// JSON.parse(data);
diff --git a/packages/schema-converter-shex/package.json b/packages/schema-converter-shex/package.json
index ef51386..f71e73b 100644
--- a/packages/schema-converter-shex/package.json
+++ b/packages/schema-converter-shex/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/schema-converter-shex",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "",
"main": "dist/index.js",
"scripts": {
@@ -33,7 +33,7 @@
"dist"
],
"dependencies": {
- "@ldo/traverser-shexj": "^0.0.1-alpha.23",
+ "@ldo/traverser-shexj": "^0.0.1-alpha.24",
"dts-dom": "^3.6.0",
"jsonld2graphobject": "^0.0.5"
},
diff --git a/packages/solid-react/package.json b/packages/solid-react/package.json
index cd07ece..9eac49e 100644
--- a/packages/solid-react/package.json
+++ b/packages/solid-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/solid-react",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"description": "A React library for LDO and Solid",
"main": "dist/index.js",
"scripts": {
@@ -26,7 +26,7 @@
},
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/solid-react#readme",
"devDependencies": {
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"@rdfjs/types": "^1.0.1",
"@testing-library/react": "^14.1.2",
"@types/jest": "^27.0.3",
@@ -37,11 +37,11 @@
},
"dependencies": {
"@inrupt/solid-client-authn-browser": "^2.0.0",
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.23",
- "@ldo/ldo": "^0.0.1-alpha.23",
- "@ldo/solid": "^0.0.1-alpha.23",
- "@ldo/subscribable-dataset": "^0.0.1-alpha.23",
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/jsonld-dataset-proxy": "^0.0.1-alpha.24",
+ "@ldo/ldo": "^0.0.1-alpha.28",
+ "@ldo/solid": "^0.0.1-alpha.28",
+ "@ldo/subscribable-dataset": "^0.0.1-alpha.24",
"@rdfjs/data-model": "^1.2.0",
"cross-fetch": "^3.1.6"
},
@@ -52,5 +52,5 @@
"publishConfig": {
"access": "public"
},
- "gitHead": "d2364cd2f8da5f0b673b1202d29df5b7c071a17c"
+ "gitHead": "c63f055aab22155b60a5fdee4172979b9c287dfa"
}
diff --git a/packages/solid-react/src/BrowserSolidLdoProvider.tsx b/packages/solid-react/src/BrowserSolidLdoProvider.tsx
index 8d9d652..6213890 100644
--- a/packages/solid-react/src/BrowserSolidLdoProvider.tsx
+++ b/packages/solid-react/src/BrowserSolidLdoProvider.tsx
@@ -27,25 +27,31 @@ export const BrowserSolidLdoProvider: FunctionComponent = ({
await handleIncomingRedirect({
restorePreviousSession: true,
});
- setSession({ ...getDefaultSession().info });
- window.history.replaceState(
- {},
- "",
- window.localStorage.getItem(PRE_REDIRECT_URI),
- );
- window.localStorage.removeItem(PRE_REDIRECT_URI);
+ // Set timout to ensure this happens after the redirect
+ setTimeout(() => {
+ setSession({ ...getDefaultSession().info });
+ window.history.replaceState(
+ {},
+ "",
+ window.localStorage.getItem(PRE_REDIRECT_URI),
+ );
+ window.localStorage.removeItem(PRE_REDIRECT_URI);
- setRanInitialAuthCheck(true);
+ setRanInitialAuthCheck(true);
+ }, 0);
}, []);
const login = useCallback(async (issuer: string, options?: LoginOptions) => {
+ const cleanUrl = new URL(window.location.href);
+ cleanUrl.hash = "";
+ cleanUrl.search = "";
const fullOptions = {
- redirectUrl: window.location.href,
+ redirectUrl: cleanUrl.toString(),
clientName: "Solid App",
oidcIssuer: issuer,
...options,
};
- window.localStorage.setItem(PRE_REDIRECT_URI, fullOptions.redirectUrl);
+ window.localStorage.setItem(PRE_REDIRECT_URI, window.location.href);
await libraryLogin(fullOptions);
setSession({ ...getDefaultSession().info });
}, []);
diff --git a/packages/solid-react/test/test-server/configs/components-config/unauthenticatedServer.json b/packages/solid-react/test/test-server/configs/components-config/unauthenticatedServer.json
index 56b2a2f..ff01914 100644
--- a/packages/solid-react/test/test-server/configs/components-config/unauthenticatedServer.json
+++ b/packages/solid-react/test/test-server/configs/components-config/unauthenticatedServer.json
@@ -1,9 +1,8 @@
{
- "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^6.0.0/components/context.jsonld",
+ "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld",
"import": [
+ "css:config/app/init/initialize-intro.json",
"css:config/app/main/default.json",
- "css:config/app/init/initialize-prefilled-root.json",
- "css:config/app/setup/optional.json",
"css:config/app/variables/default.json",
"css:config/http/handler/default.json",
"css:config/http/middleware/default.json",
@@ -13,9 +12,9 @@
"css:config/identity/access/public.json",
"css:config/identity/email/default.json",
"css:config/identity/handler/default.json",
+ "css:config/identity/oidc/default.json",
"css:config/identity/ownership/token.json",
"css:config/identity/pod/static.json",
- "css:config/identity/registration/enabled.json",
"css:config/ldp/authentication/dpop-bearer.json",
"css:config/ldp/authorization/webacl.json",
"css:config/ldp/handler/default.json",
@@ -24,6 +23,7 @@
"css:config/ldp/modes/default.json",
"css:config/storage/backend/memory.json",
"css:config/storage/key-value/resource-store.json",
+ "css:config/storage/location/root.json",
"css:config/storage/middleware/default.json",
"css:config/util/auxiliary/acl.json",
"css:config/util/identifiers/suffix.json",
diff --git a/packages/solid-react/test/test-server/configs/solid-css-seed.json b/packages/solid-react/test/test-server/configs/solid-css-seed.json
index 0b139ea..5894d0d 100644
--- a/packages/solid-react/test/test-server/configs/solid-css-seed.json
+++ b/packages/solid-react/test/test-server/configs/solid-css-seed.json
@@ -1,8 +1,9 @@
[
{
- "podName": "example",
"email": "hello@example.com",
"password": "abc123",
- "template": "./template"
+ "pods": [
+ { "name": "example" }
+ ]
}
]
\ No newline at end of file
diff --git a/packages/solid-react/test/test-server/solidServer.helper.ts b/packages/solid-react/test/test-server/solidServer.helper.ts
index 3cc66cf..5dd45d8 100644
--- a/packages/solid-react/test/test-server/solidServer.helper.ts
+++ b/packages/solid-react/test/test-server/solidServer.helper.ts
@@ -12,28 +12,25 @@ export async function createApp(): Promise {
} as App;
}
const appRunner = new AppRunner();
- return appRunner.create(
- {
+
+ return appRunner.create({
+ loaderProperties: {
mainModulePath: resolveModulePath(""),
typeChecking: false,
},
- path.join(
+ config: path.join(
__dirname,
"configs",
"components-config",
"unauthenticatedServer.json",
),
- {},
- {
+ variableBindings: {},
+ shorthand: {
port: 3_001,
loggingLevel: "off",
- seededPodConfigJson: path.join(
- __dirname,
- "configs",
- "solid-css-seed.json",
- ),
+ seedConfig: path.join(__dirname, "configs", "solid-css-seed.json"),
},
- );
+ });
}
export interface ISecretData {
diff --git a/packages/solid/babel.config.js b/packages/solid/babel.config.js
new file mode 100644
index 0000000..721e8b8
--- /dev/null
+++ b/packages/solid/babel.config.js
@@ -0,0 +1 @@
+module.exports = { presets: ["@babel/preset-env"] };
diff --git a/packages/solid/jest.config.js b/packages/solid/jest.config.js
index 899d6b4..c55a5f7 100644
--- a/packages/solid/jest.config.js
+++ b/packages/solid/jest.config.js
@@ -4,4 +4,8 @@ module.exports = {
...sharedConfig,
rootDir: "./",
setupFiles: ["/test/setup-tests.ts"],
+ transform: {
+ "^.+\\.(ts|tsx)?$": "ts-jest",
+ "^.+\\.(js|jsx)$": "babel-jest",
+ },
};
diff --git a/packages/solid/package.json b/packages/solid/package.json
index 548c973..20e8c64 100644
--- a/packages/solid/package.json
+++ b/packages/solid/package.json
@@ -1,13 +1,13 @@
{
"name": "@ldo/solid",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.28",
"description": "A library for LDO and Solid",
"main": "dist/index.js",
"scripts": {
"example": "ts-node ./example/example.ts",
"build": "tsc --project tsconfig.build.json",
"watch": "tsc --watch",
- "test": "jest --coverage",
+ "test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --coverage",
"test:watch": "jest --watch",
"prepublishOnly": "npm run test && npm run build",
"build:ldo": "ldo build --input src/.shapes --output src/.ldo",
@@ -25,12 +25,13 @@
},
"homepage": "https://github.com/o-development/ldobjects/tree/main/packages/solid#readme",
"devDependencies": {
- "@inrupt/solid-client-authn-core": "^1.17.1",
- "@ldo/cli": "^0.0.1-alpha.23",
+ "@inrupt/solid-client-authn-core": "^2.2.6",
+ "@ldo/cli": "^0.0.1-alpha.28",
"@rdfjs/data-model": "^1.2.0",
"@rdfjs/types": "^1.0.1",
- "@solid/community-server": "^6.0.2",
+ "@solid/community-server": "^7.1.3",
"@types/jest": "^27.0.3",
+ "cross-env": "^7.0.3",
"dotenv": "^16.3.1",
"jest-rdf": "^1.8.0",
"ts-jest": "^27.1.2",
@@ -40,9 +41,9 @@
"typedoc-plugin-markdown": "^3.17.1"
},
"dependencies": {
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/ldo": "^0.0.1-alpha.23",
- "@ldo/rdf-utils": "^0.0.1-alpha.23",
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/ldo": "^0.0.1-alpha.28",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24",
"cross-fetch": "^3.1.6",
"http-link-header": "^1.1.1"
},
@@ -53,5 +54,5 @@
"publishConfig": {
"access": "public"
},
- "gitHead": "d2364cd2f8da5f0b673b1202d29df5b7c071a17c"
+ "gitHead": "c63f055aab22155b60a5fdee4172979b9c287dfa"
}
diff --git a/packages/solid/src/.ldo/solid.context.ts b/packages/solid/src/.ldo/solid.context.ts
index be97612..8244ade 100644
--- a/packages/solid/src/.ldo/solid.context.ts
+++ b/packages/solid/src/.ldo/solid.context.ts
@@ -1,4 +1,4 @@
-import type { ContextDefinition } from "jsonld";
+import { ContextDefinition } from "jsonld";
/**
* =============================================================================
@@ -15,7 +15,6 @@ export const solidContext: ContextDefinition = {
modified: {
"@id": "http://purl.org/dc/terms/modified",
"@type": "http://www.w3.org/2001/XMLSchema#string",
- "@container": "@set",
},
contains: {
"@id": "http://www.w3.org/ns/ldp#contains",
@@ -26,11 +25,14 @@ export const solidContext: ContextDefinition = {
mtime: {
"@id": "http://www.w3.org/ns/posix/stat#mtime",
"@type": "http://www.w3.org/2001/XMLSchema#decimal",
- "@container": "@set",
},
size: {
"@id": "http://www.w3.org/ns/posix/stat#size",
"@type": "http://www.w3.org/2001/XMLSchema#integer",
+ },
+ storage: {
+ "@id": "http://www.w3.org/ns/pim/space#storage",
+ "@type": "@id",
"@container": "@set",
},
};
diff --git a/packages/solid/src/.ldo/solid.schema.ts b/packages/solid/src/.ldo/solid.schema.ts
index dabb685..4d9adc0 100644
--- a/packages/solid/src/.ldo/solid.schema.ts
+++ b/packages/solid/src/.ldo/solid.schema.ts
@@ -1,4 +1,4 @@
-import type { Schema } from "shexj";
+import { Schema } from "shexj";
/**
* =============================================================================
@@ -210,5 +210,24 @@ export const solidSchema: Schema = {
extra: ["http://www.w3.org/1999/02/22-rdf-syntax-ns#type"],
},
},
+ {
+ id: "http://www.w3.org/ns/lddps#ProfileWithStorage",
+ type: "ShapeDecl",
+ shapeExpr: {
+ type: "Shape",
+ expression: {
+ id: "http://www.w3.org/ns/lddps#ProfileWithStorageShape",
+ type: "TripleConstraint",
+ predicate: "http://www.w3.org/ns/pim/space#storage",
+ valueExpr: {
+ type: "NodeConstraint",
+ nodeKind: "iri",
+ },
+ min: 0,
+ max: -1,
+ },
+ extra: ["http://www.w3.org/1999/02/22-rdf-syntax-ns#type"],
+ },
+ },
],
};
diff --git a/packages/solid/src/.ldo/solid.shapeTypes.ts b/packages/solid/src/.ldo/solid.shapeTypes.ts
index 705e60e..69ddd90 100644
--- a/packages/solid/src/.ldo/solid.shapeTypes.ts
+++ b/packages/solid/src/.ldo/solid.shapeTypes.ts
@@ -1,7 +1,7 @@
-import type { ShapeType } from "@ldo/ldo";
+import { ShapeType } from "@ldo/ldo";
import { solidSchema } from "./solid.schema";
import { solidContext } from "./solid.context";
-import type { Container, Resource } from "./solid.typings";
+import { Container, Resource, ProfileWithStorage } from "./solid.typings";
/**
* =============================================================================
@@ -26,3 +26,12 @@ export const ResourceShapeType: ShapeType = {
shape: "http://www.w3.org/ns/lddps#Resource",
context: solidContext,
};
+
+/**
+ * ProfileWithStorage ShapeType
+ */
+export const ProfileWithStorageShapeType: ShapeType = {
+ schema: solidSchema,
+ shape: "http://www.w3.org/ns/lddps#ProfileWithStorage",
+ context: solidContext,
+};
diff --git a/packages/solid/src/.ldo/solid.typings.ts b/packages/solid/src/.ldo/solid.typings.ts
index a9593f5..b5e6276 100644
--- a/packages/solid/src/.ldo/solid.typings.ts
+++ b/packages/solid/src/.ldo/solid.typings.ts
@@ -1,4 +1,4 @@
-import type { ContextDefinition } from "jsonld";
+import { ContextDefinition } from "jsonld";
/**
* =============================================================================
@@ -57,9 +57,6 @@ export interface Resource {
| {
"@id": "Resource2";
}
- | {
- "@id": "Container";
- }
)[];
/**
* Date modified
@@ -74,3 +71,14 @@ export interface Resource {
*/
size?: number;
}
+
+/**
+ * ProfileWithStorage Type
+ */
+export interface ProfileWithStorage {
+ "@id"?: string;
+ "@context"?: ContextDefinition;
+ storage?: {
+ "@id": string;
+ }[];
+}
diff --git a/packages/solid/src/.shapes/solid.shex b/packages/solid/src/.shapes/solid.shex
index 67dc06e..f90f1b5 100644
--- a/packages/solid/src/.shapes/solid.shex
+++ b/packages/solid/src/.shapes/solid.shex
@@ -6,6 +6,7 @@ PREFIX ldps:
PREFIX dct:
PREFIX stat:
PREFIX tur:
+PREFIX pim:
ldps:Container EXTRA a {
$ldps:ContainerShape (
@@ -34,3 +35,9 @@ ldps:Resource EXTRA a {
// rdfs:comment "size of this container";
)
}
+
+ldps:ProfileWithStorage EXTRA a {
+ $ldps:ProfileWithStorageShape (
+ pim:storage IRI *;
+ )
+}
diff --git a/packages/solid/src/SolidLdoDataset.ts b/packages/solid/src/SolidLdoDataset.ts
index e3b6a34..034235d 100644
--- a/packages/solid/src/SolidLdoDataset.ts
+++ b/packages/solid/src/SolidLdoDataset.ts
@@ -10,6 +10,11 @@ import { SolidLdoTransactionDataset } from "./SolidLdoTransactionDataset";
import type { ITransactionDatasetFactory } from "@ldo/subscribable-dataset";
import type { SubjectNode } from "@ldo/rdf-utils";
import type { Resource } from "./resource/Resource";
+import type { CheckRootResultError } from "./requester/requests/checkRootContainer";
+import type { NoRootContainerError } from "./requester/results/error/NoRootContainerError";
+import type { ReadResultError } from "./requester/requests/readResource";
+import { ProfileWithStorageShapeType } from "./.ldo/solid.shapeTypes";
+import type { GetStorageContainerFromWebIdSuccess } from "./requester/results/success/CheckRootContainerSuccess";
/**
* A SolidLdoDataset has all the functionality of an LdoDataset with the added
@@ -113,4 +118,52 @@ export class SolidLdoDataset extends LdoDataset {
startTransaction(linkedDataObject);
return linkedDataObject;
}
+
+ /**
+ * Gets a list of root storage containers for a user given their WebId
+ * @param webId: The webId for the user
+ * @returns A list of storages if successful, an error if not
+ * @example
+ * ```typescript
+ * const result = await solidLdoDataset
+ * .getStorageFromWebId("https://example.com/profile/card#me");
+ * if (result.isError) {
+ * // Do something
+ * }
+ * console.log(result.storageContainer[0].uri);
+ * ```
+ */
+ async getStorageFromWebId(
+ webId: LeafUri,
+ ): Promise<
+ | GetStorageContainerFromWebIdSuccess
+ | CheckRootResultError
+ | ReadResultError
+ | NoRootContainerError
+ > {
+ const webIdResource = this.getResource(webId);
+ const readResult = await webIdResource.readIfUnfetched();
+ if (readResult.isError) return readResult;
+ const profile = this.usingType(ProfileWithStorageShapeType).fromSubject(
+ webId,
+ );
+ if (profile.storage && profile.storage.length > 0) {
+ const containers = profile.storage.map((storageNode) =>
+ this.getResource(storageNode["@id"] as ContainerUri),
+ );
+ return {
+ type: "getStorageContainerFromWebIdSuccess",
+ isError: false,
+ storageContainers: containers,
+ };
+ }
+ const getContainerResult = await webIdResource.getRootContainer();
+ if (getContainerResult.type === "container")
+ return {
+ type: "getStorageContainerFromWebIdSuccess",
+ isError: false,
+ storageContainers: [getContainerResult],
+ };
+ return getContainerResult;
+ }
}
diff --git a/packages/solid/src/methods.ts b/packages/solid/src/methods.ts
index b1945ba..5fb36a7 100644
--- a/packages/solid/src/methods.ts
+++ b/packages/solid/src/methods.ts
@@ -22,7 +22,7 @@ import type { SolidLdoTransactionDataset } from "./SolidLdoTransactionDataset";
*
* const profile = solidLdoDataset
* .using(ProfileShapeType)
- * .fromSubject("https://example.com/proifle#me");
+ * .fromSubject("https://example.com/profile#me");
* const resource = solidLdoDataset.getResource("https://example.com/profile");
*
* const cProfile = changeData(profile, resource);
@@ -60,7 +60,7 @@ export function changeData(
*
* const profile = solidLdoDataset
* .using(ProfileShapeType)
- * .fromSubject("https://example.com/proifle#me");
+ * .fromSubject("https://example.com/profile#me");
* const resource = solidLdoDataset.getResource("https://example.com/profile");
*
* const cProfile = changeData(profile, resource);
diff --git a/packages/solid/src/requester/requests/checkRootContainer.ts b/packages/solid/src/requester/requests/checkRootContainer.ts
index 18f4988..2c8df9f 100644
--- a/packages/solid/src/requester/requests/checkRootContainer.ts
+++ b/packages/solid/src/requester/requests/checkRootContainer.ts
@@ -1,6 +1,5 @@
import type { BasicRequestOptions } from "./requestOptions";
import { parse as parseLinkHeader } from "http-link-header";
-import { NoncompliantPodError } from "../results/error/NoncompliantPodError";
import type { CheckRootContainerSuccess } from "../results/success/CheckRootContainerSuccess";
import type {
HttpErrorResultType,
@@ -21,7 +20,6 @@ export type CheckRootResult = CheckRootContainerSuccess | CheckRootResultError;
*/
export type CheckRootResultError =
| HttpErrorResultType
- | NoncompliantPodError
| UnexpectedHttpError
| UnexpectedResourceError;
@@ -37,10 +35,15 @@ export type CheckRootResultError =
export function checkHeadersForRootContainer(
uri: ContainerUri,
headers: Headers,
-): CheckRootContainerSuccess | NoncompliantPodError {
+): CheckRootContainerSuccess {
const linkHeader = headers.get("link");
if (!linkHeader) {
- return new NoncompliantPodError(uri, "No link header present in request.");
+ return {
+ uri,
+ isRootContainer: false,
+ type: "checkRootContainerSuccess",
+ isError: false,
+ };
}
const parsedLinkHeader = parseLinkHeader(linkHeader);
const types = parsedLinkHeader.get("rel", "type");
@@ -82,7 +85,10 @@ export async function checkRootContainer(
try {
const fetch = guaranteeFetch(options?.fetch);
// Fetch options to determine the document type
- const response = await fetch(uri, { method: "HEAD" });
+ // Note cache: "no-store": we don't want to depend on cached results because
+ // web browsers do not cache link headers
+ // https://github.com/CommunitySolidServer/CommunitySolidServer/issues/1959
+ const response = await fetch(uri, { method: "HEAD", cache: "no-store" });
const httpErrorResult = HttpErrorResult.checkResponse(uri, response);
if (httpErrorResult) return httpErrorResult;
diff --git a/packages/solid/src/requester/requests/readResource.ts b/packages/solid/src/requester/requests/readResource.ts
index fbfb4db..a0a961f 100644
--- a/packages/solid/src/requester/requests/readResource.ts
+++ b/packages/solid/src/requester/requests/readResource.ts
@@ -99,7 +99,9 @@ export async function readResource(
try {
const fetch = guaranteeFetch(options?.fetch);
// Fetch options to determine the document type
- const response = await fetch(uri);
+ const response = await fetch(uri, {
+ headers: { accept: "text/turtle, */*" },
+ });
if (response.status === 404) {
return {
isError: false,
@@ -124,7 +126,7 @@ export async function readResource(
);
}
- if (contentType === "text/turtle") {
+ if (contentType.startsWith("text/turtle")) {
// Parse Turtle
const rawTurtle = await response.text();
if (options?.dataset) {
@@ -137,7 +139,6 @@ export async function readResource(
}
if (isContainerUri(uri)) {
const result = checkHeadersForRootContainer(uri, response.headers);
- if (result.isError) return result;
return {
isError: false,
type: "containerReadSuccess",
diff --git a/packages/solid/src/requester/results/error/NoRootContainerError.ts b/packages/solid/src/requester/results/error/NoRootContainerError.ts
new file mode 100644
index 0000000..8a17f2f
--- /dev/null
+++ b/packages/solid/src/requester/results/error/NoRootContainerError.ts
@@ -0,0 +1,17 @@
+import { ResourceError } from "./ErrorResult";
+
+/**
+ * A NoncompliantPodError is returned when the server responded in a way that is
+ * not compliant with the Solid specification.
+ */
+export class NoRootContainerError extends ResourceError {
+ readonly type = "noRootContainerError" as const;
+
+ /**
+ * @param uri - the URI of the requested resource
+ * @param message - a custom message for the error
+ */
+ constructor(uri: string) {
+ super(uri, `${uri} has not root container.`);
+ }
+}
diff --git a/packages/solid/src/requester/results/success/CheckRootContainerSuccess.ts b/packages/solid/src/requester/results/success/CheckRootContainerSuccess.ts
index e2e12cb..77a435f 100644
--- a/packages/solid/src/requester/results/success/CheckRootContainerSuccess.ts
+++ b/packages/solid/src/requester/results/success/CheckRootContainerSuccess.ts
@@ -1,4 +1,5 @@
-import type { ResourceSuccess } from "./SuccessResult";
+import type { Container } from "../../../resource/Container";
+import type { ResourceSuccess, SuccessResult } from "./SuccessResult";
/**
* Indicates that the request to check if a resource is the root container was
@@ -11,3 +12,8 @@ export interface CheckRootContainerSuccess extends ResourceSuccess {
*/
isRootContainer: boolean;
}
+
+export interface GetStorageContainerFromWebIdSuccess extends SuccessResult {
+ type: "getStorageContainerFromWebIdSuccess";
+ storageContainers: Container[];
+}
diff --git a/packages/solid/src/resource/Container.ts b/packages/solid/src/resource/Container.ts
index e21fcde..2670e28 100644
--- a/packages/solid/src/resource/Container.ts
+++ b/packages/solid/src/resource/Container.ts
@@ -19,7 +19,6 @@ import type {
ReadResultError,
} from "../requester/requests/readResource";
import { AggregateError } from "../requester/results/error/ErrorResult";
-import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError";
import type { DeleteSuccess } from "../requester/results/success/DeleteSuccess";
import type { AbsentReadSuccess } from "../requester/results/success/ReadSuccess";
import type { ContainerReadSuccess } from "../requester/results/success/ReadSuccess";
@@ -31,6 +30,7 @@ import type { Leaf } from "./Leaf";
import type { SharedStatuses } from "./Resource";
import { Resource } from "./Resource";
import type { ResourceResult } from "./resourceResult/ResourceResult";
+import { NoRootContainerError } from "../requester/results/error/NoRootContainerError";
/**
* Represents the current status of a specific container on a Pod as known by
@@ -222,7 +222,8 @@ export class Container extends Resource {
/**
* Gets the root container of this container. If this container is the root
* container, this function returns itself.
- * @returns The root container for this container
+ * @returns The root container for this container or undefined if there is no
+ * root container.
*
* @example
* Suppose the root container is at `https://example.com/`
@@ -237,11 +238,13 @@ export class Container extends Resource {
* }
* ```
*/
- async getRootContainer(): Promise {
+ async getRootContainer(): Promise<
+ Container | CheckRootResultError | NoRootContainerError
+ > {
const parentContainerResult = await this.getParentContainer();
if (parentContainerResult?.isError) return parentContainerResult;
if (!parentContainerResult) {
- return this;
+ return this.isRootContainer() ? this : new NoRootContainerError(this.uri);
}
return parentContainerResult.getRootContainer();
}
@@ -277,10 +280,7 @@ export class Container extends Resource {
if (this.rootContainer) return undefined;
const parentUri = getParentUri(this.uri);
if (!parentUri) {
- return new NoncompliantPodError(
- this.uri,
- `${this.uri} is not root does not have a parent container`,
- );
+ return undefined;
}
return this.context.resourceStore.get(parentUri);
}
diff --git a/packages/solid/src/resource/Leaf.ts b/packages/solid/src/resource/Leaf.ts
index 60fba98..1490a0b 100644
--- a/packages/solid/src/resource/Leaf.ts
+++ b/packages/solid/src/resource/Leaf.ts
@@ -23,6 +23,7 @@ import type { Container } from "./Container";
import type { SharedStatuses } from "./Resource";
import { Resource } from "./Resource";
import type { ResourceResult } from "./resourceResult/ResourceResult";
+import type { NoRootContainerError } from "../requester/results/error/NoRootContainerError";
/**
* Represents the current status of a specific Leaf on a Pod as known by LDO.
@@ -77,7 +78,9 @@ export class Leaf extends Resource {
*/
constructor(uri: LeafUri, context: SolidLdoDatasetContext) {
super(context);
- this.uri = uri;
+ const uriObject = new URL(uri);
+ uriObject.hash = "";
+ this.uri = uriObject.toString() as LeafUri;
this.requester = new LeafBatchedRequester(uri, context);
this.status = { isError: false, type: "unfetched", uri };
}
@@ -338,7 +341,12 @@ export class Leaf extends Resource {
* }
* ```
*/
- async getRootContainer(): Promise {
+ async getRootContainer(): Promise<
+ Container | CheckRootResultError | NoRootContainerError
+ > {
+ // Check to see if this document has a pim:storage if so, use that
+
+ // If not, traverse the tree
const parent = await this.getParentContainer();
return parent.getRootContainer();
}
diff --git a/packages/solid/src/resource/Resource.ts b/packages/solid/src/resource/Resource.ts
index 41bcb51..e52d8d1 100644
--- a/packages/solid/src/resource/Resource.ts
+++ b/packages/solid/src/resource/Resource.ts
@@ -32,6 +32,7 @@ import { getWacRuleWithAclUri, type GetWacRuleResult } from "./wac/getWacRule";
import { NoncompliantPodError } from "../requester/results/error/NoncompliantPodError";
import { setWacRuleForAclUri, type SetWacRuleResult } from "./wac/setWacRule";
import type { LeafUri } from "../util/uriTypes";
+import type { NoRootContainerError } from "../requester/results/error/NoRootContainerError";
/**
* Statuses shared between both Leaf and Container
@@ -524,7 +525,9 @@ export abstract class Resource extends (EventEmitter as new () => TypedEmitter<{
* }
* ```
*/
- abstract getRootContainer(): Promise;
+ abstract getRootContainer(): Promise<
+ Container | CheckRootResultError | NoRootContainerError
+ >;
abstract getParentContainer(): Promise<
Container | CheckRootResultError | undefined
diff --git a/packages/solid/test/Integration.test.ts b/packages/solid/test/Integration.test.ts
index 1b3b625..d9cd71d 100644
--- a/packages/solid/test/Integration.test.ts
+++ b/packages/solid/test/Integration.test.ts
@@ -8,12 +8,7 @@ import type {
UpdateResultError,
} from "../src";
import { changeData, commitData, createSolidLdoDataset } from "../src";
-import {
- ROOT_CONTAINER,
- WEB_ID,
- createApp,
- getAuthenticatedFetch,
-} from "./solidServer.helper";
+import { ROOT_CONTAINER, WEB_ID, createApp } from "./solidServer.helper";
import {
namedNode,
quad as createQuad,
@@ -45,6 +40,8 @@ import type {
import type { NoncompliantPodError } from "../src/requester/results/error/NoncompliantPodError";
import type { GetWacRuleSuccess } from "../src/resource/wac/results/GetWacRuleSuccess";
import type { WacRule } from "../src/resource/wac/WacRule";
+import type { GetStorageContainerFromWebIdSuccess } from "../src/requester/results/success/CheckRootContainerSuccess";
+import { generateAuthFetch } from "./authFetch.helper";
const TEST_CONTAINER_SLUG = "test_ldo/";
const TEST_CONTAINER_URI =
@@ -58,6 +55,7 @@ const SAMPLE2_BINARY_URI =
`${TEST_CONTAINER_URI}${SAMPLE2_BINARY_SLUG}` as LeafUri;
const SAMPLE_CONTAINER_URI =
`${TEST_CONTAINER_URI}sample_container/` as ContainerUri;
+const SAMPLE_PROFILE_URI = `${TEST_CONTAINER_URI}profile.ttl` as LeafUri;
const SPIDER_MAN_TTL = `@base .
@prefix rdf: .
@prefix rdfs: .
@@ -98,6 +96,11 @@ const TEST_CONTAINER_ACL = `<#b30e3fd1-b5a8-4763-ad9d-e95de9cf7933> a , , , ;
<${WEB_ID}>;
, .`;
+const SAMPLE_PROFILE_TTL = `
+@prefix pim: .
+
+<${SAMPLE_PROFILE_URI}> pim:storage , .
+`;
async function testRequestLoads(
request: () => Promise,
@@ -150,16 +153,25 @@ describe("Integration", () => {
>;
let solidLdoDataset: SolidLdoDataset;
+ let previousJestId: string | undefined;
+ let previousNodeEnv: string | undefined;
beforeAll(async () => {
+ // Remove Jest ID so that community solid server doesn't use the Jest Import
+ previousJestId = process.env.JEST_WORKER_ID;
+ previousNodeEnv = process.env.NODE_ENV;
+ delete process.env.JEST_WORKER_ID;
+ process.env.NODE_ENV = "other_test";
// Start up the server
app = await createApp();
await app.start();
- authFetch = await getAuthenticatedFetch();
+ authFetch = await generateAuthFetch();
});
afterAll(async () => {
app.stop();
+ process.env.JEST_WORKER_ID = previousJestId;
+ process.env.NODE_ENV = previousNodeEnv;
});
beforeEach(async () => {
@@ -191,6 +203,11 @@ describe("Integration", () => {
headers: { "content-type": "text/plain", slug: "sample.txt" },
body: "some text.",
}),
+ authFetch(TEST_CONTAINER_URI, {
+ method: "POST",
+ headers: { "content-type": "text/turtle", slug: "profile.ttl" },
+ body: SAMPLE_PROFILE_TTL,
+ }),
]);
});
@@ -208,6 +225,9 @@ describe("Integration", () => {
authFetch(SAMPLE2_BINARY_URI, {
method: "DELETE",
}),
+ authFetch(SAMPLE_PROFILE_URI, {
+ method: "DELETE",
+ }),
authFetch(SAMPLE_CONTAINER_URI, {
method: "DELETE",
}),
@@ -217,6 +237,18 @@ describe("Integration", () => {
});
});
+ /**
+ * General
+ */
+ describe("General", () => {
+ it("Does not include the hash when creating a resource", () => {
+ const resource = solidLdoDataset.getResource(
+ "https://example.com/thing#hash",
+ );
+ expect(resource.uri).toBe("https://example.com/thing");
+ });
+ });
+
/**
* Read
*/
@@ -271,7 +303,7 @@ describe("Integration", () => {
isDoingInitialFetch: true,
});
expect(result.type).toBe("containerReadSuccess");
- expect(resource.children().length).toBe(2);
+ expect(resource.children().length).toBe(3);
});
it("Reads a binary leaf", async () => {
@@ -385,6 +417,24 @@ describe("Integration", () => {
);
});
+ it("Parses Turtle even when the content type contains parameters", async () => {
+ fetchMock.mockResolvedValueOnce(
+ new Response(SPIDER_MAN_TTL, {
+ status: 200,
+ headers: new Headers({ "content-type": "text/turtle;charset=utf-8" }),
+ }),
+ );
+ const resource = solidLdoDataset.getResource(SAMPLE_DATA_URI);
+ const result = await testRequestLoads(() => resource.read(), resource, {
+ isLoading: true,
+ isReading: true,
+ isDoingInitialFetch: true,
+ });
+ expect(result.isError).toBe(false);
+ if (result.isError) return;
+ expect(result.type).toBe("dataReadSuccess");
+ });
+
it("Returns an UnexpectedResourceError if an unknown error is triggered", async () => {
fetchMock.mockRejectedValueOnce(new Error("Something happened."));
const resource = solidLdoDataset.getResource(SAMPLE2_DATA_URI);
@@ -399,7 +449,7 @@ describe("Integration", () => {
expect(result.message).toBe("Something happened.");
});
- it("Returns an error if there is no link header for a container request", async () => {
+ it("Does not return an error if there is no link header for a container request", async () => {
fetchMock.mockResolvedValueOnce(
new Response(TEST_CONTAINER_TTL, {
status: 200,
@@ -412,12 +462,9 @@ describe("Integration", () => {
isReading: true,
isDoingInitialFetch: true,
});
- expect(result.isError).toBe(true);
- if (!result.isError) return;
- expect(result.type).toBe("noncompliantPodError");
- expect(result.message).toMatch(
- /\Response from .* is not compliant with the Solid Specification: No link header present in request\./,
- );
+ expect(result.isError).toBe(false);
+ if (result.isError) return;
+ expect(result.resource.isRootContainer()).toBe(false);
});
it("knows nothing about a leaf resource if it is not fetched", () => {
@@ -470,7 +517,7 @@ describe("Integration", () => {
},
);
expect(result.type).toBe("containerReadSuccess");
- expect(resource.children().length).toBe(2);
+ expect(resource.children().length).toBe(3);
});
it("reads an unfetched leaf", async () => {
@@ -501,7 +548,7 @@ describe("Integration", () => {
const result = await resource.readIfUnfetched();
expect(fetchMock).not.toHaveBeenCalled();
expect(result.type).toBe("containerReadSuccess");
- expect(resource.children().length).toBe(2);
+ expect(resource.children().length).toBe(3);
});
it("returns a cached existing data leaf", async () => {
@@ -559,7 +606,19 @@ describe("Integration", () => {
expect(result.isRootContainer()).toBe(true);
});
- it("Returns an error if there is no link header for a container request", async () => {
+ it("Returns an error if there is no root container", async () => {
+ fetchMock.mockResolvedValueOnce(
+ new Response(TEST_CONTAINER_TTL, {
+ status: 200,
+ headers: new Headers({ "content-type": "text/turtle" }),
+ }),
+ );
+ fetchMock.mockResolvedValueOnce(
+ new Response(TEST_CONTAINER_TTL, {
+ status: 200,
+ headers: new Headers({ "content-type": "text/turtle" }),
+ }),
+ );
fetchMock.mockResolvedValueOnce(
new Response(TEST_CONTAINER_TTL, {
status: 200,
@@ -570,10 +629,8 @@ describe("Integration", () => {
const result = await resource.getRootContainer();
expect(result.isError).toBe(true);
if (!result.isError) return;
- expect(result.type).toBe("noncompliantPodError");
- expect(result.message).toMatch(
- /\Response from .* is not compliant with the Solid Specification: No link header present in request\./,
- );
+ expect(result.type).toBe("noRootContainerError");
+ expect(result.message).toMatch(/\.* has not root container\./);
});
it("An error to be returned if a common http error is encountered", async () => {
@@ -611,7 +668,47 @@ describe("Integration", () => {
const resource = solidLdoDataset.getResource(ROOT_CONTAINER);
const result = await resource.getRootContainer();
expect(result.isError).toBe(true);
- expect(result.type).toBe("noncompliantPodError");
+ expect(result.type).toBe("noRootContainerError");
+ });
+ });
+
+ /**
+ * Get Storage From WebId
+ */
+ describe("getStorageFromWebId", () => {
+ it("Gets storage when a pim:storage field isn't present", async () => {
+ const result = await solidLdoDataset.getStorageFromWebId(SAMPLE_DATA_URI);
+ expect(result.type).toBe("getStorageContainerFromWebIdSuccess");
+ const realResult = result as GetStorageContainerFromWebIdSuccess;
+ expect(realResult.storageContainers.length).toBe(1);
+ expect(realResult.storageContainers[0].uri).toBe(ROOT_CONTAINER);
+ });
+
+ it("Gets storage when a pim:storage field is present", async () => {
+ const result =
+ await solidLdoDataset.getStorageFromWebId(SAMPLE_PROFILE_URI);
+ expect(result.type).toBe("getStorageContainerFromWebIdSuccess");
+ const realResult = result as GetStorageContainerFromWebIdSuccess;
+ expect(realResult.storageContainers.length).toBe(2);
+ expect(realResult.storageContainers[0].uri).toBe(
+ "https://example.com/A/",
+ );
+ expect(realResult.storageContainers[1].uri).toBe(
+ "https://example.com/B/",
+ );
+ });
+
+ it("Passes any errors returned from the read method", async () => {
+ fetchMock.mockRejectedValueOnce(new Error("Something happened."));
+ const result = await solidLdoDataset.getStorageFromWebId(SAMPLE_DATA_URI);
+ expect(result.isError).toBe(true);
+ });
+
+ it("Passes any errors returned from the getRootContainer method", async () => {
+ fetchMock.mockResolvedValueOnce(new Response(""));
+ fetchMock.mockRejectedValueOnce(new Error("Something happened."));
+ const result = await solidLdoDataset.getStorageFromWebId(SAMPLE_DATA_URI);
+ expect(result.isError).toBe(true);
});
});
diff --git a/packages/solid/test/authFetch.helper.ts b/packages/solid/test/authFetch.helper.ts
new file mode 100644
index 0000000..fffee6a
--- /dev/null
+++ b/packages/solid/test/authFetch.helper.ts
@@ -0,0 +1,112 @@
+import type { KeyPair } from "@inrupt/solid-client-authn-core";
+import {
+ buildAuthenticatedFetch,
+ createDpopHeader,
+ generateDpopKeyPair,
+} from "@inrupt/solid-client-authn-core";
+import fetch from "cross-fetch";
+
+const config = {
+ podName: process.env.USER_NAME || "example",
+ email: process.env.EMAIL || "hello@example.com",
+ password: process.env.PASSWORD || "abc123",
+};
+
+async function getAuthorization(): Promise {
+ // First we request the account API controls to find out where we can log in
+ const indexResponse = await fetch("http://localhost:3001/.account/");
+ const { controls } = await indexResponse.json();
+
+ // And then we log in to the account API
+ const response = await fetch(controls.password.login, {
+ method: "POST",
+ headers: { "content-type": "application/json" },
+ body: JSON.stringify({
+ email: config.email,
+ password: config.password,
+ }),
+ });
+ // This authorization value will be used to authenticate in the next step
+ const result = await response.json();
+ return result.authorization;
+}
+
+async function getSecret(
+ authorization: string,
+): Promise<{ id: string; secret: string; resource: string }> {
+ // Now that we are logged in, we need to request the updated controls from the server.
+ // These will now have more values than in the previous example.
+ const indexResponse = await fetch("http://localhost:3001/.account/", {
+ headers: { authorization: `CSS-Account-Token ${authorization}` },
+ });
+ const { controls } = await indexResponse.json();
+
+ // Here we request the server to generate a token on our account
+ const response = await fetch(controls.account.clientCredentials, {
+ method: "POST",
+ headers: {
+ authorization: `CSS-Account-Token ${authorization}`,
+ "content-type": "application/json",
+ },
+ // The name field will be used when generating the ID of your token.
+ // The WebID field determines which WebID you will identify as when using the token.
+ // Only WebIDs linked to your account can be used.
+ body: JSON.stringify({
+ name: "my-token",
+ webId: `http://localhost:3001/${config.podName}/profile/card#me`,
+ }),
+ });
+
+ // These are the identifier and secret of your token.
+ // Store the secret somewhere safe as there is no way to request it again from the server!
+ // The `resource` value can be used to delete the token at a later point in time.
+ const response2 = await response.json();
+ return response2;
+}
+
+async function getAccessToken(
+ id: string,
+ secret: string,
+): Promise<{ accessToken: string; dpopKey: KeyPair }> {
+ try {
+ // A key pair is needed for encryption.
+ // This function from `solid-client-authn` generates such a pair for you.
+ const dpopKey = await generateDpopKeyPair();
+
+ // These are the ID and secret generated in the previous step.
+ // Both the ID and the secret need to be form-encoded.
+ const authString = `${encodeURIComponent(id)}:${encodeURIComponent(
+ secret,
+ )}`;
+ // This URL can be found by looking at the "token_endpoint" field at
+ // http://localhost:3001/.well-known/openid-configuration
+ // if your server is hosted at http://localhost:3000/.
+ const tokenUrl = "http://localhost:3001/.oidc/token";
+ const response = await fetch(tokenUrl, {
+ method: "POST",
+ headers: {
+ // The header needs to be in base64 encoding.
+ authorization: `Basic ${Buffer.from(authString).toString("base64")}`,
+ "content-type": "application/x-www-form-urlencoded",
+ dpop: await createDpopHeader(tokenUrl, "POST", dpopKey),
+ },
+ body: "grant_type=client_credentials&scope=webid",
+ });
+
+ // This is the Access token that will be used to do an authenticated request to the server.
+ // The JSON also contains an "expires_in" field in seconds,
+ // which you can use to know when you need request a new Access token.
+ const response2 = await response.json();
+ return { accessToken: response2.access_token, dpopKey };
+ } catch (err) {
+ console.error(err);
+ throw err;
+ }
+}
+
+export async function generateAuthFetch() {
+ const authorization = await getAuthorization();
+ const { id, secret } = await getSecret(authorization);
+ const { accessToken, dpopKey } = await getAccessToken(id, secret);
+ return await buildAuthenticatedFetch(accessToken, { dpopKey });
+}
diff --git a/packages/solid/test/configs/server-config.json b/packages/solid/test/configs/server-config.json
new file mode 100644
index 0000000..5e96784
--- /dev/null
+++ b/packages/solid/test/configs/server-config.json
@@ -0,0 +1,43 @@
+{
+ "@context": [
+ "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld"
+ ],
+ "import": [
+ "css:config/app/init/static-root.json",
+ "css:config/app/main/default.json",
+ "css:config/app/variables/default.json",
+ "css:config/http/handler/default.json",
+ "css:config/http/middleware/default.json",
+ "css:config/http/notifications/all.json",
+ "css:config/http/server-factory/http.json",
+ "css:config/http/static/default.json",
+ "css:config/identity/access/public.json",
+ "css:config/identity/email/default.json",
+ "css:config/identity/handler/default.json",
+ "css:config/identity/oidc/default.json",
+ "css:config/identity/ownership/token.json",
+ "css:config/identity/pod/static.json",
+ "css:config/ldp/authentication/dpop-bearer.json",
+ "css:config/ldp/authorization/webacl.json",
+ "css:config/ldp/handler/default.json",
+ "css:config/ldp/metadata-parser/default.json",
+ "css:config/ldp/metadata-writer/default.json",
+ "css:config/ldp/modes/default.json",
+ "css:config/storage/backend/memory.json",
+ "css:config/storage/key-value/resource-store.json",
+ "css:config/storage/location/pod.json",
+ "css:config/storage/middleware/default.json",
+ "css:config/util/auxiliary/acl.json",
+ "css:config/util/identifiers/suffix.json",
+ "css:config/util/index/default.json",
+ "css:config/util/logging/winston.json",
+ "css:config/util/representation-conversion/default.json",
+ "css:config/util/resource-locker/memory.json",
+ "css:config/util/variables/default.json"
+ ],
+ "@graph": [
+ {
+ "comment": "A Solid server that stores its resources on disk and uses WAC for authorization."
+ }
+ ]
+}
\ No newline at end of file
diff --git a/packages/solid/test/configs/solid-css-seed.json b/packages/solid/test/configs/solid-css-seed.json
index 1b10b4c..5894d0d 100644
--- a/packages/solid/test/configs/solid-css-seed.json
+++ b/packages/solid/test/configs/solid-css-seed.json
@@ -1,7 +1,9 @@
[
{
- "podName": "example",
"email": "hello@example.com",
- "password": "abc123"
+ "password": "abc123",
+ "pods": [
+ { "name": "example" }
+ ]
}
]
\ No newline at end of file
diff --git a/packages/solid/test/solidServer.helper.ts b/packages/solid/test/solidServer.helper.ts
index 3447f96..f16b6cc 100644
--- a/packages/solid/test/solidServer.helper.ts
+++ b/packages/solid/test/solidServer.helper.ts
@@ -1,24 +1,9 @@
// Taken from https://github.com/comunica/comunica/blob/b237be4265c353a62a876187d9e21e3bc05123a3/engines/query-sparql/test/QuerySparql-solid-test.ts#L9
import * as path from "path";
-import type { KeyPair } from "@inrupt/solid-client-authn-core";
-import {
- buildAuthenticatedFetch,
- createDpopHeader,
- generateDpopKeyPair,
-} from "@inrupt/solid-client-authn-core";
import type { App } from "@solid/community-server";
import { AppRunner, resolveModulePath } from "@solid/community-server";
import "jest-rdf";
-import fetch from "cross-fetch";
-
-const config = [
- {
- podName: process.env.USER_NAME || "example",
- email: process.env.EMAIL || "hello@example.com",
- password: process.env.PASSWORD || "abc123",
- },
-];
export const SERVER_DOMAIN = process.env.SERVER || "http://localhost:3001/";
export const ROOT_ROUTE = process.env.ROOT_CONTAINER || "";
@@ -37,88 +22,18 @@ export async function createApp(): Promise {
} as App;
}
const appRunner = new AppRunner();
- return appRunner.create(
- {
+
+ return appRunner.create({
+ loaderProperties: {
mainModulePath: resolveModulePath(""),
typeChecking: false,
},
- resolveModulePath("config/default.json"),
- {},
- {
+ config: resolveModulePath("config/default.json"),
+ variableBindings: {},
+ shorthand: {
port: 3_001,
loggingLevel: "off",
- seededPodConfigJson: path.join(
- __dirname,
- "configs",
- "solid-css-seed.json",
- ),
+ seedConfig: path.join(__dirname, "configs", "solid-css-seed.json"),
},
- );
-}
-
-export interface ISecretData {
- id: string;
- secret: string;
-}
-
-// From https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/client-credentials/
-export async function getSecret(): Promise {
- const result = await fetch(`${SERVER_DOMAIN}idp/credentials/`, {
- method: "POST",
- headers: { "content-type": "application/json" },
- body: JSON.stringify({
- email: config[0].email,
- password: config[0].password,
- name: config[0].podName,
- }),
- });
- const json = await result.json();
- return json;
-}
-
-export interface ITokenData {
- accessToken: string;
- dpopKey: KeyPair;
-}
-
-// From https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/client-credentials/
-export async function refreshToken({
- id,
- secret,
-}: ISecretData): Promise {
- const dpopKey = await generateDpopKeyPair();
- const authString = `${encodeURIComponent(id)}:${encodeURIComponent(secret)}`;
- const tokenUrl = `${SERVER_DOMAIN}.oidc/token`;
- const accessToken = await fetch(tokenUrl, {
- method: "POST",
- headers: {
- // The header needs to be in base64 encoding.
- authorization: `Basic ${Buffer.from(authString).toString("base64")}`,
- "content-type": "application/x-www-form-urlencoded",
- dpop: await createDpopHeader(tokenUrl, "POST", dpopKey),
- },
- body: "grant_type=client_credentials&scope=webid",
- })
- .then((res) => res.json())
- .then((res) => res.access_token);
-
- return { accessToken, dpopKey };
-}
-
-export async function getAuthenticatedFetch() {
- // Generate secret
- const secret = await getSecret();
-
- if (!secret) throw new Error("No Secret");
-
- // Get token
- const token = await refreshToken(secret);
-
- if (!token) throw new Error("No Token");
-
- // Build authenticated fetch
- const authFetch = await buildAuthenticatedFetch(fetch, token.accessToken, {
- dpopKey: token.dpopKey,
});
- return authFetch;
}
diff --git a/packages/subscribable-dataset/Readme.md b/packages/subscribable-dataset/Readme.md
index 39920e8..c01c0c3 100644
--- a/packages/subscribable-dataset/Readme.md
+++ b/packages/subscribable-dataset/Readme.md
@@ -86,7 +86,7 @@ async function run(): Promise {
{
baseIRI:
"https://jackson.solidcommunity.net/IndividualChats/jackson.solidcommunity.net/index.ttl#",
- format: "application/json-ld",
+ format: "application/ld+json",
}
);
// Returns true because the input data describes the same triple.
diff --git a/packages/subscribable-dataset/package.json b/packages/subscribable-dataset/package.json
index a093d73..566ff65 100644
--- a/packages/subscribable-dataset/package.json
+++ b/packages/subscribable-dataset/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/subscribable-dataset",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "An RDFJS dataset implementation that can be subscribed to for updates",
"main": "dist/index.js",
"scripts": {
@@ -33,8 +33,8 @@
"ts-node": "^9.1.1"
},
"dependencies": {
- "@ldo/dataset": "^0.0.1-alpha.23",
- "@ldo/rdf-utils": "^0.0.1-alpha.23"
+ "@ldo/dataset": "^0.0.1-alpha.24",
+ "@ldo/rdf-utils": "^0.0.1-alpha.24"
},
"files": [
"dist",
diff --git a/packages/subscribable-dataset/test/createSubscribableDatasetFromSerializedInput.test.ts b/packages/subscribable-dataset/test/createSubscribableDatasetFromSerializedInput.test.ts
index 71f6353..5bab149 100644
--- a/packages/subscribable-dataset/test/createSubscribableDatasetFromSerializedInput.test.ts
+++ b/packages/subscribable-dataset/test/createSubscribableDatasetFromSerializedInput.test.ts
@@ -11,7 +11,7 @@ describe("createExtendedDatasetFromSerializedInput", () => {
const dataset = await serializedToSubscribableDataset(
JSON.stringify(jsonLdData),
{
- format: "application/json-ld",
+ format: "application/ld+json",
},
);
expect(dataset.size).toBe(9);
diff --git a/packages/traverser-shexj/package.json b/packages/traverser-shexj/package.json
index 6fceae7..c53141a 100644
--- a/packages/traverser-shexj/package.json
+++ b/packages/traverser-shexj/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/traverser-shexj",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "A type-traverser for ShexJ",
"main": "dist/index.js",
"scripts": {
@@ -30,7 +30,7 @@
"src"
],
"dependencies": {
- "@ldo/type-traverser": "^0.0.1-alpha.23"
+ "@ldo/type-traverser": "^0.0.1-alpha.24"
},
"publishConfig": {
"access": "public"
diff --git a/packages/type-traverser/package.json b/packages/type-traverser/package.json
index 5ab4239..a497da3 100644
--- a/packages/type-traverser/package.json
+++ b/packages/type-traverser/package.json
@@ -1,6 +1,6 @@
{
"name": "@ldo/type-traverser",
- "version": "0.0.1-alpha.23",
+ "version": "0.0.1-alpha.24",
"description": "An organized way to traverse over objects using typescript",
"main": "dist/index.js",
"scripts": {