diff --git a/client/babel.config.js b/client/babel.config.js
index cd4607f1c..dc0a08776 100644
--- a/client/babel.config.js
+++ b/client/babel.config.js
@@ -11,7 +11,7 @@ module.exports = (api) => {
'@babel/plugin-proposal-class-properties',
'@babel/plugin-syntax-dynamic-import',
'dynamic-import-node',
- '@babel/plugin-transform-runtime'
+ ['@babel/plugin-transform-runtime', { useESModules: true }]
]
return {
diff --git a/client/package-lock.json b/client/package-lock.json
index 6a9e61048..158a85bee 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -1335,9 +1335,9 @@
}
},
"@superalgos/operations-client": {
- "version": "0.0.17",
- "resolved": "https://registry.npmjs.org/@superalgos/operations-client/-/operations-client-0.0.17.tgz",
- "integrity": "sha512-T0OydK2mGov+mxYn4z8z8mHtOL40nhwFCXiQUMT7WduaxElKc5L7bL1/+lLW8/lURSXIwi0AGkCXcCGCld3nFg==",
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/@superalgos/operations-client/-/operations-client-0.0.20.tgz",
+ "integrity": "sha512-PZtr3XIzkGS3RezInDoUrbL00mFmhjskNrFQ3HV8AAz9RprwKE3YivcZdGzQGcrnerB2caa6Da7aX+jpbUkdnQ==",
"dev": true,
"requires": {
"@material-ui/core": "^3.2.2",
@@ -1355,6 +1355,124 @@
"react-router-dom": "^4.3.1"
}
},
+ "@superalgos/strategizer-client": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@superalgos/strategizer-client/-/strategizer-client-0.0.3.tgz",
+ "integrity": "sha512-i6y/wzKbhWyro6ikeA+NYRz9NOQRbBrVj5rZrsHZdGBHh08eIY/SRIgHJLgLl/FXAGv+E3k/b/Spt8VYfl02Cg==",
+ "dev": true,
+ "requires": {
+ "@material-ui/core": "^3.2.0",
+ "@material-ui/icons": "^3.0.1",
+ "apollo-client": "^2.5.1",
+ "graphql": "^14.0.2",
+ "graphql-tag": "^2.10.0",
+ "lodash": "^4.17.11",
+ "react": "^16.8.4",
+ "react-apollo": "^2.5.2",
+ "react-apollo-hooks": "^0.4.3",
+ "react-dom": "^16.8.4",
+ "react-router-dom": "^4.3.1"
+ },
+ "dependencies": {
+ "apollo-cache": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.2.1.tgz",
+ "integrity": "sha512-nzFmep/oKlbzUuDyz6fS6aYhRmfpcHWqNkkA9Bbxwk18RD6LXC4eZkuE0gXRX0IibVBHNjYVK+Szi0Yied4SpQ==",
+ "dev": true,
+ "requires": {
+ "apollo-utilities": "^1.2.1",
+ "tslib": "^1.9.3"
+ }
+ },
+ "apollo-client": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.5.1.tgz",
+ "integrity": "sha512-MNcQKiqLHdGmNJ0rZ0NXaHrToXapJgS/5kPk0FygXt+/FmDCdzqcujI7OPxEC6e9Yw5S/8dIvOXcRNuOMElHkA==",
+ "dev": true,
+ "requires": {
+ "@types/zen-observable": "^0.8.0",
+ "apollo-cache": "1.2.1",
+ "apollo-link": "^1.0.0",
+ "apollo-link-dedup": "^1.0.0",
+ "apollo-utilities": "1.2.1",
+ "symbol-observable": "^1.0.2",
+ "ts-invariant": "^0.2.1",
+ "tslib": "^1.9.3",
+ "zen-observable": "^0.8.0"
+ }
+ },
+ "apollo-utilities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.2.1.tgz",
+ "integrity": "sha512-Zv8Udp9XTSFiN8oyXOjf6PMHepD4yxxReLsl6dPUy5Ths7jti3nmlBzZUOxuTWRwZn0MoclqL7RQ5UEJN8MAxg==",
+ "dev": true,
+ "requires": {
+ "fast-json-stable-stringify": "^2.0.0",
+ "ts-invariant": "^0.2.1",
+ "tslib": "^1.9.3"
+ }
+ },
+ "react": {
+ "version": "16.8.4",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz",
+ "integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.6.2",
+ "scheduler": "^0.13.4"
+ }
+ },
+ "react-apollo": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/react-apollo/-/react-apollo-2.5.2.tgz",
+ "integrity": "sha512-lmglhG6NQ+lfAUDzx8ZgelWKUbvxBhhy1l7Z2ksgtQ8+FVqwX7i6p5O3zicAZZlIdKzdq82V0kqq5WkxEsffrA==",
+ "dev": true,
+ "requires": {
+ "apollo-utilities": "^1.2.1",
+ "hoist-non-react-statics": "^3.0.0",
+ "lodash.isequal": "^4.5.0",
+ "prop-types": "^15.6.0",
+ "ts-invariant": "^0.3.0",
+ "tslib": "^1.9.3"
+ },
+ "dependencies": {
+ "ts-invariant": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.3.2.tgz",
+ "integrity": "sha512-QsY8BCaRnHiB5T6iE4DPlJMAKEG3gzMiUco9FEt1jUXQf0XP6zi0idT0i0rMTu8A326JqNSDsmlkA9dRSh1TRg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ }
+ }
+ },
+ "react-dom": {
+ "version": "16.8.4",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz",
+ "integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.6.2",
+ "scheduler": "^0.13.4"
+ }
+ },
+ "scheduler": {
+ "version": "0.13.4",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.4.tgz",
+ "integrity": "sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ }
+ }
+ },
"@superalgos/teams-client": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/@superalgos/teams-client/-/teams-client-0.0.33.tgz",
@@ -2622,7 +2740,7 @@
"dependencies": {
"fbjs": {
"version": "0.3.2",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.3.2.tgz",
+ "resolved": "http://registry.npmjs.org/fbjs/-/fbjs-0.3.2.tgz",
"integrity": "sha1-AzpUBZUIS13jUJpAXQbxoqjlufs=",
"requires": {
"core-js": "^1.0.0",
@@ -2689,7 +2807,7 @@
},
"whatwg-fetch": {
"version": "0.9.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz",
+ "resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz",
"integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA="
}
}
@@ -2730,7 +2848,7 @@
},
"axios": {
"version": "0.18.0",
- "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"dev": true,
"requires": {
@@ -5317,13 +5435,13 @@
"dependencies": {
"node-fetch": {
"version": "2.1.2",
- "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
"integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=",
"dev": true
},
"whatwg-fetch": {
"version": "2.0.4",
- "resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
"integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==",
"dev": true
}
@@ -6672,7 +6790,7 @@
},
"load-json-file": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
@@ -9628,7 +9746,7 @@
},
"html-webpack-plugin": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+ "resolved": "http://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
"integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
"dev": true,
"requires": {
@@ -13128,7 +13246,7 @@
},
"chalk": {
"version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
@@ -18103,7 +18221,7 @@
},
"acorn-jsx": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
"integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
"dev": true,
"requires": {
@@ -18112,7 +18230,7 @@
"dependencies": {
"acorn": {
"version": "3.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
"integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
"dev": true
}
@@ -18170,7 +18288,7 @@
},
"eslint": {
"version": "4.19.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
"integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
"dev": true,
"requires": {
@@ -18216,7 +18334,7 @@
},
"espree": {
"version": "3.5.4",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
@@ -18226,7 +18344,7 @@
},
"external-editor": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"dev": true,
"requires": {
@@ -18354,7 +18472,7 @@
},
"regexpp": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
+ "resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
"integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
"dev": true
},
@@ -18717,6 +18835,15 @@
}
}
},
+ "react-apollo-hooks": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/react-apollo-hooks/-/react-apollo-hooks-0.4.3.tgz",
+ "integrity": "sha512-mRFPb7bk42wOlGnIdwLc4XO43uTczdx7CzpdTmNwjzAgb/H/nKEXeZitoF1Wgtj0Zb6R5wTGs2nBIMfz0/DzEA==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ },
"react-app-polyfill": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-0.2.0.tgz",
@@ -19003,9 +19130,9 @@
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"react-number-format": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.0.6.tgz",
- "integrity": "sha512-WfBlqYRD0fGZpQxRy1apxsPeaqtxhzo7CnUVFKBoGDsQbc89+DQNhjG/D3IxgGYM47oKB+W/Su9ol/vVS6Wc2Q==",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.0.7.tgz",
+ "integrity": "sha512-boRHwPzkNDuyqeQ9zyHp0XgVAqT5RyS+BsohOhiTz6VMxEQr3DuSuNdg0Q8c3CYTgNESYlxnH278DPqaQFO72w==",
"dev": true,
"requires": {
"prop-types": "^15.6.0"
@@ -19198,7 +19325,7 @@
},
"cacache": {
"version": "10.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "resolved": "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
"integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
"dev": true,
"requires": {
@@ -22765,6 +22892,15 @@
"integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
"dev": true
},
+ "ts-invariant": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.2.1.tgz",
+ "integrity": "sha512-Z/JSxzVmhTo50I+LKagEISFJW3pvPCqsMWLamCTX8Kr3N5aMrnGOqcflbe5hLUzwjvgPfnLzQtHZv0yWQ+FIHg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.3"
+ }
+ },
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
@@ -24433,7 +24569,7 @@
},
"xmlbuilder": {
"version": "9.0.7",
- "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
"dev": true
},
diff --git a/client/package.json b/client/package.json
index 406b4625d..ad830fa25 100644
--- a/client/package.json
+++ b/client/package.json
@@ -25,17 +25,18 @@
},
"homepage": "https://github.com/Algoteers/MasterApp#readme",
"devDependencies": {
- "@superalgos/logs-client": "0.0.1",
- "@superalgos/events-client": "0.0.2",
"@advancedalgos/financial-beings-client": "0.0.5",
- "@superalgos/operations-client": "0.0.18",
"@babel/core": "^7.1.2",
"@babel/plugin-proposal-class-properties": "^7.1.0",
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/plugin-transform-runtime": "^7.1.0",
"@babel/preset-env": "^7.1.0",
"@babel/preset-react": "^7.0.0",
+ "@superalgos/events-client": "0.0.2",
"@superalgos/key-vault-client": "0.0.31",
+ "@superalgos/logs-client": "0.0.1",
+ "@superalgos/operations-client": "0.0.20",
+ "@superalgos/strategizer-client": "0.0.3",
"@superalgos/teams-client": "0.0.33",
"@superalgos/users-client": "0.0.25",
"@superalgos/web-components": "0.0.18",
diff --git a/client/src/App.js b/client/src/App.js
index 3a4e95f43..105c11189 100644
--- a/client/src/App.js
+++ b/client/src/App.js
@@ -20,7 +20,9 @@ import Events from '@superalgos/events-client'
import KeyVault from '@superalgos/key-vault-client'
import FinancialBeings from '@advancedalgos/financial-beings-client'
import Operations from '@superalgos/operations-client'
+import Strategizer from '@superalgos/strategizer-client'
import Logs from '@superalgos/logs-client'
+// import Miners from '@superalgos/miners-client'
export const auth = new Auth(
result => console.log('Authentication successful.'),
@@ -82,10 +84,15 @@ export const MasterApp = props => (
path='/clones'
render={props => }
/>
+ }
+ />
}
/>
+
diff --git a/client/src/auth/index.js b/client/src/auth/index.js
index 2ed00e1b2..8ef99e1ff 100644
--- a/client/src/auth/index.js
+++ b/client/src/auth/index.js
@@ -32,7 +32,7 @@ const VERIFY_TEAM_INVITE = gql`
export const defaultOptions = {
oidcConformant: true,
autoclose: true,
- allowedConnections: ['Username-Password-Authentication'],
+ allowedConnections: ['Username-Password-Authentication', 'github'],
auth: {
sso: true,
redirectUrl: window.location.origin + '/callback',
@@ -49,13 +49,14 @@ export const defaultOptions = {
languageDictionary: {
title: 'Superalgos Platform'
},
- avatar:null
+ avatar: null,
+ mustAcceptTerms: true
}
export const inviteOptions = {
oidcConformant: true,
autoclose: false,
- allowedConnections: ['Username-Password-Authentication'],
+ allowedConnections: ['Username-Password-Authentication', 'github'],
allowShowPassword: true,
auth: {
sso: false,
@@ -67,7 +68,12 @@ export const inviteOptions = {
scope: `email`
}
},
- prefill: { email: '' }
+ prefill: { email: '' },
+ languageDictionary: {
+ title: 'Superalgos Platform'
+ },
+ avatar: null,
+ mustAcceptTerms: true
}
let lock = new Auth0Lock(
diff --git a/client/src/views/layout/header/imports.js b/client/src/views/layout/header/imports.js
index 953a7ddf5..ec03f89f5 100644
--- a/client/src/views/layout/header/imports.js
+++ b/client/src/views/layout/header/imports.js
@@ -9,7 +9,8 @@ import {
Group,
VpnKey,
Home,
- AddCircleOutline
+ AddCircleOutline,
+ ViewModule
} from '@material-ui/icons'
const usersMenus = {
@@ -73,6 +74,16 @@ const operationsMenus = {
]
}
+const minersMenus = {
+ title: 'Miners',
+ to: '/miners',
+ icon: Home,
+ authenticated: false,
+ submenus: [
+ { title: 'Report a Bug', to: 'https://github.com/Superalgos/minersClient/issues/new', icon: BugReport, externalLink: true }
+ ]
+}
+
// const financialBeingsMenus = {
// title: 'FBs',
// to: '/financial-beings',
@@ -83,13 +94,26 @@ const operationsMenus = {
// ]
// }
+const strategizerMenus = {
+ title: 'Strategizer',
+ to: '/strategizer',
+ icon: Home,
+ authenticated: false,
+ submenus: [
+ { title: 'Your strategies', to: '/strategizer/manage-strategies', icon: ViewModule, authenticated: false },
+ { title: 'Report a Bug', to: 'https://github.com/Superalgos/StrategizerClientModule/issues/new', icon: BugReport, externalLink: true }
+ ]
+}
+
const allMenus = [
usersMenus,
teamsMenus,
eventsMenus,
// financialBeingsMenus,
keyvaultMenus,
- operationsMenus
+ operationsMenus,
+ minersMenus,
+ strategizerMenus
]
export default allMenus
diff --git a/server/src/index.js b/server/src/index.js
index 9a56839a1..9001d7703 100644
--- a/server/src/index.js
+++ b/server/src/index.js
@@ -74,6 +74,10 @@ async function run () {
'logs_',
process.env.LOGS_API_URL,
process.env.LOGS_API_PRESHARED)
+ // const transformedMinersSchema = await createTransformedRemoteSchema(
+ // 'miners_',
+ // process.env.MINERS_API_URL,
+ // process.env.MINERS_PRESHARED)
const transformeStrategizerSchema = await createTransformedRemoteSchema(
'strategizer_',
process.env.STRATEGIZER_API_URL,