Emmanuil 4 gadi atpakaļ
revīzija
73a9f0ffcf
100 mainītis faili ar 16958 papildinājumiem un 0 dzēšanām
  1. 173 0
      index.js
  2. 23 0
      myproject/.gitignore
  3. 68 0
      myproject/README.md
  4. 13986 0
      myproject/package-lock.json
  5. 42 0
      myproject/package.json
  6. BIN
      myproject/public/favicon.ico
  7. 43 0
      myproject/public/index.html
  8. BIN
      myproject/public/logo192.png
  9. BIN
      myproject/public/logo512.png
  10. 25 0
      myproject/public/manifest.json
  11. 3 0
      myproject/public/robots.txt
  12. 45 0
      myproject/src/App.js
  13. 18 0
      myproject/src/index.css
  14. 75 0
      myproject/src/index.js
  15. 60 0
      myproject/src/myProfile/chatGroups/chatGroups.css
  16. 27 0
      myproject/src/myProfile/chatGroups/chatGroups.js
  17. 102 0
      myproject/src/myProfile/myProfile.css
  18. 40 0
      myproject/src/myProfile/myProfile.js
  19. 122 0
      myproject/src/signIn/signIn.css
  20. 312 0
      myproject/src/signIn/signIn.js
  21. 131 0
      myproject/src/signUp/signUp.css
  22. 332 0
      myproject/src/signUp/signUp.js
  23. 15 0
      node_modules/.bin/cdl
  24. 17 0
      node_modules/.bin/cdl.cmd
  25. 18 0
      node_modules/.bin/cdl.ps1
  26. 15 0
      node_modules/.bin/create-react-app
  27. 17 0
      node_modules/.bin/create-react-app.cmd
  28. 18 0
      node_modules/.bin/create-react-app.ps1
  29. 15 0
      node_modules/.bin/envinfo
  30. 17 0
      node_modules/.bin/envinfo.cmd
  31. 18 0
      node_modules/.bin/envinfo.ps1
  32. 15 0
      node_modules/.bin/esparse
  33. 17 0
      node_modules/.bin/esparse.cmd
  34. 18 0
      node_modules/.bin/esparse.ps1
  35. 15 0
      node_modules/.bin/esvalidate
  36. 17 0
      node_modules/.bin/esvalidate.cmd
  37. 18 0
      node_modules/.bin/esvalidate.ps1
  38. 15 0
      node_modules/.bin/is-ci
  39. 17 0
      node_modules/.bin/is-ci.cmd
  40. 18 0
      node_modules/.bin/is-ci.ps1
  41. 15 0
      node_modules/.bin/loose-envify
  42. 17 0
      node_modules/.bin/loose-envify.cmd
  43. 18 0
      node_modules/.bin/loose-envify.ps1
  44. 15 0
      node_modules/.bin/mime
  45. 17 0
      node_modules/.bin/mime.cmd
  46. 18 0
      node_modules/.bin/mime.ps1
  47. 15 0
      node_modules/.bin/mkdirp
  48. 17 0
      node_modules/.bin/mkdirp.cmd
  49. 18 0
      node_modules/.bin/mkdirp.ps1
  50. 15 0
      node_modules/.bin/node-which
  51. 17 0
      node_modules/.bin/node-which.cmd
  52. 18 0
      node_modules/.bin/node-which.ps1
  53. 15 0
      node_modules/.bin/nodemon
  54. 17 0
      node_modules/.bin/nodemon.cmd
  55. 18 0
      node_modules/.bin/nodemon.ps1
  56. 15 0
      node_modules/.bin/nodetouch
  57. 17 0
      node_modules/.bin/nodetouch.cmd
  58. 18 0
      node_modules/.bin/nodetouch.ps1
  59. 15 0
      node_modules/.bin/nopt
  60. 17 0
      node_modules/.bin/nopt.cmd
  61. 18 0
      node_modules/.bin/nopt.ps1
  62. 15 0
      node_modules/.bin/rc
  63. 17 0
      node_modules/.bin/rc.cmd
  64. 18 0
      node_modules/.bin/rc.ps1
  65. 15 0
      node_modules/.bin/rimraf
  66. 17 0
      node_modules/.bin/rimraf.cmd
  67. 18 0
      node_modules/.bin/rimraf.ps1
  68. 15 0
      node_modules/.bin/semver
  69. 17 0
      node_modules/.bin/semver.cmd
  70. 18 0
      node_modules/.bin/semver.ps1
  71. 15 0
      node_modules/.bin/uuid
  72. 17 0
      node_modules/.bin/uuid.cmd
  73. 18 0
      node_modules/.bin/uuid.ps1
  74. 22 0
      node_modules/@babel/runtime/LICENSE
  75. 19 0
      node_modules/@babel/runtime/README.md
  76. 100 0
      node_modules/@babel/runtime/helpers/AsyncGenerator.js
  77. 5 0
      node_modules/@babel/runtime/helpers/AwaitValue.js
  78. 30 0
      node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js
  79. 11 0
      node_modules/@babel/runtime/helpers/arrayLikeToArray.js
  80. 5 0
      node_modules/@babel/runtime/helpers/arrayWithHoles.js
  81. 7 0
      node_modules/@babel/runtime/helpers/arrayWithoutHoles.js
  82. 9 0
      node_modules/@babel/runtime/helpers/assertThisInitialized.js
  83. 58 0
      node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js
  84. 19 0
      node_modules/@babel/runtime/helpers/asyncIterator.js
  85. 37 0
      node_modules/@babel/runtime/helpers/asyncToGenerator.js
  86. 7 0
      node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js
  87. 7 0
      node_modules/@babel/runtime/helpers/classCallCheck.js
  88. 5 0
      node_modules/@babel/runtime/helpers/classNameTDZError.js
  89. 28 0
      node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js
  90. 15 0
      node_modules/@babel/runtime/helpers/classPrivateFieldGet.js
  91. 9 0
      node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js
  92. 7 0
      node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js
  93. 21 0
      node_modules/@babel/runtime/helpers/classPrivateFieldSet.js
  94. 9 0
      node_modules/@babel/runtime/helpers/classPrivateMethodGet.js
  95. 5 0
      node_modules/@babel/runtime/helpers/classPrivateMethodSet.js
  96. 13 0
      node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js
  97. 19 0
      node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js
  98. 9 0
      node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js
  99. 5 0
      node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js
  100. 0 0
      node_modules/@babel/runtime/helpers/construct.js

+ 173 - 0
index.js

@@ -0,0 +1,173 @@
+const express = require("express");
+const bodyParser = require("body-parser");
+const Sequelize = require("sequelize");
+const jwt = require("jsonwebtoken");
+const { Op } = Sequelize;
+const { graphqlHTTP } = require("express-graphql");
+const { buildSchema } = require("graphql");
+const cors = require("cors");
+const expressJwt = require("express-jwt");
+// const mailer = require("./smtpGmail");
+const app = express();
+
+app.use(bodyParser.json());
+app.use(express.static("myproject"));
+// app.use(errorHandler);
+app.use(bodyParser.urlencoded({ extended: false }));
+app.use(cors());
+
+const sequelize = new Sequelize("emrada2", "root", "Emmanuil2228125%", {
+  timezone: "+03:00",
+  host: "localhost",
+  dialect: "mysql",
+});
+
+class User extends Sequelize.Model {}
+
+User.init(
+  {
+    email: Sequelize.STRING,
+    password: Sequelize.STRING,
+    nickname: Sequelize.STRING,
+  },
+  { sequelize, modelName: "user" }
+);
+
+const secret = `7.!BMB?Y+Bc2vZE-Hb5YuCT6QvE^FN,JWN6M?_VtFXeC5dLtB!`;
+const secretPass = "JcFWhuLkpaK9aB3Gtbvo2Y0BApdw5q1tUyAyJeD8fJXs78d7zR";
+
+const authenticate = async ({ email, password }) => {
+  const user = await User.findOne({ where: { email, password } });
+  if (user) {
+    const token = jwt.sign({ sub: { id: user.id, email: user.email } }, secret);
+    return token;
+  }
+};
+
+var schema = buildSchema(`
+  type Query {
+    login(email: String, password: String): String
+    getUser(id: ID!): User
+  } 
+  type Mutation {
+    createUser(email: String, password: String, nickname: String): User
+  } 
+  type User {
+    id: Int
+    createdAt: String
+    email: String
+    nickname: String
+  }
+`);
+
+const getUser = async ({ id }) => await User.findByPk(id);
+
+const login = async ({ email, password }) => {
+  const userFind = await User.findOne({ where: { email, password } });
+  return authenticate(userFind);
+};
+
+const createUser = async ({ email, password, nickname }) => {
+  const wasUserCreated = await User.findOne({ where: { email } });
+  if (!wasUserCreated) {
+    // const passwordModification = jwt.sign(password + secretPass, secret);
+    const user = { email, password, nickname };
+    const newUser = new User(user);
+    await newUser.save();
+  } else console.log("bye");
+  return await User.findOne({ where: { email } });
+};
+
+var root = { getUser, login, createUser };
+
+app.use(
+  "/graphql",
+  graphqlHTTP({
+    schema: schema,
+    rootValue: root,
+    graphiql: true,
+  })
+);
+
+app.get("/users", async (req, res) => res.send(await User.findAll()));
+
+// app.post("/users", async (req, res) => {
+//   // const twoUsers = async () => {
+//   //   const userEmail = await User.findOne({ where: { email: req.body.email } });
+//   //   if (userEmail !== null) console.log(err);
+//   //   else {
+//   //     console.log("hi");
+//   var newUser = new User(req.body);
+//   // const message = {
+//   //   to: req.body.email,
+//   //   subject: "Registered",
+//   //   text: `Отлично. Вот ваши данные:
+//   //   login: ${req.body.email}
+//   //   password: ${req.body.password}
+
+//   //   Перейдите по ссылке, чтобы войти в свой аккаунт
+//   //   url: http://localhost:3335/sign_in`,
+//   // };
+//   // mailer(message);
+//   await newUser.save();
+//   res.status(201).send(newUser);
+//   // }
+//   // };
+//   // twoUsers();
+// });
+
+app.get("/login", async (req, res) => {
+  res.send(await User.findAll());
+});
+
+// function errorHandler(err, req, res, next) {
+//   if (typeof err === "string") {
+//     return res.status(400).json({ message: err });
+//   }
+
+//   if (err.name === "UnauthorizedError") {
+//     return res.status(401).json({ message: "Invalid Token" });
+//   }
+
+//   return res.status(500).json({ message: err.message });
+// }
+
+app.post("/users/authenticate", async (req, res, next) => {
+  authenticate(req.body)
+    .then((user) => {
+      user
+        ? res.json(user)
+        : res
+            .status(400)
+            .json({ message: "Username or password is incorrect" });
+    })
+    .catch((err) => next(err));
+});
+
+// app.use(jwtWare());
+
+app.get("/a", (req, res, next) => {
+  console.log(req.headers.authorization);
+  const token1 = req.headers.authorization;
+  console.log(token1);
+  // if (token) {
+  const data = jwt.verify(token1, secret);
+  console.log(data);
+  // if (data) {
+  console.log(data.sub.nickname);
+  res.send(`<h1>Hello ${data.sub.nickname}</h1>`);
+  // } else {
+  //   res.send(`<h1>Hello haker</h1>`);
+  // }
+  // }
+});
+
+// (async () => {
+//   let persone =
+//     // User.findOne({ where: { login: "David" } }) ||
+//     (await User.create({ email: "1", password: "1", nickname: "1" }));
+// })();
+
+sequelize.sync();
+
+app.listen(3330, () => console.log("The server started on port 3330"));

+ 23 - 0
myproject/.gitignore

@@ -0,0 +1,23 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*

+ 68 - 0
myproject/README.md

@@ -0,0 +1,68 @@
+This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm start`
+
+Runs the app in the development mode.<br />
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
+
+The page will reload if you make edits.<br />
+You will also see any lint errors in the console.
+
+### `npm test`
+
+Launches the test runner in the interactive watch mode.<br />
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
+
+### `npm run build`
+
+Builds the app for production to the `build` folder.<br />
+It correctly bundles React in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.<br />
+Your app is ready to be deployed!
+
+See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
+
+### `npm run eject`
+
+**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
+
+If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
+
+Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
+
+You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
+
+## Learn More
+
+You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
+
+To learn React, check out the [React documentation](https://reactjs.org/).
+
+### Code Splitting
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
+
+### Analyzing the Bundle Size
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
+
+### Making a Progressive Web App
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
+
+### Advanced Configuration
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
+
+### Deployment
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
+
+### `npm run build` fails to minify
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 13986 - 0
myproject/package-lock.json


+ 42 - 0
myproject/package.json

@@ -0,0 +1,42 @@
+{
+  "name": "myproject",
+  "version": "0.1.0",
+  "private": true,
+  "dependencies": {
+    "@ant-design/icons": "^4.2.1",
+    "@testing-library/jest-dom": "^4.2.4",
+    "@testing-library/react": "^9.5.0",
+    "@testing-library/user-event": "^7.2.1",
+    "jwt-decode": "^2.2.0",
+    "react": "^16.13.1",
+    "react-dom": "^16.13.1",
+    "react-redux": "^7.2.0",
+    "react-router-dom": "^5.2.0",
+    "react-scripts": "3.4.1",
+    "redux": "^4.0.5",
+    "redux-thunk": "^2.3.0",
+    "reset-css": "^5.0.1"
+  },
+  "scripts": {
+    "start": "react-scripts start",
+    "build": "react-scripts build",
+    "test": "react-scripts test",
+    "eject": "react-scripts eject"
+  },
+  "eslintConfig": {
+    "extends": "react-app"
+  },
+  "browserslist": {
+    "production": [
+      ">0.2%",
+      "not dead",
+      "not op_mini all"
+    ],
+    "development": [
+      "last 1 chrome version",
+      "last 1 firefox version",
+      "last 1 safari version"
+    ]
+  },
+  "proxy": "http://localhost:3330"
+}

BIN
myproject/public/favicon.ico


+ 43 - 0
myproject/public/index.html

@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="theme-color" content="#000000" />
+    <meta
+      name="description"
+      content="Web site created using create-react-app"
+    />
+    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
+    <!--
+      manifest.json provides metadata used when your web app is installed on a
+      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
+    -->
+    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
+    <!--
+      Notice the use of %PUBLIC_URL% in the tags above.
+      It will be replaced with the URL of the `public` folder during the build.
+      Only files inside the `public` folder can be referenced from the HTML.
+
+      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
+      work correctly both with client-side routing and a non-root public URL.
+      Learn how to configure a non-root public URL by running `npm run build`.
+    -->
+    <title>React App</title>
+  </head>
+  <body>
+    <noscript>You need to enable JavaScript to run this app.</noscript>
+    <div id="root"></div>
+    <!--
+      This HTML file is a template.
+      If you open it directly in the browser, you will see an empty page.
+
+      You can add webfonts, meta tags, or analytics to this file.
+      The build step will place the bundled scripts into the <body> tag.
+
+      To begin the development, run `npm start` or `yarn start`.
+      To create a production bundle, use `npm run build` or `yarn build`.
+    -->
+  </body>
+</html>

BIN
myproject/public/logo192.png


BIN
myproject/public/logo512.png


+ 25 - 0
myproject/public/manifest.json

@@ -0,0 +1,25 @@
+{
+  "short_name": "React App",
+  "name": "Create React App Sample",
+  "icons": [
+    {
+      "src": "favicon.ico",
+      "sizes": "64x64 32x32 24x24 16x16",
+      "type": "image/x-icon"
+    },
+    {
+      "src": "logo192.png",
+      "type": "image/png",
+      "sizes": "192x192"
+    },
+    {
+      "src": "logo512.png",
+      "type": "image/png",
+      "sizes": "512x512"
+    }
+  ],
+  "start_url": ".",
+  "display": "standalone",
+  "theme_color": "#000000",
+  "background_color": "#ffffff"
+}

+ 3 - 0
myproject/public/robots.txt

@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:

+ 45 - 0
myproject/src/App.js

@@ -0,0 +1,45 @@
+import React, { Component } from "react";
+import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
+import { createBrowserHistory as createHistory } from "history";
+import "reset-css";
+
+import Login from "./signIn/signIn";
+import Register from "./signUp/signUp";
+import MyProfile from "./myProfile/myProfile";
+
+// const MyProfile = () => <h1>HELLO</h1>;
+
+const App = (props) => {
+  return (
+
+    <Router history={createHistory}>
+      
+      <Switch>
+        <div className="wrapper">
+          <Route
+            exact
+            path={["/", "/sign_in"]}
+            render={() => <Login loginEye={props.loginEye} />}
+          />
+          <Route
+            exact
+            path="/sign_up"
+            render={() => (
+              <Register
+                registerEye={props.registerEye}
+                registerConfirmEye={props.registerConfirmEye}
+              />
+            )}
+          />
+          <Route
+            exact
+            path="/my_profile"
+            render={() => <MyProfile message={props.message} users={props.users} />}
+          />
+        </div>
+      </Switch>
+    </Router>
+  );
+};
+
+export default App;

+ 18 - 0
myproject/src/index.css

@@ -0,0 +1,18 @@
+body,
+html,
+#root {
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
+    "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
+    "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+  height: 100%;
+}
+
+a {
+  text-decoration: none;
+}
+
+.wrapper {
+  height: 100%;
+  background: url(https://apromaenergy.com/wp-content/uploads/2018/09/background-site.jpg)
+    no-repeat;
+}

+ 75 - 0
myproject/src/index.js

@@ -0,0 +1,75 @@
+import React from "react";
+import ReactDOM from "react-dom";
+import "./index.css";
+import App from "./App";
+
+const loginEye = () => {
+  const password = document.getElementById("password");
+  const notSee = document.querySelector(".not-see");
+  const see = document.querySelector(".see");
+
+  if (password.type === "password") {
+    password.type = "text";
+    see.style.display = "inline-block";
+    notSee.style.display = "none";
+  } else {
+    password.type = "password";
+    notSee.style.display = "inline-block";
+    see.style.display = "none";
+  }
+};
+
+const registerEye = () => {
+  const password = document.getElementById("registerPassword");
+  const notSee = document.querySelector(".not-see");
+  const see = document.querySelector(".see");
+
+  if (password.type === "password") {
+    password.type = "text";
+    see.style.display = "inline-block";
+    notSee.style.display = "none";
+  } else {
+    password.type = "password";
+    notSee.style.display = "inline-block";
+    see.style.display = "none";
+  }
+};
+
+const registerConfirmEye = () => {
+  const password = document.getElementById("confirmPassword");
+  const notSee = document.querySelector(".not-see-confirm");
+  const see = document.querySelector(".see-confirm");
+
+  if (password.type === "password") {
+    password.type = "text";
+    see.style.display = "inline-block";
+    notSee.style.display = "none";
+  } else {
+    password.type = "password";
+    notSee.style.display = "inline-block";
+    see.style.display = "none";
+  }
+};
+
+const state = {
+  users: [
+    { id: 1, email: "1", password: "1", nickname: "1" },
+    { id: 2, email: "2", password: "2", nickname: "2" },
+    { id: 3, email: "3", password: "3", nickname: "3" },
+  ],
+  message: [
+    { id: 1, message: "Hello", idSendUser: "2", idGotUser: "1" },
+    { id: 1, message: "Привет", idSendUser: "3", idGotUser: "1" },
+  ],
+};
+
+ReactDOM.render(
+  <App
+    loginEye={loginEye}
+    registerEye={registerEye}
+    registerConfirmEye={registerConfirmEye}
+    users={state.users}
+    message={state.message}
+  />,
+  document.getElementById("root")
+);

+ 60 - 0
myproject/src/myProfile/chatGroups/chatGroups.css

@@ -0,0 +1,60 @@
+.groups {
+  max-width: 300px;
+  height: 50px;
+  padding: 6px 13px 6px 15px;
+  cursor: pointer;
+  transition: all 0.4s;
+}
+
+.groups:hover {
+  background: #eaf3fb;
+}
+
+.avatar img {
+  float: left;
+  width: 48px;
+  height: 48px;
+  border-radius: 50%;
+  margin-right: 10px;
+}
+
+.data {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  height: 50px;
+  padding-left: 5px;
+}
+
+.userName {
+  display: flex;
+  justify-content: space-between;
+  padding-bottom: 5px;
+}
+
+.userName span:first-child {
+  font-weight: 600;
+}
+
+.date {
+  font-size: 12px;
+  color: #979797;
+}
+
+.last-message {
+  font-size: 13px;
+  color: #979797;
+  padding-top: 5px;
+  display: flex;
+  justify-content: space-between;
+}
+
+.unread-messages {
+  background: #50b0ff;
+  color: white;
+  border-radius: 50%;
+  font-size: 12px;
+  padding: 5px 8px;
+  font-weight: bold;
+  text-align: center;
+}

+ 27 - 0
myproject/src/myProfile/chatGroups/chatGroups.js

@@ -0,0 +1,27 @@
+import React, { Schema, Component } from "react";
+// import "antd/dist/antd.css";
+import "./chatGroups.css";
+
+const ChatGroups = (props) => {
+  return (
+    <>
+      <div className="groups">
+        <div className="avatar">
+          <img src="https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__340.jpg" />
+        </div>
+        <div className="data">
+          <div className="userName">
+            <span>{props.nickname}</span>
+            <span className="date">00:00</span>
+          </div>
+          <div className="last-message">
+            <span>{props.message}</span>
+            <div className="unread-messages">5</div>
+          </div>
+        </div>
+      </div>
+    </>
+  );
+};
+
+export default ChatGroups;

+ 102 - 0
myproject/src/myProfile/myProfile.css

@@ -0,0 +1,102 @@
+.container {
+  padding: 10px 200px 0;
+  height: 97%;
+}
+
+.my-profile {
+  height: 100%;
+  display: flex;
+  border-radius: 5px;
+  background: white;
+  box-shadow: 1px 1px 10px 1px #e1e1e1;
+  max-height: 100%;
+}
+
+.chat-sidebar {
+  width: 100%;
+  max-height: 100%;
+  max-width: 300px;
+  padding-top: 15px;
+  border-right: 1px solid #d8d8d8;
+}
+
+.create-chat {
+  padding: 5px 13px 0 15px;
+  height: 14%;
+}
+
+.create-chat > div:first-child {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  color: #6a6a6a;
+}
+
+.create-chat > div > div > .span {
+  padding-left: 5px;
+}
+
+.ant-input-search {
+  width: 100% !important;
+}
+
+.chat-groups {
+  overflow: auto;
+  max-height: 85%;
+}
+
+.search-input {
+  border: 1px solid #aaaaaa;
+  margin-top: 20px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  transition: all 0.3s;
+}
+
+.search-input input {
+  border: none;
+  outline: none;
+  font-size: 15px;
+  padding-left: 10px;
+  width: 245px;
+}
+
+.search-input .anticon {
+  padding: 6px;
+  border-left: 1px solid #aaaaaa;
+  color: #818181;
+  cursor: pointer;
+  transition: all 0.3s;
+}
+
+.search-input .anticon:hover {
+  color: #414141;
+}
+
+.search-input:hover {
+  border: 1px solid #339cfd;
+}
+
+.search-input:focus-within {
+  border: 1px solid #339cfd;
+  box-shadow: 0 0 5px #339cfd;
+}
+
+.chat-groups::-webkit-scrollbar {
+  width: 3px;
+}
+
+.chat-groups::-webkit-scrollbar-thumb {
+  background: #bdbdbd;
+  border-radius: 50px;
+}
+
+.chat-groups::-webkit-scrollbar-track {
+  background: #e9e9e9;
+  border-radius: 50px;
+}
+
+.chat-messages {
+  width: 100%;
+}

+ 40 - 0
myproject/src/myProfile/myProfile.js

@@ -0,0 +1,40 @@
+import React, { useState } from "react";
+import { TeamOutlined, FormOutlined, SearchOutlined } from "@ant-design/icons";
+import "./myProfile.css";
+
+import ChatGroups from "./chatGroups/chatGroups";
+
+const MyProfile = (props) => {
+  const [text, setText] = useState("");
+
+  const a = props.message.map((el) => (
+    <ChatGroups nickname={el.idSendUser} message={el.message} />
+  ));
+
+  return (
+    <div className="container">
+      <div className="my-profile">
+        <div className="chat-sidebar">
+          <div className="create-chat">
+            <div>
+              <div>
+                <TeamOutlined />
+                <span className="span">Список чатов</span>
+              </div>
+              <FormOutlined />
+            </div>
+            <div className="search-input">
+              <input value={text} onChange={(e) => setText(e.target.value)} placeholder="Поиск..."/>
+              <SearchOutlined />
+            </div>
+          </div>
+          <div className="chat-groups">{a}</div>
+        </div>
+
+        <div className="chat-messages"></div>
+      </div>
+    </div>
+  );
+};
+
+export default MyProfile;

+ 122 - 0
myproject/src/signIn/signIn.css

@@ -0,0 +1,122 @@
+.login {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+  flex-direction: column;
+  height: 100%;
+}
+
+.login-form {
+  max-width: 350px;
+  width: 100%;
+  padding: 30px;
+  border-radius: 5px;
+  background: white;
+  box-shadow: 1px 1px 10px 1px #e1e1e1;
+}
+
+.login-form input,
+.login-form button {
+  width: 100%;
+  font-size: 20px;
+  padding: 10px 0;
+}
+
+.login-title {
+  padding-bottom: 20px;
+  font-size: 30px;
+  color: #1a1a1a;
+}
+
+.login-title p {
+  margin-top: 30px;
+  font-size: 20px;
+  color: #818181;
+}
+
+#email,
+#password {
+  margin-left: -5px;
+  border: none;
+  outline: none;
+}
+
+.icon {
+  border: 1px solid #b4b4b4;
+  font-size: 23px;
+  margin: 25px 0;
+  display: flex;
+  align-items: center;
+  transition: all 0.4s;
+}
+
+.icon:hover {
+  border: 1px solid #339cfd;
+}
+
+.icon:focus-within {
+  border: 1px solid #339cfd;
+  box-shadow: 0 0 5px #339cfd;
+}
+
+.password-icon .anticon,
+.email-icon .anticon {
+  padding: 0 15px 0 10px;
+  color: #6b6b6b;
+}
+
+.login-button {
+  padding-top: 12px;
+  margin-bottom: 10px;
+  text-transform: uppercase;
+  background: #1890ff;
+  color: white;
+  border: none;
+  cursor: pointer;
+  transition: all 0.3s;
+  outline: none;
+}
+
+.login-button:hover {
+  background: #3fa2ff;
+}
+
+.login-button:disabled {
+  background: #b3b3b3;
+  cursor: default;
+}
+
+.login-form a {
+  color: #575757;
+  transition: all 0.4s;
+}
+
+.login-form a:hover {
+  color: #1b98ff;
+}
+
+.register-put-password {
+  display: flex;
+  justify-content: space-between;
+  padding: 25px 0;
+  font-size: 18px;
+}
+
+.not-see {
+  cursor: pointer;
+}
+
+.see {
+  display: none;
+  cursor: pointer;
+}
+
+.anticon-eye-invisible {
+  color: #8d8d8d;
+  transition: all 0.3s;
+}
+
+.anticon-eye-invisible:hover {
+  color: #525252;
+}

+ 312 - 0
myproject/src/signIn/signIn.js

@@ -0,0 +1,312 @@
+import React, { useState } from "react";
+import { createStore, combineReducers, applyMiddleware } from "redux";
+import { Link } from "react-router-dom";
+import { Provider, connect } from "react-redux";
+import jwtDecode from "jwt-decode";
+import thunk from "redux-thunk";
+import {
+  UserOutlined,
+  LockOutlined,
+  EyeOutlined,
+  EyeInvisibleOutlined,
+} from "@ant-design/icons";
+// import { GraphQLClient } from "graphql-request";
+
+import "./signIn.css";
+
+const promiseReducer = (state = {}, { type, name, status, payload, error }) => {
+  if (type === "PROMISE") {
+    return {
+      ...state,
+      [name]: {
+        status,
+        payload,
+        error,
+      },
+    };
+  }
+  return state;
+};
+
+const actionPromise = (name, promise) => {
+  const actionPending = () => ({
+    type: "PROMISE",
+    name,
+    status: "PENDING",
+    payload: null,
+    error: null,
+  });
+  const actionResolved = (payload) => ({
+    type: "PROMISE",
+    name,
+    status: "RESOLVED",
+    payload,
+    error: null,
+  });
+  const actionRejected = (error) => ({
+    type: "PROMISE",
+    name,
+    status: "REJECTED",
+    payload: null,
+    error,
+  });
+  return async (dispatch) => {
+    dispatch(actionPending());
+    try {
+      let payload = await promise;
+      dispatch(actionResolved(payload));
+      return payload;
+    } catch (error) {
+      dispatch(actionRejected(error));
+    }
+  };
+};
+
+const delay = (ms) => new Promise((ok) => setTimeout(() => ok(ms), ms));
+
+const store1 = createStore(promiseReducer, applyMiddleware(thunk));
+store1.subscribe(() => console.log(store1.getState()));
+
+store1.dispatch({
+  type: "PROMISE",
+  name: "login",
+  status: "RESOLVED",
+  payload: "hi",
+});
+
+store1.dispatch({
+  type: "PROMISE",
+  name: "chatList",
+  status: "REJECTED",
+  error: "bye",
+});
+
+function actionToken(token) {
+  return {
+    type: "TOKEN",
+    token,
+  };
+}
+
+const getGQL = (url, headers = {}) => (query = "", variables = {}) =>
+  fetch(url, {
+    method: "POST",
+    headers: {
+      Accept: "application/json",
+      "Content-Type": "application/json",
+      ...headers,
+    },
+    body: JSON.stringify({ query, variables }),
+  })
+    .then((res) => res.json())
+    .then((a) => {
+      a.data.login ? window.location.assign("/my_profile") : alert("Не верно введен email или пароль!");
+    });
+
+const actionLoginPromise = (email, password) => {
+  let promise = getGQL("http://localhost:3330/graphql")(
+    `query l($email:String, $password:String){
+        login(email:$email, password:$password)
+      }`,
+    { email, password }
+  );
+  return actionPromise("email", promise);
+};
+
+const actionLogin = (email, password) => {
+  return async (dispatch) => {
+    let token = await dispatch(actionLoginPromise(email, password));
+    if (token) dispatch(actionToken(token));
+  };
+};
+
+// function actionRegisterPromise(email, password, nickname) {
+//   let promise = getGQL("http://localhost:3330/graphql")(
+//     `mutation reg($email:String, $password:String, $nickname:String){
+//       createUser({email:$email, password:$password, nickname:$nickname}){ email }
+//     }`,
+//     { email, password, nickname }
+//   );
+//   return actionPromise("register", promise);
+// }
+
+// function actionRegister(email, password, nickname) {
+//   return async (dispatch) => {
+//     let user = await dispatch(actionRegisterPromise(email, password, nickname));
+//     if (user) {
+//       dispatch(actionLogin(email, password, nickname));
+//     }
+//   };
+// }
+
+const actionTimeouts = () => {
+  return async (dispatch) => {
+    let result = await dispatch(actionPromise("delay1", delay(1000)));
+    console.log(result);
+    result = await dispatch(actionPromise("delay" + result, delay(result * 2)));
+    console.log(result);
+  };
+};
+
+store1.dispatch(actionTimeouts());
+
+store1.dispatch(actionPromise("delay1000", delay(1000)));
+store1.dispatch(actionPromise("delay2000", delay(2000)));
+
+// store1.dispatch(actionLogin("1", "1"));
+
+// const store = createStore((state, { type, token }) => {
+//   if (!state) return {};
+//   if (type === "LOGOUT") return { jwt: "" };
+//   if (type === "LOGIN")
+//     return {
+//       pending: true,
+//       jwt: "",
+//     };
+//   if (type === "TOKEN")
+//     return {
+//       jwt: token,
+//       data: jwtDecode(token),
+//     };
+//   return state;
+// });
+
+// function actionLogin(email, password) {
+//   getGQL("http://localhost:3330/graphql")(
+//     `query l($email:String, $password:String){
+//         login(email:$email, password:$password)
+//       }`,
+//     { email, password }
+//   ).then((data) => store.dispatch(actionToken(data.data.login)));
+//   return {
+//     type: "LOGIN",
+//   };
+// }
+
+// function actionToken(token) {
+//   return {
+//     type: "TOKEN",
+//     token,
+//   };
+// }
+
+// store.subscribe(() => console.log(store.getState()));
+// store.dispatch(actionLogin("1", "1"));
+
+// var authToken;
+
+// const getServerIn = (url) => () => {
+//   const email = document.getElementById("email").value;
+//   const password = document.getElementById("password").value;
+//   fetch(url, {
+//     method: "POST",
+//     headers: {
+//       Accept: "application/json",
+//       "Content-Type": "application/json",
+//     },
+//     body: JSON.stringify({ email: email, password: password }),
+//   })
+//     .then((res) => res.json())
+//     .then((json) => (authToken = json.token))
+//     .then(() => {
+//       console.log(authToken);
+//       if (!authToken) alert("Вы не верно ввели свои данные!");
+//       else {
+//         //   window.location.assign("/my_profile");
+//         fetch("/a", {
+//           method: "GET",
+//           headers: {
+//             Authorization:  authToken,
+//           },
+//         })
+//           .then((res) => res.json())
+//       }
+//     });
+// };
+// const getServerIn1 = getServerIn("/users/authenticate");
+
+// const eye = () => {
+//   const password = document.getElementById("password");
+//   const notSee = document.querySelector(".not-see");
+//   const see = document.querySelector(".see");
+
+//   if (password.type === "password") {
+//     password.type = "text";
+//     see.style.display = "inline-block";
+//     notSee.style.display = "none";
+//   } else {
+//     password.type = "password";
+//     notSee.style.display = "inline-block";
+//     see.style.display = "none";
+//   }
+// };
+
+const LoginForm = (props) => {
+  const [email, setEmail] = useState("");
+  const [password, setPassword] = useState("");
+
+  return (
+    <div className="login">
+      <div className="login-form">
+        <div className="login-title">
+          <h2>Войти в аккаунт</h2>
+          <p>Пожалуйста, войдите в свой аккаунт</p>
+        </div>
+
+        <div className="email-icon icon">
+          <UserOutlined />
+          <input
+            id="email"
+            value={email}
+            placeholder="E-mail"
+            type="text"
+            onChange={(e) => setEmail(e.target.value)}
+          />
+        </div>
+
+        <div className="password-icon icon">
+          <LockOutlined />
+          <input
+            id="password"
+            value={password}
+            placeholder="Пароль"
+            type="password"
+            onChange={(e) => setPassword(e.target.value)}
+          />
+          <div className="not-see" onClick={props.loginEye}>
+            <EyeInvisibleOutlined />
+          </div>
+          <div className="see" onClick={props.loginEye}>
+            <EyeOutlined />
+          </div>
+        </div>
+
+        <button
+          id="btn"
+          className="login-button"
+          onClick={() => props.onLogin(email, password)}
+          disabled={!email || !password}
+        >
+          Войти
+        </button>
+
+        <div className="register-put-password">
+          <Link to="/sign_up">Зарегестрироваться</Link>
+          <Link to="/put_password">Забыли пароль?</Link>
+        </div>
+      </div>
+    </div>
+  );
+};
+
+const Login = (props) => (
+  <Provider store={store1}>
+    <ConnectedLoginForm loginEye={props.loginEye} />
+    {/* <LoginPending /> */}
+    {/* <Login onLogin={(login, password) => console.log(login, password)} /> */}
+  </Provider>
+);
+
+const ConnectedLoginForm = connect(null, { onLogin: actionLogin })(LoginForm);
+
+export default Login;

+ 131 - 0
myproject/src/signUp/signUp.css

@@ -0,0 +1,131 @@
+.register {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+  flex-direction: column;
+  height: 100%;
+}
+
+.register-form {
+  max-width: 530px;
+  width: 100%;
+  padding: 30px;
+  border-radius: 5px;
+  background: white;
+  box-shadow: 1px 1px 10px 1px #e1e1e1;
+}
+
+.register-form input,
+.register-form button {
+  width: 100%;
+  max-width: 300px;
+  font-size: 20px;
+  padding: 5px 0;
+}
+
+#registerEmail,
+#nickname {
+  padding-left: 5px;
+  border: 1px solid #b4b4b4;
+  transition: all 0.4s;
+}
+
+#registerEmail:hover,
+#nickname:hover {
+  border: 1px solid #339cfd;
+}
+
+#registerEmail:focus,
+#nickname:focus {
+  outline: none;
+  border: 1px solid #339cfd;
+  box-shadow: 0 0 5px #339cfd;
+}
+
+.block-input-btn {
+  max-width: 393px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.register-form button:hover {
+  background: #3fa2ff;
+}
+
+.register-form button:disabled {
+  background: #b3b3b3;
+  cursor: default;
+}
+
+.register-form button {
+  outline: none;
+  max-width: 170px;
+  padding: 7px 0;
+  background: #1890ff;
+  color: white;
+  border: none;
+  cursor: pointer;
+  transition: all 0.3s;
+}
+
+.block-input {
+  margin: 25px 0;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.password-block,
+.confirmPassword-block {
+  display: flex;
+  align-items: center;
+  border: 1px solid #b4b4b4;
+  width: 305px;
+  transition: all 0.4s;
+}
+
+#registerPassword,
+#confirmPassword {
+  border: none;
+  outline: none;
+  padding-left: 5px;
+}
+
+.password-block .anticon,
+.confirmPassword-block .anticon {
+  padding: 0 15px 0 10px;
+  color: #6b6b6b;
+}
+
+.password-block:hover,
+.confirmPassword-block:hover {
+  border: 1px solid #339cfd;
+}
+
+.password-block:focus-within,
+.confirmPassword-block:focus-within {
+  border: 1px solid #339cfd;
+  box-shadow: 0 0 5px #339cfd;
+}
+
+.block-input span {
+  font-size: 20px;
+}
+
+.block-input span::before {
+  content: "\2217";
+  color: red;
+  font-size: 25px;
+  padding-right: 5px;
+}
+
+.not-see-confirm {
+  cursor: pointer;
+}
+
+.see-confirm {
+  display: none;
+  cursor: pointer;
+}

+ 332 - 0
myproject/src/signUp/signUp.js

@@ -0,0 +1,332 @@
+import React, { useState } from "react";
+import { EyeOutlined, EyeInvisibleOutlined } from "@ant-design/icons";
+// import { createStore } from "redux";
+// import { Provider, connect } from "react-redux";
+// import jwtDecode from "jwt-decode";
+import "./signUp.css";
+// import {actionLogin} from "../sign-in/sign-in";
+
+import { createStore, combineReducers, applyMiddleware } from "redux";
+import { Provider, connect } from "react-redux";
+import thunk from "redux-thunk";
+
+// const getGQL = (url) => () => {
+//   const email = document.getElementById("email").value;
+//   const password = document.getElementById("password").value;
+//   const nickname = document.getElementById("nickname").value;
+
+//   fetch(url, {
+//     method: "POST",
+//     headers: {
+//       Accept: "application/json",
+//       "Content-Type": "application/json",
+//     },
+//     body: JSON.stringify({
+//       email: email,
+//       password: password,
+//       nickname: nickname,
+//     }),
+//   })
+//     .then((res) => res.json())
+//     .then((data) => {
+//       console.log("ok");
+//       console.log(data);
+//     });
+// };
+
+// function actionLogin(login, password) {
+//   getGQL("http://localhost:3333/users");
+// }
+
+// const store = createStore((state, { type, token }) => {
+//   if (!state) return {};
+//   if (type === "LOGIN") return { pending: true, jwt: {} };
+//   if (type === "LOGOUT") return { jwt: {}, data: {} };
+//   if (type === "TOKEN") return { jwt: token, data: jwtDecode(token) };
+//   return state;
+// });
+
+const promiseReducer = (state = {}, { type, name, status, payload, error }) => {
+  if (type === "PROMISE") {
+    return {
+      ...state,
+      [name]: {
+        status,
+        payload,
+        error,
+      },
+    };
+  }
+  return state;
+};
+
+const actionPromise = (name, promise) => {
+  const actionPending = () => ({
+    type: "PROMISE",
+    name,
+    status: "PENDING",
+    payload: null,
+    error: null,
+  });
+  const actionResolved = (payload) => ({
+    type: "PROMISE",
+    name,
+    status: "RESOLVED",
+    payload,
+    error: null,
+  });
+  const actionRejected = (error) => ({
+    type: "PROMISE",
+    name,
+    status: "REJECTED",
+    payload: null,
+    error,
+  });
+  return async (dispatch) => {
+    dispatch(actionPending());
+    try {
+      let payload = await promise;
+      dispatch(actionResolved(payload));
+      return payload;
+    } catch (error) {
+      dispatch(actionRejected(error));
+    }
+  };
+};
+
+const delay = (ms) => new Promise((ok) => setTimeout(() => ok(ms), ms));
+
+const store1 = createStore(promiseReducer, applyMiddleware(thunk));
+store1.subscribe(() => console.log(store1.getState()));
+
+store1.dispatch({
+  type: "PROMISE",
+  name: "login",
+  status: "RESOLVED",
+  payload: "hi",
+});
+
+store1.dispatch({
+  type: "PROMISE",
+  name: "chatList",
+  status: "REJECTED",
+  error: "bye",
+});
+
+// function actionToken(token) {
+//   return {
+//     type: "TOKEN",
+//     token,
+//   };
+// }
+
+// const actionLoginPromise = (email, password) => {
+//   let promise = getGQL("http://localhost:3330/graphql")(
+//     `query l($email:String, $password:String){
+//         login(email:$email, password:$password)
+//       }`,
+//     { email, password }
+//   );
+//   return actionPromise("email", promise);
+// };
+
+// const actionLogin = (email, password) => {
+//   return async (dispatch) => {
+//     let token = await dispatch(actionLoginPromise(email, password));
+//     if (token) {
+//       dispatch(actionToken(token));
+//       // window.location.assign("/my_profile")
+//     }
+//   };
+// };
+
+function actionRegisterPromise(email, password, nickname) {
+  let promise = getGQL("http://localhost:3330/graphql")(
+    `mutation reg($email:String, $password:String, $nickname:String){
+      createUser(email:$email, password:$password, nickname:$nickname){ id } 
+    }`,
+    { email, password, nickname }
+  );
+  return actionPromise("register", promise);
+}
+
+function actionRegister(email, password, nickname) {
+  return async (dispatch) => {
+    let user = await dispatch(actionRegisterPromise(email, password, nickname));
+    if (user) {
+      window.location.assign("/sign_in")
+      // dispatch(actionLogin(email, password));
+    }
+  };
+}
+
+// const actionRegister = (email, password) => {
+//   return async (dispatch) => {
+//     let useer = await dispatch(actionLoginPromise(email, password));
+//     if (token) dispatch(actionToken(token));
+//   };
+// };
+
+const actionTimeouts = () => {
+  return async (dispatch) => {
+    let result = await dispatch(actionPromise("delay1", delay(1000)));
+    console.log(result);
+    result = await dispatch(actionPromise("delay" + result, delay(result * 2)));
+    console.log(result);
+  };
+};
+
+store1.dispatch(actionTimeouts());
+
+store1.dispatch(actionPromise("delay1000", delay(1000)));
+store1.dispatch(actionPromise("delay2000", delay(2000)));
+
+// const store = createStore((state, { type, token }) => {
+//   if (!state) return {};
+//   if (type === "LOGOUT") return { jwt: "" };
+//   if (type === "LOGIN")
+//     return {
+//       pending: true,
+//       jwt: "",
+//     };
+//   if (type === "TOKEN")
+//     return {
+//       jwt: token,
+//       data: jwtDecode(token),
+//     };
+//   return state;
+// });
+
+const getGQL = (url, headers = {}) => (query = "", variables = {}) =>
+  fetch(url, {
+    method: "POST",
+    headers: {
+      Accept: "application/json",
+      "Content-Type": "application/json",
+      ...headers,
+    },
+    body: JSON.stringify({ query, variables }),
+  }).then((res) => res.json());
+
+// function actionLogin(email, password) {
+//   getGQL("http://localhost:3330/graphql")(
+//     `query l($email:String, $password:String){
+//         login(email:$email, password:$password)
+//       }`,
+//     { email, password }
+//   ).then((data) => store.dispatch(actionToken(data.data.login)));
+//   return {
+//     type: "LOGIN",
+//   };
+// }
+
+// function actionToken(token) {
+//   return {
+//     type: "TOKEN",
+//     token,
+//   };
+// }
+
+// store.subscribe(() => console.log(store.getState()));
+// store1.dispatch(actionLogin("1", "1"));
+
+const Register1 = (props) => {
+  const [email, setEmail] = useState("");
+  const [password, setPassword] = useState("");
+  const [confirmPassword, setConfirmPassword] = useState("");
+  const [nickname, setNickname] = useState("");
+
+  return (
+    <div className="register">
+      <div className="register-form">
+        <div className="login-title">
+          <h2>Создать свой аккаунт</h2>
+          <p>Пожалуйста, создайте свой аккаунт</p>
+        </div>
+
+        <div className="block-input">
+          <span>E-mail:</span>
+          <input
+            value={email}
+            type="email"
+            id="registerEmail"
+            name="email"
+            // pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"
+            onChange={(e) => setEmail(e.target.value)}
+          />
+        </div>
+
+        <div className="block-input">
+          <span>Пароль:</span>
+          <div className="password-block">
+            <input
+              value={password}
+              type="password"
+              id="registerPassword"
+              name="password"
+              // pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}"
+              onChange={(e) => setPassword(e.target.value)}
+            />
+            <div className="not-see" onClick={props.registerEye}>
+              <EyeInvisibleOutlined />
+            </div>
+            <div className="see" onClick={props.registerEye}>
+              <EyeOutlined />
+            </div>
+          </div>
+        </div>
+
+        <div className="block-input">
+          <span>Повторите пароль:</span>
+          <div className="confirmPassword-block">
+            <input
+              value={confirmPassword}
+              type="password"
+              id="confirmPassword"
+              name="confirmPassword"
+              onChange={(e) => setConfirmPassword(e.target.value)}
+            />
+            <div className="not-see-confirm" onClick={props.registerConfirmEye}>
+              <EyeInvisibleOutlined />
+            </div>
+            <div className="see-confirm" onClick={props.registerConfirmEye}>
+              <EyeOutlined />
+            </div>
+          </div>
+        </div>
+
+        <div className="block-input">
+          <span>Ник:</span>
+          <input
+            value={nickname}
+            type="text"
+            id="nickname"
+            name="nickname"
+            onChange={(e) => setNickname(e.target.value)}
+          />
+        </div>
+
+        <div className="block-input-btn">
+          <p></p>
+          <button
+            onClick={()=>props.register(email, password, nickname)}
+            disabled={!email || !password || !confirmPassword || !nickname}
+          >
+            Регистрация
+          </button>
+        </div>
+      </div>
+    </div>
+  );
+};
+
+const Register = () => (
+  <Provider store={store1}>
+    <ConnectedRegisterForm />
+  </Provider>
+);
+
+const ConnectedRegisterForm = connect(null, { register: actionRegister })(
+  Register1
+);
+export default Register;

+ 15 - 0
node_modules/.bin/cdl

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../cardinal/bin/cdl.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../cardinal/bin/cdl.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/cdl.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\cardinal\bin\cdl.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/cdl.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../cardinal/bin/cdl.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../cardinal/bin/cdl.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/create-react-app

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../create-react-app/index.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../create-react-app/index.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/create-react-app.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\create-react-app\index.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/create-react-app.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../create-react-app/index.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../create-react-app/index.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/envinfo

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../envinfo/dist/cli.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../envinfo/dist/cli.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/envinfo.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\envinfo\dist\cli.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/envinfo.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../envinfo/dist/cli.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../envinfo/dist/cli.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/esparse

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../esprima/bin/esparse.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../esprima/bin/esparse.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/esparse.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\esprima\bin\esparse.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/esparse.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../esprima/bin/esparse.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../esprima/bin/esparse.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/esvalidate

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../esprima/bin/esvalidate.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../esprima/bin/esvalidate.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/esvalidate.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\esprima\bin\esvalidate.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/esvalidate.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../esprima/bin/esvalidate.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../esprima/bin/esvalidate.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/is-ci

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../is-ci/bin.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../is-ci/bin.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/is-ci.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\is-ci\bin.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/is-ci.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../is-ci/bin.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../is-ci/bin.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/loose-envify

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../loose-envify/cli.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../loose-envify/cli.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/loose-envify.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\loose-envify\cli.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/loose-envify.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../loose-envify/cli.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../loose-envify/cli.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/mime

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../mime/cli.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../mime/cli.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/mime.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\mime\cli.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/mime.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../mime/cli.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../mime/cli.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/mkdirp

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../mkdirp/bin/cmd.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../mkdirp/bin/cmd.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/mkdirp.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\mkdirp\bin\cmd.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/mkdirp.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../mkdirp/bin/cmd.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../mkdirp/bin/cmd.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/node-which

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../which/bin/node-which" "$@"
+  ret=$?
+else 
+  node  "$basedir/../which/bin/node-which" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/node-which.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\which\bin\node-which" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/node-which.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../which/bin/node-which" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../which/bin/node-which" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/nodemon

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../nodemon/bin/nodemon.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../nodemon/bin/nodemon.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/nodemon.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\nodemon\bin\nodemon.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/nodemon.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../nodemon/bin/nodemon.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../nodemon/bin/nodemon.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/nodetouch

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../touch/bin/nodetouch.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../touch/bin/nodetouch.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/nodetouch.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\touch\bin\nodetouch.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/nodetouch.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../touch/bin/nodetouch.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../touch/bin/nodetouch.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/nopt

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../nopt/bin/nopt.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../nopt/bin/nopt.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/nopt.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\nopt\bin\nopt.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/nopt.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../nopt/bin/nopt.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../nopt/bin/nopt.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/rc

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../rc/cli.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../rc/cli.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/rc.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\rc\cli.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/rc.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../rc/cli.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../rc/cli.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/rimraf

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../rimraf/bin.js" "$@"
+  ret=$?
+else 
+  node  "$basedir/../rimraf/bin.js" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/rimraf.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\rimraf\bin.js" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/rimraf.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../rimraf/bin.js" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../rimraf/bin.js" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/semver

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../semver/bin/semver" "$@"
+  ret=$?
+else 
+  node  "$basedir/../semver/bin/semver" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/semver.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\semver\bin\semver" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/semver.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../semver/bin/semver" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../semver/bin/semver" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 15 - 0
node_modules/.bin/uuid

@@ -0,0 +1,15 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
+esac
+
+if [ -x "$basedir/node" ]; then
+  "$basedir/node"  "$basedir/../uuid/dist/bin/uuid" "$@"
+  ret=$?
+else 
+  node  "$basedir/../uuid/dist/bin/uuid" "$@"
+  ret=$?
+fi
+exit $ret

+ 17 - 0
node_modules/.bin/uuid.cmd

@@ -0,0 +1,17 @@
+@ECHO off
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+  SET "_prog=%dp0%\node.exe"
+) ELSE (
+  SET "_prog=node"
+  SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+"%_prog%"  "%dp0%\..\uuid\dist\bin\uuid" %*
+ENDLOCAL
+EXIT /b %errorlevel%
+:find_dp0
+SET dp0=%~dp0
+EXIT /b

+ 18 - 0
node_modules/.bin/uuid.ps1

@@ -0,0 +1,18 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+  # Fix case when both the Windows and Linux builds of Node
+  # are installed in the same directory
+  $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+  & "$basedir/node$exe"  "$basedir/../uuid/dist/bin/uuid" $args
+  $ret=$LASTEXITCODE
+} else {
+  & "node$exe"  "$basedir/../uuid/dist/bin/uuid" $args
+  $ret=$LASTEXITCODE
+}
+exit $ret

+ 22 - 0
node_modules/@babel/runtime/LICENSE

@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2014-present Sebastian McKenzie and other contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 19 - 0
node_modules/@babel/runtime/README.md

@@ -0,0 +1,19 @@
+# @babel/runtime
+
+> babel's modular runtime helpers
+
+See our website [@babel/runtime](https://babeljs.io/docs/en/next/babel-runtime.html) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/runtime
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/runtime 
+```

+ 100 - 0
node_modules/@babel/runtime/helpers/AsyncGenerator.js

@@ -0,0 +1,100 @@
+var AwaitValue = require("./AwaitValue");
+
+function AsyncGenerator(gen) {
+  var front, back;
+
+  function send(key, arg) {
+    return new Promise(function (resolve, reject) {
+      var request = {
+        key: key,
+        arg: arg,
+        resolve: resolve,
+        reject: reject,
+        next: null
+      };
+
+      if (back) {
+        back = back.next = request;
+      } else {
+        front = back = request;
+        resume(key, arg);
+      }
+    });
+  }
+
+  function resume(key, arg) {
+    try {
+      var result = gen[key](arg);
+      var value = result.value;
+      var wrappedAwait = value instanceof AwaitValue;
+      Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
+        if (wrappedAwait) {
+          resume(key === "return" ? "return" : "next", arg);
+          return;
+        }
+
+        settle(result.done ? "return" : "normal", arg);
+      }, function (err) {
+        resume("throw", err);
+      });
+    } catch (err) {
+      settle("throw", err);
+    }
+  }
+
+  function settle(type, value) {
+    switch (type) {
+      case "return":
+        front.resolve({
+          value: value,
+          done: true
+        });
+        break;
+
+      case "throw":
+        front.reject(value);
+        break;
+
+      default:
+        front.resolve({
+          value: value,
+          done: false
+        });
+        break;
+    }
+
+    front = front.next;
+
+    if (front) {
+      resume(front.key, front.arg);
+    } else {
+      back = null;
+    }
+  }
+
+  this._invoke = send;
+
+  if (typeof gen["return"] !== "function") {
+    this["return"] = undefined;
+  }
+}
+
+if (typeof Symbol === "function" && Symbol.asyncIterator) {
+  AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
+    return this;
+  };
+}
+
+AsyncGenerator.prototype.next = function (arg) {
+  return this._invoke("next", arg);
+};
+
+AsyncGenerator.prototype["throw"] = function (arg) {
+  return this._invoke("throw", arg);
+};
+
+AsyncGenerator.prototype["return"] = function (arg) {
+  return this._invoke("return", arg);
+};
+
+module.exports = AsyncGenerator;

+ 5 - 0
node_modules/@babel/runtime/helpers/AwaitValue.js

@@ -0,0 +1,5 @@
+function _AwaitValue(value) {
+  this.wrapped = value;
+}
+
+module.exports = _AwaitValue;

+ 30 - 0
node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js

@@ -0,0 +1,30 @@
+function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
+  var desc = {};
+  Object.keys(descriptor).forEach(function (key) {
+    desc[key] = descriptor[key];
+  });
+  desc.enumerable = !!desc.enumerable;
+  desc.configurable = !!desc.configurable;
+
+  if ('value' in desc || desc.initializer) {
+    desc.writable = true;
+  }
+
+  desc = decorators.slice().reverse().reduce(function (desc, decorator) {
+    return decorator(target, property, desc) || desc;
+  }, desc);
+
+  if (context && desc.initializer !== void 0) {
+    desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
+    desc.initializer = undefined;
+  }
+
+  if (desc.initializer === void 0) {
+    Object.defineProperty(target, property, desc);
+    desc = null;
+  }
+
+  return desc;
+}
+
+module.exports = _applyDecoratedDescriptor;

+ 11 - 0
node_modules/@babel/runtime/helpers/arrayLikeToArray.js

@@ -0,0 +1,11 @@
+function _arrayLikeToArray(arr, len) {
+  if (len == null || len > arr.length) len = arr.length;
+
+  for (var i = 0, arr2 = new Array(len); i < len; i++) {
+    arr2[i] = arr[i];
+  }
+
+  return arr2;
+}
+
+module.exports = _arrayLikeToArray;

+ 5 - 0
node_modules/@babel/runtime/helpers/arrayWithHoles.js

@@ -0,0 +1,5 @@
+function _arrayWithHoles(arr) {
+  if (Array.isArray(arr)) return arr;
+}
+
+module.exports = _arrayWithHoles;

+ 7 - 0
node_modules/@babel/runtime/helpers/arrayWithoutHoles.js

@@ -0,0 +1,7 @@
+var arrayLikeToArray = require("./arrayLikeToArray");
+
+function _arrayWithoutHoles(arr) {
+  if (Array.isArray(arr)) return arrayLikeToArray(arr);
+}
+
+module.exports = _arrayWithoutHoles;

+ 9 - 0
node_modules/@babel/runtime/helpers/assertThisInitialized.js

@@ -0,0 +1,9 @@
+function _assertThisInitialized(self) {
+  if (self === void 0) {
+    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+  }
+
+  return self;
+}
+
+module.exports = _assertThisInitialized;

+ 58 - 0
node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js

@@ -0,0 +1,58 @@
+function _asyncGeneratorDelegate(inner, awaitWrap) {
+  var iter = {},
+      waiting = false;
+
+  function pump(key, value) {
+    waiting = true;
+    value = new Promise(function (resolve) {
+      resolve(inner[key](value));
+    });
+    return {
+      done: false,
+      value: awaitWrap(value)
+    };
+  }
+
+  ;
+
+  if (typeof Symbol === "function" && Symbol.iterator) {
+    iter[Symbol.iterator] = function () {
+      return this;
+    };
+  }
+
+  iter.next = function (value) {
+    if (waiting) {
+      waiting = false;
+      return value;
+    }
+
+    return pump("next", value);
+  };
+
+  if (typeof inner["throw"] === "function") {
+    iter["throw"] = function (value) {
+      if (waiting) {
+        waiting = false;
+        throw value;
+      }
+
+      return pump("throw", value);
+    };
+  }
+
+  if (typeof inner["return"] === "function") {
+    iter["return"] = function (value) {
+      if (waiting) {
+        waiting = false;
+        return value;
+      }
+
+      return pump("return", value);
+    };
+  }
+
+  return iter;
+}
+
+module.exports = _asyncGeneratorDelegate;

+ 19 - 0
node_modules/@babel/runtime/helpers/asyncIterator.js

@@ -0,0 +1,19 @@
+function _asyncIterator(iterable) {
+  var method;
+
+  if (typeof Symbol !== "undefined") {
+    if (Symbol.asyncIterator) {
+      method = iterable[Symbol.asyncIterator];
+      if (method != null) return method.call(iterable);
+    }
+
+    if (Symbol.iterator) {
+      method = iterable[Symbol.iterator];
+      if (method != null) return method.call(iterable);
+    }
+  }
+
+  throw new TypeError("Object is not async iterable");
+}
+
+module.exports = _asyncIterator;

+ 37 - 0
node_modules/@babel/runtime/helpers/asyncToGenerator.js

@@ -0,0 +1,37 @@
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
+  try {
+    var info = gen[key](arg);
+    var value = info.value;
+  } catch (error) {
+    reject(error);
+    return;
+  }
+
+  if (info.done) {
+    resolve(value);
+  } else {
+    Promise.resolve(value).then(_next, _throw);
+  }
+}
+
+function _asyncToGenerator(fn) {
+  return function () {
+    var self = this,
+        args = arguments;
+    return new Promise(function (resolve, reject) {
+      var gen = fn.apply(self, args);
+
+      function _next(value) {
+        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
+      }
+
+      function _throw(err) {
+        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
+      }
+
+      _next(undefined);
+    });
+  };
+}
+
+module.exports = _asyncToGenerator;

+ 7 - 0
node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js

@@ -0,0 +1,7 @@
+var AwaitValue = require("./AwaitValue");
+
+function _awaitAsyncGenerator(value) {
+  return new AwaitValue(value);
+}
+
+module.exports = _awaitAsyncGenerator;

+ 7 - 0
node_modules/@babel/runtime/helpers/classCallCheck.js

@@ -0,0 +1,7 @@
+function _classCallCheck(instance, Constructor) {
+  if (!(instance instanceof Constructor)) {
+    throw new TypeError("Cannot call a class as a function");
+  }
+}
+
+module.exports = _classCallCheck;

+ 5 - 0
node_modules/@babel/runtime/helpers/classNameTDZError.js

@@ -0,0 +1,5 @@
+function _classNameTDZError(name) {
+  throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
+}
+
+module.exports = _classNameTDZError;

+ 28 - 0
node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js

@@ -0,0 +1,28 @@
+function _classPrivateFieldDestructureSet(receiver, privateMap) {
+  if (!privateMap.has(receiver)) {
+    throw new TypeError("attempted to set private field on non-instance");
+  }
+
+  var descriptor = privateMap.get(receiver);
+
+  if (descriptor.set) {
+    if (!("__destrObj" in descriptor)) {
+      descriptor.__destrObj = {
+        set value(v) {
+          descriptor.set.call(receiver, v);
+        }
+
+      };
+    }
+
+    return descriptor.__destrObj;
+  } else {
+    if (!descriptor.writable) {
+      throw new TypeError("attempted to set read only private field");
+    }
+
+    return descriptor;
+  }
+}
+
+module.exports = _classPrivateFieldDestructureSet;

+ 15 - 0
node_modules/@babel/runtime/helpers/classPrivateFieldGet.js

@@ -0,0 +1,15 @@
+function _classPrivateFieldGet(receiver, privateMap) {
+  var descriptor = privateMap.get(receiver);
+
+  if (!descriptor) {
+    throw new TypeError("attempted to get private field on non-instance");
+  }
+
+  if (descriptor.get) {
+    return descriptor.get.call(receiver);
+  }
+
+  return descriptor.value;
+}
+
+module.exports = _classPrivateFieldGet;

+ 9 - 0
node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js

@@ -0,0 +1,9 @@
+function _classPrivateFieldBase(receiver, privateKey) {
+  if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
+    throw new TypeError("attempted to use private field on non-instance");
+  }
+
+  return receiver;
+}
+
+module.exports = _classPrivateFieldBase;

+ 7 - 0
node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js

@@ -0,0 +1,7 @@
+var id = 0;
+
+function _classPrivateFieldKey(name) {
+  return "__private_" + id++ + "_" + name;
+}
+
+module.exports = _classPrivateFieldKey;

+ 21 - 0
node_modules/@babel/runtime/helpers/classPrivateFieldSet.js

@@ -0,0 +1,21 @@
+function _classPrivateFieldSet(receiver, privateMap, value) {
+  var descriptor = privateMap.get(receiver);
+
+  if (!descriptor) {
+    throw new TypeError("attempted to set private field on non-instance");
+  }
+
+  if (descriptor.set) {
+    descriptor.set.call(receiver, value);
+  } else {
+    if (!descriptor.writable) {
+      throw new TypeError("attempted to set read only private field");
+    }
+
+    descriptor.value = value;
+  }
+
+  return value;
+}
+
+module.exports = _classPrivateFieldSet;

+ 9 - 0
node_modules/@babel/runtime/helpers/classPrivateMethodGet.js

@@ -0,0 +1,9 @@
+function _classPrivateMethodGet(receiver, privateSet, fn) {
+  if (!privateSet.has(receiver)) {
+    throw new TypeError("attempted to get private field on non-instance");
+  }
+
+  return fn;
+}
+
+module.exports = _classPrivateMethodGet;

+ 5 - 0
node_modules/@babel/runtime/helpers/classPrivateMethodSet.js

@@ -0,0 +1,5 @@
+function _classPrivateMethodSet() {
+  throw new TypeError("attempted to reassign private method");
+}
+
+module.exports = _classPrivateMethodSet;

+ 13 - 0
node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js

@@ -0,0 +1,13 @@
+function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
+  if (receiver !== classConstructor) {
+    throw new TypeError("Private static access of wrong provenance");
+  }
+
+  if (descriptor.get) {
+    return descriptor.get.call(receiver);
+  }
+
+  return descriptor.value;
+}
+
+module.exports = _classStaticPrivateFieldSpecGet;

+ 19 - 0
node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js

@@ -0,0 +1,19 @@
+function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
+  if (receiver !== classConstructor) {
+    throw new TypeError("Private static access of wrong provenance");
+  }
+
+  if (descriptor.set) {
+    descriptor.set.call(receiver, value);
+  } else {
+    if (!descriptor.writable) {
+      throw new TypeError("attempted to set read only private field");
+    }
+
+    descriptor.value = value;
+  }
+
+  return value;
+}
+
+module.exports = _classStaticPrivateFieldSpecSet;

+ 9 - 0
node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js

@@ -0,0 +1,9 @@
+function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
+  if (receiver !== classConstructor) {
+    throw new TypeError("Private static access of wrong provenance");
+  }
+
+  return method;
+}
+
+module.exports = _classStaticPrivateMethodGet;

+ 5 - 0
node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js

@@ -0,0 +1,5 @@
+function _classStaticPrivateMethodSet() {
+  throw new TypeError("attempted to set read only static private field");
+}
+
+module.exports = _classStaticPrivateMethodSet;

+ 0 - 0
node_modules/@babel/runtime/helpers/construct.js


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels