diff --git a/client/package-lock.json b/client/package-lock.json index 8a42f92c0..60295d23c 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,6 +1,6 @@ { "name": "@superalgos/operations-client", - "version": "0.0.14", + "version": "0.0.18", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", "requires": { - "regenerator-runtime": "0.12.1" + "regenerator-runtime": "^0.12.0" }, "dependencies": { "regenerator-runtime": { @@ -25,31 +25,31 @@ "integrity": "sha512-wDTJyR76+OBdlltiPs3lc1gD6zR+dSA6nITtgkBeLf1NvWfNotMWdvldIDnF3bu24ySAX9imfzDfkBu4Edtqww==", "requires": { "@babel/runtime": "7.1.2", - "@types/jss": "9.5.6", - "@types/react-transition-group": "2.0.14", - "brcast": "3.0.1", - "classnames": "2.2.6", - "csstype": "2.5.7", - "debounce": "1.2.0", - "deepmerge": "2.2.1", - "dom-helpers": "3.3.1", - "hoist-non-react-statics": "2.5.5", - "is-plain-object": "2.0.4", - "jss": "9.8.7", - "jss-camel-case": "6.1.0", - "jss-default-unit": "8.0.2", - "jss-global": "3.0.0", - "jss-nested": "6.0.1", - "jss-props-sort": "6.0.0", - "jss-vendor-prefixer": "7.0.0", - "keycode": "2.2.0", - "normalize-scroll-left": "0.1.2", - "popper.js": "1.14.4", - "prop-types": "15.6.2", - "react-event-listener": "0.6.4", - "react-transition-group": "2.5.0", - "recompose": "0.30.0", - "warning": "4.0.2" + "@types/jss": "^9.5.6", + "@types/react-transition-group": "^2.0.8", + "brcast": "^3.0.1", + "classnames": "^2.2.5", + "csstype": "^2.5.2", + "debounce": "^1.1.0", + "deepmerge": "^2.0.1", + "dom-helpers": "^3.2.1", + "hoist-non-react-statics": "^2.5.0", + "is-plain-object": "^2.0.4", + "jss": "^9.3.3", + "jss-camel-case": "^6.0.0", + "jss-default-unit": "^8.0.2", + "jss-global": "^3.0.0", + "jss-nested": "^6.0.1", + "jss-props-sort": "^6.0.0", + "jss-vendor-prefixer": "^7.0.0", + "keycode": "^2.1.9", + "normalize-scroll-left": "^0.1.2", + "popper.js": "^1.14.1", + "prop-types": "^15.6.0", + "react-event-listener": "^0.6.2", + "react-transition-group": "^2.2.1", + "recompose": "0.28.0 - 0.30.0", + "warning": "^4.0.1" }, "dependencies": { "@babel/runtime": { @@ -57,7 +57,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==", "requires": { - "regenerator-runtime": "0.12.1" + "regenerator-runtime": "^0.12.0" } } } @@ -68,7 +68,7 @@ "integrity": "sha512-1kNcxYiIT1x8iDPEAlgmKrfRTIV8UyK6fLVcZ9kMHIKGWft9I451V5mvSrbCjbf7MX1TbLWzZjph0aVCRf9MqQ==", "requires": { "@babel/runtime": "7.0.0", - "recompose": "0.29.0" + "recompose": "^0.29.0" }, "dependencies": { "recompose": { @@ -76,12 +76,12 @@ "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.29.0.tgz", "integrity": "sha512-J/qLXNU4W+AeHCDR70ajW8eMd1uroqZaECTj6qqDLPMILz3y0EzpYlvrnxKB9DnqcngWrtGwjXY9JeXaW9kS1A==", "requires": { - "@babel/runtime": "7.0.0", - "change-emitter": "0.1.6", - "fbjs": "0.8.17", - "hoist-non-react-statics": "2.5.5", - "react-lifecycles-compat": "3.0.4", - "symbol-observable": "1.2.0" + "@babel/runtime": "^7.0.0", + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "react-lifecycles-compat": "^3.0.2", + "symbol-observable": "^1.0.4" } } } @@ -97,8 +97,8 @@ "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.6.tgz", "integrity": "sha512-7TWmR5y1jYG4ka4wTZt65RR0kw4WgALFUWktQIWbLnDd6/z/0SQZ/4+UeH0rhdp+HEdIfmzPBH0VwE/4Z9Evzw==", "requires": { - "csstype": "2.5.7", - "indefinite-observable": "1.0.1" + "csstype": "^2.0.0", + "indefinite-observable": "^1.0.1" } }, "@types/prop-types": { @@ -111,8 +111,8 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.16.tgz", "integrity": "sha512-lxyoipLWweAnLnSsV4Ho2NAZTKKmxeYgkTQ6PaDiPDU9JJBUY2zJVVGiK1smzYv8+ZgbqEmcm5xM74GCpunSEA==", "requires": { - "@types/prop-types": "15.5.6", - "csstype": "2.5.7" + "@types/prop-types": "*", + "csstype": "^2.2.0" } }, "@types/react-transition-group": { @@ -120,7 +120,7 @@ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.0.14.tgz", "integrity": "sha512-pa7qB0/mkhwWMBFoXhX8BcntK8G4eQl4sIfSrJCxnivTYRQWjOWf2ClR9bWdm0EUFBDHzMbKYS+QYfDtBzkY4w==", "requires": { - "@types/react": "16.4.16" + "@types/react": "*" } }, "@types/zen-observable": { @@ -133,7 +133,7 @@ "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.1.17.tgz", "integrity": "sha512-7sp24n2HZO4vXgTaKNomLyIfGxG4gDdDkBB0jkRzRi7HhnKmfwhiF/RCiKNbgLdrPX151INdls0KwIVliD0dHQ==", "requires": { - "apollo-utilities": "1.0.21" + "apollo-utilities": "^1.0.21" } }, "apollo-client": { @@ -142,13 +142,13 @@ "integrity": "sha512-g1z23umaVSoKLj9xNl0aAnk2KBF4JeBi7MeKFc9CGTixH7TkqeQUQtxcjrC7j2h4KmDbuhOAHOFUGf8YshN+ag==", "requires": { "@types/async": "2.0.49", - "@types/zen-observable": "0.8.0", + "@types/zen-observable": "^0.8.0", "apollo-cache": "1.1.17", - "apollo-link": "1.2.3", - "apollo-link-dedup": "1.0.10", + "apollo-link": "^1.0.0", + "apollo-link-dedup": "^1.0.0", "apollo-utilities": "1.0.21", - "symbol-observable": "1.2.0", - "zen-observable": "0.8.9" + "symbol-observable": "^1.0.2", + "zen-observable": "^0.8.0" } }, "apollo-link": { @@ -156,8 +156,8 @@ "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.3.tgz", "integrity": "sha512-iL9yS2OfxYhigme5bpTbmRyC+Htt6tyo2fRMHT3K1XRL/C5IQDDz37OjpPy4ndx7WInSvfSZaaOTKFja9VWqSw==", "requires": { - "apollo-utilities": "1.0.21", - "zen-observable-ts": "0.8.10" + "apollo-utilities": "^1.0.0", + "zen-observable-ts": "^0.8.10" } }, "apollo-link-dedup": { @@ -165,7 +165,7 @@ "resolved": "https://registry.npmjs.org/apollo-link-dedup/-/apollo-link-dedup-1.0.10.tgz", "integrity": "sha512-tpUI9lMZsidxdNygSY1FxflXEkUZnvKRkMUsXXuQUNoSLeNtEvUX7QtKRAl4k9ubLl8JKKc9X3L3onAFeGTK8w==", "requires": { - "apollo-link": "1.2.3" + "apollo-link": "^1.2.3" } }, "apollo-utilities": { @@ -173,8 +173,8 @@ "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.0.21.tgz", "integrity": "sha512-ZcxELlEl+sDCYBgEMdNXJAsZtRVm8wk4HIA58bMsqYfd1DSAJQEtZ93F0GZgYNAGy3QyaoBeZtbb0/01++G8JQ==", "requires": { - "fast-json-stable-stringify": "2.0.0", - "fclone": "1.0.11" + "fast-json-stable-stringify": "^2.0.0", + "fclone": "^1.0.11" } }, "asap": { @@ -207,7 +207,7 @@ "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", "requires": { - "is-in-browser": "1.1.3" + "is-in-browser": "^1.0.2" } }, "csstype": { @@ -241,7 +241,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "fast-json-stable-stringify": { @@ -260,13 +260,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.18" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" } }, "fbjs-css-vars": { @@ -285,8 +285,8 @@ "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", "dev": true, "requires": { - "min-document": "2.19.0", - "process": "0.5.2" + "min-document": "^2.19.0", + "process": "~0.5.1" } }, "graphql": { @@ -294,7 +294,7 @@ "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.0.2.tgz", "integrity": "sha512-gUC4YYsaiSJT1h40krG3J+USGlwhzNTXSb4IOZljn9ag5Tj+RkoXrWp+Kh7WyE3t1NCfab5kzCuxBIvOMERMXw==", "requires": { - "iterall": "1.2.2" + "iterall": "^1.2.2" } }, "graphql-tag": { @@ -307,11 +307,11 @@ "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", "requires": { - "invariant": "2.2.4", - "loose-envify": "1.4.0", - "resolve-pathname": "2.2.0", - "value-equal": "0.4.0", - "warning": "3.0.0" + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "resolve-pathname": "^2.2.0", + "value-equal": "^0.4.0", + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -319,7 +319,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -339,7 +339,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "indefinite-observable": { @@ -362,7 +362,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "is-in-browser": { @@ -375,7 +375,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -395,8 +395,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.4" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "iterall": { @@ -414,9 +414,9 @@ "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", "requires": { - "is-in-browser": "1.1.3", - "symbol-observable": "1.2.0", - "warning": "3.0.0" + "is-in-browser": "^1.1.3", + "symbol-observable": "^1.1.0", + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -424,7 +424,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -434,7 +434,7 @@ "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", "requires": { - "hyphenate-style-name": "1.0.2" + "hyphenate-style-name": "^1.0.2" } }, "jss-default-unit": { @@ -452,7 +452,7 @@ "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" }, "dependencies": { "warning": { @@ -460,7 +460,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } } } @@ -475,7 +475,7 @@ "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", "requires": { - "css-vendor": "0.3.8" + "css-vendor": "^0.3.8" } }, "keycode": { @@ -498,7 +498,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "luxon": { @@ -511,12 +511,12 @@ "resolved": "https://registry.npmjs.org/material-ui-pickers/-/material-ui-pickers-1.0.1.tgz", "integrity": "sha512-FRJwgeFUQdQxzNAybZvf11204KFBxqKS6sg4JvAO0cWmHULXJhrc9kuEDT8F7Pomwnv6+AyfxygsoMgIRcBMNg==", "requires": { - "classnames": "2.2.6", - "keycode": "2.2.0", - "react-event-listener": "0.6.4", - "react-text-mask": "5.4.1", - "react-transition-group": "2.5.0", - "tslib": "1.9.3" + "classnames": "^2.2.6", + "keycode": "^2.2.0", + "react-event-listener": "^0.6.4", + "react-text-mask": "=5.4.1", + "react-transition-group": "^2.5.0", + "tslib": "^1.9.3" } }, "min-document": { @@ -525,7 +525,7 @@ "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", "dev": true, "requires": { - "dom-walk": "0.1.1" + "dom-walk": "^0.1.0" } }, "node-fetch": { @@ -533,8 +533,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "normalize-scroll-left": { @@ -578,7 +578,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "prop-types": { @@ -586,8 +586,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "react": { @@ -595,10 +595,10 @@ "resolved": "https://registry.npmjs.org/react/-/react-16.6.1.tgz", "integrity": "sha512-OtawJThYlvRgm9BXK+xTL7BIlDx8vv21j+fbQDjRRUyok6y7NyjlweGorielTahLZHYIdKUoK2Dp9ByVWuMqxw==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.6.2", - "scheduler": "0.11.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.11.0" } }, "react-apollo": { @@ -606,12 +606,12 @@ "resolved": "https://registry.npmjs.org/react-apollo/-/react-apollo-2.2.4.tgz", "integrity": "sha512-haS5R30Qvteb65ZLfWomUZQh47VU4ld4Kof3zlqdbLOrYPt3/DdVZC8ZFPZSxd5zPeIJtZqpUfAxD1WHVoMPIA==", "requires": { - "fbjs": "1.0.0", - "hoist-non-react-statics": "3.0.1", - "invariant": "2.2.4", - "lodash.flowright": "3.5.0", - "lodash.isequal": "4.5.0", - "prop-types": "15.6.2" + "fbjs": "^1.0.0", + "hoist-non-react-statics": "^3.0.0", + "invariant": "^2.2.2", + "lodash.flowright": "^3.5.0", + "lodash.isequal": "^4.5.0", + "prop-types": "^15.6.0" }, "dependencies": { "core-js": { @@ -624,14 +624,14 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-1.0.0.tgz", "integrity": "sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA==", "requires": { - "core-js": "2.5.7", - "fbjs-css-vars": "1.0.1", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.18" + "core-js": "^2.4.1", + "fbjs-css-vars": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" } }, "hoist-non-react-statics": { @@ -639,7 +639,7 @@ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.0.1.tgz", "integrity": "sha512-1kXwPsOi0OGQIZNVMPvgWJ9tSnGMiMfJdihqEzrPEXlHOBh9AAHXX/QYmAJTXztnz/K+PQ8ryCb4eGaN6HlGbQ==", "requires": { - "react-is": "16.5.2" + "react-is": "^16.3.2" } } } @@ -649,10 +649,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.6.1.tgz", "integrity": "sha512-zm+wBuEMGm009Wt1uE4Zw5KcXOW7qC4E/xW/fpJsCsbOco4U/R84u+DzzO/S4SYSdNBcqcaulcp4w3FXl8pImw==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.6.2", - "scheduler": "0.11.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.11.0" } }, "react-event-listener": { @@ -661,8 +661,8 @@ "integrity": "sha512-t7VSjIuUFmN+GeyKb+wm025YLeojVB85kJL6sSs0wEBJddfmKBEQz+CNBZ2zBLKVWkPy/fZXM6U5yvojjYBVYQ==", "requires": { "@babel/runtime": "7.0.0", - "prop-types": "15.6.2", - "warning": "4.0.2" + "prop-types": "^15.6.0", + "warning": "^4.0.1" } }, "react-hot-loader": { @@ -671,12 +671,12 @@ "integrity": "sha512-T0G5jURyTsFLoiW6MTr5Q35UHC/B2pmYJ7+VBjk8yMDCEABRmCGy4g6QwxoB4pWg4/xYvVTa/Pbqnsgx/+NLuA==", "dev": true, "requires": { - "fast-levenshtein": "2.0.6", - "global": "4.3.2", - "hoist-non-react-statics": "2.5.5", - "prop-types": "15.6.2", - "react-lifecycles-compat": "3.0.4", - "shallowequal": "1.1.0" + "fast-levenshtein": "^2.0.6", + "global": "^4.3.0", + "hoist-non-react-statics": "^2.5.0", + "prop-types": "^15.6.1", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.0.2" } }, "react-is": { @@ -694,7 +694,7 @@ "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.0.6.tgz", "integrity": "sha512-WfBlqYRD0fGZpQxRy1apxsPeaqtxhzo7CnUVFKBoGDsQbc89+DQNhjG/D3IxgGYM47oKB+W/Su9ol/vVS6Wc2Q==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.6.0" } }, "react-router": { @@ -702,13 +702,13 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", "requires": { - "history": "4.7.2", - "hoist-non-react-statics": "2.5.5", - "invariant": "2.2.4", - "loose-envify": "1.4.0", - "path-to-regexp": "1.7.0", - "prop-types": "15.6.2", - "warning": "4.0.2" + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" } }, "react-router-dom": { @@ -716,12 +716,12 @@ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", "requires": { - "history": "4.7.2", - "invariant": "2.2.4", - "loose-envify": "1.4.0", - "prop-types": "15.6.2", - "react-router": "4.3.1", - "warning": "4.0.2" + "history": "^4.7.2", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" } }, "react-text-mask": { @@ -729,7 +729,7 @@ "resolved": "https://registry.npmjs.org/react-text-mask/-/react-text-mask-5.4.1.tgz", "integrity": "sha512-mGx1n0x0skktwsKcpgAGnrgExFlXDflbWEHh8PC1UaQP8+EdHkW7JYczTghsBo2rnVwU9/4A9x/2bVt3HY46/w==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.6" } }, "react-transition-group": { @@ -737,10 +737,10 @@ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.5.0.tgz", "integrity": "sha512-qYB3JBF+9Y4sE4/Mg/9O6WFpdoYjeeYqx0AFb64PTazVy8RPMiE3A47CG9QmM4WJ/mzDiZYslV+Uly6O1Erlgw==", "requires": { - "dom-helpers": "3.3.1", - "loose-envify": "1.4.0", - "prop-types": "15.6.2", - "react-lifecycles-compat": "3.0.4" + "dom-helpers": "^3.3.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" } }, "recompose": { @@ -748,12 +748,12 @@ "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.30.0.tgz", "integrity": "sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w==", "requires": { - "@babel/runtime": "7.0.0", - "change-emitter": "0.1.6", - "fbjs": "0.8.17", - "hoist-non-react-statics": "2.5.5", - "react-lifecycles-compat": "3.0.4", - "symbol-observable": "1.2.0" + "@babel/runtime": "^7.0.0", + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "react-lifecycles-compat": "^3.0.2", + "symbol-observable": "^1.0.4" } }, "regenerator-runtime": { @@ -776,8 +776,8 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.11.0.tgz", "integrity": "sha512-MAYbBfmiEHxF0W+c4CxMpEqMYK+rYF584VP/qMKSiHM6lTkBKKYOJaDiSILpJHla6hBOsVd6GucPL46o2Uq3sg==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "setimmediate": { @@ -816,7 +816,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "whatwg-fetch": { @@ -834,7 +834,7 @@ "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.10.tgz", "integrity": "sha512-5vqMtRggU/2GhePC9OU4sYEWOdvmayp2k3gjPf4F0mXwB3CSbbNznfDUvDJx9O2ZTa1EIXdJhPchQveFKwNXPQ==", "requires": { - "zen-observable": "0.8.9" + "zen-observable": "^0.8.0" } } } diff --git a/client/package.json b/client/package.json index af5922a49..483789cf3 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "@superalgos/operations-client", - "version": "0.0.15", + "version": "0.0.21", "description": "Superalgos Operations client-side web app", "main": "src/index.js", "dependencies": { diff --git a/client/src/GraphQL/Fragments/clone.js b/client/src/GraphQL/Fragments/clone.js index 75a5f9dbc..3fc772000 100644 --- a/client/src/GraphQL/Fragments/clone.js +++ b/client/src/GraphQL/Fragments/clone.js @@ -31,5 +31,6 @@ export const clone = gql` teamAvatar processName keyId + botSlug } ` diff --git a/client/src/GraphQL/models.js b/client/src/GraphQL/models.js index 47c7e6dfb..0ce6667fc 100644 --- a/client/src/GraphQL/models.js +++ b/client/src/GraphQL/models.js @@ -1,17 +1,45 @@ -const availableMonths = ['January', 'February', 'March', 'April', 'May', 'June', - 'July', 'August', 'September', 'October', 'November', 'December'] +const availableMonths = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' +] + +const availableTimePeriods = ["24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs", "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min"] const tradingStartModes = { live: 'Live', backtest: 'Backtest' } +const tradingStartModesList = { + live: 'Live', + backtest: 'Backtest', + competition: 'Competition' +} + const indicatorStartModes = { allMonths: 'All Months', oneMonth: 'One Month', noTime: 'No Time' } +const processNames = { + Daily: 'Multi-Period-Daily', + Market: 'Multi-Period-Market', + Min: "One-Min-Daily-Candles-Volumes", + Live: "Poloniex-Live-Trades", + HoleFixing: "Poloniex-Hole-Fixing" +} + const exchanges = [ { id: '1', @@ -19,4 +47,4 @@ const exchanges = [ } ] -export { tradingStartModes, exchanges, indicatorStartModes, availableMonths } +export { tradingStartModes, tradingStartModesList, exchanges, indicatorStartModes, availableMonths, processNames, availableTimePeriods } diff --git a/client/src/views/Clone/Add/index.js b/client/src/views/Clone/Add/index.js index 1b7ae66d8..7cab25671 100644 --- a/client/src/views/Clone/Add/index.js +++ b/client/src/views/Clone/Add/index.js @@ -6,7 +6,7 @@ import TopBar from '../../BannerTopBar' import { withStyles } from '@material-ui/core/styles' import classNames from 'classnames' import styles from './styles' -import { tradingStartModes, indicatorStartModes, availableMonths } from '../../../GraphQL/models' +import { tradingStartModes, indicatorStartModes, availableMonths, processNames, availableTimePeriods } from '../../../GraphQL/models' import { isDefined, getIndicatorYears } from '../../../utils' import { MenuItem, Button, TextField, FormControl, InputLabel, Input, Typography, @@ -32,7 +32,7 @@ class AddClone extends Component { state: '', stateDatetime: 0, createDatetime: 0, - runAsTeam: true, + runAsTeam: false, teams: [], teamId: '', keyId: '', @@ -43,6 +43,9 @@ class AddClone extends Component { month: 1, processName: '', + //TradingBot + timePeriod: '01-hs', + //Error handlers nameError: false, teamError: false, @@ -152,7 +155,7 @@ class AddClone extends Component { {this.state.selectedBot.kind} - { this.state.selectedBot.kind === "TRADER" && + { this.state.selectedBot.kind === "Trading" && Available Running Modes are Backtest and Live. @@ -215,19 +218,6 @@ class AddClone extends Component { className={classNames(classes.form, classes.textField)} fullWidth /> - - - The Wait Time represent the number of miliseconds the bot will wait between executions. - - - this.setState({waitTime:e.target.value})} - fullWidth - /> } @@ -290,31 +280,58 @@ class AddClone extends Component { } - - If Run as Team is selected, the clone will be taken from the - team respository instead of your own team member folder. - Competitions runs from the team respository. - - this.setState({runAsTeam:e.target.checked })} - value="runAsTeam" - color="primary" + + + + The Time Period in which the bot will operate. + + + this.setState({timePeriod:e.target.value})} + fullWidth + > + {availableTimePeriods.map((option, index) => ( + + {option} + + ))} + + + { false && + + + If Run as Team is selected, the clone will be taken from the + team respository instead of your own team member folder. + Competitions runs from the team respository. + + + this.setState({runAsTeam:e.target.checked })} + value="runAsTeam" + color="primary" + /> + } + label="Run as Team" + className={classNames(classes.form, classes.textField)} /> - } - label="Run as Team" - className={classNames(classes.form, classes.textField)} - /> + + } } - { (this.state.selectedBot.kind === "INDICATOR" - || this.state.selectedBot.kind === "EXTRACTOR") && + { (this.state.selectedBot.kind === "Indicator" + || this.state.selectedBot.kind === "Sensor") && this.setState({processNameError:false})} error={this.state.processNameError} fullWidth - /> + > + {Object.keys(processNames).map(option => ( + + {processNames[option]} + + ))} + + {getIndicatorYears().map((option, index) => ( - + {option} ))} this.setState({month:e.target.value})} fullWidth > - {availableMonths.map(option => ( - + {availableMonths.map((option, index) => ( + {option} ))} @@ -498,9 +522,10 @@ class AddClone extends Component { } } - if(this.state.selectedBot.kind === "TRADER"){ + if(this.state.selectedBot.kind === "Trading"){ variables.clone.runAsTeam = this.state.runAsTeam variables.clone.processName = 'Trading-Process' + variables.clone.timePeriod = this.state.timePeriod if(this.state.mode === "backtest"){ variables.clone.beginDatetime = this.state.beginDatetime.valueOf() / 1000|0 variables.clone.endDatetime = this.state.endDatetime.valueOf() / 1000|0 @@ -522,11 +547,11 @@ class AddClone extends Component { } getBotTypeFromKind(kind){ - if(kind === 'TRADER') + if(kind === 'Trading') return 'Trading' - else if(kind === 'INDICATOR') + else if(kind === 'Indicator') return 'Indicator' - else if(kind === 'EXTRACTOR') + else if(kind === 'Sensor') return 'Extraction' } @@ -550,7 +575,7 @@ class AddClone extends Component { state : '', stateDatetime: 0, createDatetime: 0, - runAsTeam: true, + runAsTeam: false, processName: '', teams: [], teamId: '', @@ -582,7 +607,7 @@ class AddClone extends Component { this.setState(state => ({ modeError: true })); } - if(this.state.selectedBot.kind !== "TRADER" + if(this.state.selectedBot.kind !== "Trading" && this.state.processName.length < 1 ) { isError = true this.setState(state => ({ processNameError: true })); diff --git a/client/src/views/Clone/List/ListClones.js b/client/src/views/Clone/List/ListClones.js index b9c577826..3591965e9 100644 --- a/client/src/views/Clone/List/ListClones.js +++ b/client/src/views/Clone/List/ListClones.js @@ -1,5 +1,6 @@ import React, { Component } from 'react' import { graphql, compose } from 'react-apollo' +import {withRouter} from "react-router-dom"; import { clones } from '../../../GraphQL/Calls' import { Typography, Button, TextField, Dialog, DialogContent, @@ -10,7 +11,7 @@ import { } from '@material-ui/core' import Avatar from '@material-ui/core/Avatar'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; -import { tradingStartModes, indicatorStartModes } from '../../../GraphQL/models' +import { tradingStartModesList, indicatorStartModes } from '../../../GraphQL/models' import { isDefined, toLocalTime } from '../../../utils' import classNames from 'classnames' import { withStyles } from '@material-ui/core/styles' @@ -43,7 +44,7 @@ class ListClones extends Component {
- { clone.processName } / { clone.botType === 'TRADER' ? tradingStartModes[clone.mode] : indicatorStartModes[clone.mode] } + { clone.processName } / { clone.botType === 'Trading' ? tradingStartModesList[clone.mode] : indicatorStartModes[clone.mode] }
@@ -89,7 +90,7 @@ class ListClones extends Component {
Last Execution: - { (clone.botType === 'TRADER' && isDefined(clone.assetA) ) && + { (clone.botType === 'Trading' && isDefined(clone.assetA) ) && Buy Average: Sell Average: @@ -101,7 +102,7 @@ class ListClones extends Component {
{ toLocalTime(clone.summaryDate) } - { (clone.botType === 'TRADER' && isDefined(clone.assetA) ) && + { (clone.botType === 'Trading' && isDefined(clone.assetA) ) && {clone.buyAverage} {clone.sellAverage} @@ -144,6 +145,12 @@ class ListClones extends Component { className={classes.buttonList} variant='contained' color='secondary' size='small' onClick={() => this.setState({ isLogsDialogOpen: true })}> + View Process Output + +