diff --git a/client/.env.development b/client/.env.development new file mode 100644 index 000000000..a708a53b5 --- /dev/null +++ b/client/.env.development @@ -0,0 +1,2 @@ + +REACT_APP_CSP_CONTENT="default-src 'unsafe-inline'; script-src * 'unsafe-inline'; img-src * data:; style-src 'unsafe-inline'; connect-src * 'unsafe-inline' extensions:" diff --git a/client/.env.production b/client/.env.production new file mode 100644 index 000000000..28e0cb412 --- /dev/null +++ b/client/.env.production @@ -0,0 +1,2 @@ + +REACT_APP_CSP_CONTENT="default-src 'self'; style-src 'self'; script-src 'self';" diff --git a/client/docker-compose.yml b/client/docker-compose.yml index 9c2abfb46..2f30270aa 100644 --- a/client/docker-compose.yml +++ b/client/docker-compose.yml @@ -8,6 +8,7 @@ services: - ./client/tsconfig.json:/usr/app/client/tsconfig.json - ./client/public:/usr/app/client/public - ./client/src:/usr/app/client/src + - ./client/.env.development:/usr/app/client/.env.development networks: example-network: aliases: diff --git a/client/package-lock.json b/client/package-lock.json index c68e83856..b0372dfa9 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,5 +1,5 @@ { - "name": "client-react", + "name": "authelia-portal", "version": "0.1.0", "lockfileVersion": 1, "requires": true, @@ -890,6 +890,215 @@ "react-is": "^16.6.3" } }, + "@material/animation": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.41.0.tgz", + "integrity": "sha512-yYAwJbX3Q2AFd4dr6IYOsWLQy2HN8zWOFVl9AbUXunjzTfJCa/ecfXCriaT6qkmoNoHeTdJHRrsQJZC5GsPvzA==" + }, + "@material/base": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-0.41.0.tgz", + "integrity": "sha512-tEyzwBRu3d1H120SfKsDVYZHcqT5lKohh/7cWKR93aAaPDkSvjpKJIjyu2yuSkjpDduVZGzVocYbOvhUKhhzXQ==" + }, + "@material/button": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-0.41.0.tgz", + "integrity": "sha512-9mA/7P8yD3YPJ8ijwu0oOiT65OCa8Km3M9OF6VAsBE+XJS9Wo5hWDMgkv16raeOFeXj+1ALsjvuTz31JdcSkgQ==", + "requires": { + "@material/elevation": "^0.41.0", + "@material/ripple": "^0.41.0", + "@material/rtl": "^0.40.1", + "@material/shape": "^0.41.0", + "@material/theme": "^0.41.0", + "@material/typography": "^0.41.0" + } + }, + "@material/checkbox": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-0.41.0.tgz", + "integrity": "sha512-Zz6e5WRpziO7Z+4rbEs8GHNNBf1UuttniLp6/RvwPSQRaD8G04sdg4HcP/aDCY1KGMwivkuDPc2Bsgs6j+rD7Q==", + "requires": { + "@material/animation": "^0.41.0", + "@material/base": "^0.41.0", + "@material/ripple": "^0.41.0", + "@material/rtl": "^0.40.1", + "@material/selection-control": "^0.41.0", + "@material/theme": "^0.41.0" + } + }, + "@material/elevation": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.41.0.tgz", + "integrity": "sha512-ZtZS8z5ie9c7Cx5PVudgSorGYa0C3lu3dA+Nn6qJdhGUokl01msh54NfNuwk+EZsk65bNRRqw1Td/63TCbKIzg==", + "requires": { + "@material/animation": "^0.41.0", + "@material/theme": "^0.41.0" + } + }, + "@material/floating-label": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-0.41.0.tgz", + "integrity": "sha512-qI6f1nZU3crXxWAI9fw3U5fHw2qOzEor49EvskbcaV5KSRW5qO+jtfUQ3ib/Vhki7lqhgwNHB/0n7KYhvhjRHQ==", + "requires": { + "@material/animation": "^0.41.0", + "@material/base": "^0.41.0", + "@material/rtl": "^0.40.1", + "@material/theme": "^0.41.0", + "@material/typography": "^0.41.0" + } + }, + "@material/line-ripple": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-0.41.0.tgz", + "integrity": "sha512-5DDIoC3d78fCLhNgle7DRFojT3D2SF+XVpUd3g6yLZmybHB7832p4bgl/qGpbIXwk1wAQA1dkUgKH5foxorjNQ==", + "requires": { + "@material/animation": "^0.41.0", + "@material/base": "^0.41.0", + "@material/theme": "^0.41.0" + } + }, + "@material/notched-outline": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-0.41.0.tgz", + "integrity": "sha512-nQBkOXvkd5G9FeJ9UuecZh88WRgTsnGVvfj7UFJZEkvkzZwLBGUiJS6fF9FYraih3ZFgmphdbJxXEd9af3cqyQ==", + "requires": { + "@material/animation": "^0.41.0", + "@material/base": "^0.41.0", + "@material/rtl": "^0.40.1", + "@material/shape": "^0.41.0", + "@material/theme": "^0.41.0" + } + }, + "@material/react-button": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-button/-/react-button-0.8.0.tgz", + "integrity": "sha512-j/wk/HK2A3/mb+yFdYCbkWFi6hYvvq4fc4t1M3aRLgdeddMNn/+FHOu014dyKeFW93RrBn1WAdQTwCc31KivuQ==", + "requires": { + "@material/button": "^0.41.0", + "@material/react-ripple": "^0.8.0", + "classnames": "^2.2.5", + "react": "^16.4.2" + } + }, + "@material/react-checkbox": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-checkbox/-/react-checkbox-0.8.0.tgz", + "integrity": "sha512-/7wQcFovUa04/T0MnJOnrbGn21CgxSSWjqkbMPFh/RjET8vya/kqAjhkLw51Mk4q6si+nfHljM6YSFvvXbUBBw==", + "requires": { + "@material/checkbox": "^0.41.0", + "@material/react-ripple": "^0.8.0", + "classnames": "^2.2.5", + "react": "^16.3.2" + } + }, + "@material/react-floating-label": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-floating-label/-/react-floating-label-0.8.0.tgz", + "integrity": "sha512-Bfa+/4nLFu6YE0pAB1wG+vxwYiFvHcOKIq7uAB/IY0/N/ONKM2Jh74/KKqLvNJI608YpZqLAqmZu87R3K15rNQ==", + "requires": { + "@material/floating-label": "^0.41.0", + "classnames": "^2.2.5", + "react": "^16.4.2" + } + }, + "@material/react-line-ripple": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-line-ripple/-/react-line-ripple-0.8.0.tgz", + "integrity": "sha512-s921awUm8taB/kbETGN/vEEZV1WUwtTcsNkQ//HsK2fJW7lKuyVWrObc8ZhMFWljVEUj54ANmRvCke7M4/LSmA==", + "requires": { + "@material/line-ripple": "^0.41.0", + "classnames": "^2.2.5", + "react": "^16.4.2" + } + }, + "@material/react-notched-outline": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-notched-outline/-/react-notched-outline-0.8.0.tgz", + "integrity": "sha512-fQ8hHGOQ3dpk9AuuQqXbCAN2UTuRr5LCztkDxdCwvaPC+oR5meTd8RW7RkJgx/MeiSLe/1/2EMz+9lP+V0rx2w==", + "requires": { + "@material/notched-outline": "^0.41.0", + "classnames": "^2.2.5", + "react": "^16.4.2" + } + }, + "@material/react-ripple": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-ripple/-/react-ripple-0.8.0.tgz", + "integrity": "sha512-ThH9Px42poicRXgFBTfLjbAsVIUi6wmX4RszDPwiSTVMQYc785n240VAD8MfVCR27ykIxCrys/YibqxvREvjUQ==", + "requires": { + "@material/ripple": "^0.41.0", + "classnames": "^2.2.5", + "react": "^16.4.2" + } + }, + "@material/react-text-field": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@material/react-text-field/-/react-text-field-0.8.0.tgz", + "integrity": "sha512-eISr4YIBmsIarQQU/LhAPfB9M8srY8Tzagqw6E2z5JyHux8eHlsMWSuYD6eh4FiQekdZoIgoJjlFIGhOvNV59Q==", + "requires": { + "@material/react-floating-label": "^0.8.0", + "@material/react-line-ripple": "^0.8.0", + "@material/react-notched-outline": "^0.8.0", + "@material/textfield": "^0.41.0", + "classnames": "^2.2.5", + "react": "^16.4.2" + } + }, + "@material/ripple": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.41.0.tgz", + "integrity": "sha512-rxEUVWM4AByDlTCH0kkthZQmUuY6eeN0X6cOHBoioFN2vUDk0D0Nfzz/N9FF2AlAf8C2lDDLrTuqnJPVIn+NHA==", + "requires": { + "@material/animation": "^0.41.0", + "@material/base": "^0.41.0", + "@material/theme": "^0.41.0" + } + }, + "@material/rtl": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.40.1.tgz", + "integrity": "sha512-Pk6Iw1/KrhWZoZtkDsPMDUW0bm7Z1zeXb3MTQRCFmjf1wU5cRxgOTtuoZLcJqlcKGppLAzJL/TJV3E7KEiuL0A==" + }, + "@material/selection-control": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/selection-control/-/selection-control-0.41.0.tgz", + "integrity": "sha512-rRHGiZVPoP4nxAAoeqsgTsxz9GwInGs7HIlEhPfMFygmSZVUHHsuOJXSTpOKYi8GCoKHpB0RKZsAtxM0BYAelw==", + "requires": { + "@material/ripple": "^0.41.0" + } + }, + "@material/shape": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-0.41.0.tgz", + "integrity": "sha512-k1K3CjOVxclfb/0r28cOa2oJpP7QMA2fP0SOS3Vh8ale5Q2jkaHTL60KX8VkHvV6rMqShpXW+60gPjoz5XRbDQ==" + }, + "@material/textfield": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-0.41.0.tgz", + "integrity": "sha512-kJ52W2gxOS2xfpreVhvHQ1u3UkiDl58duw9HkhEkK5Oi1bSDOtbnlWy0pGTOiAma5ZQgetPNgoa+T0zMBptfnw==", + "requires": { + "@material/animation": "^0.41.0", + "@material/base": "^0.41.0", + "@material/floating-label": "^0.41.0", + "@material/line-ripple": "^0.41.0", + "@material/notched-outline": "^0.41.0", + "@material/ripple": "^0.41.0", + "@material/rtl": "^0.40.1", + "@material/shape": "^0.41.0", + "@material/theme": "^0.41.0", + "@material/typography": "^0.41.0" + } + }, + "@material/theme": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.41.0.tgz", + "integrity": "sha512-ohW2JxObKOWvP34EkIIcrEVtL3g0Gs/T3/MdOsM36euyshY8Jwl1f6fjVUQvVjSpixUtSb30/+ulblF8fTOwBg==" + }, + "@material/typography": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.41.0.tgz", + "integrity": "sha512-15dlqSU+9uGcWdg4KXXcmDzTKJPb7/5Z9kmooONb2Laot1uiuntDXQS0yL+U2FYLW5Ros+WVMosDBKFruWx68A==" + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -16990,6 +17199,11 @@ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" }, + "utility-types": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.4.1.tgz", + "integrity": "sha512-GyH068kJf7c4vhfqj4aCM5X+TeV8jG2iPFLimpGpnQ7dvKfogZOHfiYxMww/nGEfMm/bEmnVbeZGO1see1OVKg==" + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", diff --git a/client/package.json b/client/package.json index adcb6267e..541bcdd37 100644 --- a/client/package.json +++ b/client/package.json @@ -1,10 +1,11 @@ { - "name": "client-react", + "name": "authelia-portal", "version": "0.1.0", "private": true, "dependencies": { - "@material-ui/core": "3.7.1", - "@material-ui/icons": "^3.0.1", + "@material/react-button": "^0.8.0", + "@material/react-checkbox": "^0.8.0", + "@material/react-text-field": "^0.8.0", "@types/classnames": "^2.2.7", "@types/jss": "^9.5.7", "@types/node": "^10.12.2", @@ -31,11 +32,12 @@ "redux-thunk": "^2.3.0", "typesafe-actions": "^3.0.0", "typescript": "^3.1.6", - "u2f-api": "^1.0.10" + "u2f-api": "^1.0.10", + "utility-types": "^3.4.1" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", + "start": "SASS_PATH=./node_modules react-scripts start", + "build": "SASS_PATH=./node_modules react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, diff --git a/client/public/index.html b/client/public/index.html index 5d3236923..064a74229 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -5,7 +5,8 @@ - + +