diff --git a/.gitignore b/.gitignore
index b5d9e2085..d8d853df0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,5 @@ appdata/
src/frontend/eslint/
src/frontend/docs/
+
+src/tests/.venv/
diff --git a/.travis.yml b/.travis.yml
index eac005260..ee0a2399b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -60,7 +60,6 @@ jobs:
- cd src/frontend
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.17.0
- export PATH="$HOME/.yarn/bin:$PATH"
- - npm install netlify-cli -g
cache:
yarn: true
directories:
@@ -70,8 +69,6 @@ jobs:
- until yarn install --frozen-lockfile ; do echo 'Retrying yarn build' ; done
- yarn run eslint
- yarn run build
- - yarn run docz:build
- - netlify deploy -s $NETLIFY_FRONTEND_ID --auth $NETLIFY_ACCESS_TOKEN -p --dir ./docs
- name: "Backend"
language: java
diff --git a/README.md b/README.md
index b899e2deb..b479cd9fb 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,6 @@
-
## 📃 About
diff --git a/renovate.json b/renovate.json
index f4fae760f..f5a6137a9 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,14 +1,8 @@
{
- "extends": [
- "config:base"
- ],
- "schedule": "every weekend",
- "assignees": [
- "aorumbayev"
- ],
- "baseBranches": [
- "dependency_updates"
- ],
+ "extends": ["config:base"],
+ "schedule": "before 3am on the first day of the month",
+ "assignees": ["aorumbayev"],
+ "baseBranches": ["dependency_updates"],
"separateMajorMinor": true,
"rebaseStalePrs": true,
"automerge": true,
diff --git a/src/backend/Dockerfile b/src/backend/Dockerfile
index e4e1f0753..36f5d2706 100644
--- a/src/backend/Dockerfile
+++ b/src/backend/Dockerfile
@@ -1,5 +1,5 @@
# Using OpenJDK 11
-FROM gradle:5.6.0-jdk11 as builder
+FROM gradle:5.6.4-jdk11 as builder
# Tomcat will eventually create directories here
VOLUME /tmp
diff --git a/src/backend/build.gradle b/src/backend/build.gradle
index 9e8383b76..41d179304 100644
--- a/src/backend/build.gradle
+++ b/src/backend/build.gradle
@@ -1,6 +1,6 @@
buildscript {
ext {
- springBootVersion = '2.1.3.RELEASE'
+ springBootVersion = '2.2.2.RELEASE'
}
repositories {
mavenCentral()
@@ -11,7 +11,7 @@ buildscript {
}
plugins {
- id 'com.palantir.docker-run' version '0.20.1'
+ id 'com.palantir.docker-run' version '0.22.1'
id "org.flywaydb.flyway" version "5.2.4"
}
@@ -43,33 +43,33 @@ dependencies {
compile 'org.jetbrains:annotations:17.0.0'
- compile 'com.fasterxml.jackson.core:jackson-core:2.9.8'
+ compile 'com.fasterxml.jackson.core:jackson-core:2.10.2'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
- compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.8'
+ compile 'com.fasterxml.jackson.core:jackson-annotations:2.10.2'
- compile 'org.apache.jena:apache-jena-libs:3.10.0'
- compile 'org.apache.jena:jena-querybuilder:3.10.0'
- compile 'com.typesafe:config:1.3.3'
+ compile 'org.apache.jena:apache-jena-libs:3.13.1'
+ compile 'org.apache.jena:jena-querybuilder:3.13.1'
+ compile 'com.typesafe:config:1.4.0'
compile 'commons-validator:commons-validator:1.6'
codacy 'com.github.codacy:codacy-coverage-reporter:-SNAPSHOT'
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
- compile 'org.postgresql:postgresql:42.2.5'
- runtime 'javax.xml.bind:jaxb-api:2.3.0'
+ compile 'org.postgresql:postgresql:42.2.9'
+ runtime 'javax.xml.bind:jaxb-api:2.3.1'
- compile 'io.sentry:sentry-spring:1.7.16'
+ compile 'io.sentry:sentry-spring:1.7.29'
compile 'com.corundumstudio.socketio:netty-socketio:1.7.17'
compile 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5'
- compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.9'
- compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.9'
- compile group: 'commons-io', name: 'commons-io', version: '2.5'
+ compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.10'
+ compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.10'
+ compile group: 'commons-io', name: 'commons-io', version: '2.6'
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
- testImplementation 'org.junit.jupiter:junit-jupiter-params:5.3.2'
- testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
+ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.2'
+ testImplementation 'org.junit.jupiter:junit-jupiter-params:5.5.2'
+ testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.2'
}
sourceSets {
diff --git a/src/backend/docs/build.gradle b/src/backend/docs/build.gradle
index b42668381..2aa43ef79 100644
--- a/src/backend/docs/build.gradle
+++ b/src/backend/docs/build.gradle
@@ -1,5 +1,5 @@
plugins {
- id "com.eden.orchidPlugin" version "0.17.1"
+ id "com.eden.orchidPlugin" version "0.18.1"
}
repositories {
@@ -9,7 +9,7 @@ repositories {
}
dependencies {
- def orchid_version = '0.17.1'
+ def orchid_version = '0.18.1'
compile "io.github.javaeden.orchid:OrchidCore:${orchid_version}"
orchidCompile "io.github.javaeden.orchid:OrchidCore:${orchid_version}"
orchidRuntime "io.github.javaeden.orchid:OrchidPages:${orchid_version}"
diff --git a/src/backend/gradle/wrapper/gradle-wrapper.properties b/src/backend/gradle/wrapper/gradle-wrapper.properties
index fde1e2be2..477b832cb 100644
--- a/src/backend/gradle/wrapper/gradle-wrapper.properties
+++ b/src/backend/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile
index 918fcca4a..4f2f2de80 100644
--- a/src/frontend/Dockerfile
+++ b/src/frontend/Dockerfile
@@ -1,5 +1,5 @@
# Base image
-FROM node:10.16.3-alpine
+FROM node:10.18.0-alpine
ENV YARN_VERSION 1.17.0
# Install packages using Yarn
diff --git a/src/frontend/package.json b/src/frontend/package.json
index acec4e442..8cf859ce1 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -28,13 +28,13 @@
},
"flow:status": "flow status --quiet",
"dependencies": {
- "@babel/core": "7.5.5",
- "@babel/runtime": "7.5.5",
+ "@babel/core": "7.7.7",
+ "@babel/runtime": "7.7.7",
"@comunica/actor-init-sparql-rdfjs": "^1.7.2",
"@mapbox/geo-viewport": "^0.4.0",
- "@material-ui/core": "4.3.2",
- "@material-ui/icons": "4.2.1",
- "@sentry/browser": "5.6.1",
+ "@material-ui/core": "4.8.2",
+ "@material-ui/icons": "4.5.1",
+ "@sentry/browser": "5.10.2",
"@turf/bbox": "^6.0.1",
"@turf/helpers": "^6.1.4",
"activitystrea.ms": "^2.1.3",
@@ -47,92 +47,90 @@
"immutability-helper": "^3.0.0",
"json-form-data": "^1.4.1",
"jsonld": "^1.6.2",
- "ldflex": "^2.2.1",
+ "linkedpipes-storage": "1.0.12",
"moment": "^2.24.0",
"n3": "^1.1.1",
"normalize.css": "8.0.1",
"pigeon-cluster": "^0.0.6",
- "pigeon-maps": "^0.13.0",
+ "pigeon-maps": "^0.14.0",
"pigeon-marker": "^0.3.4",
"prop-types": "15.7.2",
"q": "^1.5.1",
- "query-string": "6.8.2",
- "rambda": "^2.10.2",
- "rdflib": "git+https://github.com/aorumbayev/rdflib.js.git",
- "react": "16.9.0",
- "react-chord-diagram": "1.2.0",
- "react-copy-to-clipboard": "5.0.1",
- "react-dom": "16.9.0",
- "react-emoji-render": "1.0.0",
+ "query-string": "6.9.0",
+ "rambda": "^3.0.0",
+ "react": "16.12.0",
+ "react-chord-diagram": "1.5.0",
+ "react-copy-to-clipboard": "5.0.2",
+ "react-dom": "16.12.0",
+ "react-emoji-render": "1.2.1",
"react-error-boundary": "1.2.5",
"react-filepond": "^7.0.1",
"react-ga": "^2.5.7",
- "react-google-charts": "3.0.14",
+ "react-google-charts": "3.0.15",
"react-loading-overlay": "^1.0.1",
"react-particles-js": "^2.6.0",
- "react-redux": "7.1.0",
+ "react-redux": "7.1.3",
"react-router-dom": "4.3.1",
"react-swipeable-views": "^0.13.3",
- "react-toastify": "5.3.2",
- "redux": "4.0.4",
+ "react-toastify": "5.5.0",
+ "redux": "4.0.5",
"redux-logger": "3.0.6",
"redux-thunk": "2.3.0",
- "socket.io-client": "2.2.0",
- "solid-auth-client": "2.3.0",
+ "socket.io-client": "2.3.0",
"streamify-array": "^1.0.1",
"string-hash": "1.1.3",
- "styled-components": "4.3.2",
- "uuid": "3.3.2"
+ "styled-components": "4.4.1",
+ "uuid": "3.3.3"
},
"devDependencies": {
- "@babel/cli": "7.5.5",
- "@babel/plugin-proposal-class-properties": "7.5.5",
- "@babel/plugin-proposal-object-rest-spread": "7.5.5",
- "@babel/plugin-syntax-dynamic-import": "7.2.0",
- "@babel/plugin-transform-runtime": "7.5.5",
- "@babel/preset-env": "7.5.5",
- "@babel/preset-flow": "7.0.0",
- "@babel/preset-react": "7.0.0",
- "@mdx-js/loader": "1.3.1",
- "@sentry/webpack-plugin": "1.8.0",
+ "@babel/cli": "7.7.7",
+ "@babel/plugin-proposal-class-properties": "7.7.4",
+ "@babel/plugin-proposal-object-rest-spread": "7.7.7",
+ "@babel/plugin-syntax-dynamic-import": "7.7.4",
+ "@babel/plugin-transform-runtime": "7.7.6",
+ "@babel/preset-env": "7.7.7",
+ "@babel/preset-flow": "7.7.4",
+ "@babel/preset-react": "7.7.4",
+ "@mdx-js/loader": "1.5.3",
+ "@sentry/webpack-plugin": "1.9.3",
"babel-cli": "6.26.0",
- "babel-eslint": "10.0.2",
+ "babel-eslint": "10.0.3",
"babel-loader": "8.0.6",
"babel-plugin-module-resolver": "3.2.0",
- "babel-plugin-smart-webpack-import": "1.5.0",
+ "babel-plugin-smart-webpack-import": "1.5.2",
"babel-preset-flow": "6.23.0",
- "cross-env": "5.2.0",
- "css-loader": "3.2.0",
- "docz": "1.2.0",
+ "cross-env": "5.2.1",
+ "css-loader": "3.4.1",
+ "docz": "1.3.2",
"docz-plugin-css": "0.11.0",
"docz-theme-default": "1.2.0",
- "eslint": "6.2.0",
+ "eslint": "6.8.0",
"eslint-config-airbnb": "17.1.1",
- "eslint-config-prettier": "6.0.0",
+ "eslint-config-prettier": "6.9.0",
"eslint-import-resolver-babel-module": "5.1.0",
- "eslint-import-resolver-webpack": "0.11.1",
+ "eslint-import-resolver-webpack": "0.12.0",
"eslint-plugin-babel": "5.3.0",
- "eslint-plugin-flowtype": "4.2.0",
- "eslint-plugin-import": "2.18.2",
+ "eslint-plugin-flowtype": "4.5.3",
+ "eslint-plugin-import": "2.19.1",
"eslint-plugin-jsx-a11y": "6.2.3",
"eslint-plugin-material-ui": "1.0.1",
- "eslint-plugin-prettier": "3.1.0",
- "eslint-plugin-react": "7.14.3",
- "file-loader": "4.2.0",
- "flow-bin": "0.105.2",
+ "eslint-plugin-prettier": "3.1.2",
+ "eslint-plugin-react": "7.17.0",
+ "file-loader": "4.3.0",
+ "flow-bin": "0.115.0",
"html-loader": "0.5.5",
"html-webpack-plugin": "3.2.0",
- "lint-staged": "9.2.3",
- "node-sass": "4.12.0",
- "prettier": "1.18.2",
+ "lint-staged": "9.5.0",
+ "node-sass": "4.13.0",
+ "prettier": "1.19.1",
"pretty-quick": "1.11.1",
- "react-hot-loader": "4.12.11",
- "sass-loader": "7.2.0",
- "style-loader": "1.0.0",
- "webpack": "4.39.2",
- "webpack-bundle-analyzer": "3.4.1",
- "webpack-cli": "3.3.7",
+ "react-hot-loader": "4.12.18",
+ "sass-loader": "7.3.1",
+ "style-loader": "1.1.2",
+ "webpack": "4.41.5",
+ "webpack-bundle-analyzer": "3.6.0",
+ "webpack-cli": "3.3.10",
"webpack-conditional-loader": "1.0.12",
- "webpack-dev-server": "3.8.0"
+ "webpack-dev-server": "3.10.1"
}
}
diff --git a/src/frontend/src/AppRouter.jsx b/src/frontend/src/AppRouter.jsx
index 76226cabc..ffac760df 100644
--- a/src/frontend/src/AppRouter.jsx
+++ b/src/frontend/src/AppRouter.jsx
@@ -9,6 +9,7 @@ import * as Sentry from '@sentry/browser';
import { userActions } from '@ducks/userDuck';
import ErrorBoundary from 'react-error-boundary';
import { toast, ToastContainer } from 'react-toastify';
+import { StorageAuthenticationManager } from 'linkedpipes-storage';
import { Invitation } from '@storage/models';
import { discoveryActions } from '@ducks/discoveryDuck';
import { StoragePage, StorageToolbox, StorageInboxDialog } from '@storage';
@@ -195,11 +196,7 @@ class AppRouter extends React.PureComponent {
setupSessionTracker = async () => {
const { handleSetUserWebId, handleUpdateApplicationsFolder } = this.props;
const self = this;
- const authClient = await import(
- /* webpackChunkName: "solid-auth-client" */ 'solid-auth-client'
- );
-
- authClient.trackSession(session => {
+ StorageAuthenticationManager.trackSession(session => {
if (session) {
handleSetUserWebId(session.webId);
@@ -236,7 +233,6 @@ class AppRouter extends React.PureComponent {
setTimeout(() => {
StorageToolbox.getValidAppFolder(session.webId).then(
async newFolder => {
- Log.info(newFolder);
Log.info(newFolder);
if (newFolder) {
Log.warn('Called internal global');
diff --git a/src/frontend/src/components/HeaderControls/HeaderControlsContainer.jsx b/src/frontend/src/components/HeaderControls/HeaderControlsContainer.jsx
index 6b33300a1..8a67a0b58 100644
--- a/src/frontend/src/components/HeaderControls/HeaderControlsContainer.jsx
+++ b/src/frontend/src/components/HeaderControls/HeaderControlsContainer.jsx
@@ -4,6 +4,7 @@ import { HeaderControlsComponent } from './HeaderControlsComponent';
import { withRouter } from 'react-router-dom';
import { connect } from 'react-redux';
import { globalActions } from '@ducks/globalDuck';
+import { solidAuthClient } from 'linkedpipes-storage';
import { SocketContext, GlobalUtils, Log } from '@utils';
type Props = {
@@ -29,10 +30,7 @@ class HeaderControlsContainer extends PureComponent {
performLogout = async () => {
try {
- const authClient = await import(
- /* webpackChunkName: "solid-auth-client" */ 'solid-auth-client'
- );
- await authClient.logout();
+ await solidAuthClient.logout();
// Remove localStorage
localStorage.removeItem('solid-auth-client');
// Clear cookies
diff --git a/src/frontend/src/containers/AuthorizationPage/AuthorizationContainer.jsx b/src/frontend/src/containers/AuthorizationPage/AuthorizationContainer.jsx
index 2178e483c..38d6de669 100644
--- a/src/frontend/src/containers/AuthorizationPage/AuthorizationContainer.jsx
+++ b/src/frontend/src/containers/AuthorizationPage/AuthorizationContainer.jsx
@@ -5,11 +5,13 @@ import { toast } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
import { connect } from 'react-redux';
import Particles from 'react-particles-js';
+import { StorageAuthenticationManager } from 'linkedpipes-storage';
import { Log, GoogleAnalyticsWrapper } from '@utils';
const providers = {
- // Inrupt: 'https://inrupt.net/auth',
- 'LinkedPipes PODs': 'https://lpsolid.eu:8443/auth',
+ Inrupt: 'https://inrupt.net/auth',
+ 'Solid Community': 'https://solid.community/auth',
+ 'LinkedPipes PODs': 'https://lpapps.co:8443/auth',
'': ''
};
@@ -48,13 +50,9 @@ class Authorization extends PureComponent {
};
login = async (idp, callbackUri) => {
- const authClient = await import(
- /* webpackChunkName: "solid-auth-client" */ 'solid-auth-client'
- );
- const session = await authClient.currentSession();
+ const session = await StorageAuthenticationManager.currentSession();
if (!session)
- await authClient.login(idp, {
- // callbackUri,
+ await StorageAuthenticationManager.login(idp, {
storage: localStorage
});
else {
@@ -115,7 +113,10 @@ class Authorization extends PureComponent {
};
handleProviderChange = event => {
- this.setState({ providerTitle: event.target.value, withWebIdStatus: false });
+ this.setState({
+ providerTitle: event.target.value,
+ withWebIdStatus: false
+ });
if (this.state.webIdFieldValue !== '') {
this.setState({ webIdFieldValue: '' });
}
diff --git a/src/frontend/src/containers/AuthorizationPage/children/SolidProviderComponent.jsx b/src/frontend/src/containers/AuthorizationPage/children/SolidProviderComponent.jsx
index 738a1af1c..d90126cf1 100644
--- a/src/frontend/src/containers/AuthorizationPage/children/SolidProviderComponent.jsx
+++ b/src/frontend/src/containers/AuthorizationPage/children/SolidProviderComponent.jsx
@@ -44,7 +44,8 @@ const SolidProviderComponent = ({
- {/* */}
+
+