From 60b12cbc9f3c512a27038acf66e60c668607a567 Mon Sep 17 00:00:00 2001 From: canove Date: Mon, 14 Sep 2020 16:28:00 -0300 Subject: [PATCH] changed migrations to typescript --- backend/.gitignore | 5 +- backend/.sequelizerc | 8 +- backend/package.json | 102 ++++----- backend/src/config/database.ts | 6 +- backend/src/database/index.ts | 56 ++--- .../migrations/20200717133438-create-users.js | 39 ---- .../migrations/20200717133438-create-users.ts | 39 ++++ .../20200717144403-create-contacts.js | 38 ---- .../20200717144403-create-contacts.ts | 38 ++++ .../20200717145643-create-tickets.js | 46 ----- .../20200717145643-create-tickets.ts | 46 +++++ .../20200717151645-create-messages.js | 58 ------ .../20200717151645-create-messages.ts | 58 ++++++ .../20200717170223-create-whatsapps.js | 41 ---- .../20200717170223-create-whatsapps.ts | 41 ++++ ...723200315-create-contacts-custom-fields.js | 41 ---- ...723200315-create-contacts-custom-fields.ts | 41 ++++ ...00723202116-add-email-field-to-contacts.js | 15 -- ...00723202116-add-email-field-to-contacts.ts | 15 ++ ...7-remove-user-association-from-messages.js | 16 -- ...7-remove-user-association-from-messages.ts | 16 ++ .../20200730153545-add-fromMe-to-messages.js | 15 -- .../20200730153545-add-fromMe-to-messages.ts | 15 ++ ...6-change-ticket-lastMessage-column-type.js | 15 -- ...6-change-ticket-lastMessage-column-type.ts | 15 ++ ...00901235509-add-profile-column-to-users.js | 15 -- ...00901235509-add-profile-column-to-users.ts | 15 ++ .../20200903215941-create-settings.js | 29 --- .../20200903215941-create-settings.ts | 29 +++ .../20200904220257-add-name-to-whatsapp.js | 15 -- .../20200904220257-add-name-to-whatsapp.ts | 15 ++ ...2228-add-name-default-field-to-whatsapp.js | 15 -- ...2228-add-name-default-field-to-whatsapp.ts | 15 ++ ...906155658-add-whatsapp-field-to-tickets.js | 16 -- ...906155658-add-whatsapp-field-to-tickets.ts | 16 ++ .../20200904070004-create-default-settings.js | 22 -- .../20200904070004-create-default-settings.ts | 22 ++ backend/yarn-error.log | 193 +++++++++++++----- 38 files changed, 651 insertions(+), 591 deletions(-) delete mode 100644 backend/src/database/migrations/20200717133438-create-users.js create mode 100644 backend/src/database/migrations/20200717133438-create-users.ts delete mode 100644 backend/src/database/migrations/20200717144403-create-contacts.js create mode 100644 backend/src/database/migrations/20200717144403-create-contacts.ts delete mode 100644 backend/src/database/migrations/20200717145643-create-tickets.js create mode 100644 backend/src/database/migrations/20200717145643-create-tickets.ts delete mode 100644 backend/src/database/migrations/20200717151645-create-messages.js create mode 100644 backend/src/database/migrations/20200717151645-create-messages.ts delete mode 100644 backend/src/database/migrations/20200717170223-create-whatsapps.js create mode 100644 backend/src/database/migrations/20200717170223-create-whatsapps.ts delete mode 100644 backend/src/database/migrations/20200723200315-create-contacts-custom-fields.js create mode 100644 backend/src/database/migrations/20200723200315-create-contacts-custom-fields.ts delete mode 100644 backend/src/database/migrations/20200723202116-add-email-field-to-contacts.js create mode 100644 backend/src/database/migrations/20200723202116-add-email-field-to-contacts.ts delete mode 100644 backend/src/database/migrations/20200730153237-remove-user-association-from-messages.js create mode 100644 backend/src/database/migrations/20200730153237-remove-user-association-from-messages.ts delete mode 100644 backend/src/database/migrations/20200730153545-add-fromMe-to-messages.js create mode 100644 backend/src/database/migrations/20200730153545-add-fromMe-to-messages.ts delete mode 100644 backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.js create mode 100644 backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.ts delete mode 100644 backend/src/database/migrations/20200901235509-add-profile-column-to-users.js create mode 100644 backend/src/database/migrations/20200901235509-add-profile-column-to-users.ts delete mode 100644 backend/src/database/migrations/20200903215941-create-settings.js create mode 100644 backend/src/database/migrations/20200903215941-create-settings.ts delete mode 100644 backend/src/database/migrations/20200904220257-add-name-to-whatsapp.js create mode 100644 backend/src/database/migrations/20200904220257-add-name-to-whatsapp.ts delete mode 100644 backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.js create mode 100644 backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.ts delete mode 100644 backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.js create mode 100644 backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.ts delete mode 100644 backend/src/database/seeds/20200904070004-create-default-settings.js create mode 100644 backend/src/database/seeds/20200904070004-create-default-settings.ts diff --git a/backend/.gitignore b/backend/.gitignore index dd6817b..53b9b1c 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -1,9 +1,10 @@ node_modules public/* -!public/.gitkeep +dist +!public/.gitkeep .env package-lock.json yarn.lock -/src/config/sentry.js \ No newline at end of file +/src/config/sentry.js diff --git a/backend/.sequelizerc b/backend/.sequelizerc index e5241e2..264f851 100644 --- a/backend/.sequelizerc +++ b/backend/.sequelizerc @@ -1,8 +1,8 @@ const { resolve } = require("path"); module.exports = { - config: resolve(__dirname, "src", "config", "database.js"), - "modules-path": resolve(__dirname, "src", "models"), - "migrations-path": resolve(__dirname, "src", "database", "migrations"), - "seeders-path": resolve(__dirname, "src", "database", "seeds"), + "config": resolve(__dirname, "dist", "config", "database.js"), + "modules-path": resolve(__dirname, "dist", "models"), + "migrations-path": resolve(__dirname, "dist", "database", "migrations"), + "seeders-path": resolve(__dirname, "dist", "database", "seeds") }; diff --git a/backend/package.json b/backend/package.json index 142717d..e4c5684 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,53 +1,53 @@ { - "name": "backend", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "build": "tsc", - "dev:server": "ts-node-dev --respawn --transpile-only --ignore node_modules src/server.ts" - }, - "author": "", - "license": "MIT", - "dependencies": { - "@sentry/node": "5.22.3", - "bcryptjs": "^2.4.3", - "cors": "^2.8.5", - "date-fns": "^2.16.1", - "dotenv": "^8.2.0", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "jsonwebtoken": "^8.5.1", - "multer": "^1.4.2", - "mysql2": "^2.1.0", - "qrcode-terminal": "^0.12.0", - "reflect-metadata": "^0.1.13", - "sequelize": "5", - "sequelize-cli": "5", - "sequelize-typescript": "^1.1.0", - "socket.io": "^2.3.0", - "whatsapp-web.js": "^1.8.2", - "yup": "^0.29.3" - }, - "devDependencies": { - "@types/bluebird": "^3.5.32", - "@types/cors": "^2.8.7", - "@types/express": "^4.17.8", - "@types/multer": "^1.4.4", - "@types/node": "^14.10.1", - "@types/validator": "^13.1.0", - "@types/yup": "^0.29.7", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "eslint": "^7.9.0", - "eslint-config-airbnb-base": "^14.2.0", - "eslint-config-prettier": "^6.11.0", - "eslint-import-resolver-typescript": "^2.3.0", - "eslint-plugin-import": "^2.21.2", - "eslint-plugin-prettier": "^3.1.4", - "nodemon": "^2.0.4", - "prettier": "^2.1.1", - "ts-node-dev": "^1.0.0-pre.62", - "typescript": "^4.0.2" - } + "name": "backend", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "build": "tsc", + "dev:server": "ts-node-dev --respawn --transpile-only --ignore node_modules src/server.ts" + }, + "author": "", + "license": "MIT", + "dependencies": { + "@sentry/node": "5.22.3", + "bcryptjs": "^2.4.3", + "cors": "^2.8.5", + "date-fns": "^2.16.1", + "dotenv": "^8.2.0", + "express": "^4.17.1", + "express-async-errors": "^3.1.1", + "jsonwebtoken": "^8.5.1", + "multer": "^1.4.2", + "mysql2": "^2.1.0", + "qrcode-terminal": "^0.12.0", + "reflect-metadata": "^0.1.13", + "sequelize": "5", + "sequelize-cli": "5", + "sequelize-typescript": "^1.1.0", + "socket.io": "^2.3.0", + "whatsapp-web.js": "^1.8.2", + "yup": "^0.29.3" + }, + "devDependencies": { + "@types/bluebird": "^3.5.32", + "@types/cors": "^2.8.7", + "@types/express": "^4.17.8", + "@types/multer": "^1.4.4", + "@types/node": "^14.10.1", + "@types/validator": "^13.1.0", + "@types/yup": "^0.29.7", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "eslint": "^7.9.0", + "eslint-config-airbnb-base": "^14.2.0", + "eslint-config-prettier": "^6.11.0", + "eslint-import-resolver-typescript": "^2.3.0", + "eslint-plugin-import": "^2.21.2", + "eslint-plugin-prettier": "^3.1.4", + "nodemon": "^2.0.4", + "prettier": "^2.1.1", + "ts-node-dev": "^1.0.0-pre.62", + "typescript": "^4.0.2" + } } diff --git a/backend/src/config/database.ts b/backend/src/config/database.ts index 33ccc78..3484e67 100644 --- a/backend/src/config/database.ts +++ b/backend/src/config/database.ts @@ -1,6 +1,6 @@ -import "dotenv/config"; +require("dotenv/config"); -const dbConfig = { +module.exports = { define: { charset: "utf8mb4", collate: "utf8mb4_bin" @@ -13,5 +13,3 @@ const dbConfig = { password: process.env.DB_PASS, logging: false }; - -export default dbConfig; diff --git a/backend/src/database/index.ts b/backend/src/database/index.ts index c1aa9aa..eb4b24a 100644 --- a/backend/src/database/index.ts +++ b/backend/src/database/index.ts @@ -1,9 +1,10 @@ import { Sequelize } from "sequelize-typescript"; -import { resolve } from "path"; -// import dbConfig from "../config/database"; -import "dotenv/config"; +import User from "../models/User"; + +// eslint-disable-next-line +const dbConfig = require("../config/database"); +// import dbConfig from "../config/database"; -// import User from "../models/User"; // const Contact = require("../models/Contact"); // const Ticket = require("../models/Ticket"); // const Message = require("../models/Message"); @@ -11,43 +12,18 @@ import "dotenv/config"; // const ContactCustomField = require("../models/ContactCustomField"); // const Setting = require("../models/Setting"); -const sequelize = new Sequelize({ - define: { - charset: "utf8mb4", - collate: "utf8mb4_bin" - }, - dialect: "mysql", - timezone: "-03:00", - host: process.env.DB_HOST, - database: process.env.DB_NAME, - username: process.env.DB_USER, - password: process.env.DB_PASS, - models: [resolve(__dirname, "..", "models")], - logging: false -}); +const sequelize = new Sequelize(dbConfig); -// const models = [ -// User -// // Contact, -// // Ticket, -// // Message, -// // Whatsapp, -// // ContactCustomField, -// // Setting, -// ]; +const models = [ + User + // Contact, + // Ticket, + // Message, + // Whatsapp, + // ContactCustomField, + // Setting, +]; -// class Database { -// constructor() { -// this.init(); -// } - -// init() { -// this.sequelize = new Sequelize(dbConfig); - -// models -// .map(model => model.init(this.sequelize)) -// .map(model => model.associate && model.associate(this.sequelize.models)); -// } -// } +sequelize.addModels(models); export default sequelize; diff --git a/backend/src/database/migrations/20200717133438-create-users.js b/backend/src/database/migrations/20200717133438-create-users.js deleted file mode 100644 index 7c046a9..0000000 --- a/backend/src/database/migrations/20200717133438-create-users.js +++ /dev/null @@ -1,39 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("Users", { - id: { - type: Sequelize.INTEGER, - autoIncrement: true, - primaryKey: true, - allowNull: false, - }, - name: { - type: Sequelize.STRING, - allowNull: false, - }, - email: { - type: Sequelize.STRING, - allowNull: false, - unique: true, - }, - passwordHash: { - type: Sequelize.STRING, - allowNull: false, - }, - createdAt: { - type: Sequelize.DATE, - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE, - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("Users"); - }, -}; diff --git a/backend/src/database/migrations/20200717133438-create-users.ts b/backend/src/database/migrations/20200717133438-create-users.ts new file mode 100644 index 0000000..17e9ee9 --- /dev/null +++ b/backend/src/database/migrations/20200717133438-create-users.ts @@ -0,0 +1,39 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("Users", { + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true, + allowNull: false + }, + name: { + type: DataTypes.STRING, + allowNull: false + }, + email: { + type: DataTypes.STRING, + allowNull: false, + unique: true + }, + passwordHash: { + type: DataTypes.STRING, + allowNull: false + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("Users"); + } +}; diff --git a/backend/src/database/migrations/20200717144403-create-contacts.js b/backend/src/database/migrations/20200717144403-create-contacts.js deleted file mode 100644 index 7ad2b4f..0000000 --- a/backend/src/database/migrations/20200717144403-create-contacts.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("Contacts", { - id: { - type: Sequelize.INTEGER, - autoIncrement: true, - primaryKey: true, - allowNull: false, - }, - name: { - type: Sequelize.STRING, - allowNull: false, - }, - number: { - type: Sequelize.STRING, - allowNull: false, - unique: true, - }, - profilePicUrl: { - type: Sequelize.STRING, - }, - createdAt: { - type: Sequelize.DATE, - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE, - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("Contacts"); - }, -}; diff --git a/backend/src/database/migrations/20200717144403-create-contacts.ts b/backend/src/database/migrations/20200717144403-create-contacts.ts new file mode 100644 index 0000000..9224f66 --- /dev/null +++ b/backend/src/database/migrations/20200717144403-create-contacts.ts @@ -0,0 +1,38 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("Contacts", { + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true, + allowNull: false + }, + name: { + type: DataTypes.STRING, + allowNull: false + }, + number: { + type: DataTypes.STRING, + allowNull: false, + unique: true + }, + profilePicUrl: { + type: DataTypes.STRING + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("Contacts"); + } +}; diff --git a/backend/src/database/migrations/20200717145643-create-tickets.js b/backend/src/database/migrations/20200717145643-create-tickets.js deleted file mode 100644 index 81648e3..0000000 --- a/backend/src/database/migrations/20200717145643-create-tickets.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("Tickets", { - id: { - type: Sequelize.INTEGER, - autoIncrement: true, - primaryKey: true, - allowNull: false, - }, - status: { - type: Sequelize.STRING, - defaultValue: "pending", - allowNull: false, - }, - lastMessage: { - type: Sequelize.STRING, - }, - contactId: { - type: Sequelize.INTEGER, - references: { model: "Contacts", key: "id" }, - onUpdate: "CASCADE", - onDelete: "CASCADE", - }, - userId: { - type: Sequelize.INTEGER, - references: { model: "Users", key: "id" }, - onUpdate: "CASCADE", - onDelete: "SET NULL", - }, - createdAt: { - type: Sequelize.DATE(6), - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE(6), - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("Tickets"); - }, -}; diff --git a/backend/src/database/migrations/20200717145643-create-tickets.ts b/backend/src/database/migrations/20200717145643-create-tickets.ts new file mode 100644 index 0000000..d5016ee --- /dev/null +++ b/backend/src/database/migrations/20200717145643-create-tickets.ts @@ -0,0 +1,46 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("Tickets", { + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true, + allowNull: false + }, + status: { + type: DataTypes.STRING, + defaultValue: "pending", + allowNull: false + }, + lastMessage: { + type: DataTypes.STRING + }, + contactId: { + type: DataTypes.INTEGER, + references: { model: "Contacts", key: "id" }, + onUpdate: "CASCADE", + onDelete: "CASCADE" + }, + userId: { + type: DataTypes.INTEGER, + references: { model: "Users", key: "id" }, + onUpdate: "CASCADE", + onDelete: "SET NULL" + }, + createdAt: { + type: DataTypes.DATE(6), + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE(6), + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("Tickets"); + } +}; diff --git a/backend/src/database/migrations/20200717151645-create-messages.js b/backend/src/database/migrations/20200717151645-create-messages.js deleted file mode 100644 index e410e41..0000000 --- a/backend/src/database/migrations/20200717151645-create-messages.js +++ /dev/null @@ -1,58 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("Messages", { - id: { - type: Sequelize.STRING, - primaryKey: true, - allowNull: false, - }, - body: { - type: Sequelize.TEXT, - allowNull: false, - }, - ack: { - type: Sequelize.INTEGER, - allowNull: false, - defaultValue: 0, - }, - read: { - type: Sequelize.BOOLEAN, - allowNull: false, - defaultValue: false, - }, - mediaType: { - type: Sequelize.STRING, - }, - mediaUrl: { - type: Sequelize.STRING, - }, - userId: { - type: Sequelize.INTEGER, - references: { model: "Users", key: "id" }, - onUpdate: "CASCADE", - onDelete: "SET NULL", - }, - ticketId: { - type: Sequelize.INTEGER, - references: { model: "Tickets", key: "id" }, - onUpdate: "CASCADE", - onDelete: "CASCADE", - allowNull: false, - }, - createdAt: { - type: Sequelize.DATE(6), - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE(6), - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("Messages"); - }, -}; diff --git a/backend/src/database/migrations/20200717151645-create-messages.ts b/backend/src/database/migrations/20200717151645-create-messages.ts new file mode 100644 index 0000000..052dfc1 --- /dev/null +++ b/backend/src/database/migrations/20200717151645-create-messages.ts @@ -0,0 +1,58 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("Messages", { + id: { + type: DataTypes.STRING, + primaryKey: true, + allowNull: false + }, + body: { + type: DataTypes.TEXT, + allowNull: false + }, + ack: { + type: DataTypes.INTEGER, + allowNull: false, + defaultValue: 0 + }, + read: { + type: DataTypes.BOOLEAN, + allowNull: false, + defaultValue: false + }, + mediaType: { + type: DataTypes.STRING + }, + mediaUrl: { + type: DataTypes.STRING + }, + userId: { + type: DataTypes.INTEGER, + references: { model: "Users", key: "id" }, + onUpdate: "CASCADE", + onDelete: "SET NULL" + }, + ticketId: { + type: DataTypes.INTEGER, + references: { model: "Tickets", key: "id" }, + onUpdate: "CASCADE", + onDelete: "CASCADE", + allowNull: false + }, + createdAt: { + type: DataTypes.DATE(6), + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE(6), + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("Messages"); + } +}; diff --git a/backend/src/database/migrations/20200717170223-create-whatsapps.js b/backend/src/database/migrations/20200717170223-create-whatsapps.js deleted file mode 100644 index d60e90e..0000000 --- a/backend/src/database/migrations/20200717170223-create-whatsapps.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("Whatsapps", { - id: { - type: Sequelize.INTEGER, - autoIncrement: true, - primaryKey: true, - allowNull: false, - }, - session: { - type: Sequelize.TEXT, - }, - qrcode: { - type: Sequelize.TEXT, - }, - status: { - type: Sequelize.STRING, - }, - battery: { - type: Sequelize.STRING, - }, - plugged: { - type: Sequelize.BOOLEAN, - }, - createdAt: { - type: Sequelize.DATE, - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE, - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("Whatsapps"); - }, -}; diff --git a/backend/src/database/migrations/20200717170223-create-whatsapps.ts b/backend/src/database/migrations/20200717170223-create-whatsapps.ts new file mode 100644 index 0000000..0686bc1 --- /dev/null +++ b/backend/src/database/migrations/20200717170223-create-whatsapps.ts @@ -0,0 +1,41 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("Whatsapps", { + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true, + allowNull: false + }, + session: { + type: DataTypes.TEXT + }, + qrcode: { + type: DataTypes.TEXT + }, + status: { + type: DataTypes.STRING + }, + battery: { + type: DataTypes.STRING + }, + plugged: { + type: DataTypes.BOOLEAN + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("Whatsapps"); + } +}; diff --git a/backend/src/database/migrations/20200723200315-create-contacts-custom-fields.js b/backend/src/database/migrations/20200723200315-create-contacts-custom-fields.js deleted file mode 100644 index d990ad3..0000000 --- a/backend/src/database/migrations/20200723200315-create-contacts-custom-fields.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("ContactCustomFields", { - id: { - type: Sequelize.INTEGER, - autoIncrement: true, - primaryKey: true, - allowNull: false, - }, - name: { - type: Sequelize.STRING, - allowNull: false, - }, - value: { - type: Sequelize.STRING, - allowNull: false, - }, - contactId: { - type: Sequelize.INTEGER, - references: { model: "Contacts", key: "id" }, - onUpdate: "CASCADE", - onDelete: "CASCADE", - allowNull: false, - }, - createdAt: { - type: Sequelize.DATE, - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE, - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("ContactCustomFields"); - }, -}; diff --git a/backend/src/database/migrations/20200723200315-create-contacts-custom-fields.ts b/backend/src/database/migrations/20200723200315-create-contacts-custom-fields.ts new file mode 100644 index 0000000..c6cc7f7 --- /dev/null +++ b/backend/src/database/migrations/20200723200315-create-contacts-custom-fields.ts @@ -0,0 +1,41 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("ContactCustomFields", { + id: { + type: DataTypes.INTEGER, + autoIncrement: true, + primaryKey: true, + allowNull: false + }, + name: { + type: DataTypes.STRING, + allowNull: false + }, + value: { + type: DataTypes.STRING, + allowNull: false + }, + contactId: { + type: DataTypes.INTEGER, + references: { model: "Contacts", key: "id" }, + onUpdate: "CASCADE", + onDelete: "CASCADE", + allowNull: false + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("ContactCustomFields"); + } +}; diff --git a/backend/src/database/migrations/20200723202116-add-email-field-to-contacts.js b/backend/src/database/migrations/20200723202116-add-email-field-to-contacts.js deleted file mode 100644 index a8ce059..0000000 --- a/backend/src/database/migrations/20200723202116-add-email-field-to-contacts.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Contacts", "email", { - type: Sequelize.STRING, - allowNull: false, - defaultValue: "", - }); - }, - - down: queryInterface => { - return queryInterface.removeColumn("Contacts", "email"); - }, -}; diff --git a/backend/src/database/migrations/20200723202116-add-email-field-to-contacts.ts b/backend/src/database/migrations/20200723202116-add-email-field-to-contacts.ts new file mode 100644 index 0000000..cbf086d --- /dev/null +++ b/backend/src/database/migrations/20200723202116-add-email-field-to-contacts.ts @@ -0,0 +1,15 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Contacts", "email", { + type: DataTypes.STRING, + allowNull: false, + defaultValue: "" + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Contacts", "email"); + } +}; diff --git a/backend/src/database/migrations/20200730153237-remove-user-association-from-messages.js b/backend/src/database/migrations/20200730153237-remove-user-association-from-messages.js deleted file mode 100644 index 2978eb5..0000000 --- a/backend/src/database/migrations/20200730153237-remove-user-association-from-messages.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -module.exports = { - up: queryInterface => { - return queryInterface.removeColumn("Messages", "userId"); - }, - - down: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Messages", "userId", { - type: Sequelize.INTEGER, - references: { model: "Users", key: "id" }, - onUpdate: "CASCADE", - onDelete: "SET NULL", - }); - }, -}; diff --git a/backend/src/database/migrations/20200730153237-remove-user-association-from-messages.ts b/backend/src/database/migrations/20200730153237-remove-user-association-from-messages.ts new file mode 100644 index 0000000..765619f --- /dev/null +++ b/backend/src/database/migrations/20200730153237-remove-user-association-from-messages.ts @@ -0,0 +1,16 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Messages", "userId"); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Messages", "userId", { + type: DataTypes.INTEGER, + references: { model: "Users", key: "id" }, + onUpdate: "CASCADE", + onDelete: "SET NULL" + }); + } +}; diff --git a/backend/src/database/migrations/20200730153545-add-fromMe-to-messages.js b/backend/src/database/migrations/20200730153545-add-fromMe-to-messages.js deleted file mode 100644 index 9dbf4c4..0000000 --- a/backend/src/database/migrations/20200730153545-add-fromMe-to-messages.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Messages", "fromMe", { - type: Sequelize.BOOLEAN, - allowNull: false, - defaultValue: false, - }); - }, - - down: queryInterface => { - return queryInterface.removeColumn("Messages", "fromMe"); - }, -}; diff --git a/backend/src/database/migrations/20200730153545-add-fromMe-to-messages.ts b/backend/src/database/migrations/20200730153545-add-fromMe-to-messages.ts new file mode 100644 index 0000000..4bdcebe --- /dev/null +++ b/backend/src/database/migrations/20200730153545-add-fromMe-to-messages.ts @@ -0,0 +1,15 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Messages", "fromMe", { + type: DataTypes.BOOLEAN, + allowNull: false, + defaultValue: false + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Messages", "fromMe"); + } +}; diff --git a/backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.js b/backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.js deleted file mode 100644 index 23eea6d..0000000 --- a/backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.changeColumn("Tickets", "lastMessage", { - type: Sequelize.TEXT, - }); - }, - - down: (queryInterface, Sequelize) => { - return queryInterface.changeColumn("Tickets", "lastMessage", { - type: Sequelize.STRING, - }); - }, -}; diff --git a/backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.ts b/backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.ts new file mode 100644 index 0000000..e4248e8 --- /dev/null +++ b/backend/src/database/migrations/20200813114236-change-ticket-lastMessage-column-type.ts @@ -0,0 +1,15 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.changeColumn("Tickets", "lastMessage", { + type: DataTypes.TEXT + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.changeColumn("Tickets", "lastMessage", { + type: DataTypes.STRING + }); + } +}; diff --git a/backend/src/database/migrations/20200901235509-add-profile-column-to-users.js b/backend/src/database/migrations/20200901235509-add-profile-column-to-users.js deleted file mode 100644 index cb3e93b..0000000 --- a/backend/src/database/migrations/20200901235509-add-profile-column-to-users.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Users", "profile", { - type: Sequelize.STRING, - allowNull: false, - defaultValue: "admin", - }); - }, - - down: queryInterface => { - return queryInterface.removeColumn("Users", "profile"); - }, -}; diff --git a/backend/src/database/migrations/20200901235509-add-profile-column-to-users.ts b/backend/src/database/migrations/20200901235509-add-profile-column-to-users.ts new file mode 100644 index 0000000..b1d866d --- /dev/null +++ b/backend/src/database/migrations/20200901235509-add-profile-column-to-users.ts @@ -0,0 +1,15 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Users", "profile", { + type: DataTypes.STRING, + allowNull: false, + defaultValue: "admin" + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Users", "profile"); + } +}; diff --git a/backend/src/database/migrations/20200903215941-create-settings.js b/backend/src/database/migrations/20200903215941-create-settings.js deleted file mode 100644 index ad82017..0000000 --- a/backend/src/database/migrations/20200903215941-create-settings.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.createTable("Settings", { - key: { - type: Sequelize.STRING, - primaryKey: true, - allowNull: false, - }, - value: { - type: Sequelize.TEXT, - allowNull: false, - }, - createdAt: { - type: Sequelize.DATE, - allowNull: false, - }, - updatedAt: { - type: Sequelize.DATE, - allowNull: false, - }, - }); - }, - - down: queryInterface => { - return queryInterface.dropTable("Settings"); - }, -}; diff --git a/backend/src/database/migrations/20200903215941-create-settings.ts b/backend/src/database/migrations/20200903215941-create-settings.ts new file mode 100644 index 0000000..b8724fc --- /dev/null +++ b/backend/src/database/migrations/20200903215941-create-settings.ts @@ -0,0 +1,29 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.createTable("Settings", { + key: { + type: DataTypes.STRING, + primaryKey: true, + allowNull: false + }, + value: { + type: DataTypes.TEXT, + allowNull: false + }, + createdAt: { + type: DataTypes.DATE, + allowNull: false + }, + updatedAt: { + type: DataTypes.DATE, + allowNull: false + } + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable("Settings"); + } +}; diff --git a/backend/src/database/migrations/20200904220257-add-name-to-whatsapp.js b/backend/src/database/migrations/20200904220257-add-name-to-whatsapp.js deleted file mode 100644 index b2fefc2..0000000 --- a/backend/src/database/migrations/20200904220257-add-name-to-whatsapp.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Whatsapps", "name", { - type: Sequelize.STRING, - allowNull: false, - unique: true, - }); - }, - - down: queryInterface => { - return queryInterface.removeColumn("Whatsapps", "name"); - }, -}; diff --git a/backend/src/database/migrations/20200904220257-add-name-to-whatsapp.ts b/backend/src/database/migrations/20200904220257-add-name-to-whatsapp.ts new file mode 100644 index 0000000..3d15507 --- /dev/null +++ b/backend/src/database/migrations/20200904220257-add-name-to-whatsapp.ts @@ -0,0 +1,15 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Whatsapps", "name", { + type: DataTypes.STRING, + allowNull: false, + unique: true + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Whatsapps", "name"); + } +}; diff --git a/backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.js b/backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.js deleted file mode 100644 index 57e03fc..0000000 --- a/backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Whatsapps", "default", { - type: Sequelize.BOOLEAN, - allowNull: false, - defaultValue: false, - }); - }, - - down: queryInterface => { - return queryInterface.removeColumn("Whatsapps", "default"); - }, -}; diff --git a/backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.ts b/backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.ts new file mode 100644 index 0000000..7ec4a50 --- /dev/null +++ b/backend/src/database/migrations/20200906122228-add-name-default-field-to-whatsapp.ts @@ -0,0 +1,15 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Whatsapps", "default", { + type: DataTypes.BOOLEAN, + allowNull: false, + defaultValue: false + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Whatsapps", "default"); + } +}; diff --git a/backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.js b/backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.js deleted file mode 100644 index 28f7c0c..0000000 --- a/backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -module.exports = { - up: (queryInterface, Sequelize) => { - return queryInterface.addColumn("Tickets", "whatsappId", { - type: Sequelize.INTEGER, - references: { model: "Whatsapps", key: "id" }, - onUpdate: "CASCADE", - onDelete: "SET NULL", - }); - }, - - down: queryInterface => { - return queryInterface.removeColumn("Tickets", "whatsappId"); - }, -}; diff --git a/backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.ts b/backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.ts new file mode 100644 index 0000000..5ed102d --- /dev/null +++ b/backend/src/database/migrations/20200906155658-add-whatsapp-field-to-tickets.ts @@ -0,0 +1,16 @@ +import { QueryInterface, DataTypes } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.addColumn("Tickets", "whatsappId", { + type: DataTypes.INTEGER, + references: { model: "Whatsapps", key: "id" }, + onUpdate: "CASCADE", + onDelete: "SET NULL" + }); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.removeColumn("Tickets", "whatsappId"); + } +}; diff --git a/backend/src/database/seeds/20200904070004-create-default-settings.js b/backend/src/database/seeds/20200904070004-create-default-settings.js deleted file mode 100644 index 73dfccb..0000000 --- a/backend/src/database/seeds/20200904070004-create-default-settings.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -module.exports = { - up: queryInterface => { - return queryInterface.bulkInsert( - "Settings", - [ - { - key: "userCreation", - value: "enabled", - createdAt: new Date(), - updatedAt: new Date(), - }, - ], - {} - ); - }, - - down: queryInterface => { - return queryInterface.bulkDelete("Settings", null, {}); - }, -}; diff --git a/backend/src/database/seeds/20200904070004-create-default-settings.ts b/backend/src/database/seeds/20200904070004-create-default-settings.ts new file mode 100644 index 0000000..802be29 --- /dev/null +++ b/backend/src/database/seeds/20200904070004-create-default-settings.ts @@ -0,0 +1,22 @@ +import { QueryInterface } from "sequelize"; + +module.exports = { + up: (queryInterface: QueryInterface) => { + return queryInterface.bulkInsert( + "Settings", + [ + { + key: "userCreation", + value: "enabled", + createdAt: new Date(), + updatedAt: new Date() + } + ], + {} + ); + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.bulkDelete("Settings", {}); + } +}; diff --git a/backend/yarn-error.log b/backend/yarn-error.log index 60a9bbf..5674f65 100644 --- a/backend/yarn-error.log +++ b/backend/yarn-error.log @@ -1,5 +1,5 @@ Arguments: - /usr/bin/node /usr/share/yarn/bin/yarn.js add -D prettier eslint-config-prettier esling-plugin-prettier + /usr/bin/node /usr/share/yarn/bin/yarn.js sequelize db:migrate PATH: /home/canove/.vscode-server/bin/a0479759d6e9ea56afa657e454193f72aef85bd0/bin:/home/canove/.zinit/polaris/sbin:/home/canove/.zinit/polaris/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/Program Files (x86)/GNU/GnuPG/pub:/mnt/c/Users/cassio/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/cassio/AppData/Local/GitHubDesktop/bin @@ -14,62 +14,67 @@ Platform: linux x64 Trace: - Error: https://registry.yarnpkg.com/esling-plugin-prettier: Not found - at Request.params.callback [as _callback] (/usr/share/yarn/lib/cli.js:66987:18) - at Request.self.callback (/usr/share/yarn/lib/cli.js:140748:22) - at Request.emit (events.js:315:20) - at Request. (/usr/share/yarn/lib/cli.js:141720:10) - at Request.emit (events.js:315:20) - at IncomingMessage. (/usr/share/yarn/lib/cli.js:141642:12) - at Object.onceWrapper (events.js:421:28) - at IncomingMessage.emit (events.js:327:22) - at endReadableNT (_stream_readable.js:1221:12) - at processTicksAndRejections (internal/process/task_queues.js:84:21) + SyntaxError: /home/canove/code_learn/econowhats/backend/package.json: Unexpected token / in JSON at position 222 + at JSON.parse () + at /usr/share/yarn/lib/cli.js:1625:59 + at Generator.next () + at step (/usr/share/yarn/lib/cli.js:310:30) + at /usr/share/yarn/lib/cli.js:321:13 npm manifest: { - "name": "backend", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "build": "tsc", - "dev:server": "ts-node-dev --respawn --transpile-only --ignore node_modules src/server.ts" - }, - "author": "", - "license": "MIT", - "dependencies": { - "@sentry/node": "5.22.3", - "bcryptjs": "^2.4.3", - "cors": "^2.8.5", - "date-fns": "^2.16.1", - "dotenv": "^8.2.0", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "jsonwebtoken": "^8.5.1", - "multer": "^1.4.2", - "mysql2": "^2.1.0", - "qrcode-terminal": "^0.12.0", - "sequelize": "5", - "sequelize-cli": "5", - "socket.io": "^2.3.0", - "whatsapp-web.js": "^1.8.2", - "yup": "^0.29.3" - }, - "devDependencies": { - "@types/cors": "^2.8.7", - "@types/express": "^4.17.8", - "@types/multer": "^1.4.4", - "@typescript-eslint/eslint-plugin": "^4.1.0", - "@typescript-eslint/parser": "^4.1.0", - "eslint": "^7.9.0", - "eslint-config-airbnb-base": "^14.2.0", - "eslint-import-resolver-typescript": "^2.3.0", - "eslint-plugin-import": "^2.21.2", - "nodemon": "^2.0.4", - "ts-node-dev": "^1.0.0-pre.62", - "typescript": "^4.0.2" - } + "name": "backend", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "build": "tsc", + "dev:server": "ts-node-dev --respawn --transpile-only --ignore node_modules src/server.ts" + // "sequelize": "ts-node-dev ./node_modules/.bin/sequelize" + }, + "author": "", + "license": "MIT", + "dependencies": { + "@sentry/node": "5.22.3", + "bcryptjs": "^2.4.3", + "cors": "^2.8.5", + "date-fns": "^2.16.1", + "dotenv": "^8.2.0", + "express": "^4.17.1", + "express-async-errors": "^3.1.1", + "jsonwebtoken": "^8.5.1", + "multer": "^1.4.2", + "mysql2": "^2.1.0", + "qrcode-terminal": "^0.12.0", + "reflect-metadata": "^0.1.13", + "sequelize": "5", + "sequelize-cli": "5", + "sequelize-typescript": "^1.1.0", + "socket.io": "^2.3.0", + "whatsapp-web.js": "^1.8.2", + "yup": "^0.29.3" + }, + "devDependencies": { + "@types/bluebird": "^3.5.32", + "@types/cors": "^2.8.7", + "@types/express": "^4.17.8", + "@types/multer": "^1.4.4", + "@types/node": "^14.10.1", + "@types/validator": "^13.1.0", + "@types/yup": "^0.29.7", + "@typescript-eslint/eslint-plugin": "^4.1.0", + "@typescript-eslint/parser": "^4.1.0", + "eslint": "^7.9.0", + "eslint-config-airbnb-base": "^14.2.0", + "eslint-config-prettier": "^6.11.0", + "eslint-import-resolver-typescript": "^2.3.0", + "eslint-plugin-import": "^2.21.2", + "eslint-plugin-prettier": "^3.1.4", + "nodemon": "^2.0.4", + "prettier": "^2.1.1", + "ts-node-dev": "^1.0.0-pre.62", + "typescript": "^4.0.2" + } } yarn manifest: @@ -230,6 +235,11 @@ Lockfile: dependencies: defer-to-connect "^1.0.1" + "@types/bluebird@^3.5.32": + version "3.5.32" + resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.32.tgz#381e7b59e39f010d20bbf7e044e48f5caf1ab620" + integrity sha512-dIOxFfI0C+jz89g6lQ+TqhGgPQ0MxSnh/E4xuC0blhFtyW269+mPG5QeLgbdwst/LvdP8o1y0o/Gz5EHXLec/g== + "@types/body-parser@*": version "1.19.0" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" @@ -303,6 +313,11 @@ Lockfile: resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.4.tgz#a145cc0bb14ef9c4777361b7bbafa5cf8e3acb5a" integrity sha512-Wk7nG1JSaMfMpoMJDKUsWYugliB2Vy55pdjLpmLixeyMi7HizW2I/9QoxsPCkXl3dO+ZOVqPumKaDUv5zJu2uQ== + "@types/node@^14.10.1": + version "14.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.10.1.tgz#cc323bad8e8a533d4822f45ce4e5326f36e42177" + integrity sha512-aYNbO+FZ/3KGeQCEkNhHFRIzBOUgc7QvcVNKXbfnhDkSfwUv91JsQQa10rDgKSTSLkXZ1UIyPe4FJJNVgw1xWQ== + "@types/qs@*": version "6.9.4" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" @@ -331,6 +346,11 @@ Lockfile: resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + "@types/validator@^13.1.0": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.1.0.tgz#3d776127dbce7dd31fc06f86d3428b072e631eba" + integrity sha512-gHUHI6pJaANIO2r6WcbT7+WMgbL9GZooR4tWpuBOETpDIqFNxwaJluE+6rj6VGYe8k6OkfhbHz2Fkm8kl06Igw== + "@types/yauzl@^2.9.1": version "2.9.1" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" @@ -338,6 +358,11 @@ Lockfile: dependencies: "@types/node" "*" + "@types/yup@^0.29.7": + version "0.29.7" + resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.29.7.tgz#80c5e427a3b152e583ac2859767ccf59db0d3a16" + integrity sha512-x3Zeh8/qLZ6fG4S1EztI1S1mLj6N1pSUV1PAj/9finZba48d3Maxtyz4WYNUY0NE76u1KSukfNLkjcRlb+O00g== + "@typescript-eslint/eslint-plugin@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.1.0.tgz#7d309f60815ff35e9627ad85e41928d7b7fd443f" @@ -1393,6 +1418,13 @@ Lockfile: object.assign "^4.1.0" object.entries "^1.1.2" + eslint-config-prettier@^6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" + integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== + dependencies: + get-stdin "^6.0.0" + eslint-import-resolver-node@^0.3.3: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" @@ -1439,6 +1471,13 @@ Lockfile: resolve "^1.17.0" tsconfig-paths "^3.9.0" + eslint-plugin-prettier@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2" + integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg== + dependencies: + prettier-linter-helpers "^1.0.0" + eslint-scope@^5.0.0, eslint-scope@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -1627,6 +1666,11 @@ Lockfile: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + fast-glob@^3.1.1: version "3.2.4" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" @@ -1800,6 +1844,11 @@ Lockfile: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== + get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -1821,6 +1870,18 @@ Lockfile: dependencies: is-glob "^4.0.1" + glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -3016,6 +3077,18 @@ Lockfile: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + + prettier@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" + integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -3220,6 +3293,11 @@ Lockfile: dependencies: esprima "~4.0.0" + reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -3398,6 +3476,13 @@ Lockfile: resolved "https://registry.yarnpkg.com/sequelize-pool/-/sequelize-pool-2.3.0.tgz#64f1fe8744228172c474f530604b6133be64993d" integrity sha512-Ibz08vnXvkZ8LJTiUOxRcj1Ckdn7qafNZ2t59jYHMX1VIebTAOYefWdRYFt6z6+hy52WGthAHAoLc9hvk3onqA== + sequelize-typescript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-1.1.0.tgz#d5c2945e7fbfe55a934917b27d84589858d79123" + integrity sha512-FAPEQPeAhIaFQNLAcf9Q2IWcqWhNcvn5OZZ7BzGB0CJMtImIsGg4E/EAb7huMmPaPwDArxJUWGqk1KurphTNRA== + dependencies: + glob "7.1.2" + sequelize@5: version "5.22.3" resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.3.tgz#7e7a92ddd355d883c9eb11cdb106d874d0d2636f"