From f7250743ee6d66928e00acfb18e94e2f6291f9de Mon Sep 17 00:00:00 2001 From: Franklin Waller Date: Fri, 28 Feb 2020 12:37:37 +0100 Subject: [PATCH] feat(build): Use stricter create-react-app --- declaration.d.ts | 4 + package-lock.json | 1267 ++++------------- package.json | 28 +- public/index.html | 16 - src/index.js | 4 +- src/js/App.tsx | 1 + src/js/Configuration.ts | 4 - .../{Explorer.scss => Explorer.module.scss} | 0 src/js/apps/Explorer/Explorer.tsx | 13 +- .../File/{File.scss => File.module.scss} | 0 src/js/apps/Explorer/components/File/File.tsx | 12 +- ...FileHeader.scss => FileHeader.module.scss} | 0 .../components/FileHeader/FileHeader.tsx | 2 +- .../{Folder.scss => Folder.module.scss} | 0 .../Explorer/components/Folder/Folder.tsx | 8 +- src/js/apps/Explorer/index.tsx | 2 +- src/js/apps/Store/index.tsx | 2 +- src/js/background/BackgroundTerminal.ts | 2 +- ...tion.scss => BulletNavigation.module.scss} | 0 .../BulletNavigation/BulletNavigation.tsx | 2 +- src/js/components/atoms/Time/Time.jsx | 2 +- .../Time/{Time.scss => Time.module.scss} | 0 src/js/components/molecules/App/App.jsx | 2 +- .../App/{App.scss => App.module.scss} | 0 .../{AppGrid.scss => AppGrid.module.scss} | 0 .../components/molecules/AppGrid/AppGrid.tsx | 3 +- .../{AppHeader.scss => AppHeader.module.scss} | 0 .../molecules/AppHeader/AppHeader.tsx | 4 +- .../molecules/Dropzone/Dropzone.tsx | 6 +- .../{Header.scss => Header.module.scss} | 0 src/js/components/molecules/Header/Header.tsx | 4 +- .../molecules/HomeButton/HomeButton.jsx | 2 +- ...HomeButton.scss => HomeButton.module.scss} | 0 .../molecules/Profile/CloseAppButton.jsx | 2 +- ...styles.scss => CloseAppButton.module.scss} | 0 .../molecules/Profile/MultiTaskButton.scss | 18 - .../molecules/Profile/MultiTaskButton.tsx | 68 - .../{Profile.scss => Profile.module.scss} | 0 .../components/molecules/Profile/Profile.tsx | 7 +- ...outDialog.scss => AboutDialog.module.scss} | 0 .../molecules/SideNavigation/AboutDialog.tsx | 2 +- .../SideNavigation/AppInstallDialog.tsx | 58 - .../SideNavigation/ProfilePicture.jsx | 2 +- ...icture.scss => ProfilePicture.module.scss} | 0 ...gation.scss => SideNavigation.module.scss} | 0 .../SideNavigation/SideNavigation.old.jsx | 3 +- .../SideNavigation/SideNavigation.tsx | 25 +- .../{Wallet.scss => Wallet.module.scss} | 0 src/js/components/molecules/Wallet/Wallet.tsx | 2 +- .../new/App/{App.scss => App.module.scss} | 0 src/js/components/molecules/new/App/App.tsx | 9 +- ...older.scss => AppCanvasHolder.module.scss} | 0 .../AppProcessesHolder/AppCanvasHolder.tsx | 2 +- ...ion.styles.scss => AppSection.module.scss} | 0 .../organims/AppSection/AppSection.tsx | 4 +- ...pTerminal.scss => AppTerminal.module.scss} | 0 .../organims/AppTerminal/AppTerminal.tsx | 4 +- ...pTitleBar.scss => AppTitleBar.module.scss} | 0 .../organims/AppWindow/AppTitleBar.tsx | 5 +- .../{AppWindow.scss => AppWindow.module.scss} | 0 .../organims/AppWindow/AppWindow.tsx | 69 +- ...ardTabs.scss => DashboardTabs.module.scss} | 0 .../organims/DashboardTabs/DashboardTabs.tsx | 2 +- .../organims/DashboardTabs/index.ts | 1 + src/js/layout/DefaultLayout.jsx | 4 +- ...tLayout.scss => DefaultLayout.module.scss} | 0 ...ChoosePage.scss => ChoosePage.module.scss} | 0 src/js/pages/ChoosePage/ChoosePage.tsx | 2 +- .../{HomePage.scss => HomePage.module.scss} | 0 src/js/pages/HomePage/HomePage.tsx | 11 +- ...en.scss => LoginLoadingScreen.module.scss} | 0 .../LoginLoadingScreen/LoginLoadingScreen.tsx | 2 +- .../HomePage/LoginLoadingScreen/index.tsx | 1 + src/js/pages/LoginPage/LoginPage.jsx | 3 +- .../{LoginPage.scss => LoginPage.module.scss} | 0 ...sterPage.scss => RegisterPage.module.scss} | 0 src/js/pages/RegisterPage/RegisterPage.tsx | 2 +- src/js/services/ApplicationService.ts | 16 - src/js/services/AuthService.ts | 37 +- src/js/services/FileReaderService.ts | 2 +- src/js/services/KeyService.ts | 45 +- src/js/services/TerminalService.ts | 12 +- src/js/services/UserService.ts | 20 +- src/js/services/WappService.ts | 8 +- src/js/services/bootSystem.ts | 14 +- src/js/services/isNodeJs.ts | 21 +- src/js/services/micro/getFileExtension.ts | 8 +- src/js/services/micro/sortAppsInGrids.ts | 3 +- src/js/services/providers/IProvider.ts | 2 - src/js/services/providers/RutileProvider.ts | 334 ----- src/js/services/redirect.ts | 3 + src/js/store/AppProcessesStore.ts | 2 - src/js/store/ApplicationStore.ts | 1 - src/js/store/UserInfoStore.ts | 4 +- src/vendor/kernel | 2 +- tsconfig.json | 4 +- 96 files changed, 498 insertions(+), 1738 deletions(-) rename src/js/apps/Explorer/{Explorer.scss => Explorer.module.scss} (100%) rename src/js/apps/Explorer/components/File/{File.scss => File.module.scss} (100%) rename src/js/apps/Explorer/components/FileHeader/{FileHeader.scss => FileHeader.module.scss} (100%) rename src/js/apps/Explorer/components/Folder/{Folder.scss => Folder.module.scss} (100%) rename src/js/components/atoms/BulletNavigation/{BulletNavigation.scss => BulletNavigation.module.scss} (100%) rename src/js/components/atoms/Time/{Time.scss => Time.module.scss} (100%) rename src/js/components/molecules/App/{App.scss => App.module.scss} (100%) rename src/js/components/molecules/AppGrid/{AppGrid.scss => AppGrid.module.scss} (100%) rename src/js/components/molecules/AppHeader/{AppHeader.scss => AppHeader.module.scss} (100%) rename src/js/components/molecules/Header/{Header.scss => Header.module.scss} (100%) rename src/js/components/molecules/HomeButton/{HomeButton.scss => HomeButton.module.scss} (100%) rename src/js/components/molecules/Profile/{CloseAppButton.styles.scss => CloseAppButton.module.scss} (100%) delete mode 100644 src/js/components/molecules/Profile/MultiTaskButton.scss delete mode 100644 src/js/components/molecules/Profile/MultiTaskButton.tsx rename src/js/components/molecules/Profile/{Profile.scss => Profile.module.scss} (100%) rename src/js/components/molecules/SideNavigation/{AboutDialog.scss => AboutDialog.module.scss} (100%) delete mode 100644 src/js/components/molecules/SideNavigation/AppInstallDialog.tsx rename src/js/components/molecules/SideNavigation/{ProfilePicture.scss => ProfilePicture.module.scss} (100%) rename src/js/components/molecules/SideNavigation/{SideNavigation.scss => SideNavigation.module.scss} (100%) rename src/js/components/molecules/Wallet/{Wallet.scss => Wallet.module.scss} (100%) rename src/js/components/molecules/new/App/{App.scss => App.module.scss} (100%) rename src/js/components/organims/AppProcessesHolder/{AppCanvasHolder.scss => AppCanvasHolder.module.scss} (100%) rename src/js/components/organims/AppSection/{AppSection.styles.scss => AppSection.module.scss} (100%) rename src/js/components/organims/AppTerminal/{AppTerminal.scss => AppTerminal.module.scss} (100%) rename src/js/components/organims/AppWindow/{AppTitleBar.scss => AppTitleBar.module.scss} (100%) rename src/js/components/organims/AppWindow/{AppWindow.scss => AppWindow.module.scss} (100%) rename src/js/components/organims/DashboardTabs/{DashboardTabs.scss => DashboardTabs.module.scss} (100%) rename src/js/layout/{DefaultLayout.scss => DefaultLayout.module.scss} (100%) rename src/js/pages/ChoosePage/{ChoosePage.scss => ChoosePage.module.scss} (100%) rename src/js/pages/HomePage/{HomePage.scss => HomePage.module.scss} (100%) rename src/js/pages/HomePage/LoginLoadingScreen/{LoginLoadingScreen.scss => LoginLoadingScreen.module.scss} (100%) rename src/js/pages/LoginPage/{LoginPage.scss => LoginPage.module.scss} (100%) rename src/js/pages/RegisterPage/{RegisterPage.scss => RegisterPage.module.scss} (100%) delete mode 100644 src/js/services/ApplicationService.ts delete mode 100644 src/js/services/providers/RutileProvider.ts create mode 100644 src/js/services/redirect.ts diff --git a/declaration.d.ts b/declaration.d.ts index 3aeb6de..d371b12 100644 --- a/declaration.d.ts +++ b/declaration.d.ts @@ -1 +1,5 @@ declare var __non_webpack_require__: any; +declare module 'keccak' { + const content: any; + export = content; +} diff --git a/package-lock.json b/package-lock.json index 07efb65..2ec953d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3250,159 +3250,6 @@ "to-fast-properties": "^2.0.0" } }, - "@capacitor/cli": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-1.4.0.tgz", - "integrity": "sha512-jY4FQ7T5XW3XXYeh2asTBO1egRmGC4cAH3WE6TUn6STvfsD/BMbfEdNTFLErA8e2huP5dzI6PHttGEldz4MR6Q==", - "requires": { - "chalk": "^2.3.0", - "commander": "^2.12.2", - "compare-versions": "^3.1.0", - "fs-extra": "^4.0.3", - "inquirer": "6.3.1", - "open": "^6.1.0", - "ora": "^1.3.0", - "plist": "^3.0.1", - "semver": "^5.4.1", - "which": "^1.3.0", - "xml2js": "^0.4.19" - }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@capacitor/core": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-1.4.0.tgz", - "integrity": "sha512-9cLk6f8A2BjSh9KTItAOXGFSS9ZsVReMUACWw+1lEHsSk5kdPbp0oQ8c1kOX36LlHeBKi/EPSs8dXNedNHyHQA==", - "requires": { - "tslib": "^1.9.0" - } - }, "@cnakazawa/watch": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", @@ -3724,61 +3571,69 @@ } }, "@material-ui/core": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.8.3.tgz", - "integrity": "sha512-ZJbfJQmkuZCSQTf0nzpfZwizmDdCq8ruZxnPNFnhoKDqgJpMvV8TJRi8vdI9ls1tMuTqxlhyhw8556fxOpWpFQ==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.9.4.tgz", + "integrity": "sha512-1wqm3jBC8mGpVHu0wVOYBX7LUzkPsWxkkTtKSn0Hz66T6TDJkke72mkSIL7akNdjnxy+bRc2Vi6NiJ4YutkDcw==", "requires": { "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.8.2", - "@material-ui/system": "^4.7.1", - "@material-ui/types": "^4.1.1", + "@material-ui/styles": "^4.9.0", + "@material-ui/system": "^4.9.3", + "@material-ui/types": "^5.0.0", "@material-ui/utils": "^4.7.1", "@types/react-transition-group": "^4.2.0", "clsx": "^1.0.2", - "convert-css-length": "^2.0.1", - "hoist-non-react-statics": "^3.2.1", - "normalize-scroll-left": "^0.2.0", + "hoist-non-react-statics": "^3.3.2", "popper.js": "^1.14.1", "prop-types": "^15.7.2", "react-is": "^16.8.0", "react-transition-group": "^4.3.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + } } }, "@material-ui/icons": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.5.1.tgz", - "integrity": "sha512-YZ/BgJbXX4a0gOuKWb30mBaHaoXRqPanlePam83JQPZ/y4kl+3aW0Wv9tlR70hB5EGAkEJGW5m4ktJwMgxQAeA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.9.1.tgz", + "integrity": "sha512-GBitL3oBWO0hzBhvA9KxqcowRUsA0qzwKkURyC8nppnC3fw54KPKZ+d4V1Eeg/UnDRSzDaI9nGCdel/eh9AQMg==", "requires": { "@babel/runtime": "^7.4.4" } }, "@material-ui/styles": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.8.2.tgz", - "integrity": "sha512-r5U+93pkpwQOmHTmwyn2sqTio6PHd873xvSHiKP6fdybAXXX6CZgVvh3W8saZNbYr/QXsS8OHmFv7sYJLt5Yfg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.9.0.tgz", + "integrity": "sha512-nJHum4RqYBPWsjL/9JET8Z02FZ9gSizlg/7LWVFpIthNzpK6OQ5OSRR4T4x9/p+wK3t1qNn3b1uI4XpnZaPxOA==", "requires": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.7.4", - "@material-ui/types": "^4.1.1", + "@material-ui/types": "^5.0.0", "@material-ui/utils": "^4.7.1", "clsx": "^1.0.2", "csstype": "^2.5.2", "hoist-non-react-statics": "^3.2.1", - "jss": "^10.0.0", - "jss-plugin-camel-case": "^10.0.0", - "jss-plugin-default-unit": "^10.0.0", - "jss-plugin-global": "^10.0.0", - "jss-plugin-nested": "^10.0.0", - "jss-plugin-props-sort": "^10.0.0", - "jss-plugin-rule-value-function": "^10.0.0", - "jss-plugin-vendor-prefixer": "^10.0.0", + "jss": "^10.0.3", + "jss-plugin-camel-case": "^10.0.3", + "jss-plugin-default-unit": "^10.0.3", + "jss-plugin-global": "^10.0.3", + "jss-plugin-nested": "^10.0.3", + "jss-plugin-props-sort": "^10.0.3", + "jss-plugin-rule-value-function": "^10.0.3", + "jss-plugin-vendor-prefixer": "^10.0.3", "prop-types": "^15.7.2" } }, "@material-ui/system": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.7.1.tgz", - "integrity": "sha512-zH02p+FOimXLSKOW/OT2laYkl9bB3dD1AvnZqsHYoseUaq0aVrpbl2BGjQi+vJ5lg8w73uYlt9zOWzb3+1UdMQ==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.3.tgz", + "integrity": "sha512-DBGsTKYrLlFpHG8BUp0X6ZpvaOzef+GhSwn/8DwVTXUdHitphaPQoL9xucrI8X9MTBo//El+7nylko7lo7eJIw==", "requires": { "@babel/runtime": "^7.4.4", "@material-ui/utils": "^4.7.1", @@ -3786,12 +3641,9 @@ } }, "@material-ui/types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-4.1.1.tgz", - "integrity": "sha512-AN+GZNXytX9yxGi0JOfxHrRTbhFybjUJ05rnsBVjcB+16e466Z0Xe5IxawuOayVZgTBNDxmPKo5j4V6OnMtaSQ==", - "requires": { - "@types/react": "*" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.0.0.tgz", + "integrity": "sha512-UeH2BuKkwDndtMSS0qgx1kCzSMw+ydtj0xx/XbFtxNSTlXydKwzs5gVW5ZKsFlAkwoOOQ9TIsyoCC8hq18tOwg==" }, "@material-ui/utils": { "version": "4.7.1", @@ -3817,277 +3669,6 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, - "@playos/kernel": { - "version": "file:../Kernel", - "requires": { - "@wasmer/io-devices": "^0.6.0", - "@wasmer/wasi": "^0.6.0", - "@wasmer/wasm-transformer": "^0.6.0", - "@wasmer/wasmfs": "^0.6.0", - "asyncify-wasm": "^1.0.0", - "comlink": "^4.2.0", - "ethers": "^4.0.43", - "keccak": "^2.1.0", - "memfs": "^3.0.4" - }, - "dependencies": { - "@wasmer/io-devices": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@wasmer/io-devices/-/io-devices-0.6.0.tgz", - "integrity": "sha512-+Kr2Pz6BGVZ4FAdkHu6MI1SaeqBrEX/nD4vffvG3JXhEz2xiwM/Ei2LyyW/byYiBoAAlZWOc+N/1kaNGge7A4A==" - }, - "@wasmer/wasi": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@wasmer/wasi/-/wasi-0.6.0.tgz", - "integrity": "sha512-tEA9Nxf/SxrEbUt4YiFeDoTTMs8WiYrBUiVu6Mw11Rva69tT+5zGOQjYmILjlcpmZzL6tXjdnTOfQIAZwdihyg==", - "requires": { - "browser-process-hrtime": "^1.0.0", - "buffer-es6": "^4.9.3", - "path-browserify": "^1.0.0", - "randomfill": "^1.0.4" - } - }, - "@wasmer/wasm-transformer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@wasmer/wasm-transformer/-/wasm-transformer-0.6.0.tgz", - "integrity": "sha512-Zb4e5XhLCZ6OH/3FmYA80x2BMIfuT/Au97W/pPu1Z6nu9LTO1aaCf0/wQqbtZ+0NWsMxbqRFgU6+ADaL97Idfw==" - }, - "@wasmer/wasmfs": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@wasmer/wasmfs/-/wasmfs-0.6.0.tgz", - "integrity": "sha512-k6I0AtaOnI71V4CbOftHRHh8fm467Xjw4m+XPugh+SOo6pFIT6Y0qI9QNHtvty7sZWLx4Gtl0dBNZFprP5eRng==", - "requires": { - "memfs": "git+https://github.com/torch2424/memfs.git#wasmfs-fixes" - }, - "dependencies": { - "memfs": { - "version": "git+https://github.com/torch2424/memfs.git#50997b4374121eb30e4e571a311e3effe824ea82", - "from": "git+https://github.com/torch2424/memfs.git#wasmfs-fixes", - "requires": { - "browser-assert": "^1.2.1", - "fast-extend": "0.0.2", - "fs-monkey": "^0.3.3" - } - } - } - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" - }, - "asyncify-wasm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asyncify-wasm/-/asyncify-wasm-1.0.0.tgz", - "integrity": "sha512-BUV42UZW5q58aaWUj0KSmhfbPFZcTTRRW6nsJ7IAm3NSFymMZkVPeC8X7nmctHjoBdLcCLKl5U8ZLcSF+or2+Q==" - }, - "binaryen": { - "version": "89.0.0", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-89.0.0.tgz", - "integrity": "sha512-yvTTdiCzWUQb3NHcdpiyhQOTUpTw8l+YcjvDQ1+R4e2jr3VQspMScoQitOTPC6mftXkEP67x5S14kCApNX/X1Q==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-assert": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", - "integrity": "sha1-mqpaKox0aFwq4Fv+Ru/WBvBowgA=" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "buffer-es6": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz", - "integrity": "sha1-8mNHuC33b9N+GLy1KIxJcM/VxAQ=" - }, - "comlink": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/comlink/-/comlink-4.2.0.tgz", - "integrity": "sha512-33hF3yYzZicIWLREuvluTGSZkbAXYwRmrA9IYQo0/P+0O45qgvzR0FHX4tRZztObFMTs/RhnN0G0UBNDAZSiCg==" - }, - "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "ethers": { - "version": "4.0.45", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.45.tgz", - "integrity": "sha512-N/Wmc6Mw4pQO+Sss1HnKDCSS6KSCx0luoBMiPNq+1GbOaO3YaZOyplBEhj+NEoYsizZYODtkITg2oecPeNnidQ==", - "requires": { - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.5.2", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "fast-extend": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/fast-extend/-/fast-extend-0.0.2.tgz", - "integrity": "sha1-9exCz0C5Rg9SGmOH37Ut7u1nHb0=" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fs-monkey": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-0.3.3.tgz", - "integrity": "sha512-FNUvuTAJ3CqCQb5ELn+qCbGR/Zllhf2HtwsdAtBi59s1WeCjKMT81fHcSu7dwIskqGVK+MmOrb7VOBlq3/SItw==" - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "keccak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", - "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "requires": { - "bindings": "^1.5.0", - "inherits": "^2.0.4", - "nan": "^2.14.0", - "safe-buffer": "^5.2.0" - } - }, - "memfs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.1.1.tgz", - "integrity": "sha512-A6QWLLH6HolvLeACaEc6WAAxU7c7iAvVgeyp1iDwzSIbwfGUjR4x9bAFUVq3YtSVFCYQAx4Nw2o4TEYAfH+lAg==", - "requires": { - "fs-monkey": "1.0.0" - }, - "dependencies": { - "fs-monkey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.0.tgz", - "integrity": "sha512-nxkkzQ5Ga+ETriXxIof4TncyMSzrV9jFIF+kGN16nw5CiAdWAnG/2FgM7CHhRenW1EBiDx+r1tf/P78HGKCgnA==" - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "path-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.0.tgz", - "integrity": "sha512-Hkavx/nY4/plImrZPHRk2CL9vpOymZLgEbMNX1U0bjcBL7QN9wODxyx0yaMZURSQaUtSEvDrfAvxa9oPb0at9g==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" - }, - "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" - } - } - }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -4213,7 +3794,8 @@ "@types/anymatch": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", - "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", + "dev": true }, "@types/babel__core": { "version": "7.1.3", @@ -4378,18 +3960,18 @@ "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, "@types/react": { - "version": "16.9.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.17.tgz", - "integrity": "sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==", + "version": "16.9.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz", + "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==", "requires": { "@types/prop-types": "*", "csstype": "^2.2.0" } }, "@types/react-dom": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", - "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", + "version": "16.9.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz", + "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==", "dev": true, "requires": { "@types/react": "*" @@ -4399,6 +3981,7 @@ "version": "5.5.3", "resolved": "https://registry.npmjs.org/@types/react-loadable/-/react-loadable-5.5.3.tgz", "integrity": "sha512-BRzQhbMo5CjfxFU2tmmBNh16QqKUwNiaX0vflCwIVPVG8g/pCOyJ3rOdSPo4m+TPS7C9q/TupaqYXXTMtFoyng==", + "dev": true, "requires": { "@types/react": "*", "@types/webpack": "*" @@ -4420,6 +4003,7 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/@types/react-resizable/-/react-resizable-1.7.2.tgz", "integrity": "sha512-6c6L94+VOksr9838LDrlYeucic2+0qkGnwolGE77YJztYHCWSucQV0e9+Qyl+uHpJTBRS95A5JESBg5NgCAC3A==", + "dev": true, "requires": { "@types/react": "*" } @@ -4434,6 +4018,17 @@ "@types/react": "*" } }, + "@types/react-router-dom": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.3.tgz", + "integrity": "sha512-pCq7AkOvjE65jkGS5fQwQhvUp4+4PVD9g39gXLZViP2UqFiFzsEpB3PKf0O6mdbKsewSK8N14/eegisa/0CwnA==", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" + } + }, "@types/react-router-redux": { "version": "5.0.18", "resolved": "https://registry.npmjs.org/@types/react-router-redux/-/react-router-redux-5.0.18.tgz", @@ -4456,9 +4051,9 @@ } }, "@types/react-transition-group": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.3.tgz", - "integrity": "sha512-Hk8jiuT7iLOHrcjKP/ZVSyCNXK73wJAUz60xm0mVhiRujrdiI++j4duLiL282VGxwAgxetHQFfqA29LgEeSkFA==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.2.4.tgz", + "integrity": "sha512-8DMUaDqh0S70TjkqU0DxOu80tFUiiaS9rxkWip/nb7gtvAsbqOXm02UCmR8zdcjWujgeYPiPNTVpVpKzUDotwA==", "requires": { "@types/react": "*" } @@ -4466,7 +4061,8 @@ "@types/source-list-map": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true }, "@types/stack-utils": { "version": "1.0.1", @@ -4476,12 +4072,14 @@ "@types/tapable": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz", - "integrity": "sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ==" + "integrity": "sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ==", + "dev": true }, "@types/uglify-js": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.4.tgz", "integrity": "sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ==", + "dev": true, "requires": { "source-map": "^0.6.1" }, @@ -4489,7 +4087,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -4512,6 +4111,7 @@ "version": "4.41.2", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.2.tgz", "integrity": "sha512-DNMQOfEvwzWRRyp6Wy9QVCgJ3gkelZsuBE2KUD318dg95s9DKGiT5CszmmV58hq8jk89I9NClre48AEy1MWAJA==", + "dev": true, "requires": { "@types/anymatch": "*", "@types/node": "*", @@ -4524,7 +4124,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -4532,6 +4133,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz", "integrity": "sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ==", + "dev": true, "requires": { "@types/node": "*", "@types/source-list-map": "*", @@ -4541,7 +4143,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -5820,23 +5423,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - } - } - }, "babel-preset-jest": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", @@ -7102,11 +6688,6 @@ } } }, - "camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" - }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -7311,11 +6892,6 @@ "restore-cursor": "^3.1.0" } }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==" - }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -7418,9 +6994,9 @@ } }, "clsx": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.0.4.tgz", - "integrity": "sha512-1mQ557MIZTrL/140j+JVdRM6e31/OA4vTYxXgqIIZlndyfjHpyawKZia1Im05Vp9BWmImkcNrNtFYQMyFcgJDg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.0.tgz", + "integrity": "sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA==" }, "co": { "version": "4.6.0", @@ -7532,11 +7108,6 @@ "dot-prop": "^3.0.0" } }, - "compare-versions": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz", - "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==" - }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -8490,11 +8061,6 @@ } } }, - "convert-css-length": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/convert-css-length/-/convert-css-length-2.0.1.tgz", - "integrity": "sha512-iGpbcvhLPRKUbBc0Quxx7w/bV14AC3ItuBEGMahA5WTYqB8lq9jH0kTXFheCBASsYnqeMFZhiTruNxr1N59Axg==" - }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", @@ -8643,14 +8209,6 @@ "sha.js": "^2.4.8" } }, - "cross-env": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-6.0.3.tgz", - "integrity": "sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag==", - "requires": { - "cross-spawn": "^7.0.0" - } - }, "cross-spawn": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", @@ -8705,11 +8263,6 @@ "postcss": "^7.0.5" } }, - "css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" - }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -8944,23 +8497,6 @@ } } }, - "css-to-react-native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", - "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", - "requires": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, "css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", @@ -10448,6 +9984,28 @@ } } }, + "eslint-config-airbnb": { + "version": "18.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.0.1.tgz", + "integrity": "sha512-hLb/ccvW4grVhvd6CT83bECacc+s4Z3/AEyWQdIT2KeTsG9dR7nx1gs7Iw4tDmGKozCNHFn4yZmRm3Tgy+XxyQ==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^14.0.0", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-airbnb-base": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz", + "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.7", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, "eslint-config-react-app": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.0.tgz", @@ -10977,9 +10535,9 @@ } }, "ethers": { - "version": "4.0.43", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.43.tgz", - "integrity": "sha512-VjQRVgPrlU12jSMvypdE1yEqYQccdVbH8bbiz67dLF7raHlRV4+zW70GlxHcZYqgsnz0XYWrn6C06gqTQRb5tw==", + "version": "4.0.45", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.45.tgz", + "integrity": "sha512-N/Wmc6Mw4pQO+Sss1HnKDCSS6KSCx0luoBMiPNq+1GbOaO3YaZOyplBEhj+NEoYsizZYODtkITg2oecPeNnidQ==", "requires": { "aes-js": "3.0.0", "bn.js": "^4.4.0", @@ -11990,22 +11548,26 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "optional": true }, "aproba": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "optional": true }, "are-we-there-yet": { "version": "1.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "optional": true, "requires": { "delegates": "^1.0.0", @@ -12014,12 +11576,14 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "optional": true }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": false, + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "optional": true, "requires": { "balanced-match": "^1.0.0", @@ -12028,32 +11592,38 @@ }, "chownr": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "optional": true }, "debug": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "optional": true, "requires": { "ms": "^2.1.1" @@ -12061,22 +11631,26 @@ }, "deep-extend": { "version": "0.6.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "optional": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "optional": true }, "detect-libc": { "version": "1.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "optional": true }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -12084,12 +11658,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "optional": true }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": false, + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "optional": true, "requires": { "aproba": "^1.0.3", @@ -12104,7 +11680,8 @@ }, "glob": { "version": "7.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -12117,12 +11694,14 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, "iconv-lite": { "version": "0.4.24", - "bundled": true, + "resolved": false, + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -12130,7 +11709,8 @@ }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "optional": true, "requires": { "minimatch": "^3.0.4" @@ -12138,7 +11718,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "optional": true, "requires": { "once": "^1.3.0", @@ -12147,17 +11728,20 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "optional": true }, "ini": { "version": "1.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -12165,12 +11749,14 @@ }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "optional": true }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "optional": true, "requires": { "brace-expansion": "^1.1.7" @@ -12178,12 +11764,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "optional": true }, "minipass": { "version": "2.3.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "optional": true, "requires": { "safe-buffer": "^5.1.2", @@ -12192,7 +11780,8 @@ }, "minizlib": { "version": "1.2.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", "optional": true, "requires": { "minipass": "^2.2.1" @@ -12200,7 +11789,8 @@ }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "optional": true, "requires": { "minimist": "0.0.8" @@ -12208,12 +11798,14 @@ }, "ms": { "version": "2.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "optional": true }, "needle": { "version": "2.3.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", "optional": true, "requires": { "debug": "^4.1.0", @@ -12223,7 +11815,8 @@ }, "node-pre-gyp": { "version": "0.12.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -12240,7 +11833,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "optional": true, "requires": { "abbrev": "1", @@ -12249,12 +11843,14 @@ }, "npm-bundled": { "version": "1.0.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", "optional": true }, "npm-packlist": { "version": "1.4.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -12263,7 +11859,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -12274,17 +11871,20 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "optional": true, "requires": { "wrappy": "1" @@ -12292,17 +11892,20 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "optional": true }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": false, + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -12311,17 +11914,20 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "optional": true }, "process-nextick-args": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "optional": true }, "rc": { "version": "1.2.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -12332,14 +11938,16 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "optional": true } } }, "readable-stream": { "version": "2.3.6", - "bundled": true, + "resolved": false, + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -12353,7 +11961,8 @@ }, "rimraf": { "version": "2.6.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "optional": true, "requires": { "glob": "^7.1.3" @@ -12361,37 +11970,44 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "optional": true }, "safer-buffer": { "version": "2.1.2", - "bundled": true, + "resolved": false, + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "optional": true }, "sax": { "version": "1.2.4", - "bundled": true, + "resolved": false, + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "optional": true }, "semver": { "version": "5.7.0", - "bundled": true, + "resolved": false, + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "optional": true }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -12401,7 +12017,8 @@ }, "string_decoder": { "version": "1.1.1", - "bundled": true, + "resolved": false, + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -12409,7 +12026,8 @@ }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -12417,12 +12035,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": false, + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "optional": true }, "tar": { "version": "4.4.8", - "bundled": true, + "resolved": false, + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "optional": true, "requires": { "chownr": "^1.1.1", @@ -12436,12 +12056,14 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "optional": true }, "wide-align": { "version": "1.1.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -12449,12 +12071,14 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true, + "resolved": false, + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "optional": true } } @@ -13642,11 +13266,6 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" - }, "immer": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", @@ -15574,9 +15193,9 @@ } }, "jss": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.3.tgz", - "integrity": "sha512-AcDvFdOk16If9qvC9KN3oFXsrkHWM9+TaPMpVB9orm3z+nq1Xw3ofHyflRe/mkSucRZnaQtlhZs1hdP3DR9uRw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.0.4.tgz", + "integrity": "sha512-GqHmeDK83qbqMAVjxyPfN1qJVTKZne533a9bdCrllZukUM8npG/k+JumEPI86IIB5ifaZAHG2HAsUziyxOiooQ==", "requires": { "@babel/runtime": "^7.3.1", "csstype": "^2.6.5", @@ -15585,69 +15204,69 @@ } }, "jss-plugin-camel-case": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.3.tgz", - "integrity": "sha512-rild/oFKFkmRP7AoiX9D6bdDAUfmJv8c7sEBvFoi+JP31dn2W8nw4txMKGnV1LJKlFkYprdZt1X99Uvztl1hug==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.4.tgz", + "integrity": "sha512-+wnqxJsyfUnOn0LxVg3GgZBSjfBCrjxwx7LFxwVTUih0ceGaXKZoieheNOaTo5EM4w8bt1nbb8XonpQCj67C6A==", "requires": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "^10.0.3" + "jss": "10.0.4" } }, "jss-plugin-default-unit": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.3.tgz", - "integrity": "sha512-n+XfVLPF9Qh7IOTdQ8M4oRpjpg6egjr/r0NNytubbCafMgCILJYIVrMTGgOTydH+uvak8onQY3f/F9hasPUx6g==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.4.tgz", + "integrity": "sha512-T0mhL/Ogp/quvod/jAHEqKvptLDxq7Cj3a+7zRuqK8HxUYkftptN89wJElZC3rshhNKiogkEYhCWenpJdFvTBg==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.0.3" + "jss": "10.0.4" } }, "jss-plugin-global": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.3.tgz", - "integrity": "sha512-kNotkAciJIXpIGYnmueaIifBne9rdq31O8Xq1nF7KMfKlskNRANTcEX5rVnsGKl2yubTMYfjKBFCeDgcQn6+gA==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.0.4.tgz", + "integrity": "sha512-N8n9/GHENZce+sqE4UYiZiJtI+t+erT/BypHOrNYAfIoNEj7OYsOEKfIo2P0GpLB3QyDAYf5eo9XNdZ8veEkUA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.0.3" + "jss": "10.0.4" } }, "jss-plugin-nested": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.3.tgz", - "integrity": "sha512-OMucRs9YLvWlZ3Ew+VhdgNVMwSS2zZy/2vy+s/etvopnPUzDHgCnJwdY2Wx/SlhLGERJeKKufyih2seH+ui0iw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.0.4.tgz", + "integrity": "sha512-QM21BKVt8LDeoRfowvAMh/s+/89VYrreIIE6ch4pvw0oAXDWw1iorUPlqLZ7uCO3UL0uFtQhJq3QMLN6Lr1v0A==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.0.3", + "jss": "10.0.4", "tiny-warning": "^1.0.2" } }, "jss-plugin-props-sort": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.3.tgz", - "integrity": "sha512-ufhvdCMnRcDa0tNHoZ12OcVNQQyE10yLMohxo/UIMarLV245rM6n9D19A12epjldRgyiS13SoSyLFCJEobprYg==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.4.tgz", + "integrity": "sha512-WoETdOCjGskuin/OMt2uEdDPLZF3vfQuHXF+XUHGJrq0BAapoyGQDcv37SeReDlkRAbVXkEZPsIMvYrgHSHFiA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.0.3" + "jss": "10.0.4" } }, "jss-plugin-rule-value-function": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.3.tgz", - "integrity": "sha512-RWwIT2UBAIwf3f6DQtt5gyjxHMRJoeO9TQku+ueR8dBMakqSSe8vFwQNfjXEoe0W+Tez5HZCTkZKNMulv3Z+9A==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.4.tgz", + "integrity": "sha512-0hrzOSWRF5ABJGaHrlnHbYZjU877Ofzfh2id3uLtBvemGQLHI+ldoL8/+6iPSRa7M8z8Ngfg2vfYhKjUA5gA0g==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "^10.0.3" + "jss": "10.0.4" } }, "jss-plugin-vendor-prefixer": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.3.tgz", - "integrity": "sha512-zVs6e5z4tFRK/fJ5kuTLzXlTFQbLeFTVwk7lTZiYNufmZwKT0kSmnOJDUukcSe7JLGSRztjWhnHB/6voP174gw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.4.tgz", + "integrity": "sha512-4JgEbcrdeMda1qvxTm1CnxFJAWVV++VLpP46HNTrfH7VhVlvUpihnUNs2gAlKuRT/XSBuiWeLAkrTqF4NVrPig==", "requires": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.7", - "jss": "^10.0.3" + "jss": "10.0.4" } }, "jsx-ast-utils": { @@ -15659,51 +15278,6 @@ "object.assign": "^4.1.0" } }, - "jszip": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "keccak": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", @@ -15858,14 +15432,6 @@ "type-check": "~0.3.2" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "requires": { - "immediate": "~3.0.5" - } - }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -15962,42 +15528,12 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, - "lodash.every": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", - "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=" - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "lodash.maxby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", - "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=" - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -16040,14 +15576,6 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "^2.0.1" - } - }, "loglevel": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", @@ -16336,18 +15864,17 @@ } }, "memfs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.0.4.tgz", - "integrity": "sha512-OcZEzwX9E5AoY8SXjuAvw0DbIAYwUzV/I236I8Pqvrlv7sL/Y0E9aRCon05DhaV8pg1b32uxj76RgW0s5xjHBA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.1.1.tgz", + "integrity": "sha512-A6QWLLH6HolvLeACaEc6WAAxU7c7iAvVgeyp1iDwzSIbwfGUjR4x9bAFUVq3YtSVFCYQAx4Nw2o4TEYAfH+lAg==", "requires": { - "fast-extend": "1.0.2", - "fs-monkey": "0.3.3" + "fs-monkey": "1.0.0" }, "dependencies": { - "fast-extend": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fast-extend/-/fast-extend-1.0.2.tgz", - "integrity": "sha512-XXA9RmlPatkFKUzqVZAFth18R4Wo+Xug/S+C7YlYA3xrXwfPlW3dqNwOb4hvQo7wZJ2cNDYhrYuPzVOfHy5/uQ==" + "fs-monkey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.0.tgz", + "integrity": "sha512-nxkkzQ5Ga+ETriXxIof4TncyMSzrV9jFIF+kGN16nw5CiAdWAnG/2FgM7CHhRenW1EBiDx+r1tf/P78HGKCgnA==" } } }, @@ -17297,11 +16824,6 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, - "normalize-scroll-left": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-scroll-left/-/normalize-scroll-left-0.2.0.tgz", - "integrity": "sha512-t5oCENZJl8TGusJKoCJm7+asaSsPuNmK6+iEjrZ5TyBj2f02brCRsd4c83hwtu+e5d4LCSBZ0uoDlMjBo+A8yA==" - }, "normalize-url": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", @@ -17718,14 +17240,6 @@ "mimic-fn": "^2.1.0" } }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "requires": { - "is-wsl": "^1.1.0" - } - }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -17779,49 +17293,6 @@ } } }, - "ora": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz", - "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", - "requires": { - "chalk": "^2.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.1", - "log-symbols": "^2.1.0" - }, - "dependencies": { - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - } - } - }, "ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", @@ -18316,21 +17787,6 @@ } } }, - "platform": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", - "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" - }, - "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", - "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" - } - }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -18345,9 +17801,9 @@ } }, "popper.js": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz", - "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==" + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" }, "portfinder": { "version": "1.0.25", @@ -20065,11 +19521,6 @@ "prop-types": "^15.5.0" } }, - "react-object-inspector": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/react-object-inspector/-/react-object-inspector-0.2.1.tgz", - "integrity": "sha1-jsMpUb3ox2sHLvCEp056nS0K63I=" - }, "react-redux": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.1.3.tgz", @@ -22002,11 +21453,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -23000,18 +22446,6 @@ } } }, - "string-similarity": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.2.2.tgz", - "integrity": "sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==", - "requires": { - "lodash.every": "^4.6.0", - "lodash.flattendeep": "^4.4.0", - "lodash.foreach": "^4.5.0", - "lodash.map": "^4.6.0", - "lodash.maxby": "^4.6.0" - } - }, "string-template": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", @@ -23138,64 +22572,6 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, - "styled-components": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.1.6.tgz", - "integrity": "sha1-nEQxRvqCxmWan2TdSTvyICSANC4=", - "requires": { - "buffer": "^5.0.3", - "css-to-react-native": "^2.0.3", - "fbjs": "^0.8.9", - "hoist-non-react-statics": "^1.2.0", - "is-plain-object": "^2.0.1", - "prop-types": "^15.5.4", - "stylis": "^3.4.0", - "stylis-rule-sheet": "^0.0.7", - "supports-color": "^3.2.3" - }, - "dependencies": { - "buffer": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz", - "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "hoist-non-react-statics": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz", - "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs=" - }, - "is-plain-object": { - "version": "2.0.4", - "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": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -23231,16 +22607,6 @@ } } }, - "stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" - }, - "stylis-rule-sheet": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.7.tgz", - "integrity": "sha512-qxzlUBO40tgcGMhYxk2gXAPcaZYpfCqHMoVHj92lFMyiFotcqaEl7Jb5eW1ccCanGwf1N9dVBKF9+i/gmDfzyQ==" - }, "subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", @@ -23496,48 +22862,6 @@ } } }, - "terminal-in-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/terminal-in-react/-/terminal-in-react-4.3.1.tgz", - "integrity": "sha512-o0uZQgLBsOTjXjBJxc1SY3tps9SpF8uZkzqvifrC/aIvizvyeSvyjoCcnLF/UwibqWlidHcIc9OiG/TFinIO+g==", - "requires": { - "lodash.camelcase": "^4.3.0", - "lodash.isequal": "^4.5.0", - "minimist": "^1.2.0", - "platform": "^1.3.4", - "prop-types": "^15.5.10", - "react": "16.2.0", - "react-dom": "16.2.0", - "react-object-inspector": "^0.2.1", - "string-similarity": "^1.2.0", - "styled-components": "3.1.6", - "whatkey": "^2.0.1" - }, - "dependencies": { - "react": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz", - "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" - } - }, - "react-dom": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz", - "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==", - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" - } - } - } - }, "terser": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", @@ -24185,9 +23509,9 @@ } }, "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.2.tgz", + "integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==", "dev": true }, "ua-parser-js": { @@ -25450,11 +24774,6 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" }, - "whatkey": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/whatkey/-/whatkey-2.0.1.tgz", - "integrity": "sha1-QeVrKxBYrNFVDUh3SKYGjlgShog=" - }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -25798,37 +25117,11 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "dependencies": { - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - } - } - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" - }, "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", diff --git a/package.json b/package.json index 3d0f237..d20cd48 100644 --- a/package.json +++ b/package.json @@ -34,28 +34,19 @@ "author": "PlayOS", "license": "ISC", "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@capacitor/cli": "^1.4.0", - "@capacitor/core": "^1.4.0", - "@material-ui/core": "^4.8.3", - "@material-ui/icons": "^4.5.1", - "@playos/kernel": "file:../Kernel", - "@types/react-loadable": "^5.5.3", - "@types/react-resizable": "^1.7.2", + "@material-ui/core": "^4.9.4", + "@material-ui/icons": "^4.9.1", "@wasmer/wasm-terminal": "^0.6.0", "@wasmer/wasm-transformer": "^0.6.0", "@wasmer/wasmfs": "^0.6.0", "classnames": "^2.2.6", "connected-react-router": "^6.6.1", - "cross-env": "^6.0.3", - "css-loader": "^3.4.2", - "ethers": "^4.0.43", + "ethers": "^4.0.45", "inherits": "^2.0.4", - "jszip": "^3.2.2", "keccak": "^2.1.0", "material-ui": "^0.20.2", "material-ui-dialogs": "^1.3.0", - "memfs": "^3.0.4", + "memfs": "^3.1.1", "postcss-modules": "^1.5.0", "prop-types": "^15.7.2", "react": "^16.12.0", @@ -75,7 +66,6 @@ "redux": "^4.0.5", "redux-logger": "^3.0.6", "redux-thunk": "^2.3.0", - "terminal-in-react": "^4.3.1", "use-resize-observer": "^6.0.0", "web3": "^1.2.4", "whatwg-fetch": "^3.0.0" @@ -83,17 +73,21 @@ "devDependencies": { "@types/classnames": "^2.2.9", "@types/jszip": "^3.1.7", - "@types/react": "^16.9.17", - "@types/react-dom": "^16.9.4", + "@types/react": "^16.9.23", + "@types/react-dom": "^16.9.5", + "@types/react-loadable": "^5.5.3", "@types/react-redux": "^7.1.6", + "@types/react-resizable": "^1.7.2", "@types/react-router": "^5.1.4", + "@types/react-router-dom": "^5.1.3", "@types/react-router-redux": "^5.0.18", "@types/react-swipeable-views": "^0.13.0", "@types/web3": "^1.2.2", "documentation": "12.1.4", + "eslint-config-airbnb": "^18.0.1", "node-sass": "^4.13.1", "standard-version": "^7.1.0", - "typescript": "^3.7.5", + "typescript": "^3.8.2", "worker-plugin": "^3.2.0" } } diff --git a/public/index.html b/public/index.html index 126f44a..a748868 100644 --- a/public/index.html +++ b/public/index.html @@ -17,21 +17,5 @@
- - diff --git a/src/index.js b/src/index.js index d8792eb..d63b064 100644 --- a/src/index.js +++ b/src/index.js @@ -3,12 +3,12 @@ import 'whatwg-fetch'; import App from './js/App'; import './scss/index.scss'; // import Sdk from '../SDK'; -import Configuration from './js/Configuration'; +// import Configuration from './js/Configuration'; import packageJson from '../package.json'; // injectTapEventPlugin(); -const env = Configuration.getEnvironment(); +// const env = Configuration.getEnvironment(); // const sdkEnv = env === 'production' ? 'root' : env; // const sdk = new Sdk('__playos_auth_development', { diff --git a/src/js/App.tsx b/src/js/App.tsx index 2a93c3c..aa1f227 100644 --- a/src/js/App.tsx +++ b/src/js/App.tsx @@ -17,6 +17,7 @@ export default class App { constructor(id: string = 'app') { this.domId = id; + console.log('[] id -> ', id); } run() { diff --git a/src/js/Configuration.ts b/src/js/Configuration.ts index 007e917..dcde048 100644 --- a/src/js/Configuration.ts +++ b/src/js/Configuration.ts @@ -1,5 +1,3 @@ -import RutileProvider from "./services/providers/RutileProvider"; - const environment = process.env.NODE_ENV; const DEV_HOST = 'http://localhost.playos.io/'; @@ -16,7 +14,6 @@ const config = { chainId: 929, coreAddress: '0xc660ac9d984c1a65ab499c93e5749bdb0b4518f5', }, - provider: new RutileProvider('http://localhost:8545/', 929, '0xc660ac9d984c1a65ab499c93e5749bdb0b4518f5'), coreAddress: '0xb8e0baafd907f3289dbdc0a5174ba786f4b78cf2', }, production: { @@ -31,7 +28,6 @@ const config = { chainId: 929, coreAddress: '0xc660ac9d984c1a65ab499c93e5749bdb0b4518f5', }, - provider: new RutileProvider('http://localhost:8545/', 929, '0xc660ac9d984c1a65ab499c93e5749bdb0b4518f5'), coreAddress: '0xb8e0baafd907f3289dbdc0a5174ba786f4b78cf2', }, }; diff --git a/src/js/apps/Explorer/Explorer.scss b/src/js/apps/Explorer/Explorer.module.scss similarity index 100% rename from src/js/apps/Explorer/Explorer.scss rename to src/js/apps/Explorer/Explorer.module.scss diff --git a/src/js/apps/Explorer/Explorer.tsx b/src/js/apps/Explorer/Explorer.tsx index b72642b..a15fa17 100644 --- a/src/js/apps/Explorer/Explorer.tsx +++ b/src/js/apps/Explorer/Explorer.tsx @@ -16,9 +16,9 @@ import Folder from './components/Folder'; import File from './components/File'; import Dirent from 'memfs/lib/Dirent'; import Dropzone from '../../components/molecules/Dropzone'; -import Kernel from '@playos/kernel'; +import Kernel from '../../../vendor/kernel'; import BackgroundTerminal from '../../background/BackgroundTerminal'; -const styles = require('./Explorer.scss'); +const styles = require('./Explorer.module.scss'); export default function Explorer() { const [isLocationsOpen, setLocationsOpen] = React.useState(true); @@ -28,6 +28,11 @@ export default function Explorer() { React.useEffect(() => { async function setup() { const kernel = InstanceBag.get('kernel'); + + if (!kernel.fs) { + throw new Error('System was not booted'); + } + const filesAndDirectories: any = await kernel.fs.readDir(path, { encoding: 'utf8', withFileTypes: true, @@ -109,9 +114,9 @@ export default function Explorer() { {files.map((file) => { if (file.isDirectory()) { return - } else if (file.isFile()) { - return } + + return })} diff --git a/src/js/apps/Explorer/components/File/File.scss b/src/js/apps/Explorer/components/File/File.module.scss similarity index 100% rename from src/js/apps/Explorer/components/File/File.scss rename to src/js/apps/Explorer/components/File/File.module.scss diff --git a/src/js/apps/Explorer/components/File/File.tsx b/src/js/apps/Explorer/components/File/File.tsx index 9a507b7..d3337b4 100644 --- a/src/js/apps/Explorer/components/File/File.tsx +++ b/src/js/apps/Explorer/components/File/File.tsx @@ -4,12 +4,12 @@ import InsertDriveFileOutlinedIcon from '@material-ui/icons/InsertDriveFileOutli import WebIcon from '@material-ui/icons/Web'; import getFileExtension from '../../../../services/micro/getFileExtension'; -const styles = require('./File.scss'); +const styles = require('./File.module.scss'); interface Props { file: Dirent; path: string; - onClick?: (folder: Dirent) => void; + onClick: (folder: Dirent) => void; } function getFileIcon(file: Dirent): any { @@ -25,8 +25,8 @@ function getFileIcon(file: Dirent): any { } export default function File(props: Props) { - const [icon, setIcon] = React.useState(''); - const [name, setName] = React.useState(props.file.name); + const [icon] = React.useState(''); + const [name] = React.useState(props.file.name); React.useEffect(() => { async function processFile() { @@ -39,13 +39,13 @@ export default function File(props: Props) { } processFile(); - }, []); + }); return (
props.onClick(props.file)}> {icon === '' && getFileIcon(props.file)} - {icon !== '' && } + {icon !== '' && {name.toString()}}
{name}
diff --git a/src/js/apps/Explorer/components/FileHeader/FileHeader.scss b/src/js/apps/Explorer/components/FileHeader/FileHeader.module.scss similarity index 100% rename from src/js/apps/Explorer/components/FileHeader/FileHeader.scss rename to src/js/apps/Explorer/components/FileHeader/FileHeader.module.scss diff --git a/src/js/apps/Explorer/components/FileHeader/FileHeader.tsx b/src/js/apps/Explorer/components/FileHeader/FileHeader.tsx index ca47c84..b95d0b3 100644 --- a/src/js/apps/Explorer/components/FileHeader/FileHeader.tsx +++ b/src/js/apps/Explorer/components/FileHeader/FileHeader.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import AppBar from '@material-ui/core/AppBar'; import Typography from '@material-ui/core/Typography'; import Toolbar from '@material-ui/core/Toolbar'; -const styles = require('./FileHeader.scss'); +const styles = require('./FileHeader.module.scss'); export default function FileHeader() { return ( diff --git a/src/js/apps/Explorer/components/Folder/Folder.scss b/src/js/apps/Explorer/components/Folder/Folder.module.scss similarity index 100% rename from src/js/apps/Explorer/components/Folder/Folder.scss rename to src/js/apps/Explorer/components/Folder/Folder.module.scss diff --git a/src/js/apps/Explorer/components/Folder/Folder.tsx b/src/js/apps/Explorer/components/Folder/Folder.tsx index 7e492f1..d53c787 100644 --- a/src/js/apps/Explorer/components/Folder/Folder.tsx +++ b/src/js/apps/Explorer/components/Folder/Folder.tsx @@ -4,14 +4,14 @@ import FolderIcon from '@material-ui/icons/Folder'; import getFileExtension from '../../../../services/micro/getFileExtension'; import { getWappInformation } from '../../../../services/WappService'; -const styles = require('./Folder.scss'); +const styles = require('./Folder.module.scss'); const WAPP_EXTENSION = 'wapp'; interface Props { folder: Dirent; path: string; - onClick?: (folder: Dirent) => void; + onClick: (folder: Dirent) => void; } export default function Folder(props: Props) { @@ -43,13 +43,13 @@ export default function Folder(props: Props) { } processFile(); - }, []); + }); return (
props.onClick(props.folder)}> {icon === '' && } - {icon !== '' && } + {icon !== '' && Folder}
{name}
diff --git a/src/js/apps/Explorer/index.tsx b/src/js/apps/Explorer/index.tsx index e81eacd..7638b9f 100644 --- a/src/js/apps/Explorer/index.tsx +++ b/src/js/apps/Explorer/index.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import * as Loadable from 'react-loadable'; +import Loadable from 'react-loadable'; function Loading() { return ( diff --git a/src/js/apps/Store/index.tsx b/src/js/apps/Store/index.tsx index a69de36..eb3ff38 100644 --- a/src/js/apps/Store/index.tsx +++ b/src/js/apps/Store/index.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import * as Loadable from 'react-loadable'; +import Loadable from 'react-loadable'; function Loading() { return ( diff --git a/src/js/background/BackgroundTerminal.ts b/src/js/background/BackgroundTerminal.ts index 33e91d4..c987499 100644 --- a/src/js/background/BackgroundTerminal.ts +++ b/src/js/background/BackgroundTerminal.ts @@ -1,6 +1,6 @@ // @ts-ignore import WasmTerminal from '@wasmer/wasm-terminal/lib/unoptimized/wasm-terminal.esm'; -import Kernel from '@playos/kernel'; +import Kernel from '../../vendor/kernel'; import TerminalService from '../services/TerminalService'; class BackgroundTerminal { diff --git a/src/js/components/atoms/BulletNavigation/BulletNavigation.scss b/src/js/components/atoms/BulletNavigation/BulletNavigation.module.scss similarity index 100% rename from src/js/components/atoms/BulletNavigation/BulletNavigation.scss rename to src/js/components/atoms/BulletNavigation/BulletNavigation.module.scss diff --git a/src/js/components/atoms/BulletNavigation/BulletNavigation.tsx b/src/js/components/atoms/BulletNavigation/BulletNavigation.tsx index 2db51d2..7272c56 100644 --- a/src/js/components/atoms/BulletNavigation/BulletNavigation.tsx +++ b/src/js/components/atoms/BulletNavigation/BulletNavigation.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import classnames from 'classnames'; -const styles = require('./BulletNavigation.scss'); +const styles = require('./BulletNavigation.module.scss'); interface Props { amount: number; diff --git a/src/js/components/atoms/Time/Time.jsx b/src/js/components/atoms/Time/Time.jsx index 0dfd9ad..7ec3a1f 100644 --- a/src/js/components/atoms/Time/Time.jsx +++ b/src/js/components/atoms/Time/Time.jsx @@ -1,6 +1,6 @@ import React from 'react'; -const styles = require('./Time.scss'); +const styles = require('./Time.module.scss'); class Time extends React.Component { constructor(props) { diff --git a/src/js/components/atoms/Time/Time.scss b/src/js/components/atoms/Time/Time.module.scss similarity index 100% rename from src/js/components/atoms/Time/Time.scss rename to src/js/components/atoms/Time/Time.module.scss diff --git a/src/js/components/molecules/App/App.jsx b/src/js/components/molecules/App/App.jsx index fd68445..b50b9d9 100644 --- a/src/js/components/molecules/App/App.jsx +++ b/src/js/components/molecules/App/App.jsx @@ -11,7 +11,7 @@ import AppService from '../../../services/AppService'; import { openApp } from '../../../store/AppProcessesStore'; import Grid from '@material-ui/core/Grid'; -const styles = require('./App.scss'); +const styles = require('./App.module.scss'); const popoverStyle = { textAlign: 'center', diff --git a/src/js/components/molecules/App/App.scss b/src/js/components/molecules/App/App.module.scss similarity index 100% rename from src/js/components/molecules/App/App.scss rename to src/js/components/molecules/App/App.module.scss diff --git a/src/js/components/molecules/AppGrid/AppGrid.scss b/src/js/components/molecules/AppGrid/AppGrid.module.scss similarity index 100% rename from src/js/components/molecules/AppGrid/AppGrid.scss rename to src/js/components/molecules/AppGrid/AppGrid.module.scss diff --git a/src/js/components/molecules/AppGrid/AppGrid.tsx b/src/js/components/molecules/AppGrid/AppGrid.tsx index 8e2b556..c2bf68b 100644 --- a/src/js/components/molecules/AppGrid/AppGrid.tsx +++ b/src/js/components/molecules/AppGrid/AppGrid.tsx @@ -1,8 +1,7 @@ import * as React from 'react'; -import Grid from '@material-ui/core/Grid'; import { AppGrid } from '../../../services/micro/sortAppsInGrids'; import App from '../new/App'; -const styles = require('./AppGrid.scss'); +const styles = require('./AppGrid.module.scss'); interface Props { grid: AppGrid; diff --git a/src/js/components/molecules/AppHeader/AppHeader.scss b/src/js/components/molecules/AppHeader/AppHeader.module.scss similarity index 100% rename from src/js/components/molecules/AppHeader/AppHeader.scss rename to src/js/components/molecules/AppHeader/AppHeader.module.scss diff --git a/src/js/components/molecules/AppHeader/AppHeader.tsx b/src/js/components/molecules/AppHeader/AppHeader.tsx index c2d326a..5e77d94 100644 --- a/src/js/components/molecules/AppHeader/AppHeader.tsx +++ b/src/js/components/molecules/AppHeader/AppHeader.tsx @@ -1,12 +1,10 @@ import * as React from 'react'; -import IconButton from '@material-ui/core/IconButton'; -import MenuIcon from '@material-ui/icons/Menu'; import AppBar from '@material-ui/core/AppBar'; import Toolbar from '@material-ui/core/Toolbar'; import Typography from '@material-ui/core/Typography'; import Drawer from '@material-ui/core/Drawer'; import Hidden from '@material-ui/core/Hidden'; -const styles = require('./AppHeader.scss'); +const styles = require('./AppHeader.module.scss'); interface Props { title: string; diff --git a/src/js/components/molecules/Dropzone/Dropzone.tsx b/src/js/components/molecules/Dropzone/Dropzone.tsx index 3c621ca..373f3b7 100644 --- a/src/js/components/molecules/Dropzone/Dropzone.tsx +++ b/src/js/components/molecules/Dropzone/Dropzone.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import Kernel from '@playos/kernel'; +import Kernel from '../../../../vendor/kernel'; import { useDropzone } from 'react-dropzone'; import InstanceBag from '../../../InstanceBag'; import { readFileAsArrayBuffer } from '../../../services/FileReaderService'; @@ -19,7 +19,7 @@ export default function Dropzone(props: Props) { const processedFiles = await Promise.all(promises); processedFiles.forEach((file) => { - const path = `${props.currentPath}/${file.name}`; + const path = `${currentPath}/${file.name}`; // Filter out trailing slashes const newPath = path.split('/').filter((p) => p).join('/'); @@ -27,7 +27,7 @@ export default function Dropzone(props: Props) { }); }, [currentPath]); - const { getInputProps, getRootProps, isDragActive } = useDropzone({ onDrop, noClick: true }); + const { getInputProps, getRootProps } = useDropzone({ onDrop, noClick: true }); return (
diff --git a/src/js/components/molecules/Header/Header.scss b/src/js/components/molecules/Header/Header.module.scss similarity index 100% rename from src/js/components/molecules/Header/Header.scss rename to src/js/components/molecules/Header/Header.module.scss diff --git a/src/js/components/molecules/Header/Header.tsx b/src/js/components/molecules/Header/Header.tsx index 2ed9980..c48c434 100644 --- a/src/js/components/molecules/Header/Header.tsx +++ b/src/js/components/molecules/Header/Header.tsx @@ -1,12 +1,10 @@ import * as React from 'react'; import { connect } from 'react-redux'; -import HomeButton from '../HomeButton'; -import BackButton from '../BackButton'; import Profile from '../Profile'; import Application from '../../../models/Application'; import Time from '../../atoms/Time'; import SideNavigation from '../SideNavigation'; -const styles = require('./Header.scss'); +const styles = require('./Header.module.scss'); interface Props { wallpaperMode?: boolean, diff --git a/src/js/components/molecules/HomeButton/HomeButton.jsx b/src/js/components/molecules/HomeButton/HomeButton.jsx index 1c70a32..31b1885 100644 --- a/src/js/components/molecules/HomeButton/HomeButton.jsx +++ b/src/js/components/molecules/HomeButton/HomeButton.jsx @@ -5,7 +5,7 @@ import { connect } from 'react-redux'; // import { white } from 'material-ui/styles/colors'; import { closeApp } from '../../../store/AppProcessesStore'; import InstanceBag from '../../../InstanceBag'; -const styles = require('./HomeButton.scss'); +const styles = require('./HomeButton.module.scss'); class HomeButton extends React.Component { constructor(props) { diff --git a/src/js/components/molecules/HomeButton/HomeButton.scss b/src/js/components/molecules/HomeButton/HomeButton.module.scss similarity index 100% rename from src/js/components/molecules/HomeButton/HomeButton.scss rename to src/js/components/molecules/HomeButton/HomeButton.module.scss diff --git a/src/js/components/molecules/Profile/CloseAppButton.jsx b/src/js/components/molecules/Profile/CloseAppButton.jsx index 8b5faa4..e5f640c 100644 --- a/src/js/components/molecules/Profile/CloseAppButton.jsx +++ b/src/js/components/molecules/Profile/CloseAppButton.jsx @@ -1,7 +1,7 @@ import React from 'react'; import { connect } from 'react-redux'; import CloseIcon from 'material-ui/svg-icons/navigation/close'; -import styles from './CloseAppButton.styles.scss'; +import styles from './CloseAppButton.module.scss'; import classnames from 'classnames'; import { closeApp } from '../../../store/AppProcessesStore'; diff --git a/src/js/components/molecules/Profile/CloseAppButton.styles.scss b/src/js/components/molecules/Profile/CloseAppButton.module.scss similarity index 100% rename from src/js/components/molecules/Profile/CloseAppButton.styles.scss rename to src/js/components/molecules/Profile/CloseAppButton.module.scss diff --git a/src/js/components/molecules/Profile/MultiTaskButton.scss b/src/js/components/molecules/Profile/MultiTaskButton.scss deleted file mode 100644 index 221c0c5..0000000 --- a/src/js/components/molecules/Profile/MultiTaskButton.scss +++ /dev/null @@ -1,18 +0,0 @@ -@import '../../../../scss/variables'; - -:local .buttonWrapper { - background-color: transparent; - width: $header-height; - height: $header-height; - justify-content: center; - align-items: center; - display: flex; - cursor: pointer; - border: none; - outline: none; - - &.inactive { - visibility: hidden; - opacity: 0; - } -} diff --git a/src/js/components/molecules/Profile/MultiTaskButton.tsx b/src/js/components/molecules/Profile/MultiTaskButton.tsx deleted file mode 100644 index d5556bd..0000000 --- a/src/js/components/molecules/Profile/MultiTaskButton.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import * as React from 'react'; -import { connect } from 'react-redux'; -// import ViewCarouselIcon from 'material-ui/svg-icons/action/view-carousel'; -import * as classnames from 'classnames'; -import { setMultitaskOpen, MultitaskStoreState } from '../../../store/MultitaskStore'; -import getIdealTextColor from '../../../services/micro/getIdealTextColor'; - -const ViewCarouselIcon = require('material-ui/svg-icons/action/view-carousel').default; -const styles = require('./MultiTaskButton.scss'); - -interface Props { - className?: string, - appCanvasStore?: { - currentlyOpenSettings: { - theme_color?: string, - }, - currentlyOpen: { - id?: string, - } - }, - - dispatch?: Function, - multitaskStore?: MultitaskStoreState, -} - - -const mapStateToProps = (state: any) => ({ - appCanvasStore: state.AppCanvasStore, - multitaskStore: state.MultitaskStore, -}); - -// @ts-ignore -@connect(mapStateToProps) -class MultiTaskButton extends React.Component { - constructor(props: Props) { - super(props); - - this.handleButtonClick = this.handleButtonClick.bind(this); - } - - handleButtonClick() { - // Toggles between being open and closed - const open:boolean = !this.props.multitaskStore.isOpen; - - this.props.dispatch(setMultitaskOpen(open)); - } - - render() : JSX.Element { - const buttonClasses = classnames(this.props.className, styles.buttonWrapper); - - // TODO: Make sure all classes are applyed (Also mobile) - // See Profile.jsx - const themeColor = this.props.appCanvasStore.currentlyOpenSettings.theme_color; - let textColor:string = '#ffffff'; - - if (themeColor) { - textColor = getIdealTextColor(themeColor); - } - - return ( - - ); - } -} - -export default MultiTaskButton; diff --git a/src/js/components/molecules/Profile/Profile.scss b/src/js/components/molecules/Profile/Profile.module.scss similarity index 100% rename from src/js/components/molecules/Profile/Profile.scss rename to src/js/components/molecules/Profile/Profile.module.scss diff --git a/src/js/components/molecules/Profile/Profile.tsx b/src/js/components/molecules/Profile/Profile.tsx index f76c86a..85e92b8 100644 --- a/src/js/components/molecules/Profile/Profile.tsx +++ b/src/js/components/molecules/Profile/Profile.tsx @@ -6,12 +6,10 @@ import NavigationMenuIcon from 'material-ui/svg-icons/navigation/menu'; // @ts-ignore import ArrowLeftIcon from 'material-ui/svg-icons/hardware/keyboard-arrow-left'; import ProfilePicture from '../SideNavigation/ProfilePicture'; -import CloseAppButton from './CloseAppButton'; -import MultiTaskButton from './MultiTaskButton'; import { setOpenSideBarNavigationState } from '../../../store/SideBarNavigationStore'; import { UserInfo } from '../../../store/UserInfoStore'; import { OpenProcess } from '../../../store/AppProcessesStore'; -const styles = require('./Profile.scss'); +const styles = require('./Profile.module.scss'); const black = '#ffffff'; @@ -36,15 +34,12 @@ function Profile(props: Props) { return (
- {/* */} { !isAppOpen && } {/* { isAppOpen && } */}
{props.user.info.fullName} - {/* */} - {/* */}
diff --git a/src/js/components/molecules/SideNavigation/AboutDialog.scss b/src/js/components/molecules/SideNavigation/AboutDialog.module.scss similarity index 100% rename from src/js/components/molecules/SideNavigation/AboutDialog.scss rename to src/js/components/molecules/SideNavigation/AboutDialog.module.scss diff --git a/src/js/components/molecules/SideNavigation/AboutDialog.tsx b/src/js/components/molecules/SideNavigation/AboutDialog.tsx index 4352b52..7597cef 100644 --- a/src/js/components/molecules/SideNavigation/AboutDialog.tsx +++ b/src/js/components/molecules/SideNavigation/AboutDialog.tsx @@ -7,7 +7,7 @@ import DialogContentText from '@material-ui/core/DialogContentText'; import DialogActions from '@material-ui/core/DialogActions'; import Typography from '@material-ui/core/Typography'; const packageJson = require('../../../../../package.json'); -const styles = require('./AboutDialog.scss'); +const styles = require('./AboutDialog.module.scss'); interface Props { open: boolean; diff --git a/src/js/components/molecules/SideNavigation/AppInstallDialog.tsx b/src/js/components/molecules/SideNavigation/AppInstallDialog.tsx deleted file mode 100644 index b84beff..0000000 --- a/src/js/components/molecules/SideNavigation/AppInstallDialog.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import * as React from 'react'; -import { connect } from 'react-redux'; -import Button from '@material-ui/core/Button'; -import Dialog from '@material-ui/core/Dialog'; -import DialogTitle from '@material-ui/core/DialogTitle'; -import DialogContent from '@material-ui/core/DialogContent'; -import DialogContentText from '@material-ui/core/DialogContentText'; -import DialogActions from '@material-ui/core/DialogActions'; -import TextField from '@material-ui/core/TextField'; -import useMedia from '../../../services/hooks/useMedia'; -import { addApplication } from '../../../services/ApplicationService'; -import { addSingleApplication } from '../../../store/ApplicationStore'; - -interface Props { - open: boolean; - onClose: () => void; - dispatch: Function; -} - -function AppInstallDialog(props: Props) { - const [manifestTextFieldValue, setManifestTextFieldValue] = React.useState(''); - const isDesktop = useMedia('(min-width: 960px)'); - - async function handleAppInstallClick() { - const app = await addApplication(manifestTextFieldValue); - props.dispatch(addSingleApplication(app)); - } - - function handleClose() { - setManifestTextFieldValue(''); - props.onClose(); - } - - return ( - - Install app via Manifest - - - You can install Progressive Web Apps via the manifest.json. Please fill in the location of the manifest. - - setManifestTextFieldValue(event.target.value)} - /> - - - - - - - ); -} - -// @ts-ignore -export default connect()(AppInstallDialog); diff --git a/src/js/components/molecules/SideNavigation/ProfilePicture.jsx b/src/js/components/molecules/SideNavigation/ProfilePicture.jsx index 479e07e..8ffc0a1 100644 --- a/src/js/components/molecules/SideNavigation/ProfilePicture.jsx +++ b/src/js/components/molecules/SideNavigation/ProfilePicture.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import styles from './ProfilePicture.scss'; +import styles from './ProfilePicture.module.scss'; function getImage(props) { return ; diff --git a/src/js/components/molecules/SideNavigation/ProfilePicture.scss b/src/js/components/molecules/SideNavigation/ProfilePicture.module.scss similarity index 100% rename from src/js/components/molecules/SideNavigation/ProfilePicture.scss rename to src/js/components/molecules/SideNavigation/ProfilePicture.module.scss diff --git a/src/js/components/molecules/SideNavigation/SideNavigation.scss b/src/js/components/molecules/SideNavigation/SideNavigation.module.scss similarity index 100% rename from src/js/components/molecules/SideNavigation/SideNavigation.scss rename to src/js/components/molecules/SideNavigation/SideNavigation.module.scss diff --git a/src/js/components/molecules/SideNavigation/SideNavigation.old.jsx b/src/js/components/molecules/SideNavigation/SideNavigation.old.jsx index 90da3e2..3e0d49c 100644 --- a/src/js/components/molecules/SideNavigation/SideNavigation.old.jsx +++ b/src/js/components/molecules/SideNavigation/SideNavigation.old.jsx @@ -14,6 +14,7 @@ import darkBaseTheme from 'material-ui/styles/baseThemes/darkBaseTheme'; import styles from './SideNavigation.scss'; import ProfilePic from './ProfilePicture.jsx'; import UserService from '../../../services/UserService'; +import AuthService from '../../../services/AuthService'; import { setOpenSideBarNavigationState } from '../../../store/SideBarNavigationStore'; import { openApp } from '../../../store/AppProcessesStore'; @@ -39,7 +40,7 @@ class SideNavigation extends React.Component { } async handleLogoutClick() { - await UserService.logout(); + await AuthService.logout(); window.location.reload(); } diff --git a/src/js/components/molecules/SideNavigation/SideNavigation.tsx b/src/js/components/molecules/SideNavigation/SideNavigation.tsx index 6351569..7492f4d 100644 --- a/src/js/components/molecules/SideNavigation/SideNavigation.tsx +++ b/src/js/components/molecules/SideNavigation/SideNavigation.tsx @@ -6,13 +6,11 @@ import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import PowerSettingsNewIcon from '@material-ui/icons/PowerSettingsNew'; -import GetAppIcon from '@material-ui/icons/GetApp'; import InfoIcon from '@material-ui/icons/Info'; import { setOpenSideBarNavigationState } from '../../../store/SideBarNavigationStore'; -import UserService from '../../../services/UserService'; -import AppInstallDialog from './AppInstallDialog'; +import AuthService from '../../../services/AuthService'; import AboutDialog from './AboutDialog'; -const styles = require('./SideNavigation.scss'); +const styles = require('./SideNavigation.module.scss'); interface Props { isOpen: boolean; @@ -20,7 +18,6 @@ interface Props { } function SideNavigation(props: Props) { - const [isAppInstallDialogOpen, setAppInstallDialogOpen] = React.useState(false); const [isAboutDialogOpen, setAboutDialogOpen] = React.useState(false); function handleDrawerOnClose() { @@ -28,19 +25,10 @@ function SideNavigation(props: Props) { } async function handleLogoutClick() { - await UserService.logout(); + await AuthService.logout(); window.location.reload(); } - async function handleInstallAppClick() { - handleDrawerOnClose(); - setAppInstallDialogOpen(true); - } - - async function handleInstallAppDialogClose() { - setAppInstallDialogOpen(false); - } - function handleAboutClick() { handleDrawerOnClose(); setAboutDialogOpen(true); @@ -50,12 +38,6 @@ function SideNavigation(props: Props) { <> - - - - - Install App - @@ -70,7 +52,6 @@ function SideNavigation(props: Props) { - setAboutDialogOpen(false)} /> ); diff --git a/src/js/components/molecules/Wallet/Wallet.scss b/src/js/components/molecules/Wallet/Wallet.module.scss similarity index 100% rename from src/js/components/molecules/Wallet/Wallet.scss rename to src/js/components/molecules/Wallet/Wallet.module.scss diff --git a/src/js/components/molecules/Wallet/Wallet.tsx b/src/js/components/molecules/Wallet/Wallet.tsx index d4c72c5..f6c0053 100644 --- a/src/js/components/molecules/Wallet/Wallet.tsx +++ b/src/js/components/molecules/Wallet/Wallet.tsx @@ -10,7 +10,7 @@ import Paper from '@material-ui/core/Paper'; import Typography from '@material-ui/core/Typography'; import { connect } from 'react-redux'; import { UserInfo } from '../../../store/UserInfoStore'; -const styles = require('./Wallet.scss'); +const styles = require('./Wallet.module.scss'); interface Props { diff --git a/src/js/components/molecules/new/App/App.scss b/src/js/components/molecules/new/App/App.module.scss similarity index 100% rename from src/js/components/molecules/new/App/App.scss rename to src/js/components/molecules/new/App/App.module.scss diff --git a/src/js/components/molecules/new/App/App.tsx b/src/js/components/molecules/new/App/App.tsx index 783226f..4a92f55 100644 --- a/src/js/components/molecules/new/App/App.tsx +++ b/src/js/components/molecules/new/App/App.tsx @@ -1,13 +1,10 @@ import * as React from 'react'; import { connect } from 'react-redux'; import Typography from '@material-ui/core/Typography'; -import Application from '../../../../models/Application'; -import { openApp } from '../../../../store/AppProcessesStore'; -import resolveUrl from '../../../../services/micro/resolveUrl'; import InstanceBag from '../../../../InstanceBag'; import BackgroundTerminal from '../../../../background/BackgroundTerminal'; -import { ParsedApplicationInfo } from '@playos/kernel'; -const styles = require('./App.scss'); +import { ParsedApplicationInfo } from '../../../../../vendor/kernel/core/WasmParser'; +const styles = require('./App.module.scss'); interface Props { app: ParsedApplicationInfo; @@ -26,7 +23,7 @@ function App(props: Props) { return ( ); diff --git a/src/js/components/organims/AppProcessesHolder/AppCanvasHolder.scss b/src/js/components/organims/AppProcessesHolder/AppCanvasHolder.module.scss similarity index 100% rename from src/js/components/organims/AppProcessesHolder/AppCanvasHolder.scss rename to src/js/components/organims/AppProcessesHolder/AppCanvasHolder.module.scss diff --git a/src/js/components/organims/AppProcessesHolder/AppCanvasHolder.tsx b/src/js/components/organims/AppProcessesHolder/AppCanvasHolder.tsx index b80a111..d38e6cf 100644 --- a/src/js/components/organims/AppProcessesHolder/AppCanvasHolder.tsx +++ b/src/js/components/organims/AppProcessesHolder/AppCanvasHolder.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { connect } from 'react-redux' import { AppProcessesState } from '../../../store/AppProcessesStore'; import AppProcess from '../AppProcess/AppProcess'; -const styles = require('./AppCanvasHolder.scss'); +const styles = require('./AppCanvasHolder.module.scss'); interface Props { appProcessesState: AppProcessesState; diff --git a/src/js/components/organims/AppSection/AppSection.styles.scss b/src/js/components/organims/AppSection/AppSection.module.scss similarity index 100% rename from src/js/components/organims/AppSection/AppSection.styles.scss rename to src/js/components/organims/AppSection/AppSection.module.scss diff --git a/src/js/components/organims/AppSection/AppSection.tsx b/src/js/components/organims/AppSection/AppSection.tsx index 4370afe..f814d71 100644 --- a/src/js/components/organims/AppSection/AppSection.tsx +++ b/src/js/components/organims/AppSection/AppSection.tsx @@ -3,13 +3,13 @@ import { connect } from 'react-redux'; import SwipeableViewsRaw from 'react-swipeable-views'; // @ts-ignore import { bindKeyboard } from 'react-swipeable-views-utils'; -import { ParsedApplicationInfo } from '@playos/kernel'; +import { ParsedApplicationInfo } from '../../../../vendor/kernel/core/WasmParser'; import sortAppsInGrids from '../../../services/micro/sortAppsInGrids'; import AppGrid from '../../molecules/AppGrid'; import useMedia from '../../../services/hooks/useMedia'; import BulletNavigation from '../../atoms/BulletNavigation'; // import Folder from '../Folder'; -const styles = require('./AppSection.styles.scss'); +const styles = require('./AppSection.module.scss'); const SwipeableViews = bindKeyboard(SwipeableViewsRaw); diff --git a/src/js/components/organims/AppTerminal/AppTerminal.scss b/src/js/components/organims/AppTerminal/AppTerminal.module.scss similarity index 100% rename from src/js/components/organims/AppTerminal/AppTerminal.scss rename to src/js/components/organims/AppTerminal/AppTerminal.module.scss diff --git a/src/js/components/organims/AppTerminal/AppTerminal.tsx b/src/js/components/organims/AppTerminal/AppTerminal.tsx index 0db9f1e..32940cd 100644 --- a/src/js/components/organims/AppTerminal/AppTerminal.tsx +++ b/src/js/components/organims/AppTerminal/AppTerminal.tsx @@ -4,9 +4,9 @@ import WasmTerminal from "@wasmer/wasm-terminal/lib/unoptimized/wasm-terminal.es // import '@wasmer/wasm-terminal/dist/xterm/xterm.css'; import TerminalService from '../../../services/TerminalService'; import InstanceBag from '../../../InstanceBag'; -import Kernel from '@playos/kernel'; +import Kernel from '../../../../vendor/kernel'; -const styles = require('./AppTerminal.scss'); +const styles = require('./AppTerminal.module.scss'); interface Props { diff --git a/src/js/components/organims/AppWindow/AppTitleBar.scss b/src/js/components/organims/AppWindow/AppTitleBar.module.scss similarity index 100% rename from src/js/components/organims/AppWindow/AppTitleBar.scss rename to src/js/components/organims/AppWindow/AppTitleBar.module.scss diff --git a/src/js/components/organims/AppWindow/AppTitleBar.tsx b/src/js/components/organims/AppWindow/AppTitleBar.tsx index d0aa968..cb2cf58 100644 --- a/src/js/components/organims/AppWindow/AppTitleBar.tsx +++ b/src/js/components/organims/AppWindow/AppTitleBar.tsx @@ -1,13 +1,12 @@ import * as React from 'react'; import IconButton from '@material-ui/core/IconButton'; import CloseIcon from '@material-ui/icons/Close'; -import ArrowBackIcon from '@material-ui/icons/ArrowBack'; import { connect } from 'react-redux'; -import { Process, killProcess, closeApp } from '../../../store/AppProcessesStore'; +import { Process, killProcess } from '../../../store/AppProcessesStore'; import getIdealTextColor from '../../../services/micro/getIdealTextColor'; import useMedia from '../../../services/hooks/useMedia'; import Time from '../../atoms/Time'; -const styles = require('./AppTitleBar.scss'); +const styles = require('./AppTitleBar.module.scss'); interface Props { process: Process; diff --git a/src/js/components/organims/AppWindow/AppWindow.scss b/src/js/components/organims/AppWindow/AppWindow.module.scss similarity index 100% rename from src/js/components/organims/AppWindow/AppWindow.scss rename to src/js/components/organims/AppWindow/AppWindow.module.scss diff --git a/src/js/components/organims/AppWindow/AppWindow.tsx b/src/js/components/organims/AppWindow/AppWindow.tsx index c44fed7..1f586b0 100644 --- a/src/js/components/organims/AppWindow/AppWindow.tsx +++ b/src/js/components/organims/AppWindow/AppWindow.tsx @@ -8,8 +8,8 @@ import AppTitleBar from './AppTitleBar'; import resolveUrl from '../../../services/micro/resolveUrl'; import AppTerminal from '../AppTerminal'; import Explorer from '../../../apps/Explorer'; -const styles = require('./AppWindow.scss'); -const titleBarStyles = require('./AppTitleBar.scss'); +const styles = require('./AppWindow.module.scss'); +const titleBarStyles = require('./AppTitleBar.module.scss'); interface Props { process: Process; @@ -19,7 +19,7 @@ interface Props { function AppWindow(props: Props) { const { process } = props; - const [snapState, setSnapState] = React.useState({ + const [snapState] = React.useState({ half: false, full: false, }); @@ -28,26 +28,26 @@ function AppWindow(props: Props) { const [windowZIndex, setWindowZIndex] = React.useState(0); const [isDragging, setIsDragging] = React.useState(false); - function handleOnDrag(event: MouseEvent, data: any) { - // We are dragging the window so we have to make sure we are almost touching the edges - // First check the right side if we are touching the bounds - if (event.clientX > window.outerWidth) { - setSnapState({ - full: false, - half: true, - }); - } else if (event.clientX < 0) { - setSnapState({ - full: false, - half: true, - }); - } else if (event.clientY < 0) { - setSnapState({ - full: true, - half: false, - }); - } - } + // function handleOnDrag(event: MouseEvent, data: any) { + // // We are dragging the window so we have to make sure we are almost touching the edges + // // First check the right side if we are touching the bounds + // if (event.clientX > window.outerWidth) { + // setSnapState({ + // full: false, + // half: true, + // }); + // } else if (event.clientX < 0) { + // setSnapState({ + // full: false, + // half: true, + // }); + // } else if (event.clientY < 0) { + // setSnapState({ + // full: true, + // half: false, + // }); + // } + // } function handleDragStart() { handleWindowClick(); @@ -117,19 +117,24 @@ function AppWindow(props: Props) { } - {process.app.playos.isWasm && process.app.playos.showTerminal && + {process.app.playos && <> - + {process.app.playos.isWasm && process.app.playos.showTerminal && + <> + + + } + + {!process.app.playos.isWasm && + <> + + + } } - {!process.app.playos.isWasm && - <> - - - }
diff --git a/src/js/components/organims/DashboardTabs/DashboardTabs.scss b/src/js/components/organims/DashboardTabs/DashboardTabs.module.scss similarity index 100% rename from src/js/components/organims/DashboardTabs/DashboardTabs.scss rename to src/js/components/organims/DashboardTabs/DashboardTabs.module.scss diff --git a/src/js/components/organims/DashboardTabs/DashboardTabs.tsx b/src/js/components/organims/DashboardTabs/DashboardTabs.tsx index 24aca3d..fc0b4cb 100644 --- a/src/js/components/organims/DashboardTabs/DashboardTabs.tsx +++ b/src/js/components/organims/DashboardTabs/DashboardTabs.tsx @@ -3,7 +3,7 @@ import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; import AppSection from '../AppSection'; import Wallet from '../../molecules/Wallet'; -const styles = require('./DashboardTabs.scss'); +const styles = require('./DashboardTabs.module.scss'); interface Props { diff --git a/src/js/components/organims/DashboardTabs/index.ts b/src/js/components/organims/DashboardTabs/index.ts index e69de29..2ba1b0c 100644 --- a/src/js/components/organims/DashboardTabs/index.ts +++ b/src/js/components/organims/DashboardTabs/index.ts @@ -0,0 +1 @@ +export { default } from './DashboardTabs'; diff --git a/src/js/layout/DefaultLayout.jsx b/src/js/layout/DefaultLayout.jsx index 2e71941..b29f055 100644 --- a/src/js/layout/DefaultLayout.jsx +++ b/src/js/layout/DefaultLayout.jsx @@ -1,11 +1,9 @@ import React from 'react'; import { connect } from 'react-redux'; import { Route } from 'react-router'; -import PropTypes from 'prop-types'; import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; import Paper from 'material-ui/Paper'; -import SnackBarMessage from '../components/SnackBarMessage'; -import styles from './DefaultLayout.scss'; +import styles from './DefaultLayout.module.scss'; import classnames from 'classnames'; import logo from '../../img/PlayOSLogoSide_black.svg'; import ChoosePage from '../pages/ChoosePage'; diff --git a/src/js/layout/DefaultLayout.scss b/src/js/layout/DefaultLayout.module.scss similarity index 100% rename from src/js/layout/DefaultLayout.scss rename to src/js/layout/DefaultLayout.module.scss diff --git a/src/js/pages/ChoosePage/ChoosePage.scss b/src/js/pages/ChoosePage/ChoosePage.module.scss similarity index 100% rename from src/js/pages/ChoosePage/ChoosePage.scss rename to src/js/pages/ChoosePage/ChoosePage.module.scss diff --git a/src/js/pages/ChoosePage/ChoosePage.tsx b/src/js/pages/ChoosePage/ChoosePage.tsx index 68dc3f5..66eff1d 100644 --- a/src/js/pages/ChoosePage/ChoosePage.tsx +++ b/src/js/pages/ChoosePage/ChoosePage.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import Button from '@material-ui/core/Button'; -const styles = require('./ChoosePage.scss'); +const styles = require('./ChoosePage.module.scss'); function ChoosePage() { return ( diff --git a/src/js/pages/HomePage/HomePage.scss b/src/js/pages/HomePage/HomePage.module.scss similarity index 100% rename from src/js/pages/HomePage/HomePage.scss rename to src/js/pages/HomePage/HomePage.module.scss diff --git a/src/js/pages/HomePage/HomePage.tsx b/src/js/pages/HomePage/HomePage.tsx index 1614b8a..6b4248e 100644 --- a/src/js/pages/HomePage/HomePage.tsx +++ b/src/js/pages/HomePage/HomePage.tsx @@ -7,11 +7,8 @@ import Header from '../../components/molecules/Header'; import AppSection from '../../components/organims/AppSection'; import { loadApps } from '../../store/ApplicationStore'; import AppProcessesHolder from '../../components/organims/AppProcessesHolder'; -import Kernel, { RutileProvider, BrowserProvider } from '@playos/kernel'; -import InstanceBag from '../../InstanceBag'; -import Configuration from '../../Configuration'; import bootSystem from '../../services/bootSystem'; -const styles = require('./HomePage.scss'); +import redirect from '../../services/redirect'; interface Props { user: UserInfo; @@ -29,6 +26,12 @@ class HomePage extends React.Component { async componentDidMount() { const keys = KeyService.keysFromStorage(); + + if (!keys) { + redirect('/os/choose'); + return; + } + await bootSystem(keys); if (!this.props.user.info.fullName && keys) { diff --git a/src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.scss b/src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.module.scss similarity index 100% rename from src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.scss rename to src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.module.scss diff --git a/src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.tsx b/src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.tsx index 44b5a1e..779c5f1 100644 --- a/src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.tsx +++ b/src/js/pages/HomePage/LoginLoadingScreen/LoginLoadingScreen.tsx @@ -5,7 +5,7 @@ import Typography from '@material-ui/core/Typography'; import CircularProgress from '@material-ui/core/CircularProgress'; import { connect } from 'react-redux'; import { UserInfo } from '../../../store/UserInfoStore'; -const styles = require('./LoginLoadingScreen.scss'); +const styles = require('./LoginLoadingScreen.module.scss'); interface Props { user: UserInfo, diff --git a/src/js/pages/HomePage/LoginLoadingScreen/index.tsx b/src/js/pages/HomePage/LoginLoadingScreen/index.tsx index e69de29..13ac5e6 100644 --- a/src/js/pages/HomePage/LoginLoadingScreen/index.tsx +++ b/src/js/pages/HomePage/LoginLoadingScreen/index.tsx @@ -0,0 +1 @@ +export { default } from './LoginLoadingScreen'; diff --git a/src/js/pages/LoginPage/LoginPage.jsx b/src/js/pages/LoginPage/LoginPage.jsx index a272bc8..21dce06 100644 --- a/src/js/pages/LoginPage/LoginPage.jsx +++ b/src/js/pages/LoginPage/LoginPage.jsx @@ -1,13 +1,12 @@ import React from 'react'; import { connect } from 'react-redux'; -import RaisedButton from 'material-ui/RaisedButton'; import Button from '@material-ui/core/Button'; import TextField from '@material-ui/core/TextField'; import Configuration from '../../Configuration'; import KeyService from '../../services/KeyService'; import { loadUserInfo } from '../../store/UserInfoStore'; import AuthService from '../../services/AuthService'; -const styles = require('./LoginPage.scss'); +const styles = require('./LoginPage.module.scss'); class IndexPage extends React.Component { constructor(props) { diff --git a/src/js/pages/LoginPage/LoginPage.scss b/src/js/pages/LoginPage/LoginPage.module.scss similarity index 100% rename from src/js/pages/LoginPage/LoginPage.scss rename to src/js/pages/LoginPage/LoginPage.module.scss diff --git a/src/js/pages/RegisterPage/RegisterPage.scss b/src/js/pages/RegisterPage/RegisterPage.module.scss similarity index 100% rename from src/js/pages/RegisterPage/RegisterPage.scss rename to src/js/pages/RegisterPage/RegisterPage.module.scss diff --git a/src/js/pages/RegisterPage/RegisterPage.tsx b/src/js/pages/RegisterPage/RegisterPage.tsx index 00b6ec9..00545d7 100644 --- a/src/js/pages/RegisterPage/RegisterPage.tsx +++ b/src/js/pages/RegisterPage/RegisterPage.tsx @@ -3,7 +3,7 @@ import TextField from '@material-ui/core/TextField'; import Button from '@material-ui/core/Button'; import Typography from '@material-ui/core/Typography'; import KeyService from '../../services/KeyService'; -const styles = require('./RegisterPage.scss'); +const styles = require('./RegisterPage.module.scss'); export default function RegisterPage() { const [values, setValues] = React.useState({ diff --git a/src/js/services/ApplicationService.ts b/src/js/services/ApplicationService.ts deleted file mode 100644 index 7d1b601..0000000 --- a/src/js/services/ApplicationService.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Application from "../models/Application"; -import IProvider from "./providers/IProvider"; -import Configuration from "../Configuration"; - -export async function addApplication(manifestUrl: string): Promise { - const provider: IProvider = Configuration.get('provider'); - const response = await fetch(manifestUrl); - const app: Application = await response.json(); - - app.id = Math.random().toString(); - app.manifest_url = manifestUrl; - - await provider.addApplicationToStore(app); - - return app; -} diff --git a/src/js/services/AuthService.ts b/src/js/services/AuthService.ts index d8b0cfe..15c9f5b 100644 --- a/src/js/services/AuthService.ts +++ b/src/js/services/AuthService.ts @@ -1,20 +1,41 @@ -import Configuration from "../Configuration"; -import IProvider, { PrivateKey, Account } from "./providers/IProvider"; +import { PrivateKey, Account } from "./providers/IProvider"; +import KeyService from "./KeyService"; class AuthService { static async getAccountInfo(privateKey: PrivateKey): Promise { - const provider: IProvider = Configuration.get('provider'); - return provider.getAccountInfo(''); + return { + currencyTicker: 'RUT', + balance: '0', + // balance: ethers.utils.formatEther(balance), + fullName: 'Test account', + address: privateKey.address, + profilePic: '', + wallpaper: 'https://playos.io/wp-content/uploads/2019/10/background.jpg?id=4353', + }; } static async login(): Promise { - const provider: IProvider = Configuration.get('provider'); - return provider.login(); + const keys = KeyService.keysFromStorage(); + + if (!keys) { + throw new Error('Login failed, no keys found'); + } + + return AuthService.getAccountInfo(keys); + } + + static async logout(): Promise { + KeyService.removeKeys(); } static async isLoggedIn(): Promise { - const provider: IProvider = Configuration.get('provider'); - return provider.isLoggedIn(); + const keys = KeyService.keysFromStorage(); + + if (!keys) { + return false; + } + + return true; } } diff --git a/src/js/services/FileReaderService.ts b/src/js/services/FileReaderService.ts index e4ff5d6..790bfec 100644 --- a/src/js/services/FileReaderService.ts +++ b/src/js/services/FileReaderService.ts @@ -16,7 +16,7 @@ export function readFileAsArrayBuffer(file: File): Promise { resolve({ name: file.name, size: file.size, - bin: fileReader.result, + bin: fileReader.result as ArrayBuffer, }); } diff --git a/src/js/services/KeyService.ts b/src/js/services/KeyService.ts index 98d3fff..e6b37eb 100644 --- a/src/js/services/KeyService.ts +++ b/src/js/services/KeyService.ts @@ -1,25 +1,44 @@ -import IProvider, { PrivateKey } from "./providers/IProvider"; -import Configuration from "../Configuration"; +import { Wallet } from 'ethers'; +import { PrivateKey } from './providers/IProvider'; +const PK_STORAGE_KEY = 'playos_pk'; export default class KeyService { - static createRadomPrivateKey() { - const provider: IProvider = Configuration.get('provider'); - return provider.createRandomPrivateKey(); + static createRadomPrivateKey(): PrivateKey { + const wallet = Wallet.createRandom(); + + return { + address: wallet.address, + mnemonic: wallet.mnemonic, + privateKey: wallet.privateKey, + }; } - static fromMnemonic(mnemonic: string) { - const provider: IProvider = Configuration.get('provider'); - return provider.fromMnemonic(mnemonic); + static fromMnemonic(mnemonic: string): PrivateKey { + const wallet = Wallet.fromMnemonic(mnemonic); + + return { + address: wallet.address, + mnemonic: wallet.mnemonic, + privateKey: wallet.privateKey, + }; } - static keysFromStorage() { - const provider: IProvider = Configuration.get('provider'); - return provider.keysFromStorage(); + static keysFromStorage(): PrivateKey | null { + const key = localStorage.getItem(PK_STORAGE_KEY); + + if (!key) { + return null; + } + + return JSON.parse(key); } static saveKeys(keys: PrivateKey) { - const provider: IProvider = Configuration.get('provider'); - provider.saveKeys(keys); + localStorage.setItem(PK_STORAGE_KEY, JSON.stringify(keys)); + } + + static removeKeys() { + localStorage.removeItem(PK_STORAGE_KEY); } } diff --git a/src/js/services/TerminalService.ts b/src/js/services/TerminalService.ts index ff1695b..c360792 100644 --- a/src/js/services/TerminalService.ts +++ b/src/js/services/TerminalService.ts @@ -1,8 +1,6 @@ // @ts-ignore import { fetchCommandFromWAPM } from '@wasmer/wasm-terminal/lib/unoptimized/wasm-terminal.esm'; -// @ts-ignore -import { lowerI64Imports } from '@wasmer/wasm-transformer/lib/unoptimized/wasm-transformer.esm'; -import Kernel, { FileSystem } from '@playos/kernel'; +import Kernel, { FileSystem } from '../../vendor/kernel'; import { getApplicationFromWapp } from './WappService'; import store from '../store'; import InstanceBag from '../InstanceBag'; @@ -33,7 +31,7 @@ export default class TerminalService { if (commandName.endsWith('.wapp')) { const appInfo = await getApplicationFromWapp(commandName); - if (appInfo.isWasm) { + if (appInfo && appInfo.isWasm) { return appInfo.wasm; } @@ -59,8 +57,10 @@ export default class TerminalService { args.unshift(commandName); const process = await kernel.spawnProcess(preparedBin, args, { env: { - '$PWD': '/', - 'PWD': '/', + $PWD: '/', + PWD: '/', + NODE_ENV: 'production', + PUBLIC_URL: '/', }, }); diff --git a/src/js/services/UserService.ts b/src/js/services/UserService.ts index 2cb0281..6b645bb 100644 --- a/src/js/services/UserService.ts +++ b/src/js/services/UserService.ts @@ -1,21 +1,8 @@ -import IProvider, { PrivateKey, Account } from './providers/IProvider'; -import Configuration from '../Configuration'; -import Application from '../models/Application'; import InstanceBag from '../InstanceBag'; -import Kernel, { ParsedApplicationInfo } from '@playos/kernel'; -import Dirent from 'memfs/lib/Dirent'; +import { ParsedApplicationInfo } from '../../vendor/kernel/core/WasmParser'; +import Kernel from '../../vendor/kernel'; class UserService { - static async login(): Promise { - const provider: IProvider = Configuration.get('provider'); - return provider.login(); - } - - static async logout() { - const provider: IProvider = Configuration.get('provider'); - return provider.logout(); - } - static async getInstalled(): Promise { const kernel = InstanceBag.get('kernel'); const directories: any = await kernel.fs.readDir('/Applications/', { @@ -30,9 +17,8 @@ class UserService { return await Promise.all(wappPromises); } catch (error) { console.error(error); + return []; } - - return null; } } diff --git a/src/js/services/WappService.ts b/src/js/services/WappService.ts index 36193db..4e49026 100644 --- a/src/js/services/WappService.ts +++ b/src/js/services/WappService.ts @@ -1,7 +1,7 @@ import * as path from 'path'; import InstanceBag from '../InstanceBag'; import Application from '../models/Application'; -import Kernel from '@playos/kernel'; +import Kernel from '../../vendor/kernel'; export async function getWappInformation(wappFolderPath: string) { try { @@ -9,9 +9,9 @@ export async function getWappInformation(wappFolderPath: string) { const manifestRaw = await kernel.fs.readFile(`${wappFolderPath}/manifest.json`); const manifest: Application = JSON.parse(manifestRaw.toString()); - let iconBlob: Blob = null; + let iconBlob: Blob; - if (!manifest.playos.isPwa) { + if (!manifest.playos || !manifest.playos.isPwa) { const iconPath = path.resolve(wappFolderPath, manifest.icons[0].src); const iconRaw: any = await kernel.fs.readFile(iconPath); iconBlob = new Blob([iconRaw], { type: 'image/jpeg' }); @@ -46,7 +46,7 @@ export async function getApplicationFromWapp(wappFolderPath: string) { const manifest: Application = JSON.parse(manifestRaw.toString()); let isWasm = false; - let wasm: Uint8Array = null; + let wasm: Uint8Array = new Uint8Array(); if (manifest.start_url.endsWith('.wasm')) { const wasmPath = path.resolve(wappFolderPath, manifest.start_url); diff --git a/src/js/services/bootSystem.ts b/src/js/services/bootSystem.ts index 5e0be2d..ed0e457 100644 --- a/src/js/services/bootSystem.ts +++ b/src/js/services/bootSystem.ts @@ -1,24 +1,20 @@ -import Kernel, { BrowserProvider, DesktopProvider, SyncProvider } from '@playos/kernel'; +import Kernel, { BrowserProvider, DesktopProvider, SyncProvider, bootKernel } from '../../vendor/kernel'; import { PrivateKey } from './providers/IProvider'; -import Configuration from '../Configuration'; import InstanceBag from '../InstanceBag'; import BackgroundTerminal from '../background/BackgroundTerminal'; import isNodeJs from './isNodeJs'; -export default async function bootSystem(keys: PrivateKey) { - const rutileConfig = Configuration.get('providerDetails'); - let kernel: Kernel = null; +export default async function πbootSystem(keys: PrivateKey) { + let kernel: Kernel; if (isNodeJs()) { const syncProvider = new SyncProvider(new DesktopProvider(), [new BrowserProvider()]); - kernel = new Kernel(keys.privateKey, syncProvider); + kernel = await bootKernel(keys.privateKey, syncProvider); } else { - kernel = new Kernel(keys.privateKey, new BrowserProvider()); //new RutileProvider(rutileConfig.httpHost, rutileConfig.chainId, rutileConfig.coreAddress)); + kernel = await bootKernel(keys.privateKey, new BrowserProvider()); //new RutileProvider(rutileConfig.httpHost, rutileConfig.chainId, rutileConfig.coreAddress)); } - await kernel.boot(); - if (!(await kernel.fs.exists('/etc/environment'))) { // We need to create some defaults await kernel.fs.writeFile('/etc/environment', '$PATH=/usr/sbin:/usr/bin:/sbin:/bin'); diff --git a/src/js/services/isNodeJs.ts b/src/js/services/isNodeJs.ts index 735ce23..f041b49 100644 --- a/src/js/services/isNodeJs.ts +++ b/src/js/services/isNodeJs.ts @@ -1,26 +1,7 @@ -function isElectron(): boolean { - // Renderer process - if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') { - return true; - } - - // Main process - if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) { - return true; - } - - // Detect the user agent when the `nodeIntegration` option is set to true - if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) { - return true; - } - - return false; -} - export default function isNodeJs(): boolean { if (typeof window === 'undefined' && typeof process !== 'undefined' && typeof process.release !== 'undefined' && process.release.name === 'node') { return true; } - return isElectron(); + return false; } diff --git a/src/js/services/micro/getFileExtension.ts b/src/js/services/micro/getFileExtension.ts index 8f5e02a..3c55dcc 100644 --- a/src/js/services/micro/getFileExtension.ts +++ b/src/js/services/micro/getFileExtension.ts @@ -7,5 +7,11 @@ */ export default function getFileExtension(fileName: string): string { const fileNameSplitted = fileName.toString().split('.'); - return fileNameSplitted.pop(); + const extension = fileNameSplitted.pop(); + + if (!extension) { + return ''; + } + + return extension; } diff --git a/src/js/services/micro/sortAppsInGrids.ts b/src/js/services/micro/sortAppsInGrids.ts index 2d701ea..ae03588 100644 --- a/src/js/services/micro/sortAppsInGrids.ts +++ b/src/js/services/micro/sortAppsInGrids.ts @@ -1,5 +1,4 @@ -import Application from "../../models/Application"; -import { ParsedApplicationInfo } from "@playos/kernel"; +import { ParsedApplicationInfo } from "../../../vendor/kernel/core/WasmParser"; export interface AppGrid { id: string; diff --git a/src/js/services/providers/IProvider.ts b/src/js/services/providers/IProvider.ts index 1a3e13c..b0f265e 100644 --- a/src/js/services/providers/IProvider.ts +++ b/src/js/services/providers/IProvider.ts @@ -24,8 +24,6 @@ export default interface IProvider { getInstalledApplications(key: PrivateKey): Promise; login(): Promise; logout(): Promise; - encrypt(content: Buffer): Promise; - decrypt(content: Buffer): Promise; isLoggedIn(): Promise; getPrivateKeyForApp(appId: string, nonce: number, userKeys: PrivateKey): PrivateKey; storageSet(key: string, value: string): Promise; diff --git a/src/js/services/providers/RutileProvider.ts b/src/js/services/providers/RutileProvider.ts deleted file mode 100644 index 56d91b0..0000000 --- a/src/js/services/providers/RutileProvider.ts +++ /dev/null @@ -1,334 +0,0 @@ -import * as ethers from "ethers"; -import IProvider, { PrivateKey, Account } from "./IProvider"; -import Application, { ApplicationStatus } from "../../models/Application"; -import Configuration from "../../Configuration"; -import RutileContract from "./RutileContract"; -import { executeRutileRpcCall } from "./RutileRpcService"; -import RutileMethods from "./RutileMethods"; -const Web3 = require("web3"); - -class RutileProvider implements IProvider { - web3: any; - private host: string; - private web3Loaded: Promise; - private provider: ethers.providers.JsonRpcProvider; - private privateKey: PrivateKey; - private rutileContract: RutileContract; - private coreAddress: string; - - constructor(host: string, chainId: number, coreAddress: string) { - this.provider = new ethers.providers.JsonRpcProvider(host, { - chainId, - name: 'rutile', - }); - - this.coreAddress = coreAddress; - this.host = host; - - if (this.getWallet()) { - this.rutileContract = new RutileContract(coreAddress, this.provider, this.getWallet()); - } - } - - private getWallet(): ethers.Wallet { - const keys = this.keysFromStorage(); - - if (!keys) { - return null; - } - - const wallet = new ethers.Wallet(keys.privateKey, this.provider); - return wallet; - } - - setupWeb3WithKeys(privateKey: PrivateKey) { - this.web3 = new Web3(Configuration.get('providerHost')); - - this.web3.eth.accounts.wallet.add(); - console.log('[] this.web3 -> ', this.web3); - } - - encrypt(content: Buffer): Promise { - if (!this.privateKey) { - throw new Error('Private key must be set before encrypting data'); - } - - return null; - } - - decrypt(content: Buffer): Promise { - if (!this.privateKey) { - throw new Error('Private key must be set before decrypting data'); - } - - return null; - } - - async login(): Promise { - const keys = this.keysFromStorage(); - const wallet = ethers.Wallet.fromMnemonic(keys.mnemonic); - - this.rutileContract = new RutileContract(this.coreAddress, this.provider, this.getWallet()); - - return this.getAccountInfo(wallet.address); - } - - async logout(): Promise { - localStorage.clear(); - } - - async isLoggedIn(): Promise { - await this.web3Loaded; - const accounts = await this.web3.eth.getAccounts(); - - if (accounts.length) { - return true; - } - - return false; - } - - createRandomPrivateKey(): PrivateKey { - const wallet = ethers.Wallet.createRandom(); - - return { - address: wallet.address, - mnemonic: wallet.mnemonic, - privateKey: wallet.privateKey - }; - } - - fromMnemonic(mnemonic: string): PrivateKey { - const wallet = ethers.Wallet.fromMnemonic(mnemonic); - - return { - address: wallet.address, - mnemonic: wallet.mnemonic, - privateKey: wallet.privateKey - }; - } - - saveKeys(keys: PrivateKey) { - localStorage.setItem("rutile_pk", JSON.stringify(keys)); - } - - keysFromStorage(): PrivateKey { - const keys = localStorage.getItem("rutile_pk"); - - if (!keys) { - return null; - } - - return JSON.parse(keys); - } - - async getAccountInfo(address: string): Promise { - // const balance = await this.provider.getBalance(address); - - return { - currencyTicker: "RUT", - balance: '0', - // balance: ethers.utils.formatEther(balance), - fullName: "Test account", - address, - profilePic: "", - wallpaper: "https://playos.io/wp-content/uploads/2019/10/background.jpg?id=4353" - }; - } - - async getInstalledApplications(key: PrivateKey): Promise { - const arr: Application[] = [ - { - id: "AppId", - name: "Airhorner", - short_name: "Airhorner", - display: 'standalone', - background_color: '#2196F3', - theme_color: '#2196F3', - icons: [ - { - sizes: '512x512', - src: '/images/touch/android-launchericon-512-512.png', - type: 'image/png', - }, - ], - scope: '/', - start_url: '/?homescreen=1', - manifest_url: 'https://airhorner.com/manifest.json', - playos: { - isWasm: false, - showTerminal: false, - } - }, - { - id: "AppId2", - name: "Store", - short_name: "Store", - display: "standalone", - background_color: "#2196F3", - theme_color: "#2196F3", - icons: [ - { - sizes: '512x512', - src: '/images/touch/android-launchericon-512-512.png', - type: 'image/png', - }, - ], - scope: '/', - start_url: 'http://localhost:1234/#/store', - manifest_url: 'https://airhorner.com/manifest.json', - playos: { - isWasm: false, - showTerminal: false, - } - }, - { - id: 'AppId3', - name: 'Terminal', - short_name: 'Terminal', - display: 'standalone', - background_color: "#000", - theme_color: "#9E9E9E", - icons: [ - { - sizes: '512x512', - src: 'https://media.idownloadblog.com/wp-content/uploads/2016/02/terminal-app-icon-OS-X.png', - type: 'image/png', - }, - ], - scope: '/', - start_url: '#', - manifest_url: 'https://airhorner.com/manifest.json', - playos: { - isWasm: true, - showTerminal: true, - } - }, { - id: 'FileExplorer', - name: 'Files', - short_name: 'Files', - display: 'standalone', - background_color: "#fff", - theme_color: "#2196F3", - icons: [ - { - sizes: '512x512', - src: 'http://icons.iconarchive.com/icons/dtafalonso/yosemite-flat/512/Folder-icon.png', - type: 'image/png', - }, - ], - scope: '/', - start_url: '#', - manifest_url: 'https://airhorner.com/manifest.json', - playos: { - isWasm: true, - showTerminal: false, - } - } - ]; - - return arr; - } - - getPrivateKeyForApp(appId: string, nonce: number, userKeys: PrivateKey): PrivateKey { - // We derive the app key from the private key + the app Id + nonce for extra salt - const digest = ethers.utils.toUtf8Bytes(`${appId}:${nonce}:${userKeys.privateKey}`); - const hash = ethers.utils.keccak256(digest); - const wallet = new ethers.Wallet(hash); - - return { - address: wallet.address, - privateKey: wallet.privateKey, - mnemonic: wallet.mnemonic, - }; - } - - async addApplicationToStore(app: Application) { - try { - const wallet = this.getWallet(); - const nonce = await wallet.getTransactionCount(); - const coreAddress = Configuration.get('coreAddress'); - - this.rutileContract.addApplicationToStore(app); - - console.log('[] nonce -> ', nonce); - // const tx = await wallet.sendTransaction({ - // to: coreAddress, - // data: '0x10000001', - // gasLimit: 8000000, - // gasPrice: 1, - // nonce, - // }); - - // console.log('[] tx -> ', tx); - } catch (error) { - console.log('[] error -> ', error); - } - } - - async storageSet(key: string, value: string) { - const valueBytes = ethers.utils.toUtf8Bytes(value); - const valueHex = ethers.utils.hexlify(valueBytes); - const wallet = this.getWallet(); - const nonce = await wallet.getTransactionCount(); - - const txParams = { - // chainId: config.chainId, - // Datasync set - data: ethers.utils.RLP.encode([ - RutileMethods.STORAGE_SET, - key, - valueHex, - ]), - // Datasync get - // data: '0x000000026fd014d4a0c005f49869f2e9431322ce745722d9f88311fef41fad61b0098621', - gasLimit: 8000000, - gasPrice: 1, - nonce, - to: this.coreAddress, - value: 0, - }; - - try { - await wallet.sendTransaction(txParams); - } catch (error) { - console.error('error -> ', error); - } - } - - async storageGet(key: string) { - const response = await executeRutileRpcCall(this.provider.connection.url, { - data: ethers.utils.RLP.encode([ - RutileMethods.STORAGE_GET, - key, - ]), - from: this.getWallet().address, - gas: '0xffffff', - gasPrice: '0x1', - to: this.coreAddress, - // value: 0, - }); - - return ethers.utils.toUtf8String(Buffer.from(response.result.replace('0x', ''), 'hex')); - } - - async uploadFile(file: Buffer): Promise { - const response = await fetch(`${this.host}files/upload`, { - method: 'POST', - body: file, - }); - - const data = await response.json(); - return data[0].path; - } - - async fetchFile(id: string): Promise { - const response = await fetch(`${this.host}files/get?id=${id}`, { - method: 'POST', - }); - - return Buffer.from(await response.arrayBuffer()); - } -} - -export default RutileProvider; diff --git a/src/js/services/redirect.ts b/src/js/services/redirect.ts new file mode 100644 index 0000000..4ca455c --- /dev/null +++ b/src/js/services/redirect.ts @@ -0,0 +1,3 @@ +export default function redirect(location: string) { + window.location.href = `/#${location}`; +} diff --git a/src/js/store/AppProcessesStore.ts b/src/js/store/AppProcessesStore.ts index 81081bc..3cd1297 100644 --- a/src/js/store/AppProcessesStore.ts +++ b/src/js/store/AppProcessesStore.ts @@ -38,8 +38,6 @@ const defaultState: AppProcessesState = { }; function AppProcessesStore(state = defaultState, action: Action): AppProcessesState { - let newState = false; - if (action.type === ActionTypes.OPEN_APP) { const app: Application = action.payload; // For the MVP we do not allow multiple processes of the same app. diff --git a/src/js/store/ApplicationStore.ts b/src/js/store/ApplicationStore.ts index 9a94a7e..4574cfc 100644 --- a/src/js/store/ApplicationStore.ts +++ b/src/js/store/ApplicationStore.ts @@ -1,6 +1,5 @@ import Application from "../models/Application"; import UserService from "../services/UserService"; -import KeyService from "../services/KeyService"; export interface ApplicationStoreState { apps: Application[]; diff --git a/src/js/store/UserInfoStore.ts b/src/js/store/UserInfoStore.ts index 01bf8ec..8e98f4c 100644 --- a/src/js/store/UserInfoStore.ts +++ b/src/js/store/UserInfoStore.ts @@ -1,7 +1,5 @@ -import { PrivateKey } from "../services/providers/IProvider"; -import AuthService from "../services/AuthService"; import InstanceBag from "../InstanceBag"; -import Kernel from "@playos/kernel"; +import Kernel from "../../vendor/kernel"; export interface UserInfo { info: { diff --git a/src/vendor/kernel b/src/vendor/kernel index 4a33318..37c079a 160000 --- a/src/vendor/kernel +++ b/src/vendor/kernel @@ -1 +1 @@ -Subproject commit 4a3331825e78065e44980dc85a8bda5cdfd57596 +Subproject commit 37c079a68d788c7f2b417eefa0e619e72445221b diff --git a/tsconfig.json b/tsconfig.json index 71de460..a531faf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -26,8 +26,6 @@ "noEmit": true }, "include": [ - "src", - "node_modules", - "@playos/kernel" + "src" ] }