diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fea6bc6 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +Dockerfile \ No newline at end of file diff --git a/.sequelizerc b/.sequelizerc new file mode 100644 index 0000000..111d95c --- /dev/null +++ b/.sequelizerc @@ -0,0 +1,10 @@ +// .sequelizerc + +const path = require('path'); + +module.exports = { + 'config': path.resolve('dist', 'sequelize_config.js'), + 'models-path': path.resolve('dist', 'models'), + 'seeders-path': path.resolve('dist', 'seeders'), + 'migrations-path': path.resolve('dist', 'migrations') +}; \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6acb498..6cfcdf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,8 @@ FROM node:14.17 as base WORKDIR /usr COPY /package*.json ./ RUN npm install --no-optional && npm cache clean --force -COPY ./src ./src +RUN npm i -g sequelize sequelize-cli +COPY ./ ./ #dev we don't COPY in this stage because for dev you'll bind-mount anyway FROM base as dev diff --git a/package-lock.json b/package-lock.json index f42ee79..99791d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,34 +10,34 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "aws-sdk": "^2.1073.0", + "@sequelize/core": "^7.0.0-alpha.10", + "aws-sdk": "^2.1091.0", "bcryptjs": "^2.4.3", "bluebird": "^3.7.2", "diff-match-patch": "^1.0.5", "dotenv": "^16.0.0", - "express": "^4.17.2", + "express": "^4.17.3", "express-promise-router": "^4.1.1", "extract-zip": "^2.0.1", "formidable": "^2.0.1", "fp-ts": "^2.11.8", - "fs-extra": "^10.0.0", + "fs-extra": "^10.0.1", "helmet": "^5.0.2", "io-ts": "^2.2.16", "io-ts-reporters": "^2.0.1", "jschardet": "^3.0.0", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", - "log4js": "^6.4.1", + "log4js": "^6.4.2", "moment": "^2.29.1", "mysql2": "^2.3.3", "nodemailer": "^6.7.2", "ramda": "^0.28.0", "rand-token": "^1.0.1", "recursive-readdir": "^2.2.2", - "redis": "^4.0.3", - "sequelize": "^6.16.1", + "redis": "^4.0.4", "tscpaths": "0.0.9", - "typescript": "^4.5.5", + "typescript": "^4.6.2", "validator": "^13.7.0", "yazl": "^2.5.1" }, @@ -54,33 +54,33 @@ "@types/formidable": "^2.0.4", "@types/fs-extra": "^9.0.13", "@types/jsonwebtoken": "^8.5.8", - "@types/lodash": "^4.14.178", + "@types/lodash": "^4.14.179", "@types/mocha": "^9.1.0", - "@types/node": "^17.0.17", + "@types/node": "^17.0.21", "@types/nodemailer": "^6.4.4", - "@types/ramda": "^0.27.64", + "@types/ramda": "^0.28.1", "@types/recursive-readdir": "^2.2.0", "@types/supertest": "^2.0.11", "@types/validator": "^13.7.1", "@types/yazl": "^2.4.2", - "@typescript-eslint/eslint-plugin": "^5.11.0", - "@typescript-eslint/parser": "^5.11.0", + "@typescript-eslint/eslint-plugin": "^5.14.0", + "@typescript-eslint/parser": "^5.14.0", "chai": "^4.3.6", - "eslint": "^8.9.0", + "eslint": "^8.10.0", "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^16.1.0", + "eslint-config-airbnb-typescript": "^16.1.1", "eslint-plugin-import": "^2.25.4", "io-ts-types": "^0.5.16", "istanbul": "^0.4.5", - "mocha": "^9.2.0", + "mocha": "^9.2.1", "nodemon": "^2.0.15", "sequelize-cli": "^6.4.1", "should": "^13.2.3", "supertest": "^6.2.2", "ts-mocha": "^9.0.2", - "ts-node": "^10.5.0", + "ts-node": "^10.7.0", "ts-node-dev": "^1.1.8", - "tsconfig-paths": "^3.12.0" + "tsconfig-paths": "^3.13.0" }, "engines": { "node": ">= 14.17.0", @@ -109,16 +109,16 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", @@ -128,33 +128,20 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } }, "node_modules/@eslint/eslintrc/node_modules/js-yaml": { "version": "4.1.0", @@ -168,12 +155,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", @@ -215,9 +196,9 @@ } }, "node_modules/@node-redis/client": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.3.tgz", - "integrity": "sha512-IXNgOG99PHGL3NxN3/e8J8MuX+H08I+OMNmheGmZBXngE0IntaCQwwrd7NzmiHA+zH3SKHiJ+6k3P7t7XYknMw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.4.tgz", + "integrity": "sha512-IM/NRAqg7MvNC3bIRQipXGrEarunrdgvrbAzsd3ty93LSHi/M+ybQulOERQi8a3M+P5BL8HenwXjiIoKm6ml2g==", "dependencies": { "cluster-key-slot": "1.1.0", "generic-pool": "3.8.2", @@ -245,17 +226,17 @@ } }, "node_modules/@node-redis/search": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.2.tgz", - "integrity": "sha512-gWhEeji+kTAvzZeguUNJdMSZNH2c5dv3Bci8Nn2f7VGuf6IvvwuZDSBOuOlirLVgayVuWzAG7EhwaZWK1VDnWQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.3.tgz", + "integrity": "sha512-rsrzkGWI84di/uYtEctS/4qLusWt0DESx/psjfB0TFpORDhe7JfC0h8ary+eHulTksumor244bXLRSqQXbFJmw==", "peerDependencies": { "@node-redis/client": "^1.0.0" } }, "node_modules/@node-redis/time-series": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.1.tgz", - "integrity": "sha512-+nTn6EewVj3GlUXPuD3dgheWqo219jTxlo6R+pg24OeVvFHx9aFGGiyOgj3vBPhWUdRZ0xMcujXV5ki4fbLyMw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.2.tgz", + "integrity": "sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA==", "peerDependencies": { "@node-redis/client": "^1.0.0" } @@ -309,6 +290,66 @@ "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==", "hasInstallScript": true }, + "node_modules/@sequelize/core": { + "version": "7.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@sequelize/core/-/core-7.0.0-alpha.10.tgz", + "integrity": "sha512-uikpWaCiIaijsgoa9cH+3jCQl8r+FaQPhoE8AOJYvPwxOx52E1JZnRPMXNnlpbFy3Xu0qekrc5LBJq7IR8UB0Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/sequelize" + } + ], + "dependencies": { + "@types/debug": "^4.1.7", + "debug": "^4.3.3", + "dottie": "^2.0.2", + "inflection": "^1.13.1", + "lodash": "^4.17.21", + "moment": "^2.29.1", + "moment-timezone": "^0.5.34", + "pg-connection-string": "^2.5.0", + "retry-as-promised": "^5.0.0", + "semver": "^7.3.5", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.7.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependenciesMeta": { + "ibm_db": { + "optional": true + }, + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "odbc": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "snowflake-sdk": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -370,7 +411,7 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, + "devOptional": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -380,7 +421,7 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, + "devOptional": true, "dependencies": { "@types/node": "*" } @@ -418,7 +459,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, + "devOptional": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -430,7 +471,7 @@ "version": "4.17.28", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dev": true, + "devOptional": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -486,16 +527,16 @@ } }, "node_modules/@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==", + "version": "4.14.179", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz", + "integrity": "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==", "dev": true }, "node_modules/@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true + "devOptional": true }, "node_modules/@types/minimatch": { "version": "3.0.5", @@ -514,9 +555,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", - "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==" + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "node_modules/@types/nodemailer": { "version": "6.4.4", @@ -531,12 +572,12 @@ "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true + "devOptional": true }, "node_modules/@types/ramda": { - "version": "0.27.64", - "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.27.64.tgz", - "integrity": "sha512-EDf++ss/JoMiDpvT1MuA8oi88OwpvmqVE+o8Ojm5v/5bdJEPZ6eIQd/XYAeQ0imlwG6Tf0Npfq4Z9w3hAKBk9Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-8wnJK5aPaGL7AYhQSe7olwxjhIB9GO4GOCxd6JjYlVNe128DHJDOu7Kyve4kx4uazeKJdnOS3N5TVRv0z1bb1g==", "dev": true, "dependencies": { "ts-toolbelt": "^6.15.1" @@ -546,7 +587,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "devOptional": true }, "node_modules/@types/recursive-readdir": { "version": "2.2.0", @@ -561,7 +602,7 @@ "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, + "devOptional": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -623,14 +664,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", - "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz", + "integrity": "sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/type-utils": "5.11.0", - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/type-utils": "5.14.0", + "@typescript-eslint/utils": "5.14.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -665,14 +706,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", - "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", + "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/typescript-estree": "5.14.0", "debug": "^4.3.2" }, "engines": { @@ -692,13 +733,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", + "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -709,12 +750,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", - "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz", + "integrity": "sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/utils": "5.14.0", "debug": "^4.3.2", "tsutils": "^3.21.0" }, @@ -735,9 +776,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", + "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -748,13 +789,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", + "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -849,18 +890,6 @@ "node": ">= 4" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -893,15 +922,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", - "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz", + "integrity": "sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/typescript-estree": "5.14.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -917,12 +946,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", + "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/types": "5.14.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -946,31 +975,12 @@ "dev": true }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "mime-db": "1.51.0" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -1006,6 +1016,22 @@ "node": ">=0.4.0" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/align-text": { "version": "0.1.4", "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", @@ -1262,9 +1288,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1073.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1073.0.tgz", - "integrity": "sha512-TtyHDL4ZEs8Zh/DqWY/hv745DTWrIwOyBAvfjBJ45RE9h0TjpWqCIowEtb6gRPAKyPPyfGH4s+rEYu07vNK1Hg==", + "version": "2.1092.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1092.0.tgz", + "integrity": "sha512-8PH2rOgZazGT3VfGPkKcvzz2K9ylVfDniJH4WfJXHEBGxu0+XEMDbjuYpe8k/L1C7w0UTP6CuChjqCxgJznrxg==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -1404,19 +1430,19 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dependencies": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", + "qs": "6.9.7", + "raw-body": "2.4.3", "type-is": "~1.6.18" }, "engines": { @@ -1431,17 +1457,6 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/boxen": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", @@ -1521,9 +1536,9 @@ "dev": true }, "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } @@ -1940,9 +1955,9 @@ } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "engines": { "node": ">= 0.6" } @@ -2021,9 +2036,9 @@ } }, "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.5.tgz", + "integrity": "sha512-zBhRiN/M0gDxUoM2xRtzTjJzSg0XEi1ofYpF84PfXeS3hN2PsGxmc7jw3DNQtFlimRbMmob5FC3G0cJq6jQQpw==", "engines": { "node": ">=4.0" } @@ -2489,12 +2504,12 @@ } }, "node_modules/eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -2569,16 +2584,18 @@ } }, "node_modules/eslint-config-airbnb-typescript": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.1.0.tgz", - "integrity": "sha512-W5Cq20KpEx5ZLC54bnVrC37zq2+WD956Kp/Ma3nYFRjT1v9KM63v+DPkrrmmrVqrlDKaD0ivm/qeYmyHV6qKlw==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.1.2.tgz", + "integrity": "sha512-IZnWyJXCYGpWvEmGQ9eyxQUnuH/NTmw4E6pI+NNGNxu4weWclZstaDGjzD+lrld81sP4BKshaigLbqFWBB9QPg==", "dev": true, "dependencies": { "eslint-config-airbnb-base": "^15.0.0" }, "peerDependencies": { "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3" } }, "node_modules/eslint-import-resolver-node": { @@ -2740,18 +2757,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -2793,30 +2798,14 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2836,15 +2825,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", @@ -2854,12 +2834,6 @@ "node": ">=4.0" } }, - "node_modules/eslint/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2872,18 +2846,6 @@ "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint/node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -2905,12 +2867,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/eslint/node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2976,15 +2932,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -3119,16 +3066,16 @@ } }, "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.19.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.4.2", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", @@ -3143,7 +3090,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.9.7", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.17.2", @@ -3193,17 +3140,6 @@ "ms": "2.0.0" } }, - "node_modules/express/node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -3363,6 +3299,12 @@ "@types/yauzl": "^2.9.1" } }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "node_modules/fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -3627,9 +3569,9 @@ } }, "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4425,9 +4367,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { "is-extglob": "^2.1.1" }, @@ -4876,6 +4818,12 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -5102,15 +5050,15 @@ } }, "node_modules/log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.2.tgz", + "integrity": "sha512-k80cggS2sZQLBwllpT1p06GtfvzMmSdUCkW96f0Hj83rKGJDAu2vZjt9B9ag2vx8Zz1IXzxoLgqvRJCdMKybGg==", "dependencies": { - "date-format": "^4.0.3", + "date-format": "^4.0.4", "debug": "^4.3.3", - "flatted": "^3.2.4", + "flatted": "^3.2.5", "rfdc": "^1.3.0", - "streamroller": "^3.0.2" + "streamroller": "^3.0.4" }, "engines": { "node": ">=8.0" @@ -5402,21 +5350,19 @@ } }, "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz", - "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s=", - "dev": true, + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz", - "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=", - "dev": true, + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -5485,9 +5431,9 @@ } }, "node_modules/mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "dependencies": { "@ungap/promise-all-settled": "1.1.2", @@ -5503,9 +5449,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -5553,6 +5499,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5574,6 +5532,18 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5716,9 +5686,9 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "node_modules/nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -5763,9 +5733,9 @@ "dev": true }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { "node": ">= 0.6" } @@ -6316,6 +6286,17 @@ "node": ">=8" } }, + "node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -6380,11 +6361,11 @@ } }, "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "dependencies": { - "bytes": "3.1.1", + "bytes": "3.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" @@ -6467,16 +6448,16 @@ } }, "node_modules/redis": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.3.tgz", - "integrity": "sha512-SJMRXvgiQUYN0HaWwWv002J5ZgkhYXOlbLomzcrL3kP42yRNZ8Jx5nvLYhVpgmf10xcDpanFOxxJkphu2eyIFQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.4.tgz", + "integrity": "sha512-KaM1OAj/nGrSeybmmOWSMY0LXTGT6FVWgUZZrd2MYzXKJ+VGtqVaciGQeNMfZiQX+kDM8Ke4uttb54m2rm6V0A==", "dependencies": { "@node-redis/bloom": "1.0.1", - "@node-redis/client": "1.0.3", + "@node-redis/client": "1.0.4", "@node-redis/graph": "1.0.0", "@node-redis/json": "1.0.2", - "@node-redis/search": "1.0.2", - "@node-redis/time-series": "1.0.1" + "@node-redis/search": "1.0.3", + "@node-redis/time-series": "1.0.2" } }, "node_modules/redis-errors": { @@ -6773,102 +6754,45 @@ "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" - }, - "node_modules/sequelize": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.1.tgz", - "integrity": "sha512-YFGqrwkmEhSbpZBxay5+PRKMiZNNUJzgIixCyFkLm9+/5Rqq5jBADEjTAC8RYHzwsOGNboYh18imXrYNCjBZCQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/sequelize" - } - ], - "dependencies": { - "@types/debug": "^4.1.7", - "debug": "^4.3.3", - "dottie": "^2.0.2", - "inflection": "^1.13.1", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "moment-timezone": "^0.5.34", - "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", - "semver": "^7.3.5", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.7.0", - "wkx": "^0.5.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependenciesMeta": { - "ibm_db": { - "optional": true - }, - "mariadb": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-hstore": { - "optional": true - }, - "snowflake-sdk": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "tedious": { - "optional": true - } + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "1.8.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" } }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + }, "node_modules/sequelize-cli": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/sequelize-cli/-/sequelize-cli-6.4.1.tgz", @@ -6941,14 +6865,6 @@ "node": ">= 10.0.0" } }, - "node_modules/sequelize/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -7334,13 +7250,13 @@ } }, "node_modules/streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.5.tgz", + "integrity": "sha512-5uzTEUIi4OB5zy/H30kbUN/zpDNJsFUA+Z47ZL8EfrP93lcZvRLEqdbhdunEPa7CouuAzXXsHpCJ9dg90Umw7g==", "dependencies": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" + "date-format": "^4.0.5", + "debug": "^4.3.3", + "fs-extra": "^10.0.1" }, "engines": { "node": ">=8.0" @@ -7760,9 +7676,9 @@ } }, "node_modules/ts-node": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.5.0.tgz", - "integrity": "sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "0.7.0", @@ -7782,6 +7698,7 @@ "bin": { "ts-node": "dist/bin.js", "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" @@ -7916,9 +7833,9 @@ } }, "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", + "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", @@ -8026,25 +7943,6 @@ "node": ">= 0.6" } }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -8055,9 +7953,9 @@ } }, "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8372,6 +8270,14 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -8668,44 +8574,32 @@ } }, "@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", + "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.1", "globals": "^13.9.0", - "ignore": "^4.0.6", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "js-yaml": { @@ -8716,12 +8610,6 @@ "requires": { "argparse": "^2.0.1" } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true } } }, @@ -8754,12 +8642,13 @@ "@node-redis/bloom": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@node-redis/bloom/-/bloom-1.0.1.tgz", - "integrity": "sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==" + "integrity": "sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==", + "requires": {} }, "@node-redis/client": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.3.tgz", - "integrity": "sha512-IXNgOG99PHGL3NxN3/e8J8MuX+H08I+OMNmheGmZBXngE0IntaCQwwrd7NzmiHA+zH3SKHiJ+6k3P7t7XYknMw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@node-redis/client/-/client-1.0.4.tgz", + "integrity": "sha512-IM/NRAqg7MvNC3bIRQipXGrEarunrdgvrbAzsd3ty93LSHi/M+ybQulOERQi8a3M+P5BL8HenwXjiIoKm6ml2g==", "requires": { "cluster-key-slot": "1.1.0", "generic-pool": "3.8.2", @@ -8770,22 +8659,26 @@ "@node-redis/graph": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@node-redis/graph/-/graph-1.0.0.tgz", - "integrity": "sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==" + "integrity": "sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==", + "requires": {} }, "@node-redis/json": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@node-redis/json/-/json-1.0.2.tgz", - "integrity": "sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==" + "integrity": "sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==", + "requires": {} }, "@node-redis/search": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.2.tgz", - "integrity": "sha512-gWhEeji+kTAvzZeguUNJdMSZNH2c5dv3Bci8Nn2f7VGuf6IvvwuZDSBOuOlirLVgayVuWzAG7EhwaZWK1VDnWQ==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@node-redis/search/-/search-1.0.3.tgz", + "integrity": "sha512-rsrzkGWI84di/uYtEctS/4qLusWt0DESx/psjfB0TFpORDhe7JfC0h8ary+eHulTksumor244bXLRSqQXbFJmw==", + "requires": {} }, "@node-redis/time-series": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.1.tgz", - "integrity": "sha512-+nTn6EewVj3GlUXPuD3dgheWqo219jTxlo6R+pg24OeVvFHx9aFGGiyOgj3vBPhWUdRZ0xMcujXV5ki4fbLyMw==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@node-redis/time-series/-/time-series-1.0.2.tgz", + "integrity": "sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA==", + "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -8825,6 +8718,28 @@ "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==" }, + "@sequelize/core": { + "version": "7.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@sequelize/core/-/core-7.0.0-alpha.10.tgz", + "integrity": "sha512-uikpWaCiIaijsgoa9cH+3jCQl8r+FaQPhoE8AOJYvPwxOx52E1JZnRPMXNnlpbFy3Xu0qekrc5LBJq7IR8UB0Q==", + "requires": { + "@types/debug": "^4.1.7", + "debug": "^4.3.3", + "dottie": "^2.0.2", + "inflection": "^1.13.1", + "lodash": "^4.17.21", + "moment": "^2.29.1", + "moment-timezone": "^0.5.34", + "pg-connection-string": "^2.5.0", + "retry-as-promised": "^5.0.0", + "semver": "^7.3.5", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.7.0", + "wkx": "^0.5.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -8880,7 +8795,7 @@ "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, + "devOptional": true, "requires": { "@types/connect": "*", "@types/node": "*" @@ -8890,7 +8805,7 @@ "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, + "devOptional": true, "requires": { "@types/node": "*" } @@ -8928,7 +8843,7 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, + "devOptional": true, "requires": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -8940,7 +8855,7 @@ "version": "4.17.28", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "dev": true, + "devOptional": true, "requires": { "@types/node": "*", "@types/qs": "*", @@ -8996,16 +8911,16 @@ } }, "@types/lodash": { - "version": "4.14.178", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", - "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==", + "version": "4.14.179", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz", + "integrity": "sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==", "dev": true }, "@types/mime": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true + "devOptional": true }, "@types/minimatch": { "version": "3.0.5", @@ -9024,9 +8939,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", - "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==" + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==" }, "@types/nodemailer": { "version": "6.4.4", @@ -9041,12 +8956,12 @@ "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true + "devOptional": true }, "@types/ramda": { - "version": "0.27.64", - "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.27.64.tgz", - "integrity": "sha512-EDf++ss/JoMiDpvT1MuA8oi88OwpvmqVE+o8Ojm5v/5bdJEPZ6eIQd/XYAeQ0imlwG6Tf0Npfq4Z9w3hAKBk9Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-8wnJK5aPaGL7AYhQSe7olwxjhIB9GO4GOCxd6JjYlVNe128DHJDOu7Kyve4kx4uazeKJdnOS3N5TVRv0z1bb1g==", "dev": true, "requires": { "ts-toolbelt": "^6.15.1" @@ -9056,7 +8971,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "devOptional": true }, "@types/recursive-readdir": { "version": "2.2.0", @@ -9071,7 +8986,7 @@ "version": "1.13.10", "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, + "devOptional": true, "requires": { "@types/mime": "^1", "@types/node": "*" @@ -9133,14 +9048,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", - "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz", + "integrity": "sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/type-utils": "5.11.0", - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/type-utils": "5.14.0", + "@typescript-eslint/utils": "5.14.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -9158,52 +9073,52 @@ } }, "@typescript-eslint/parser": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", - "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.14.0.tgz", + "integrity": "sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/typescript-estree": "5.14.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", - "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz", + "integrity": "sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0" + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0" } }, "@typescript-eslint/type-utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", - "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz", + "integrity": "sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.11.0", + "@typescript-eslint/utils": "5.14.0", "debug": "^4.3.2", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", - "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.14.0.tgz", + "integrity": "sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", - "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz", + "integrity": "sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/visitor-keys": "5.11.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/visitor-keys": "5.14.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -9265,15 +9180,6 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -9299,26 +9205,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", - "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.14.0.tgz", + "integrity": "sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.11.0", - "@typescript-eslint/types": "5.11.0", - "@typescript-eslint/typescript-estree": "5.11.0", + "@typescript-eslint/scope-manager": "5.14.0", + "@typescript-eslint/types": "5.14.0", + "@typescript-eslint/typescript-estree": "5.14.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", - "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz", + "integrity": "sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/types": "5.14.0", "eslint-visitor-keys": "^3.0.0" } }, @@ -9335,27 +9241,12 @@ "dev": true }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "dependencies": { - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - } + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { @@ -9368,7 +9259,8 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.2.0", @@ -9376,6 +9268,18 @@ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "align-text": { "version": "0.1.4", "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", @@ -9565,9 +9469,9 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "aws-sdk": { - "version": "2.1073.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1073.0.tgz", - "integrity": "sha512-TtyHDL4ZEs8Zh/DqWY/hv745DTWrIwOyBAvfjBJ45RE9h0TjpWqCIowEtb6gRPAKyPPyfGH4s+rEYu07vNK1Hg==", + "version": "2.1092.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1092.0.tgz", + "integrity": "sha512-8PH2rOgZazGT3VfGPkKcvzz2K9ylVfDniJH4WfJXHEBGxu0+XEMDbjuYpe8k/L1C7w0UTP6CuChjqCxgJznrxg==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -9669,19 +9573,19 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", + "qs": "6.9.7", + "raw-body": "2.4.3", "type-is": "~1.6.18" }, "dependencies": { @@ -9692,11 +9596,6 @@ "requires": { "ms": "2.0.0" } - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" } } }, @@ -9767,9 +9666,9 @@ "dev": true }, "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "cache-base": { "version": "1.0.1", @@ -10092,9 +9991,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" }, "cookie-signature": { "version": "1.0.6", @@ -10157,9 +10056,9 @@ } }, "date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==" + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.5.tgz", + "integrity": "sha512-zBhRiN/M0gDxUoM2xRtzTjJzSg0XEi1ofYpF84PfXeS3hN2PsGxmc7jw3DNQtFlimRbMmob5FC3G0cJq6jQQpw==" }, "debug": { "version": "4.3.3", @@ -10533,12 +10432,12 @@ "dev": true }, "eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", + "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.2.1", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -10575,18 +10474,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -10603,24 +10490,12 @@ "estraverse": "^5.2.0" } }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -10628,17 +10503,6 @@ "dev": true, "requires": { "is-glob": "^4.0.3" - }, - "dependencies": { - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - } } }, "ignore": { @@ -10656,12 +10520,6 @@ "argparse": "^2.0.1" } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -10724,9 +10582,9 @@ } }, "eslint-config-airbnb-typescript": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.1.0.tgz", - "integrity": "sha512-W5Cq20KpEx5ZLC54bnVrC37zq2+WD956Kp/Ma3nYFRjT1v9KM63v+DPkrrmmrVqrlDKaD0ivm/qeYmyHV6qKlw==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-16.1.2.tgz", + "integrity": "sha512-IZnWyJXCYGpWvEmGQ9eyxQUnuH/NTmw4E6pI+NNGNxu4weWclZstaDGjzD+lrld81sP4BKshaigLbqFWBB9QPg==", "dev": true, "requires": { "eslint-config-airbnb-base": "^15.0.0" @@ -10867,15 +10725,6 @@ "requires": { "esutils": "^2.0.2" } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } } } }, @@ -10907,9 +10756,9 @@ } }, "eslint-visitor-keys": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz", - "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { @@ -10921,14 +10770,6 @@ "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } } }, "esquery": { @@ -11038,16 +10879,16 @@ } }, "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.19.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.4.2", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", @@ -11062,7 +10903,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.9.7", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.17.2", @@ -11082,11 +10923,6 @@ "ms": "2.0.0" } }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -11222,6 +11058,12 @@ "yauzl": "^2.10.0" } }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -11436,9 +11278,9 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", + "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11882,7 +11724,8 @@ "io-ts": { "version": "2.2.16", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz", - "integrity": "sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==" + "integrity": "sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==", + "requires": {} }, "io-ts-reporters": { "version": "2.0.1", @@ -11896,7 +11739,8 @@ "version": "0.5.16", "resolved": "https://registry.npmjs.org/io-ts-types/-/io-ts-types-0.5.16.tgz", "integrity": "sha512-h9noYVfY9rlbmKI902SJdnV/06jgiT2chxG6lYDxaYNp88HscPi+SBCtmcU+m0E7WT5QSwt7sIMj93+qu0FEwQ==", - "dev": true + "dev": true, + "requires": {} }, "ipaddr.js": { "version": "1.9.1", @@ -12019,9 +11863,9 @@ "dev": true }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } @@ -12333,6 +12177,12 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -12527,15 +12377,15 @@ } }, "log4js": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", - "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.2.tgz", + "integrity": "sha512-k80cggS2sZQLBwllpT1p06GtfvzMmSdUCkW96f0Hj83rKGJDAu2vZjt9B9ag2vx8Zz1IXzxoLgqvRJCdMKybGg==", "requires": { - "date-format": "^4.0.3", + "date-format": "^4.0.4", "debug": "^4.3.3", - "flatted": "^3.2.4", + "flatted": "^3.2.5", "rfdc": "^1.3.0", - "streamroller": "^3.0.2" + "streamroller": "^3.0.4" } }, "long": { @@ -12770,18 +12620,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.33.0", - "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.33.0.tgz", - "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s=", - "dev": true + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.18", - "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.18.tgz", - "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=", - "dev": true, + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.52.0" } }, "mimic-response": { @@ -12833,9 +12681,9 @@ } }, "mocha": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.0.tgz", - "integrity": "sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", @@ -12851,9 +12699,9 @@ "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.2.0", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -12882,6 +12730,17 @@ "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "has-flag": { @@ -12899,6 +12758,15 @@ "argparse": "^2.0.1" } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -13014,9 +12882,9 @@ } }, "nanoid": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "nanomatch": { @@ -13051,9 +12919,9 @@ "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "next-tick": { "version": "1.0.0", @@ -13468,6 +13336,11 @@ "escape-goat": "^2.0.0" } }, + "qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -13504,11 +13377,11 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" @@ -13575,16 +13448,16 @@ } }, "redis": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.3.tgz", - "integrity": "sha512-SJMRXvgiQUYN0HaWwWv002J5ZgkhYXOlbLomzcrL3kP42yRNZ8Jx5nvLYhVpgmf10xcDpanFOxxJkphu2eyIFQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/redis/-/redis-4.0.4.tgz", + "integrity": "sha512-KaM1OAj/nGrSeybmmOWSMY0LXTGT6FVWgUZZrd2MYzXKJ+VGtqVaciGQeNMfZiQX+kDM8Ke4uttb54m2rm6V0A==", "requires": { "@node-redis/bloom": "1.0.1", - "@node-redis/client": "1.0.3", + "@node-redis/client": "1.0.4", "@node-redis/graph": "1.0.0", "@node-redis/json": "1.0.2", - "@node-redis/search": "1.0.2", - "@node-redis/time-series": "1.0.1" + "@node-redis/search": "1.0.3", + "@node-redis/time-series": "1.0.2" } }, "redis-errors": { @@ -13840,35 +13713,6 @@ "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" }, - "sequelize": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.1.tgz", - "integrity": "sha512-YFGqrwkmEhSbpZBxay5+PRKMiZNNUJzgIixCyFkLm9+/5Rqq5jBADEjTAC8RYHzwsOGNboYh18imXrYNCjBZCQ==", - "requires": { - "@types/debug": "^4.1.7", - "debug": "^4.3.3", - "dottie": "^2.0.2", - "inflection": "^1.13.1", - "lodash": "^4.17.21", - "moment": "^2.29.1", - "moment-timezone": "^0.5.34", - "pg-connection-string": "^2.5.0", - "retry-as-promised": "^5.0.0", - "semver": "^7.3.5", - "sequelize-pool": "^7.1.0", - "toposort-class": "^1.0.1", - "uuid": "^8.3.2", - "validator": "^13.7.0", - "wkx": "^0.5.0" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, "sequelize-cli": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/sequelize-cli/-/sequelize-cli-6.4.1.tgz", @@ -14243,13 +14087,13 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "streamroller": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", - "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.5.tgz", + "integrity": "sha512-5uzTEUIi4OB5zy/H30kbUN/zpDNJsFUA+Z47ZL8EfrP93lcZvRLEqdbhdunEPa7CouuAzXXsHpCJ9dg90Umw7g==", "requires": { - "date-format": "^4.0.3", - "debug": "^4.1.1", - "fs-extra": "^10.0.0" + "date-format": "^4.0.5", + "debug": "^4.3.3", + "fs-extra": "^10.0.1" } }, "string_decoder": { @@ -14552,9 +14396,9 @@ } }, "ts-node": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.5.0.tgz", - "integrity": "sha512-6kEJKwVxAJ35W4akuiysfKwKmjkbYxwQMTBaAxo9KKAx/Yd26mPUyhGz3ji+EsJoAgrLqVsYHNuuYwQe22lbtw==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", + "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, "requires": { "@cspotcode/source-map-support": "0.7.0", @@ -14659,9 +14503,9 @@ } }, "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz", + "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -14736,21 +14580,6 @@ "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" - }, - "dependencies": { - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - } } }, "typedarray-to-buffer": { @@ -14763,9 +14592,9 @@ } }, "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==" }, "uglify-js": { "version": "2.8.29", @@ -15012,6 +14841,11 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", diff --git a/package.json b/package.json index 99d9329..4227327 100644 --- a/package.json +++ b/package.json @@ -29,42 +29,43 @@ }, "scripts": { "dev": "ts-node-dev --rs --watch src/**/* --respawn src/app.ts", + "recreate-db": "npm run build && tscpaths -p tsconfig.json -s ./src -o ./dist && sequelize-cli db:drop && sequelize-cli db:create && sequelize-cli db:migrate", "build": "tsc && tscpaths -p tsconfig.json -s ./src -o ./dist", "start": "node dist/server.js", "eslint:fix": "eslint --fix", "eslint": "eslint lint", - "test": "NODE_ENV=test ts-mocha -r tsconfig-paths/register src/**/*.test.ts --timeout 10000 --exit", + "test": "npm run recreate-db && NODE_ENV=test ts-mocha -r tsconfig-paths/register src/**/*.test.ts --timeout 10000 --exit", "preinstall": "npm i -g pm2 && pm2 install pm2-logrotate" }, "dependencies": { - "aws-sdk": "^2.1073.0", + "@sequelize/core": "^7.0.0-alpha.10", + "aws-sdk": "^2.1091.0", "bcryptjs": "^2.4.3", "bluebird": "^3.7.2", "diff-match-patch": "^1.0.5", "dotenv": "^16.0.0", - "express": "^4.17.2", + "express": "^4.17.3", "express-promise-router": "^4.1.1", "extract-zip": "^2.0.1", "formidable": "^2.0.1", "fp-ts": "^2.11.8", - "fs-extra": "^10.0.0", + "fs-extra": "^10.0.1", "helmet": "^5.0.2", "io-ts": "^2.2.16", "io-ts-reporters": "^2.0.1", "jschardet": "^3.0.0", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", - "log4js": "^6.4.1", + "log4js": "^6.4.2", "moment": "^2.29.1", "mysql2": "^2.3.3", "nodemailer": "^6.7.2", "ramda": "^0.28.0", "rand-token": "^1.0.1", "recursive-readdir": "^2.2.2", - "redis": "^4.0.3", - "sequelize": "^6.16.1", + "redis": "^4.0.4", "tscpaths": "0.0.9", - "typescript": "^4.5.5", + "typescript": "^4.6.2", "validator": "^13.7.0", "yazl": "^2.5.1" }, @@ -77,33 +78,32 @@ "@types/formidable": "^2.0.4", "@types/fs-extra": "^9.0.13", "@types/jsonwebtoken": "^8.5.8", - "@types/lodash": "^4.14.178", + "@types/lodash": "^4.14.179", "@types/mocha": "^9.1.0", - "@types/node": "^17.0.17", + "@types/node": "^17.0.21", "@types/nodemailer": "^6.4.4", - "@types/ramda": "^0.27.64", + "@types/ramda": "^0.28.1", "@types/recursive-readdir": "^2.2.0", "@types/supertest": "^2.0.11", "@types/validator": "^13.7.1", "@types/yazl": "^2.4.2", - "@typescript-eslint/eslint-plugin": "^5.11.0", - "@typescript-eslint/parser": "^5.11.0", + "@typescript-eslint/eslint-plugin": "^5.14.0", + "@typescript-eslint/parser": "^5.14.0", "chai": "^4.3.6", - "eslint": "^8.9.0", + "eslint": "^8.10.0", "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^16.1.0", + "eslint-config-airbnb-typescript": "^16.1.1", "eslint-plugin-import": "^2.25.4", "io-ts-types": "^0.5.16", "istanbul": "^0.4.5", - "mocha": "^9.2.0", + "mocha": "^9.2.1", "nodemon": "^2.0.15", - "sequelize-cli": "^6.4.1", "should": "^13.2.3", "supertest": "^6.2.2", "ts-mocha": "^9.0.2", - "ts-node": "^10.5.0", + "ts-node": "^10.7.0", "ts-node-dev": "^1.1.8", - "tsconfig-paths": "^3.12.0" + "tsconfig-paths": "^3.13.0" }, "files": [ "bin", diff --git a/sql/codepush-all.sql b/sql/codepush-all.sql deleted file mode 100644 index 8dfdfd7..0000000 --- a/sql/codepush-all.sql +++ /dev/null @@ -1,219 +0,0 @@ -CREATE DATABASE IF NOT EXISTS `codepush`; - -GRANT SELECT,UPDATE,INSERT ON `codepush`.* TO 'codepush'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; - -flush privileges; - -use `codepush`; -CREATE TABLE IF NOT EXISTS `apps` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(50) NOT NULL DEFAULT '', - `uid` bigint(20) unsigned NOT NULL DEFAULT '0', - `os` tinyint(3) unsigned NOT NULL DEFAULT '0', - `platform` tinyint(3) unsigned NOT NULL DEFAULT '0', - `is_use_diff_text` tinyint(3) unsigned NOT NULL DEFAULT '0', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_name` (`name`(12)) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -INSERT INTO `apps` (`id`, `name`, `uid`, `os`, `platform`, `is_use_diff_text`, `updated_at`, `created_at`, `deleted_at`) -VALUES (2, 'Demo-ios', 2, 1, 3, 0, '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL); - - -CREATE TABLE IF NOT EXISTS `collaborators` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `appid` int(10) unsigned NOT NULL DEFAULT '0', - `uid` bigint(20) unsigned NOT NULL DEFAULT '0', - `roles` varchar(20) NOT NULL DEFAULT '', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_appid` (`appid`), - KEY `idx_uid` (`uid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `collaborators` (`id`, `appid`, `uid`, `roles`, `updated_at`, `created_at`, `deleted_at`) -VALUES (2, 2, 2, 'Owner', '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL); - -CREATE TABLE IF NOT EXISTS `deployments` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `appid` int(10) unsigned NOT NULL DEFAULT '0', - `name` varchar(20) NOT NULL DEFAULT '', - `description` varchar(500) NOT NULL DEFAULT '', - `deployment_key` varchar(64) NOT NULL, - `last_deployment_version_id` int(10) unsigned NOT NULL DEFAULT '0', - `label_id` int(11) unsigned NOT NULL DEFAULT '0', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_appid` (`appid`), - KEY `idx_deploymentkey` (`deployment_key`(40)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `deployments` (`id`, `appid`, `name`, `description`, `deployment_key`, `last_deployment_version_id`, `label_id`, `updated_at`, `created_at`, `deleted_at`) -VALUES (1, 2, 'Production', '', 'sI6NnM7wMlsOb8cJuIPQjMG7T7TnGKIM9Vqsy', 1, 1, '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL), - (2, 2, 'Staging', '', 'qOvNYy821eOwmqPbIJqwCLFM3j9DGKIM9Vqsy', 0, 0, '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL); - - -CREATE TABLE IF NOT EXISTS `deployments_history` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `deployment_id` int(11) unsigned NOT NULL DEFAULT '0', - `package_id` int(10) unsigned NOT NULL DEFAULT '0', - `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_deployment_id` (`deployment_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `deployments_history` (`id`, `deployment_id`, `package_id`, `created_at`, `deleted_at`) -VALUES ('1', '1', '1', '2022-02-02 23:33:18', NULL); - - -CREATE TABLE IF NOT EXISTS `deployments_versions` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `deployment_id` int(11) unsigned NOT NULL DEFAULT '0', - `app_version` varchar(100) NOT NULL DEFAULT '', - `current_package_id` int(10) unsigned NOT NULL DEFAULT '0', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `deleted_at` timestamp NULL DEFAULT NULL, - `min_version` bigint(20) unsigned NOT NULL DEFAULT '0', - `max_version` bigint(20) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - KEY `idx_did_minversion` (`deployment_id`,`min_version`), - KEY `idx_did_maxversion` (`deployment_id`,`max_version`), - KEY `idx_did_appversion` (`deployment_id`,`app_version`(30)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `deployments_versions` (`id`, `deployment_id`, `app_version`, `current_package_id`, `updated_at`, `created_at`, `deleted_at`, `min_version`, `max_version`) -VALUES('1', '1', '1.0.22', '1', '2022-02-02 23:33:18', '2022-02-02 23:33:18', NULL, '1000000000000022', '1000000000000221'); - -CREATE TABLE IF NOT EXISTS `packages` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `deployment_version_id` int(10) unsigned NOT NULL DEFAULT '0', - `deployment_id` int(10) unsigned NOT NULL DEFAULT '0', - `description` varchar(500) NOT NULL DEFAULT '', - `package_hash` varchar(64) NOT NULL DEFAULT '', - `blob_url` varchar(255) NOT NULL DEFAULT '', - `size` int(11) unsigned NOT NULL DEFAULT '0', - `manifest_blob_url` varchar(255) NOT NULL DEFAULT '', - `release_method` varchar(20) NOT NULL DEFAULT '', - `label` varchar(20) NOT NULL DEFAULT '', - `original_label` varchar(20) NOT NULL DEFAULT '', - `original_deployment` varchar(20) NOT NULL DEFAULT '', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `released_by` bigint(20) unsigned NOT NULL DEFAULT '0', - `is_mandatory` tinyint(3) unsigned NOT NULL DEFAULT '0', - `is_disabled` tinyint(3) unsigned NOT NULL DEFAULT '0', - `rollout` tinyint(3) unsigned NOT NULL DEFAULT '0', - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_deploymentid_label` (`deployment_id`,`label`(8)), - KEY `idx_versions_id` (`deployment_version_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `packages` (`id`, `deployment_version_id`, `deployment_id`, `description`, `package_hash`, `blob_url`, `size`, `manifest_blob_url`, `release_method`, `label`, `original_label`, `original_deployment`, `updated_at`, `created_at`, `released_by`, `is_mandatory`, `is_disabled`, `rollout`, `deleted_at`) -VALUES('1', '1', '1', 'Stability and bug improvements', '9900ed2756469d8e5fdd033428759f61fd790f03d976f7f22508cebe2b6c5209', 'FqknIx9D93YD5V5gx8umcPlZ2o8e', '3213644', 'Fgco9ZpVS5y-PvjcIIzkDPb0eF6V', 'Upload', 'v1', '', '', '2022-02-02 23:33:18', '2022-02-02 23:33:18', '2', '0', '0', '100', NULL); - -CREATE TABLE IF NOT EXISTS `packages_diff` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `package_id` int(11) unsigned NOT NULL DEFAULT '0', - `diff_against_package_hash` varchar(64) NOT NULL DEFAULT '', - `diff_blob_url` varchar(255) NOT NULL DEFAULT '', - `diff_size` int(11) unsigned NOT NULL DEFAULT '0', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_packageid_hash` (`package_id`,`diff_against_package_hash`(40)) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `packages_metrics` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `package_id` int(10) unsigned NOT NULL DEFAULT '0', - `active` int(10) unsigned NOT NULL DEFAULT '0', - `downloaded` int(10) unsigned NOT NULL DEFAULT '0', - `failed` int(10) unsigned NOT NULL DEFAULT '0', - `installed` int(10) unsigned NOT NULL DEFAULT '0', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_packageid` (`package_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `packages_metrics` (`id`, `package_id`, `active`, `downloaded`, `failed`, `installed`, `updated_at`, `created_at`, `deleted_at`) -VALUES('1', '1', '0', '0', '0', '0', '2022-02-02 23:33:18', '2022-02-02 23:33:18', NULL); - - - -CREATE TABLE IF NOT EXISTS `user_tokens` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `uid` bigint(20) unsigned NOT NULL DEFAULT '0', - `name` varchar(50) NOT NULL DEFAULT '', - `tokens` varchar(64) NOT NULL DEFAULT '', - `created_by` varchar(64) NOT NULL DEFAULT '', - `description` varchar(500) NOT NULL DEFAULT '', - `is_session` tinyint(3) unsigned NOT NULL DEFAULT '0', - `expires_at` timestamp NULL DEFAULT NULL, - `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `deleted_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_uid` (`uid`), - KEY `idx_tokens` (`tokens`) KEY_BLOCK_SIZE=16 -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `user_tokens` (`id`, `uid`, `name`, `tokens`, `created_by`, `description`, `is_session`, `expires_at`, `created_at`, `deleted_at`) -VALUES (1, 2, 'TestKey', 'WOBavdmnCI4mxQKS6IiCmVtLrwlRGKIM9Vqsy', 2, 'This key will be used to login via the CLI', 0, '2027-02-01 22:45:09', '2022-02-02 22:45:09', NULL); - -CREATE TABLE IF NOT EXISTS `users` ( - `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT, - `username` varchar(50) NOT NULL DEFAULT '', - `password` varchar(255) NOT NULL DEFAULT '', - `email` varchar(100) NOT NULL DEFAULT '', - `identical` varchar(10) NOT NULL DEFAULT '', - `ack_code` varchar(10) NOT NULL DEFAULT '', - `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `created_at` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `udx_identical` (`identical`), - KEY `udx_username` (`username`), - KEY `idx_email` (`email`) KEY_BLOCK_SIZE=20 -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `users` (`id`, `username`, `password`, `email`, `identical`, `ack_code`, `updated_at`, `created_at`) -VALUES - (2, 'nativescript', '$2a$12$9KegEUMtCSuc.Pg8cNE8PexXe1QP4hH8czw9w407KJWUwMWcM8TEa', 'test@nativescript.com', 'GKIM9Vqsy', '', '2022-02-02 22:46:08', '2022-02-02 22:44:12'), - (3, 'colaborator', '$2a$12$9KegEUMtCSuc.Pg8cNE8PexXe1QP4hH8czw9w407KJWUwMWcM8TEa', 'colab@nativescript.com', 'GKIM9Vqsy1', '', '2022-02-02 22:46:08', '2022-02-02 22:44:12'); --- password is password123! -CREATE TABLE IF NOT EXISTS `versions` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '1.DBversion', - `version` varchar(10) NOT NULL DEFAULT '', - PRIMARY KEY (`id`), - UNIQUE KEY `udx_type` (`type`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -LOCK TABLES `versions` WRITE; -INSERT INTO `versions` (`id`, `type`, `version`) -VALUES - (1,1,'0.5.0'); -UNLOCK TABLES; - -CREATE TABLE IF NOT EXISTS `log_report_deploy` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `status` tinyint(3) unsigned NOT NULL DEFAULT '0', - `package_id` int(10) unsigned NOT NULL DEFAULT '0', - `client_unique_id` varchar(100) NOT NULL DEFAULT '', - `previous_label` varchar(20) NOT NULL DEFAULT '', - `previous_deployment_key` varchar(64) NOT NULL DEFAULT '', - `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -CREATE TABLE IF NOT EXISTS `log_report_download` ( - `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, - `package_id` int(10) unsigned NOT NULL DEFAULT '0', - `client_unique_id` varchar(100) NOT NULL DEFAULT '', - `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/sql/seeds.sql b/sql/seeds.sql new file mode 100644 index 0000000..39d11d1 --- /dev/null +++ b/sql/seeds.sql @@ -0,0 +1,36 @@ +GRANT SELECT,UPDATE,INSERT ON `codepush`.* TO 'codepush'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; + +flush privileges; +use `codepush`; + +INSERT INTO `apps` (`id`, `name`, `uid`, `os`, `platform`, `is_use_diff_text`, `updated_at`, `created_at`, `deleted_at`) +VALUES (2, 'Demo-ios', 2, 1, 3, 0, '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL); + +INSERT INTO `collaborators` (`id`, `appid`, `uid`, `roles`, `updated_at`, `created_at`, `deleted_at`) +VALUES (2, 2, 2, 'Owner', '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL); + +INSERT INTO `deployments` (`id`, `appid`, `name`, `description`, `deployment_key`, `last_deployment_version_id`, `label_id`, `updated_at`, `created_at`, `deleted_at`) +VALUES (1, 2, 'Production', '', 'sI6NnM7wMlsOb8cJuIPQjMG7T7TnGKIM9Vqsy', 1, 1, '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL), + (2, 2, 'Staging', '', 'qOvNYy821eOwmqPbIJqwCLFM3j9DGKIM9Vqsy', 0, 0, '2022-02-02 22:44:38', '2022-02-02 22:44:38', NULL); + +INSERT INTO `deployments_history` (`id`, `deployment_id`, `package_id`, `created_at`, `deleted_at`) +VALUES ('1', '1', '1', '2022-02-02 23:33:18', NULL); + +INSERT INTO `deployments_versions` (`id`, `deployment_id`, `app_version`, `current_package_id`, `updated_at`, `created_at`, `deleted_at`, `min_version`, `max_version`) +VALUES('1', '1', '1.0.22', '1', '2022-02-02 23:33:18', '2022-02-02 23:33:18', NULL, '1000000000000022', '1000000000000221'); + +INSERT INTO `packages` (`id`, `deployment_version_id`, `deployment_id`, `description`, `package_hash`, `blob_url`, `size`, `manifest_blob_url`, `release_method`, `label`, `original_label`, `original_deployment`, `updated_at`, `created_at`, `released_by`, `is_mandatory`, `is_disabled`, `rollout`, `deleted_at`) +VALUES('1', '1', '1', 'Stability and bug improvements', '9900ed2756469d8e5fdd033428759f61fd790f03d976f7f22508cebe2b6c5209', 'FqknIx9D93YD5V5gx8umcPlZ2o8e', '3213644', 'Fgco9ZpVS5y-PvjcIIzkDPb0eF6V', 'Upload', 'v1', '', '', '2022-02-02 23:33:18', '2022-02-02 23:33:18', '2', '0', '0', '100', NULL); + +INSERT INTO `packages_metrics` (`id`, `package_id`, `active`, `downloaded`, `failed`, `installed`, `updated_at`, `created_at`, `deleted_at`) +VALUES('1', '1', '0', '0', '0', '0', '2022-02-02 23:33:18', '2022-02-02 23:33:18', NULL); + +INSERT INTO `user_tokens` (`id`, `uid`, `name`, `tokens`, `created_by`, `description`, `is_session`, `expires_at`, `created_at`, `deleted_at`) +VALUES (1, 2, 'TestKey', 'WOBavdmnCI4mxQKS6IiCmVtLrwlRGKIM9Vqsy', 2, 'This key will be used to login via the CLI', 0, '2027-02-01 22:45:09', '2022-02-02 22:45:09', NULL); + +INSERT INTO `users` (`id`, `username`, `password`, `email`, `identical`, `ack_code`, `updated_at`, `created_at`) +VALUES + (2, 'nativescript', '$2a$12$9KegEUMtCSuc.Pg8cNE8PexXe1QP4hH8czw9w407KJWUwMWcM8TEa', 'test@nativescript.com', 'GKIM9Vqsy', '', '2022-02-02 22:46:08', '2022-02-02 22:44:12'), + (3, 'colaborator', '$2a$12$9KegEUMtCSuc.Pg8cNE8PexXe1QP4hH8czw9w407KJWUwMWcM8TEa', 'colab@nativescript.com', 'GKIM9Vqsy1', '', '2022-02-02 22:46:08', '2022-02-02 22:44:12'); +-- password is password123! + diff --git a/src/core/config.ts b/src/core/config.ts index 08a9234..d53a30e 100644 --- a/src/core/config.ts +++ b/src/core/config.ts @@ -1,6 +1,6 @@ import { Configuration as Log4JSConfig } from 'log4js' import { RedisClientOptions } from 'redis' -import sequelize from 'sequelize' +import sequelize from '@sequelize/core' import { ConfigurationOptions } from 'aws-sdk' import os from 'os' diff --git a/src/core/middleware/authMiddleware.ts b/src/core/middleware/authMiddleware.ts index 3439c4f..5aa4b5b 100644 --- a/src/core/middleware/authMiddleware.ts +++ b/src/core/middleware/authMiddleware.ts @@ -3,7 +3,7 @@ import * as security from '../utils/security' import * as models from '../../models' import moment from 'moment' import { AppError, UnauthorizedError } from '../app-error' -import { Op } from 'sequelize' +import { Op } from '@sequelize/core' import config from '../config' import jwt, { JwtPayload } from 'jsonwebtoken' import { Response, Request, NextFunction } from 'express' diff --git a/src/core/services/app-manager.ts b/src/core/services/app-manager.ts index 95b4617..bf2853f 100644 --- a/src/core/services/app-manager.ts +++ b/src/core/services/app-manager.ts @@ -4,7 +4,7 @@ import bluebird from 'bluebird' import * as security from '../../core/utils/security' import { AppError } from '../app-error' import constName from '../constants' -import Sequelize from 'sequelize' +import Sequelize from '@sequelize/core' import { AppAttributes, AppInstance } from '~/models/apps' import { UpdateModelAttrs } from '~/types' diff --git a/src/core/services/client-manager.ts b/src/core/services/client-manager.ts index 2d80748..d14a647 100644 --- a/src/core/services/client-manager.ts +++ b/src/core/services/client-manager.ts @@ -7,7 +7,7 @@ import { getRedisClient } from '../utils/redis' import { AppError } from '../app-error' import * as config from '../config' import log4js from 'log4js' -import Sequelize from 'sequelize' +import Sequelize from '@sequelize/core' const log = log4js.getLogger("cps:ClientManager") diff --git a/src/core/services/collaborators.ts b/src/core/services/collaborators.ts index 1cc943e..56a4d3e 100644 --- a/src/core/services/collaborators.ts +++ b/src/core/services/collaborators.ts @@ -1,7 +1,7 @@ import * as models from '../../models' import _ from 'lodash' import { AppError } from '../app-error' -import Sequelize from 'sequelize' +import Sequelize from '@sequelize/core' import { ICollaboratorInstance } from '~/models/collaborators'; export const listCollaborators = async function (appId: number) { diff --git a/src/core/services/package-manager.ts b/src/core/services/package-manager.ts index 1448d6d..1e87dce 100644 --- a/src/core/services/package-manager.ts +++ b/src/core/services/package-manager.ts @@ -14,7 +14,7 @@ import log4js from 'log4js' import { generateLabelId } from '~/queries' import * as bluebird from 'bluebird' import * as dataCenterManager from './datacenter-manager' -import { Op, Transaction } from 'sequelize' +import { Op, Transaction } from '@sequelize/core' import { PackageInfo, PackageInfoBuild } from 'src/types' import { Request } from 'express' import { PackagesAttributes, PackagesCreationAttributes, PackagesInstance } from '~/models/packages' diff --git a/src/db.ts b/src/db.ts index c28dd83..6666799 100644 --- a/src/db.ts +++ b/src/db.ts @@ -1,6 +1,23 @@ -import { Sequelize } from 'sequelize' +import { Sequelize } from '@sequelize/core' +import { exec } from 'child_process' + import config from './core/config' +try { + if (process.env.NODE_ENV === 'production') { + const migrate = exec( + 'sequelize db:migrate', + { env: process.env }, + err => console.log(err) + ); + migrate.stdout?.pipe(process.stdout); + migrate.stderr?.pipe(process.stderr); + } +} catch (error) { + console.log('Migration error:', error) +} + + const sequelize = new Sequelize(config.db); export { sequelize }; diff --git a/src/migrations/20220310225657-apps.ts b/src/migrations/20220310225657-apps.ts new file mode 100644 index 0000000..ac8f30a --- /dev/null +++ b/src/migrations/20220310225657-apps.ts @@ -0,0 +1,60 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'apps' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + name: { + type: DataTypes.STRING({ length: 50 }), + allowNull: false, + defaultValue: '' + }, + uid: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + os: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + platform: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + is_use_diff_text: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, { fields: [{ name: 'name', length: 12 }], transaction }) + }) + }, + + down: (queryInterface: QueryInterface) => queryInterface.dropTable(tableName) +}; \ No newline at end of file diff --git a/src/migrations/20220310231954-collaborators.ts b/src/migrations/20220310231954-collaborators.ts new file mode 100644 index 0000000..5d69ea4 --- /dev/null +++ b/src/migrations/20220310231954-collaborators.ts @@ -0,0 +1,51 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'collaborators' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => + queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable('collaborators', { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + appid: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + uid: { + type: DataTypes.BIGINT({ length: 20 }), + allowNull: false, + defaultValue: 0 + }, + roles: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + defaultValue: '' + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, ['appid'], { transaction }) + await queryInterface.addIndex(tableName, ['uid'], { transaction }) + } + ), + + down: (queryInterface: QueryInterface) => queryInterface.dropTable(tableName) +}; \ No newline at end of file diff --git a/src/migrations/20220310232914-deployments.ts b/src/migrations/20220310232914-deployments.ts new file mode 100644 index 0000000..41029e7 --- /dev/null +++ b/src/migrations/20220310232914-deployments.ts @@ -0,0 +1,64 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'deployments' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + appid: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + name: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + defaultValue: '' + }, + description: { + type: DataTypes.STRING({ length: 500 }), + allowNull: false, + defaultValue: '' + }, + deployment_key: { + type: DataTypes.STRING({ length: 64 }), + allowNull: false + }, + last_deployment_version_id: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + label_id: { + type: DataTypes.INTEGER({ length: 11 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, ['appid'], { transaction }) + await queryInterface.addIndex(tableName, { fields: [{ name: 'deployment_key', length: 40 }], transaction }) + } + ), + + down: (queryInterface: QueryInterface) => queryInterface.dropTable(tableName) +}; \ No newline at end of file diff --git a/src/migrations/20220310232921-deployments_history.ts b/src/migrations/20220310232921-deployments_history.ts new file mode 100644 index 0000000..ae7eff7 --- /dev/null +++ b/src/migrations/20220310232921-deployments_history.ts @@ -0,0 +1,44 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'deployments_history' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + deployment_id: { + type: DataTypes.INTEGER({ length: 11 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + package_id: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.addIndex(tableName, ['deployment_id'], { transaction }) + } + ) + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable(tableName) + } +}; \ No newline at end of file diff --git a/src/migrations/20220310232926-deployments_versions.ts b/src/migrations/20220310232926-deployments_versions.ts new file mode 100644 index 0000000..197e91c --- /dev/null +++ b/src/migrations/20220310232926-deployments_versions.ts @@ -0,0 +1,65 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'deployments_versions' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + deployment_id: { + type: DataTypes.INTEGER({ length: 11 }), + allowNull: false, + defaultValue: 0 + }, + app_version: { + type: DataTypes.STRING({ length: 100 }), + allowNull: false, + defaultValue: '' + }, + current_package_id: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + min_version: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + max_version: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, ['deployment_id', 'min_version'], { transaction }) + await queryInterface.addIndex(tableName, ['deployment_id', 'max_version'], { transaction }) + await queryInterface.addIndex(tableName, { fields: [{ name: 'app_version', length: 30 }, { name: 'deployment_id' }], transaction }) + }, + + ) + }, + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable(tableName) + } +}; \ No newline at end of file diff --git a/src/migrations/20220310232933-packages.ts b/src/migrations/20220310232933-packages.ts new file mode 100644 index 0000000..b843c1a --- /dev/null +++ b/src/migrations/20220310232933-packages.ts @@ -0,0 +1,114 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'packages' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + deployment_version_id: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + deployment_id: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + description: { + type: DataTypes.STRING({ length: 500 }), + allowNull: false, + defaultValue: '' + }, + package_hash: { + type: DataTypes.STRING({ length: 64 }), + allowNull: false, + defaultValue: '' + }, + blob_url: { + type: DataTypes.STRING({ length: 255 }), + allowNull: false, + defaultValue: '' + }, + manifest_blob_url: { + type: DataTypes.STRING({ length: 255 }), + allowNull: false, + defaultValue: '' + }, + release_method: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + defaultValue: '' + }, + label: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + defaultValue: '' + }, + original_label: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + defaultValue: '' + }, + original_deployment: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + defaultValue: '' + }, + size: { + type: DataTypes.INTEGER({ length: 11 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + released_by: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + is_mandatory: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + is_disabled: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + rollout: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, ['deployment_version_id'], { transaction }) + await queryInterface.addIndex(tableName, { fields: [{ name: 'deployment_id' }, { name: 'label', length: 8 }], transaction }) + } + ) + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable('packages') + } +}; \ No newline at end of file diff --git a/src/migrations/20220310232938-packages_diff.ts b/src/migrations/20220310232938-packages_diff.ts new file mode 100644 index 0000000..fbdcf7d --- /dev/null +++ b/src/migrations/20220310232938-packages_diff.ts @@ -0,0 +1,58 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'packages_diff' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + package_id: { + type: DataTypes.INTEGER({ length: 11 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + diff_against_package_hash: { + type: DataTypes.STRING({ length: 64 }), + allowNull: false, + defaultValue: '' + }, + diff_blob_url: { + type: DataTypes.STRING({ length: 255 }), + allowNull: false, + defaultValue: '' + }, + diff_size: { + type: DataTypes.INTEGER({ length: 11 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, { fields: [{ name: 'package_id' }, { name: 'diff_against_package_hash', length: 40 }], transaction }) + } + ) + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable('packages_diff') + } +}; \ No newline at end of file diff --git a/src/migrations/20220310232943-packages_metrics.ts b/src/migrations/20220310232943-packages_metrics.ts new file mode 100644 index 0000000..c93d1d1 --- /dev/null +++ b/src/migrations/20220310232943-packages_metrics.ts @@ -0,0 +1,63 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'packages_metrics' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + package_id: { + type: DataTypes.INTEGER({ length: 11 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + active: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + downloaded: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + failed: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + installed: { + type: DataTypes.INTEGER({ length: 10 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, ['package_id'], { transaction }) + } + ) + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable('packages_metrics') + } +}; \ No newline at end of file diff --git a/src/migrations/20220310232952-user_tokens.ts b/src/migrations/20220310232952-user_tokens.ts new file mode 100644 index 0000000..a490c2e --- /dev/null +++ b/src/migrations/20220310232952-user_tokens.ts @@ -0,0 +1,69 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'user_tokens' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + uid: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + name: { + type: DataTypes.STRING({ length: 50 }), + allowNull: false, + defaultValue: '' + }, + tokens: { + type: DataTypes.STRING({ length: 64 }), + allowNull: false, + defaultValue: '' + }, + created_by: { + type: DataTypes.STRING({ length: 64 }), + allowNull: false, + defaultValue: '' + }, + description: { + type: DataTypes.STRING({ length: 500 }), + allowNull: false, + defaultValue: '' + }, + is_session: { + type: DataTypes.TINYINT({ length: 3 }).UNSIGNED, + allowNull: false, + defaultValue: 0 + }, + expires_at: { + type: DataTypes.DATE, + defaultValue: null + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + }, + deleted_at: { + type: DataTypes.DATE, + defaultValue: null + }, + }, { transaction }) + await queryInterface.addIndex(tableName, ['tokens'], { transaction }) + await queryInterface.addIndex(tableName, ['uid'], { transaction }) + } + ) + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable('user_tokens') + } +}; \ No newline at end of file diff --git a/src/migrations/20220310232957-users.ts b/src/migrations/20220310232957-users.ts new file mode 100644 index 0000000..f445c6a --- /dev/null +++ b/src/migrations/20220310232957-users.ts @@ -0,0 +1,62 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'users' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.sequelize.transaction( + async (transaction) => { + await queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + username: { + type: DataTypes.STRING({ length: 50 }), + allowNull: false, + defaultValue: '' + }, + password: { + type: DataTypes.STRING({ length: 255 }), + allowNull: false, + defaultValue: '' + }, + email: { + type: DataTypes.STRING({ length: 100 }), + allowNull: false, + defaultValue: '' + }, + identical: { + type: DataTypes.STRING({ length: 10 }), + allowNull: false, + unique: true, + defaultValue: '' + }, + ack_code: { + type: DataTypes.STRING({ length: 10 }), + allowNull: false, + defaultValue: '' + }, + created_at: { + type: DataTypes.DATE, + allowNull: false, + defaultValue: sequelize.fn('NOW') + } + }, { transaction }) + await queryInterface.sequelize.query(` + ALTER TABLE ${tableName} + ADD COLUMN updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + `, { transaction }) + await queryInterface.addIndex(tableName, ['username'], { transaction }) + await queryInterface.addIndex(tableName, ['email'], { transaction }) + + } + ) + }, + + down: (queryInterface: QueryInterface) => { + return queryInterface.dropTable(tableName) + } +}; \ No newline at end of file diff --git a/src/migrations/20220310233016-log_report_deploy.ts b/src/migrations/20220310233016-log_report_deploy.ts new file mode 100644 index 0000000..333187d --- /dev/null +++ b/src/migrations/20220310233016-log_report_deploy.ts @@ -0,0 +1,48 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'log_report_deploy' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + status: { + type: DataTypes.TINYINT({ length: 3 }), + allowNull: false, + defaultValue: 0 + }, + package_id: { + type: DataTypes.INTEGER({ length: 10 }), + allowNull: false, + defaultValue: 0 + }, + client_unique_id: { + type: DataTypes.STRING({ length: 100 }), + allowNull: false, + defaultValue: '' + }, + previous_label: { + type: DataTypes.STRING({ length: 20 }), + allowNull: false, + unique: true, + defaultValue: '' + }, + previous_deployment_key: { + type: DataTypes.STRING({ length: 64 }), + allowNull: false, + defaultValue: '' + }, + created_at: { + type: DataTypes.DATE, + defaultValue: sequelize.fn('NOW') + } + }) + }, + + down: (queryInterface: QueryInterface) => queryInterface.dropTable(tableName) +}; \ No newline at end of file diff --git a/src/migrations/20220310233021-log_report_download.ts b/src/migrations/20220310233021-log_report_download.ts new file mode 100644 index 0000000..99a39df --- /dev/null +++ b/src/migrations/20220310233021-log_report_download.ts @@ -0,0 +1,32 @@ +import { QueryInterface, DataTypes, Sequelize } from '@sequelize/core'; + +const tableName = 'log_report_download' +module.exports = { + up: (queryInterface: QueryInterface, sequelize: Sequelize) => { + return queryInterface.createTable(tableName, { + id: { + type: DataTypes.BIGINT({ length: 20 }).UNSIGNED, + allowNull: false, + unique: true, + primaryKey: true, + autoIncrement: true + }, + package_id: { + type: DataTypes.INTEGER({ length: 10 }), + allowNull: false, + defaultValue: 0 + }, + client_unique_id: { + type: DataTypes.STRING({ length: 100 }), + allowNull: false, + defaultValue: '' + }, + created_at: { + type: DataTypes.DATE, + defaultValue: sequelize.fn('NOW') + } + }) + }, + + down: (queryInterface: QueryInterface) => queryInterface.dropTable(tableName) +}; \ No newline at end of file diff --git a/src/models/apps.ts b/src/models/apps.ts index 405389d..445da46 100644 --- a/src/models/apps.ts +++ b/src/models/apps.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; export interface AppAttributes { diff --git a/src/models/collaborators.ts b/src/models/collaborators.ts index 646cbd4..66ea950 100644 --- a/src/models/collaborators.ts +++ b/src/models/collaborators.ts @@ -1,4 +1,4 @@ -import { Optional, Model, Sequelize, DataTypes } from "sequelize"; +import { Optional, Model, Sequelize, DataTypes } from '@sequelize/core'; import { sequelize } from "../db"; export interface ICollaboratorAttributes { diff --git a/src/models/deployments.ts b/src/models/deployments.ts index 6d9aa84..264e81c 100644 --- a/src/models/deployments.ts +++ b/src/models/deployments.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import _ from 'lodash' import { AppError } from '../core/app-error' import { sequelize } from "../db"; diff --git a/src/models/deployments_history.ts b/src/models/deployments_history.ts index baaf8df..d3d87b7 100644 --- a/src/models/deployments_history.ts +++ b/src/models/deployments_history.ts @@ -1,6 +1,6 @@ import { Sequelize, DataTypes, Model, BuildOptions, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; interface DeploymentsHistoryAttributes { diff --git a/src/models/deployments_versions.ts b/src/models/deployments_versions.ts index 32e7ff2..85d343d 100644 --- a/src/models/deployments_versions.ts +++ b/src/models/deployments_versions.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; interface DeploymentsVersionsAttributes { diff --git a/src/models/index.ts b/src/models/index.ts index cc56933..b77e9b2 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -12,5 +12,4 @@ export { default as PackagesDiff } from './packages_diff' export { default as PackagesMetrics } from './packages_metrics' export { default as UserTokens } from './user_tokens' export { default as Users } from './users' -export { default as Versions } from './versions' export const sequelize = seq \ No newline at end of file diff --git a/src/models/log_report_deploy.ts b/src/models/log_report_deploy.ts index 084e4c5..354f4d3 100644 --- a/src/models/log_report_deploy.ts +++ b/src/models/log_report_deploy.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import _ from 'lodash' import { sequelize } from "../db"; diff --git a/src/models/log_report_download.ts b/src/models/log_report_download.ts index 295b45d..d569793 100644 --- a/src/models/log_report_download.ts +++ b/src/models/log_report_download.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import _ from 'lodash' import { sequelize } from "../db"; diff --git a/src/models/packages.ts b/src/models/packages.ts index 7f2a180..5056a81 100644 --- a/src/models/packages.ts +++ b/src/models/packages.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; export interface PackagesAttributes { diff --git a/src/models/packages_diff.ts b/src/models/packages_diff.ts index 3c2aee7..eb68986 100644 --- a/src/models/packages_diff.ts +++ b/src/models/packages_diff.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; interface PackagesDiffAttributes { diff --git a/src/models/packages_metrics.ts b/src/models/packages_metrics.ts index fadc617..3861d7a 100644 --- a/src/models/packages_metrics.ts +++ b/src/models/packages_metrics.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; interface PackagesMetricsAttributes { diff --git a/src/models/user_tokens.ts b/src/models/user_tokens.ts index f182b22..2a706fd 100644 --- a/src/models/user_tokens.ts +++ b/src/models/user_tokens.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; interface UserTokensAttributes { diff --git a/src/models/users.ts b/src/models/users.ts index e10aa65..4d8646f 100644 --- a/src/models/users.ts +++ b/src/models/users.ts @@ -1,6 +1,6 @@ import { DataTypes, Model, Optional -} from "sequelize"; +} from '@sequelize/core'; import { sequelize } from "../db"; export interface UsersAttributes { diff --git a/src/models/versions.ts b/src/models/versions.ts deleted file mode 100644 index a819dd9..0000000 --- a/src/models/versions.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { - DataTypes, Model, Optional -} from "sequelize"; -import { sequelize } from "../db"; - -interface VersionsAttributes { - id: number - type: number - version: number -} - -interface VersionsCreationAttributes extends Optional { } -interface VersionsInstance extends Model, - VersionsAttributes { } - -const VersionsModel = sequelize.define("Versions", { - id: { - type: DataTypes.INTEGER({ length: 11 }), - allowNull: false, - autoIncrement: true, - primaryKey: true - }, - type: DataTypes.TINYINT({ length: 3 }), - version: DataTypes.STRING(10) -}, { - tableName: 'versions', - updatedAt: false, - createdAt: false -}); - -export default VersionsModel \ No newline at end of file diff --git a/src/sequelize_config.ts b/src/sequelize_config.ts new file mode 100644 index 0000000..c1ee9cb --- /dev/null +++ b/src/sequelize_config.ts @@ -0,0 +1,7 @@ +const { default: config } = require('./core/config'); + +module.exports = { + development: config.db, + test: config.db, + production: config.db +}; \ No newline at end of file diff --git a/src/test/index.test.ts b/src/test/index.test.ts index 2d25570..594bce3 100644 --- a/src/test/index.test.ts +++ b/src/test/index.test.ts @@ -18,24 +18,7 @@ export let TEST_AUTH_ACCESS_KEY = ''; export const TEST_COLABORATOR_ACCOUNT = 'colab@nativescript.com'; -describe('api/init/database.js', function () { - - describe('create database', function () { - it('should create database successful', function (done) { - const connection = mysql.createConnection({ - host: config.db.host, - user: config.db.username, - password: config.db.password, - multipleStatements: true - }); - connection.connect(); - connection.query(`DROP DATABASE IF EXISTS ${config.db.database};CREATE DATABASE IF NOT EXISTS ${config.db.database}`, function (err, rows, fields) { - should.not.exist(err); - done(); - }); - connection.end(); - }); - }); +describe('run seeds', function () { describe('flushall redis', function () { it('should flushall redis successful', async function () { @@ -67,8 +50,8 @@ describe('api/init/database.js', function () { connection.end(); }); - it('should import data codepush-all.sql successful', function (done) { - const sql = fs.readFileSync(path.resolve(__dirname, '../../sql/codepush-all.sql'), 'utf-8'); + it('should run seeds', function (done) { + const sql = fs.readFileSync(path.resolve(__dirname, '../../sql/seeds.sql'), 'utf-8'); connection.query(sql, function (err, results) { should.not.exist(err); done(); @@ -120,7 +103,9 @@ describe('api/index/index.test.js', function () { .set('Authorization', `Basic ${TEST_AUTH_BASIC_TOKEN}`) .send() .end(function (err, res) { + console.log('🚀 ~ file: index.test.ts ~ line 106 ~ res', res) should.not.exist(err); + console.log('🚀 ~ file: index.test.ts ~ line 107 ~ err', err) res.status.should.equal(200); const rs = JSON.parse(res.text); diff --git a/tsconfig.json b/tsconfig.json index ea1ca03..ae5a71a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,10 +16,6 @@ "sourceMap": true, "outDir": "dist", "allowJs": true, - "typeRoots": [ - "./src/types", - "./node_modules/@types" - ], "paths": { "~/*": ["src/*"] }