From 5db3ffca6c90724f79e37f13766708e37419870d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 26 Nov 2020 15:49:54 +0000 Subject: [PATCH 01/60] Created basic Senaca service with environment documented --- test-express/.env => .env | 0 README.md | 48 +- TODO | 10 + dist-server/app.js | 47 + dist-server/bin/server.js | 73 + dist-server/config.js | 22 + .../routes/__snapshots__/index.test.js.snap | 0 .../routes/__snapshots__/users.test.js.snap | 0 dist-server/routes/index.js | 21 + dist-server/routes/users.js | 21 + dist-server/swagger.json | 174 + dist-server/users/index.js | 50 + test-express/jest.config.js => jest.config.js | 0 test-express/jsconfig.json => jsconfig.json | 0 .../package-lock.json => package-lock.json | 0 test-express/package.json => package.json | 0 {test-express/public => public}/index.html | 0 .../public => public}/stylesheets/style.css | 0 .../codecoverage-sample.png | Bin .../lcov-report-sample.png | Bin .../supertest-sample.png | Bin .../swagger-api-summary-sample.png | Bin .../swagger-execute-sample.png | Bin .../todo-sample.png | Bin {test-express/server => server}/app.js | 0 {test-express/server => server}/app.test.js | 0 {test-express/server => server}/bin/server.js | 0 {test-express/server => server}/config.js | 0 .../routes/__snapshots__/index.test.js.snap | 20 + .../routes/__snapshots__/users.test.js.snap | 3 + .../server => server}/routes/index.js | 0 .../server => server}/routes/index.test.js | 0 .../server => server}/routes/users.js | 0 .../server => server}/routes/users.test.js | 0 server/swagger.json | 174 + .../server => server}/users/index.js | 0 test-express/README.md | 137 - test-express/TODO | 21 - test-express/server/swagger.json | 66 - test-express/test-utilities/test-route.js | 12 - test-init/README.md | 3 - test-init/TODO | 1 - test-init/index.js | 1 - test-init/index.test.js | 5 - test-init/jsconfig.json | 1 - test-init/package-lock.json | 4723 ----------------- test-init/package.json | 28 - 47 files changed, 647 insertions(+), 5014 deletions(-) rename test-express/.env => .env (100%) create mode 100644 TODO create mode 100644 dist-server/app.js create mode 100644 dist-server/bin/server.js create mode 100644 dist-server/config.js rename {test-express/server => dist-server}/routes/__snapshots__/index.test.js.snap (100%) rename {test-express/server => dist-server}/routes/__snapshots__/users.test.js.snap (100%) create mode 100644 dist-server/routes/index.js create mode 100644 dist-server/routes/users.js create mode 100644 dist-server/swagger.json create mode 100644 dist-server/users/index.js rename test-express/jest.config.js => jest.config.js (100%) rename test-express/jsconfig.json => jsconfig.json (100%) rename test-express/package-lock.json => package-lock.json (100%) rename test-express/package.json => package.json (100%) rename {test-express/public => public}/index.html (100%) rename {test-express/public => public}/stylesheets/style.css (100%) rename {test-express/readme-images => readme-images}/codecoverage-sample.png (100%) rename {test-express/readme-images => readme-images}/lcov-report-sample.png (100%) rename {test-express/readme-images => readme-images}/supertest-sample.png (100%) rename {test-express/readme-images => readme-images}/swagger-api-summary-sample.png (100%) rename {test-express/readme-images => readme-images}/swagger-execute-sample.png (100%) rename {test-express/readme-images => readme-images}/todo-sample.png (100%) rename {test-express/server => server}/app.js (100%) rename {test-express/server => server}/app.test.js (100%) rename {test-express/server => server}/bin/server.js (100%) rename {test-express/server => server}/config.js (100%) create mode 100644 server/routes/__snapshots__/index.test.js.snap create mode 100644 server/routes/__snapshots__/users.test.js.snap rename {test-express/server => server}/routes/index.js (100%) rename {test-express/server => server}/routes/index.test.js (100%) rename {test-express/server => server}/routes/users.js (100%) rename {test-express/server => server}/routes/users.test.js (100%) create mode 100644 server/swagger.json rename {test-express/server => server}/users/index.js (100%) delete mode 100644 test-express/README.md delete mode 100644 test-express/TODO delete mode 100644 test-express/server/swagger.json delete mode 100644 test-express/test-utilities/test-route.js delete mode 100644 test-init/README.md delete mode 100644 test-init/TODO delete mode 100644 test-init/index.js delete mode 100644 test-init/index.test.js delete mode 100644 test-init/jsconfig.json delete mode 100644 test-init/package-lock.json delete mode 100644 test-init/package.json diff --git a/test-express/.env b/.env similarity index 100% rename from test-express/.env rename to .env diff --git a/README.md b/README.md index 0d88e5f..dcdba36 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,45 @@ -# Node Coding Exercise Template +# Stats Service -This is a template to get up and running for interview tests or just setting up node plumbing for just prototyping ideas with Node. This makes the exercise of what you do more efficient. This has the possibility of getting out of date pretty quick so check references to make sure this is still current. +## Problem -## References +Our learning platform needs to track a **user's stats** for a particular **course**. We do this using a stats service. -This will archive a few things that help understand what was setup at the time. Projects go out of date pretty quickly so this will help understand what is still applicable. +The task is to create a simplified version of this service. Your stats service needs to provide the capability to create new stats as well as updating stats. The stats managed by the service are created and updated via HTTP calls. Stats are posted on the completion of a *learning session* and reflect how the *user did* on the learning session. -At the time of setting this up I was using +The service interface it defined in the form of a **swagger**. -1. _Node_ version **v14.15.1** and _NPM_ **6.14.8** +## Requirements -2. Using _Windows OS_ with an _Ubuntu_ developer kit installed on windows 10 - [See Ubuntu on Windows for more information](https://ubuntu.com/tutorials/ubuntu-on-windows#1-overview) which can be alternatively be done using Docker or other types of Virtual Machines. **NOTE**: Node is best served not on Windows when going to Production +- *Stats* are posted based on the **completion of a learning session**. +- Stats can be fetched via an *aggregated call* which **aggregates a users stat history** for a course they are studying. +- Stats should also be fetchable for a **single learning session**. +- The service must be easily runnable/startable & deployable on the + AWS ecosystem by the reviewer of the task. Other than node.js being the main language, any technology can be + used. +- The project should be submitted in the form of a **code repository**. +- Please state any assumptions or deviations from the specification in the repository readme. +- Stats should be persisted using a **database** of your choosing +- Your service should have some level of **tests** -3. Developing with _Visual Studio Code_ as an editor and like it as I use Visual Studio and other Microsoft Products that I find enrich developers experience. It is free and so that comes at a price. _Webstorm_ and some other paid products tend to give a richer more reliable experience, in my honest opinion, but as _VSCode_ matures, so does the experience +## A little elaboration of the terminology we use to garner a bit more context: - 3.1. Basic tutorials can be found [here](https://code.visualstudio.com/docs/nodejs/nodejs-tutorial) which can help you to get express up and running in no time +**Course** - refers to a course on a particular subject that a user is learning. A course is made up of learning sessions. - 3.2. _VSCode_ offers lots of plugins to speed up development +**Session** - refers to a learning session that a user studies. Sessions are made up of modules that display content. - 3.3. _Typescript_ and typescript dev plugins really enrich the experience for code completion as well as finding 10% to 15% of bugs at compile time, which is always a bonus in this time driven game. If _Google_ and _Microsoft_ make it part of their suit, you know its something polished and enriching and [Anders Hejlsberg](https://en.wikipedia.org/wiki/Anders_Hejlsberg) has been enriching my life since developing with _Borland_ technology, if any of you are old enough to remember _Turbo Pascal_ or _Delphi_ +**Modules** - display content to the user. There are *15 module types* and these are +used depending on the type of content that is being displayed. - 3.4. Linters and Test Frameworks really keep the quality standardised, however they can be a little overwhelming and distracting with all the syntax highlighting distracting the though process. I love the outcome and the reason it exists but I struggle a bit with the noise it generates +# Environment - 3.5 Install **Prettier** to make style more consistent with other team members +Basic instructions to start build and get this API up and running -4. **Test-express** starter can be found in the root and check this [README](test-express/README.md) for more details - -5. **Test-init** is all about having a clean slate to just do simple stuff, test or POC anything that does not need any prerequisite. Test express needed *Express* and a bunch of things in place before I could even begin to develop. Check [README](test-init/README.md) for a small amount of details +| package command | description | +| :------------------- | :----------------------------------------------------------- | +| `npm i` | **Install** all the packages | +| `npm start` | Runs and builds the application with **production** configuration | +| `npm run start:dev` | Runs and builds the application with **development** configuration | +| `npm run watch:dev` | Runs **dev** with ability to rebuild the application when any files change | +| `npm run build` | **Builds the project**, cleaning the project, transpiling it and then cleaning the *transpiled* tests | +| `npm run test` | Runs all the **tests once** | +| `npm run test:watch` | Runs test in **test-development** mode while the developer creates tests giving the ability to automatically run when changes made | diff --git a/TODO b/TODO new file mode 100644 index 0000000..bf7e243 --- /dev/null +++ b/TODO @@ -0,0 +1,10 @@ +✔ Setup basic `express` application @critical @done(20-11-26 15:48) +☐ Clean up and prepare the application so that it is ready for `Senaca requirments` @high +☐ Add the SWAGGER into the definition so the swagger UI can test the endpoint @high +☐ Start developing endpoints so they get values @high +☐ Start developing by domain an using an In-memory mongo database @high +☐ Start configuring a serverless.yaml for AWS deployment @high +☐ Start PUML Archictecture decisions @low + + + diff --git a/dist-server/app.js b/dist-server/app.js new file mode 100644 index 0000000..8cb0127 --- /dev/null +++ b/dist-server/app.js @@ -0,0 +1,47 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); + +require("core-js/modules/es6.object.define-property"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _express = _interopRequireWildcard(require("express")); + +var _path = require("path"); + +var _cookieParser = _interopRequireDefault(require("cookie-parser")); + +var _morgan = _interopRequireDefault(require("morgan")); + +var _swaggerUiExpress = _interopRequireDefault(require("swagger-ui-express")); + +var _swagger = _interopRequireDefault(require("./swagger.json")); + +var _index = _interopRequireDefault(require("./routes/index")); + +var _users = _interopRequireDefault(require("./routes/users")); + +var _config = _interopRequireDefault(require("./config")); + +var isDev = _config["default"].isDev, + port = _config["default"].port; +console.debug("This is a ".concat(isDev ? "Development" : "Production", " release preparing API on port '").concat(port, "'")); +var app = (0, _express["default"])(); +app.use((0, _morgan["default"])("dev")); +app.use((0, _express.json)()); +app.use((0, _express.urlencoded)({ + extended: false +})); +app.use((0, _cookieParser["default"])()); +app.use(_express["default"]["static"]((0, _path.join)(__dirname, "../public"))); +app.use("/", _index["default"]); +app.use("/users", _users["default"]); +app.use("/api-docs", _swaggerUiExpress["default"].serve, _swaggerUiExpress["default"].setup(_swagger["default"])); +var _default = app; +exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/bin/server.js b/dist-server/bin/server.js new file mode 100644 index 0000000..8a33812 --- /dev/null +++ b/dist-server/bin/server.js @@ -0,0 +1,73 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +var _app = _interopRequireDefault(require("../app")); + +var _debug = _interopRequireDefault(require("debug")); + +var _http = require("http"); + +var _config = _interopRequireDefault(require("../config")); + +var _expressListEndpoints = _interopRequireDefault(require("express-list-endpoints")); + +var debug = (0, _debug["default"])('test-express:server'); +var port = _config["default"].port; +var iisPort = getPortAndConfigureIISExpress(); +var server = generateServer(); + +function generateServer() { + var result = (0, _http.createServer)(_app["default"]); + result.listen(iisPort); + result.on('error', onError); + result.on('listening', onListening); + return result; +} + +function getPortAndConfigureIISExpress() { + var result = normalizePort(port); + + _app["default"].set('port', result); + + return result; +} + +function normalizePort(val) { + var port = parseInt(val, 10); + if (isNaN(port)) return val; + if (port >= 0) return port; + return false; +} + +function onError(error) { + if (error.syscall !== 'listen') { + throw error; + } + + var bind = typeof iisPort === 'string' ? 'Pipe ' + iisPort : 'Port ' + iisPort; + makeErrorsMoreInformative(); + + function makeErrorsMoreInformative() { + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + + default: + throw error; + } + } +} + +function onListening() { + var addr = server.address(); + var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; + debug('Listening on ' + bind); + console.debug((0, _expressListEndpoints["default"])(_app["default"])); + console.debug("http://localhost:".concat(_app["default"].get("port"), " is ready")); +} \ No newline at end of file diff --git a/dist-server/config.js b/dist-server/config.js new file mode 100644 index 0000000..e875d0e --- /dev/null +++ b/dist-server/config.js @@ -0,0 +1,22 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +require("core-js/modules/es6.object.define-property"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _dotenv = _interopRequireDefault(require("dotenv")); + +var actualConfig = _dotenv["default"].config(); + +console.debug(".env config value", actualConfig); +var _default = { + isDev: process.env.NODE_ENV === "development", + isProd: process.env.NODE_ENV === "production", + port: process.env.PORT || 3000 +}; +exports["default"] = _default; \ No newline at end of file diff --git a/test-express/server/routes/__snapshots__/index.test.js.snap b/dist-server/routes/__snapshots__/index.test.js.snap similarity index 100% rename from test-express/server/routes/__snapshots__/index.test.js.snap rename to dist-server/routes/__snapshots__/index.test.js.snap diff --git a/test-express/server/routes/__snapshots__/users.test.js.snap b/dist-server/routes/__snapshots__/users.test.js.snap similarity index 100% rename from test-express/server/routes/__snapshots__/users.test.js.snap rename to dist-server/routes/__snapshots__/users.test.js.snap diff --git a/dist-server/routes/index.js b/dist-server/routes/index.js new file mode 100644 index 0000000..da143d4 --- /dev/null +++ b/dist-server/routes/index.js @@ -0,0 +1,21 @@ +"use strict"; + +require("core-js/modules/es6.object.define-property"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _express = require("express"); + +var router = (0, _express.Router)(); +/* GET home page. */ + +router.get('/', function (req, res, next) { + res.render('index', { + title: 'Express' + }); +}); +var _default = router; +exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/routes/users.js b/dist-server/routes/users.js new file mode 100644 index 0000000..dace4f4 --- /dev/null +++ b/dist-server/routes/users.js @@ -0,0 +1,21 @@ +"use strict"; + +require("core-js/modules/es6.object.define-property"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _express = require("express"); + +var _users = require("../users"); + +var router = (0, _express.Router)(); +router.get('/', function (req, res, next) { + // console.debug(req, next); + var usersResponse = (0, _users.getUserList)(); + res.json(usersResponse); +}); +var _default = router; +exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/swagger.json b/dist-server/swagger.json new file mode 100644 index 0000000..a29412a --- /dev/null +++ b/dist-server/swagger.json @@ -0,0 +1,174 @@ +{ + "swagger": "2.0", + "info": { + "version": "0.0.0", + "title": "Stats Service", + "description": "Provides persistence of stats" + }, + "host": "localhost:3000", + "basePath": "/", + "schemes": [ + "http" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/courses/{courseId}": { + "post": { + "description": "Persists a session study event", + "parameters": [ + { + "in": "header", + "description": "Identifies the user", + "name": "X-User-Id", + "type": "string", + "format": "uuid", + "required": true + }, + { + "in": "path", + "name": "courseId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the course" + }, + { + "in": "body", + "name": "stats diff", + "required": true, + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string", + "format": "uuid" + }, + "totalModulesStudied": { + "type": "number" + }, + "averageScore": { + "type": "number" + }, + "timeStudied": { + "type": "number", + "description": "Type in milliseconds" + } + } + } + } + ], + "responses": { + "201": { + "description": "OK" + } + } + }, + "get": { + "description": "Fetches course lifetime statistics", + "parameters": [ + { + "in": "header", + "description": "Identifies the user", + "name": "X-User-Id", + "type": "string", + "format": "uuid", + "required": true + }, + { + "in": "path", + "name": "courseId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the course" + } + ], + "responses": { + "200": { + "description": "Course lifetime stats", + "schema": { + "type": "object", + "properties": { + "totalModulesStudied": { + "type": "number", + "description": "The number of modules studied in the course" + }, + "averageScore": { + "type": "number", + "description": "The users average score of modules across the course" + }, + "timeStudied": { + "type": "number", + "description": "The total time spent studying a course" + } + } + } + } + } + } + }, + "/courses/{courseId}/sessions/{sessionId}": { + "get": { + "description": "Fetches a single study session", + "parameters": [ + { + "in": "header", + "description": "Identifies the user", + "name": "X-User-Id", + "type": "string", + "format": "uuid", + "required": true + }, + { + "in": "path", + "name": "courseId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the course" + }, + { + "in": "path", + "name": "sessionId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the study session" + } + ], + "responses": { + "200": { + "description": "Study session stats", + "schema": { + "type": "object", + "properties": { + "sessionId": { + "description": "Identifies the session", + "type": "string", + "format": "uuid" + }, + "totalModulesStudied": { + "type": "number", + "description": "The number of modules studied in the session" + }, + "averageScore": { + "type": "number", + "description": "The users average score of modules in session" + }, + "timeStudied": { + "type": "number", + "description": "The total time spent in session" + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/dist-server/users/index.js b/dist-server/users/index.js new file mode 100644 index 0000000..7e92344 --- /dev/null +++ b/dist-server/users/index.js @@ -0,0 +1,50 @@ +"use strict"; + +require("core-js/modules/es6.object.define-property"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getUserList = void 0; + +var getUserList = function getUserList() { + return [{ + user: { + id: 1, + name: 'Jane', + lastname: 'Doe' + } + }, { + user: { + id: 2, + name: 'Jon', + lastname: 'Doe' + } + }, { + user: { + id: 3, + name: 'Michael', + lastname: 'Caine' + } + }, { + user: { + id: 4, + name: 'James', + lastname: 'Bond' + } + }, { + user: { + id: 5, + name: 'Robert', + lastname: 'Plant' + } + }, { + user: { + id: 6, + name: 'Jordan', + lastname: 'Peterson' + } + }]; +}; + +exports.getUserList = getUserList; \ No newline at end of file diff --git a/test-express/jest.config.js b/jest.config.js similarity index 100% rename from test-express/jest.config.js rename to jest.config.js diff --git a/test-express/jsconfig.json b/jsconfig.json similarity index 100% rename from test-express/jsconfig.json rename to jsconfig.json diff --git a/test-express/package-lock.json b/package-lock.json similarity index 100% rename from test-express/package-lock.json rename to package-lock.json diff --git a/test-express/package.json b/package.json similarity index 100% rename from test-express/package.json rename to package.json diff --git a/test-express/public/index.html b/public/index.html similarity index 100% rename from test-express/public/index.html rename to public/index.html diff --git a/test-express/public/stylesheets/style.css b/public/stylesheets/style.css similarity index 100% rename from test-express/public/stylesheets/style.css rename to public/stylesheets/style.css diff --git a/test-express/readme-images/codecoverage-sample.png b/readme-images/codecoverage-sample.png similarity index 100% rename from test-express/readme-images/codecoverage-sample.png rename to readme-images/codecoverage-sample.png diff --git a/test-express/readme-images/lcov-report-sample.png b/readme-images/lcov-report-sample.png similarity index 100% rename from test-express/readme-images/lcov-report-sample.png rename to readme-images/lcov-report-sample.png diff --git a/test-express/readme-images/supertest-sample.png b/readme-images/supertest-sample.png similarity index 100% rename from test-express/readme-images/supertest-sample.png rename to readme-images/supertest-sample.png diff --git a/test-express/readme-images/swagger-api-summary-sample.png b/readme-images/swagger-api-summary-sample.png similarity index 100% rename from test-express/readme-images/swagger-api-summary-sample.png rename to readme-images/swagger-api-summary-sample.png diff --git a/test-express/readme-images/swagger-execute-sample.png b/readme-images/swagger-execute-sample.png similarity index 100% rename from test-express/readme-images/swagger-execute-sample.png rename to readme-images/swagger-execute-sample.png diff --git a/test-express/readme-images/todo-sample.png b/readme-images/todo-sample.png similarity index 100% rename from test-express/readme-images/todo-sample.png rename to readme-images/todo-sample.png diff --git a/test-express/server/app.js b/server/app.js similarity index 100% rename from test-express/server/app.js rename to server/app.js diff --git a/test-express/server/app.test.js b/server/app.test.js similarity index 100% rename from test-express/server/app.test.js rename to server/app.test.js diff --git a/test-express/server/bin/server.js b/server/bin/server.js similarity index 100% rename from test-express/server/bin/server.js rename to server/bin/server.js diff --git a/test-express/server/config.js b/server/config.js similarity index 100% rename from test-express/server/config.js rename to server/config.js diff --git a/server/routes/__snapshots__/index.test.js.snap b/server/routes/__snapshots__/index.test.js.snap new file mode 100644 index 0000000..0826752 --- /dev/null +++ b/server/routes/__snapshots__/index.test.js.snap @@ -0,0 +1,20 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`index or home page should get the route 1`] = ` +" + + + Express Test API Test + + + + +

Express Test API's

+

This is a space to document information about test scenarios. If not used, remove from the project.

+

Takle a look at the API exposed using Swagger +

+ + + +" +`; diff --git a/server/routes/__snapshots__/users.test.js.snap b/server/routes/__snapshots__/users.test.js.snap new file mode 100644 index 0000000..e942141 --- /dev/null +++ b/server/routes/__snapshots__/users.test.js.snap @@ -0,0 +1,3 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`users api should get the users json response 1`] = `"[{\\"user\\":{\\"id\\":1,\\"name\\":\\"Jane\\",\\"lastname\\":\\"Doe\\"}},{\\"user\\":{\\"id\\":2,\\"name\\":\\"Jon\\",\\"lastname\\":\\"Doe\\"}},{\\"user\\":{\\"id\\":3,\\"name\\":\\"Michael\\",\\"lastname\\":\\"Caine\\"}},{\\"user\\":{\\"id\\":4,\\"name\\":\\"James\\",\\"lastname\\":\\"Bond\\"}},{\\"user\\":{\\"id\\":5,\\"name\\":\\"Robert\\",\\"lastname\\":\\"Plant\\"}},{\\"user\\":{\\"id\\":6,\\"name\\":\\"Jordan\\",\\"lastname\\":\\"Peterson\\"}}]"`; diff --git a/test-express/server/routes/index.js b/server/routes/index.js similarity index 100% rename from test-express/server/routes/index.js rename to server/routes/index.js diff --git a/test-express/server/routes/index.test.js b/server/routes/index.test.js similarity index 100% rename from test-express/server/routes/index.test.js rename to server/routes/index.test.js diff --git a/test-express/server/routes/users.js b/server/routes/users.js similarity index 100% rename from test-express/server/routes/users.js rename to server/routes/users.js diff --git a/test-express/server/routes/users.test.js b/server/routes/users.test.js similarity index 100% rename from test-express/server/routes/users.test.js rename to server/routes/users.test.js diff --git a/server/swagger.json b/server/swagger.json new file mode 100644 index 0000000..a29412a --- /dev/null +++ b/server/swagger.json @@ -0,0 +1,174 @@ +{ + "swagger": "2.0", + "info": { + "version": "0.0.0", + "title": "Stats Service", + "description": "Provides persistence of stats" + }, + "host": "localhost:3000", + "basePath": "/", + "schemes": [ + "http" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/courses/{courseId}": { + "post": { + "description": "Persists a session study event", + "parameters": [ + { + "in": "header", + "description": "Identifies the user", + "name": "X-User-Id", + "type": "string", + "format": "uuid", + "required": true + }, + { + "in": "path", + "name": "courseId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the course" + }, + { + "in": "body", + "name": "stats diff", + "required": true, + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string", + "format": "uuid" + }, + "totalModulesStudied": { + "type": "number" + }, + "averageScore": { + "type": "number" + }, + "timeStudied": { + "type": "number", + "description": "Type in milliseconds" + } + } + } + } + ], + "responses": { + "201": { + "description": "OK" + } + } + }, + "get": { + "description": "Fetches course lifetime statistics", + "parameters": [ + { + "in": "header", + "description": "Identifies the user", + "name": "X-User-Id", + "type": "string", + "format": "uuid", + "required": true + }, + { + "in": "path", + "name": "courseId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the course" + } + ], + "responses": { + "200": { + "description": "Course lifetime stats", + "schema": { + "type": "object", + "properties": { + "totalModulesStudied": { + "type": "number", + "description": "The number of modules studied in the course" + }, + "averageScore": { + "type": "number", + "description": "The users average score of modules across the course" + }, + "timeStudied": { + "type": "number", + "description": "The total time spent studying a course" + } + } + } + } + } + } + }, + "/courses/{courseId}/sessions/{sessionId}": { + "get": { + "description": "Fetches a single study session", + "parameters": [ + { + "in": "header", + "description": "Identifies the user", + "name": "X-User-Id", + "type": "string", + "format": "uuid", + "required": true + }, + { + "in": "path", + "name": "courseId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the course" + }, + { + "in": "path", + "name": "sessionId", + "required": true, + "type": "string", + "format": "uuid", + "description": "Identifies the study session" + } + ], + "responses": { + "200": { + "description": "Study session stats", + "schema": { + "type": "object", + "properties": { + "sessionId": { + "description": "Identifies the session", + "type": "string", + "format": "uuid" + }, + "totalModulesStudied": { + "type": "number", + "description": "The number of modules studied in the session" + }, + "averageScore": { + "type": "number", + "description": "The users average score of modules in session" + }, + "timeStudied": { + "type": "number", + "description": "The total time spent in session" + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/test-express/server/users/index.js b/server/users/index.js similarity index 100% rename from test-express/server/users/index.js rename to server/users/index.js diff --git a/test-express/README.md b/test-express/README.md deleted file mode 100644 index e802e4e..0000000 --- a/test-express/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# Environment - -Basic instructions to start build and get this API up and running - -| package command | description | -| :------------------- | :----------------------------------------------------------- | -| `npm i` | **Install** all the packages | -| `npm start` | Runs and builds the application with **production** configuration | -| `npm run start:dev` | Runs and builds the application with **development** configuration | -| `npm run watch:dev` | Runs **dev** with ability to rebuild the application when any files change | -| `npm run build` | **Builds the project**, cleaning the project, transpiling it and then cleaning the *transpiled* tests | -| `npm run test` | Runs all the **tests once** | -| `npm run test:watch` | Runs test in **test-development** mode while the developer creates tests giving the ability to automatically run when changes made | - -# Introduction - -This is a skeleton Node Application generated basically for testing [Express API](https://expressjs.com/en/api.html) ideas. Do you find plumbing work usually gets done over and over again?This will be good for coding exercises and other types of base Express Ideas but also allowing myself time to focus on the business problem in an ideal environment. Tried to incorporate some testing ideas that can make testing easier and succeeded with a new framework, details below, or something new I can incorporate into my learning process and the bonus is I can generate express applications rapidly now with all the expected plumbing I need. - -Finally [Clean Architecture Principles](https://medium.com/@danielkao/summary-of-clean-architecture-i-910d1ebdc60b) should be the basis for all development going forward. - -This document is to help map out some of my thoughts when I generated this and hopefully it wont go out of date too soon. - -## Template Generation Steps - -1. I generated a base express application using `npx express-generator your-project-name --no-view` - -2. Generating an express application using [ES6+](https://www.greycampus.com/blog/programming/java-script-versions) can be done very easily [following these instructions using babel](https://www.freecodecamp.org/news/how-to-enable-es6-and-beyond-syntax-with-node-and-express-68d3e11fe1ab/) - - `npx express-generator your-project-name --no-view` - - `Refactor some of the generated code into server folder` - - `Start removing the require to imports out of all units under generated folder` - - `npm install --save npm-run-all` - - `npm install --save @babel/core @babel/cli @babel/preset-env nodemon rimraf` - - Configure babel _package json_ - - ```json - // package.json - { - // ... contents above - "babel": { - "presets": ["@babel/preset-env"] - } - } - ``` - - Configure scripts to _transpile_ - - ```json - // package.json - "scripts": { - "start": "node ./server/bin/server", - "transpile": "babel ./server --out-dir dist-server" - } - - ``` - - Finally run `npm run transpile` - - ```json - // package.json - "build": "npm-run-all clean transpile" - ``` - - **NOTE:** Installed `npm install --save-dev cross-env` for any environment settings, only needed for windows - -3. Automatically recompiling code when changes are made using [nodemon](https://github.com/remy/nodemon) - - ```json - // package.json - ... - "nodemonConfig": { - "exec": "npm run dev", - "watch": ["server/*", "public/*"], - "ignore": ["**/__tests__/**", "*.test.js", "*.spec.js"] - }, - "scripts": { - // ... other scripts - "watch:dev": "nodemon" - } - ``` - -4. Configuring _Jest Tests_ to run once or to watch while you develop the tests - - ```json - // package.json - ... - "jest": { - "testEnvironment": "node" - }, - "scripts": { - // ... other scripts - "test": "jest", - "test:watch": "jest --watch" - } - ``` - -5. **Jest documentation** can be found [here](https://jestjs.io/docs/en/getting-started) - -6. Struggled with Jest Test *VSCode* code completion and so decided to install the Typescript Types to help improve matters. On doing so nothing improved. Then googled and found adding *jsconfig.json* with this value improved things massively - - ```json - // jsconfig.json - { "typeAcquisition": { "include": ["jest"] } } - ``` - -7. Tried endpoint testing based on a new framework, [supertest](https://zellwk.com/blog/endpoint-testing/), to try something new and was pleasantly surprised at how easy this to use. That mixed with Jest snapshots, easy to generate simple [characterisation test](https://en.wikipedia.org/wiki/Characterization_test) and then make sure the edge cases and underlying libraries are nicely unit tested. Kept it simple for the moment, a production setup would need a lot more thought but this should give you a good taste for it and the rest is up to your imagination - - Test output - -8. Programmers without things [TODO](https://github.com/fabiospampinato/vscode-todo-plus), become aimless and goalless, which is why TDD is good, helps to focus what needs to be done. Busy existence means we cant get everything done, so it makes sense to prioritise and state what has been done and what needs to be done with a priority order. You can then lift and shift this into a Jira ticket as a *dev tasks list* to help communicate thoughts and intentions in resolving any outstanding tasks. The art of software engineering is about **communication** and breaking problems up into little easy to conquer problems. Install within *VSCode* the TODO extension and you can learn the shortcuts [here](https://github.com/fabiospampinato/vscode-todo-plus/blob/master/resources/readme.todo) - - TODO example - -9. **Environment setting** are defined using [.env](https://medium.com/the-node-js-collection/making-your-node-js-work-everywhere-with-environment-variables-2da8cdf6e786) for setting up a configuration in the root of the project to work with environment variables, which in turn can be setup to receive variables and settings from deployment pipelines - -10. Configured **code coverage** to make the coverage visual, and to report any violations below a configured standard of coverage set for test scenario - - ![Coverage](readme-images/codecoverage-sample.png) - -11. HTML outputs get generated for all types of coverage reports required to analyse the code examples e.g. the **lcov report** below. - - ![LCOV Report](readme-images/lcov-report-sample.png) - -12. Investigated a simple option of outputting a **express endpoints** using an express library called [expressListendpoints](https://github.com/AlbertoFdzM/express-list-endpoints) - -13. Added **Swagger** to the project using a really good [blog](https://medium.com/@kirtikau/how-to-add-swagger-ui-to-existing-node-js-and-express-js-project-2c8bad9364ce) using UI express which helped me to express a really simple scenario as in the image below. This was very useful in allowing me to test my endpoints quickly using a ui as well as documenting my assumptions. This can be misleading if the swagger is incorrectly formatted but is a great way to confirm any documents assigned - - ![Swagger executor](./readme-images/swagger-execute-sample.png) - - Below is a summary of the API's formatted to expose models and the executor you can see above. - - ![Swagger summary](./readme-images/swagger-api-summary-sample.png) diff --git a/test-express/TODO b/test-express/TODO deleted file mode 100644 index ca84e6e..0000000 --- a/test-express/TODO +++ /dev/null @@ -1,21 +0,0 @@ -https://github.com/fabiospampinato/vscode-todo-plus/blob/master/resources/readme.todo - -TODO: - -✔ Setup TODO @done(20-11-22 09:16) -✔ Generate Express Plumbing ready to use @done(20-11-22 09:19) -✔ Setup EC6 and Babel @done(20-11-21 09:15) -✔ Setup JEST @done(20-11-22 09:16) -✔ Setup JEST code completion to work with VSCode @done(20-11-22 12:30) -✔ Setup `JEST test` watch with Jest watch @done(20-11-24 18:01) -✔ Finish adding some *sample tests* for express @done(20-11-25 07:53) -✔ Setup Tests to keep running and rerun when modified automatically @done(20-11-25 07:56) -✔ Setup `Code Coverage` @done(20-11-25 12:40) -✔ Setup Jest Code Completion @done(20-11-26 09:54) -✔ Setup *Configuration* or .ENV @done(20-11-25 19:08) -✔ Migrate *README* that is specific to this project from the root README @done(20-11-25 19:09) -✔ Fix `issue` with tests being outputted to the dist-server folder as ignore makes test fail @done(20-11-26 09:47) -✔ Setup `list express` endpoints to investigate if this is a simple way of outputting some concise info to developers for usage @done(20-11-26 10:49) -✔ Setup `SWAGGER` to expose Open API mechanism npm run test @done(20-11-26 13:04) -☐ Setup `Webpack` @low -☐ Setup linter @low \ No newline at end of file diff --git a/test-express/server/swagger.json b/test-express/server/swagger.json deleted file mode 100644 index 5eaaa54..0000000 --- a/test-express/server/swagger.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "1.0.0", - "title": "Simple Express API", - "description": "Test SWAGGER on my existing API", - "license": { - "name": "MIT", - "url": "https://opensource.org/licenses/MIT" - } - }, - "host": "localhost:3000", - "basePath": "/", - "tags": [ - { - "name": "users", - "description": "API for users in the system" - } - ], - "schemes": ["http"], - "consumes": ["application/json"], - "produces": ["application/json"], - "paths": { - "/users": { - "get": { - "tags": ["users"], - "summary": "Get all users in system", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/users" - } - } - } - } - } - }, - "definitions": { - "user": { - "required": ["id", "name", "lastname"], - "properties": { - "user": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "amount": { - "type": "number" - } - } - } - } - }, - "users": { - "type": "array", - "items": { - "$ref": "#/definitions/user" - } - } - } -} diff --git a/test-express/test-utilities/test-route.js b/test-express/test-utilities/test-route.js deleted file mode 100644 index 3b28e4f..0000000 --- a/test-express/test-utilities/test-route.js +++ /dev/null @@ -1,12 +0,0 @@ -import app from "../server/app"; -import supertest from "supertest"; -const request = supertest(app); - -/* -** REMARKS: Help remove duplication in tests and this wraps the -** get without needing to include all the imports -*/ -export async function getTest(url) { - const actualResponse = await request.get(url); - return actualResponse; -} \ No newline at end of file diff --git a/test-init/README.md b/test-init/README.md deleted file mode 100644 index 2aa48f1..0000000 --- a/test-init/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Introduction - -This is a very simple space to literally create a basic entry and build up stuff from the ground up. Nothing will be predefined except an index.js and node reference in package to make things slightly better that firing a node command direct in the terminal. \ No newline at end of file diff --git a/test-init/TODO b/test-init/TODO deleted file mode 100644 index 30dce09..0000000 --- a/test-init/TODO +++ /dev/null @@ -1 +0,0 @@ -☐ Ready to do the simplest thing which is \ No newline at end of file diff --git a/test-init/index.js b/test-init/index.js deleted file mode 100644 index 631e431..0000000 --- a/test-init/index.js +++ /dev/null @@ -1 +0,0 @@ -console.log('Say Hello to my tester!'); \ No newline at end of file diff --git a/test-init/index.test.js b/test-init/index.test.js deleted file mode 100644 index 3543ff4..0000000 --- a/test-init/index.test.js +++ /dev/null @@ -1,5 +0,0 @@ -describe('index or home test', () => { - it('should pass to show jest working', () => { - expect(true).toBeTruthy(); - }); -}); \ No newline at end of file diff --git a/test-init/jsconfig.json b/test-init/jsconfig.json deleted file mode 100644 index 72f7d64..0000000 --- a/test-init/jsconfig.json +++ /dev/null @@ -1 +0,0 @@ -{ "typeAcquisition": { "include": [ "jest" ] } } \ No newline at end of file diff --git a/test-init/package-lock.json b/test-init/package-lock.json deleted file mode 100644 index 57def0f..0000000 --- a/test-init/package-lock.json +++ /dev/null @@ -1,4723 +0,0 @@ -{ - "name": "package-name", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/core": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.7.tgz", - "integrity": "sha512-tRKx9B53kJe8NCGGIxEQb2Bkr0riUIEuN7Sc1fxhs5H8lKlCWUvQCSNMVIB0Meva7hcbCRJ76de15KoLltdoqw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.7", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz", - "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz", - "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "@babel/traverse": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.7.tgz", - "integrity": "sha512-nMWaqsQEeSvMNypswUDzjqQ+0rR6pqCtoQpsqGJC4/Khm9cISwPTSpai57F6/jDaOoEGz8yE/WxcO3PV6tKSmQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz", - "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", - "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.15", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", - "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/node": { - "version": "14.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.9.tgz", - "integrity": "sha512-JsoLXFppG62tWTklIoO4knA+oDTYsmqWxHRvd4lpmfQRNhX6osheUOWETP2jMoV/2bEHuMra8Pp3Dmo/stBFcw==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/prettier": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", - "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/yargs": { - "version": "15.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", - "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "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" - } - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", - "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "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 - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", - "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", - "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "dependencies": { - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - } - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "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-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", - "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "optional": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", - "dev": true, - "optional": true - }, - "v8-to-istanbul": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", - "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", - "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} diff --git a/test-init/package.json b/test-init/package.json deleted file mode 100644 index 059e29e..0000000 --- a/test-init/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "package-name", - "version": "1.0.0", - "description": "Test Initialising a baseic node utilising nmp init", - "main": "index.js", - "scripts": { - "start": "node index.js", - "test": "jest", - "test:watch": "jest --watch" - }, - "repository": { - "type": "git", - "url": "https://github.com/vfarah-if/NodeCodingExercise.git" - }, - "keywords": [ - "Node" - ], - "author": "Vincent Farah", - "license": "ISC", - "bugs": { - "url": "https://github.com/vfarah-if/NodeCodingExercise/issues" - }, - "homepage": "https://github.com/vfarah-if/NodeCodingExercise#readme", - "devDependencies": { - "@types/jest": "^26.0.15", - "jest": "^26.6.3" - } -} From bd9e24de9b3cdd664a77fbeeac690b59cfc037d3 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 26 Nov 2020 15:52:30 +0000 Subject: [PATCH 02/60] Updated status --- TODO | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/TODO b/TODO index bf7e243..019e2e1 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,7 @@ ✔ Setup basic `express` application @critical @done(20-11-26 15:48) -☐ Clean up and prepare the application so that it is ready for `Senaca requirments` @high -☐ Add the SWAGGER into the definition so the swagger UI can test the endpoint @high +✔ Clean up and prepare the application so that it is ready for `Senaca requirments` @high @done(20-11-26 15:50) +✔ Add the SWAGGER into the definition so the swagger UI can test the endpoint @high @done(20-11-26 15:50) ☐ Start developing endpoints so they get values @high ☐ Start developing by domain an using an In-memory mongo database @high -☐ Start configuring a serverless.yaml for AWS deployment @high -☐ Start PUML Archictecture decisions @low - - - +☐ Start configuring a serverless.yaml for AWS deployment script @high +☐ Start PUML Architecture decisions @low From 2432c121e1d9aa5e1637a02f8e4c2a6c58302919 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 26 Nov 2020 16:01:53 +0000 Subject: [PATCH 03/60] Updated documentation and TODO data --- README.md | 5 +++-- TODO | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dcdba36..46e385e 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ The service interface it defined in the form of a **swagger**. - *Stats* are posted based on the **completion of a learning session**. - Stats can be fetched via an *aggregated call* which **aggregates a users stat history** for a course they are studying. - Stats should also be fetchable for a **single learning session**. -- The service must be easily runnable/startable & deployable on the - AWS ecosystem by the reviewer of the task. Other than node.js being the main language, any technology can be +- The service must be easily **runnable/startable** & **deployable** on the + *AWS* *ecosystem* by the reviewer of the task. Other than node.js being the main language, any technology can be used. - The project should be submitted in the form of a **code repository**. - Please state any assumptions or deviations from the specification in the repository readme. @@ -43,3 +43,4 @@ Basic instructions to start build and get this API up and running | `npm run build` | **Builds the project**, cleaning the project, transpiling it and then cleaning the *transpiled* tests | | `npm run test` | Runs all the **tests once** | | `npm run test:watch` | Runs test in **test-development** mode while the developer creates tests giving the ability to automatically run when changes made | +| `npm run coverage` | Runs all the tests to calculate the test coverage and to vet if it succeeds against the expected size | diff --git a/TODO b/TODO index 019e2e1..cefc639 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ ✔ Setup basic `express` application @critical @done(20-11-26 15:48) ✔ Clean up and prepare the application so that it is ready for `Senaca requirments` @high @done(20-11-26 15:50) -✔ Add the SWAGGER into the definition so the swagger UI can test the endpoint @high @done(20-11-26 15:50) +✔ Add the `SWAGGER` into the definition so the swagger UI can test the endpoint @high @done(20-11-26 15:50) ☐ Start developing endpoints so they get values @high ☐ Start developing by domain an using an In-memory mongo database @high ☐ Start configuring a serverless.yaml for AWS deployment script @high From 6534339dfc5a1825ba06e561db73598f73ae6e0a Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 26 Nov 2020 16:35:25 +0000 Subject: [PATCH 04/60] Cleaned basics --- .gitignore | 2 +- dist-server/app.js | 47 ----- dist-server/bin/server.js | 73 -------- dist-server/config.js | 22 --- .../routes/__snapshots__/index.test.js.snap | 20 -- .../routes/__snapshots__/users.test.js.snap | 3 - dist-server/routes/index.js | 21 --- dist-server/routes/users.js | 21 --- dist-server/swagger.json | 174 ------------------ dist-server/users/index.js | 50 ----- package-lock.json | 143 +++++++++++--- package.json | 1 + 12 files changed, 123 insertions(+), 454 deletions(-) delete mode 100644 dist-server/app.js delete mode 100644 dist-server/bin/server.js delete mode 100644 dist-server/config.js delete mode 100644 dist-server/routes/__snapshots__/index.test.js.snap delete mode 100644 dist-server/routes/__snapshots__/users.test.js.snap delete mode 100644 dist-server/routes/index.js delete mode 100644 dist-server/routes/users.js delete mode 100644 dist-server/swagger.json delete mode 100644 dist-server/users/index.js diff --git a/.gitignore b/.gitignore index 6cc08dd..d52f442 100644 --- a/.gitignore +++ b/.gitignore @@ -101,4 +101,4 @@ dist .tern-port # Distributed files generated -test-express/dist-server/ +dist-server/ diff --git a/dist-server/app.js b/dist-server/app.js deleted file mode 100644 index 8cb0127..0000000 --- a/dist-server/app.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); - -require("core-js/modules/es6.object.define-property"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = _interopRequireWildcard(require("express")); - -var _path = require("path"); - -var _cookieParser = _interopRequireDefault(require("cookie-parser")); - -var _morgan = _interopRequireDefault(require("morgan")); - -var _swaggerUiExpress = _interopRequireDefault(require("swagger-ui-express")); - -var _swagger = _interopRequireDefault(require("./swagger.json")); - -var _index = _interopRequireDefault(require("./routes/index")); - -var _users = _interopRequireDefault(require("./routes/users")); - -var _config = _interopRequireDefault(require("./config")); - -var isDev = _config["default"].isDev, - port = _config["default"].port; -console.debug("This is a ".concat(isDev ? "Development" : "Production", " release preparing API on port '").concat(port, "'")); -var app = (0, _express["default"])(); -app.use((0, _morgan["default"])("dev")); -app.use((0, _express.json)()); -app.use((0, _express.urlencoded)({ - extended: false -})); -app.use((0, _cookieParser["default"])()); -app.use(_express["default"]["static"]((0, _path.join)(__dirname, "../public"))); -app.use("/", _index["default"]); -app.use("/users", _users["default"]); -app.use("/api-docs", _swaggerUiExpress["default"].serve, _swaggerUiExpress["default"].setup(_swagger["default"])); -var _default = app; -exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/bin/server.js b/dist-server/bin/server.js deleted file mode 100644 index 8a33812..0000000 --- a/dist-server/bin/server.js +++ /dev/null @@ -1,73 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -var _app = _interopRequireDefault(require("../app")); - -var _debug = _interopRequireDefault(require("debug")); - -var _http = require("http"); - -var _config = _interopRequireDefault(require("../config")); - -var _expressListEndpoints = _interopRequireDefault(require("express-list-endpoints")); - -var debug = (0, _debug["default"])('test-express:server'); -var port = _config["default"].port; -var iisPort = getPortAndConfigureIISExpress(); -var server = generateServer(); - -function generateServer() { - var result = (0, _http.createServer)(_app["default"]); - result.listen(iisPort); - result.on('error', onError); - result.on('listening', onListening); - return result; -} - -function getPortAndConfigureIISExpress() { - var result = normalizePort(port); - - _app["default"].set('port', result); - - return result; -} - -function normalizePort(val) { - var port = parseInt(val, 10); - if (isNaN(port)) return val; - if (port >= 0) return port; - return false; -} - -function onError(error) { - if (error.syscall !== 'listen') { - throw error; - } - - var bind = typeof iisPort === 'string' ? 'Pipe ' + iisPort : 'Port ' + iisPort; - makeErrorsMoreInformative(); - - function makeErrorsMoreInformative() { - switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); - process.exit(1); - - case 'EADDRINUSE': - console.error(bind + ' is already in use'); - process.exit(1); - - default: - throw error; - } - } -} - -function onListening() { - var addr = server.address(); - var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; - debug('Listening on ' + bind); - console.debug((0, _expressListEndpoints["default"])(_app["default"])); - console.debug("http://localhost:".concat(_app["default"].get("port"), " is ready")); -} \ No newline at end of file diff --git a/dist-server/config.js b/dist-server/config.js deleted file mode 100644 index e875d0e..0000000 --- a/dist-server/config.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); - -require("core-js/modules/es6.object.define-property"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _dotenv = _interopRequireDefault(require("dotenv")); - -var actualConfig = _dotenv["default"].config(); - -console.debug(".env config value", actualConfig); -var _default = { - isDev: process.env.NODE_ENV === "development", - isProd: process.env.NODE_ENV === "production", - port: process.env.PORT || 3000 -}; -exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/routes/__snapshots__/index.test.js.snap b/dist-server/routes/__snapshots__/index.test.js.snap deleted file mode 100644 index 0826752..0000000 --- a/dist-server/routes/__snapshots__/index.test.js.snap +++ /dev/null @@ -1,20 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`index or home page should get the route 1`] = ` -" - - - Express Test API Test - - - - -

Express Test API's

-

This is a space to document information about test scenarios. If not used, remove from the project.

-

Takle a look at the API exposed using Swagger -

- - - -" -`; diff --git a/dist-server/routes/__snapshots__/users.test.js.snap b/dist-server/routes/__snapshots__/users.test.js.snap deleted file mode 100644 index e942141..0000000 --- a/dist-server/routes/__snapshots__/users.test.js.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`users api should get the users json response 1`] = `"[{\\"user\\":{\\"id\\":1,\\"name\\":\\"Jane\\",\\"lastname\\":\\"Doe\\"}},{\\"user\\":{\\"id\\":2,\\"name\\":\\"Jon\\",\\"lastname\\":\\"Doe\\"}},{\\"user\\":{\\"id\\":3,\\"name\\":\\"Michael\\",\\"lastname\\":\\"Caine\\"}},{\\"user\\":{\\"id\\":4,\\"name\\":\\"James\\",\\"lastname\\":\\"Bond\\"}},{\\"user\\":{\\"id\\":5,\\"name\\":\\"Robert\\",\\"lastname\\":\\"Plant\\"}},{\\"user\\":{\\"id\\":6,\\"name\\":\\"Jordan\\",\\"lastname\\":\\"Peterson\\"}}]"`; diff --git a/dist-server/routes/index.js b/dist-server/routes/index.js deleted file mode 100644 index da143d4..0000000 --- a/dist-server/routes/index.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -require("core-js/modules/es6.object.define-property"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var router = (0, _express.Router)(); -/* GET home page. */ - -router.get('/', function (req, res, next) { - res.render('index', { - title: 'Express' - }); -}); -var _default = router; -exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/routes/users.js b/dist-server/routes/users.js deleted file mode 100644 index dace4f4..0000000 --- a/dist-server/routes/users.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; - -require("core-js/modules/es6.object.define-property"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _express = require("express"); - -var _users = require("../users"); - -var router = (0, _express.Router)(); -router.get('/', function (req, res, next) { - // console.debug(req, next); - var usersResponse = (0, _users.getUserList)(); - res.json(usersResponse); -}); -var _default = router; -exports["default"] = _default; \ No newline at end of file diff --git a/dist-server/swagger.json b/dist-server/swagger.json deleted file mode 100644 index a29412a..0000000 --- a/dist-server/swagger.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "0.0.0", - "title": "Stats Service", - "description": "Provides persistence of stats" - }, - "host": "localhost:3000", - "basePath": "/", - "schemes": [ - "http" - ], - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": { - "/courses/{courseId}": { - "post": { - "description": "Persists a session study event", - "parameters": [ - { - "in": "header", - "description": "Identifies the user", - "name": "X-User-Id", - "type": "string", - "format": "uuid", - "required": true - }, - { - "in": "path", - "name": "courseId", - "required": true, - "type": "string", - "format": "uuid", - "description": "Identifies the course" - }, - { - "in": "body", - "name": "stats diff", - "required": true, - "schema": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "format": "uuid" - }, - "totalModulesStudied": { - "type": "number" - }, - "averageScore": { - "type": "number" - }, - "timeStudied": { - "type": "number", - "description": "Type in milliseconds" - } - } - } - } - ], - "responses": { - "201": { - "description": "OK" - } - } - }, - "get": { - "description": "Fetches course lifetime statistics", - "parameters": [ - { - "in": "header", - "description": "Identifies the user", - "name": "X-User-Id", - "type": "string", - "format": "uuid", - "required": true - }, - { - "in": "path", - "name": "courseId", - "required": true, - "type": "string", - "format": "uuid", - "description": "Identifies the course" - } - ], - "responses": { - "200": { - "description": "Course lifetime stats", - "schema": { - "type": "object", - "properties": { - "totalModulesStudied": { - "type": "number", - "description": "The number of modules studied in the course" - }, - "averageScore": { - "type": "number", - "description": "The users average score of modules across the course" - }, - "timeStudied": { - "type": "number", - "description": "The total time spent studying a course" - } - } - } - } - } - } - }, - "/courses/{courseId}/sessions/{sessionId}": { - "get": { - "description": "Fetches a single study session", - "parameters": [ - { - "in": "header", - "description": "Identifies the user", - "name": "X-User-Id", - "type": "string", - "format": "uuid", - "required": true - }, - { - "in": "path", - "name": "courseId", - "required": true, - "type": "string", - "format": "uuid", - "description": "Identifies the course" - }, - { - "in": "path", - "name": "sessionId", - "required": true, - "type": "string", - "format": "uuid", - "description": "Identifies the study session" - } - ], - "responses": { - "200": { - "description": "Study session stats", - "schema": { - "type": "object", - "properties": { - "sessionId": { - "description": "Identifies the session", - "type": "string", - "format": "uuid" - }, - "totalModulesStudied": { - "type": "number", - "description": "The number of modules studied in the session" - }, - "averageScore": { - "type": "number", - "description": "The users average score of modules in session" - }, - "timeStudied": { - "type": "number", - "description": "The total time spent in session" - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/dist-server/users/index.js b/dist-server/users/index.js deleted file mode 100644 index 7e92344..0000000 --- a/dist-server/users/index.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; - -require("core-js/modules/es6.object.define-property"); - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getUserList = void 0; - -var getUserList = function getUserList() { - return [{ - user: { - id: 1, - name: 'Jane', - lastname: 'Doe' - } - }, { - user: { - id: 2, - name: 'Jon', - lastname: 'Doe' - } - }, { - user: { - id: 3, - name: 'Michael', - lastname: 'Caine' - } - }, { - user: { - id: 4, - name: 'James', - lastname: 'Bond' - } - }, { - user: { - id: 5, - name: 'Robert', - lastname: 'Plant' - } - }, { - user: { - id: 6, - name: 'Jordan', - lastname: 'Peterson' - } - }]; -}; - -exports.getUserList = getUserList; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9b7c46f..32415eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "test-express", + "name": "stats service", "version": "0.0.0", "lockfileVersion": 1, "requires": true, @@ -2405,20 +2405,49 @@ "optional": true }, "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { - "bytes": "3.0.0", + "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + } } }, "boxen": { @@ -2571,9 +2600,9 @@ "dev": true }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "cache-base": { "version": "1.0.1", @@ -3637,10 +3666,51 @@ "vary": "~1.1.2" }, "dependencies": { + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } } } }, @@ -4224,9 +4294,9 @@ "dev": true }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -7207,14 +7277,38 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + } } }, "rc": { @@ -8453,6 +8547,11 @@ "repeat-string": "^1.6.1" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", diff --git a/package.json b/package.json index 1161f73..62f1c7e 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "test:watch": "jest --watch" }, "dependencies": { + "body-parser": "^1.19.0", "cookie-parser": "~1.4.4", "debug": "~2.6.9", "dotenv": "^8.2.0", From f57574084dea9ddcec72b89f513c090196f54200 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 26 Nov 2020 16:40:56 +0000 Subject: [PATCH 05/60] Cleaned up images --- readme-images/codecoverage-sample.png | Bin 77738 -> 0 bytes readme-images/lcov-report-sample.png | Bin 73792 -> 0 bytes readme-images/supertest-sample.png | Bin 67128 -> 0 bytes readme-images/swagger-api-summary-sample.png | Bin 34580 -> 0 bytes readme-images/swagger-execute-sample.png | Bin 103611 -> 0 bytes readme-images/todo-sample.png | Bin 141064 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 readme-images/codecoverage-sample.png delete mode 100644 readme-images/lcov-report-sample.png delete mode 100644 readme-images/supertest-sample.png delete mode 100644 readme-images/swagger-api-summary-sample.png delete mode 100644 readme-images/swagger-execute-sample.png delete mode 100644 readme-images/todo-sample.png diff --git a/readme-images/codecoverage-sample.png b/readme-images/codecoverage-sample.png deleted file mode 100644 index 35e8704bebc5dafeb6b3e8d9fc8c47290657d0de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77738 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 A`v3p{ diff --git a/readme-images/lcov-report-sample.png b/readme-images/lcov-report-sample.png deleted file mode 100644 index ee0fd1718479690ea2d88314c4f4dcd324bca0f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73792 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 bC}d;1p=l=8`e%*I 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 diff --git a/readme-images/swagger-api-summary-sample.png b/readme-images/swagger-api-summary-sample.png deleted file mode 100644 index 9b5374bf22e82dd93699ef4f84099254c856d991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34580 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%0DCWmkveY1f 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 diff --git a/readme-images/todo-sample.png b/readme-images/todo-sample.png deleted file mode 100644 index d578f95173486ce5f3d75cd10c82614de61ab5f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141064 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%0ARho4M%IAfWzs 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 A!2kdN From 1bc1ca46b5bb4a883abb969d77f9ccf8e2fc6e1e Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 26 Nov 2020 19:16:31 +0000 Subject: [PATCH 06/60] Create route middlewares to listen to endpoints outputting parsed values --- server/app.js | 2 + server/routes/courses.js | 80 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 server/routes/courses.js diff --git a/server/app.js b/server/app.js index 79cbe70..f19c73b 100644 --- a/server/app.js +++ b/server/app.js @@ -7,6 +7,7 @@ import swaggerDocument from "./swagger.json"; import indexRouter from "./routes/index"; import usersRouter from "./routes/users"; +import coursesRouter from "./routes/courses"; import config from "./config"; const { isDev, port } = config; @@ -27,6 +28,7 @@ app.use(express.static(join(__dirname, "../public"))); app.use("/", indexRouter); app.use("/users", usersRouter); +app.use("/courses", coursesRouter); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); export default app; diff --git a/server/routes/courses.js b/server/routes/courses.js new file mode 100644 index 0000000..095159b --- /dev/null +++ b/server/routes/courses.js @@ -0,0 +1,80 @@ +import { Router } from "express"; +const router = Router(); + +router.post("/:courseId", function (req, res, next) { + const { body, params, headers } = req; + console.debug("headers, params, body", headers, params, body); + const { courseId } = params; + const { sessionId, totalModulesStudied, averageScore, timeStudied } = body; + const userId = headers["x-user-id"]; + console.debug( + "sessionId, totalModulesStudied, averageScore, timeStudied, userId", + sessionId, + totalModulesStudied, + averageScore, + timeStudied, + userId + ); + + // TODO: Validate all the values + // TODO: createOrUpdateCourse in MongoDb + const course = { + courseId, + sessionId, + totalModulesStudied, + averageScore, + timeStudied, + userId, + }; + + return res.status(201).send({ + success: "true", + message: "Course added successfully", + course, + }); +}); + +router.get("/:courseId", function (req, res, next) { + const { params, headers } = req; + console.debug("headers, params", headers, params); + const { courseId } = params; + const userId = headers["x-user-id"]; + console.debug("userId", userId); + + // TODO: Validate all the values + // TODO: getCourse in MongoDb + const course = { + courseId, + userId, + }; + + return res.status(200).send({ + success: "true", + message: "Course retrieved successfully", + course, + }); +}); + +router.get("/:courseId/sessions/:sessionsId", function (req, res, next) { + const { params, headers } = req; + console.debug("headers, params", headers, params); + const { courseId, sessionsId } = params; + const userId = headers["x-user-id"]; + console.debug("userId, sessionsId", userId, sessionsId); + + // TODO: Validate all the values + // TODO: getSessionFromCourse in MongoDb + const course = { + courseId, + userId, + sessionsId, + }; + + return res.status(200).send({ + success: "true", + message: "Course and Session retrieved successfully", + course, + }); +}); + +export default router; From 9b5d24ebb184fcf001e992f0515ab79c08722224 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 27 Nov 2020 15:13:51 +0000 Subject: [PATCH 07/60] Build model to represent data using mongoose --- package-lock.json | 547 +++++++++++++++++++++++++++++++++++---- package.json | 6 +- server/models/course.js | 8 + server/models/session.js | 11 + 4 files changed, 522 insertions(+), 50 deletions(-) create mode 100644 server/models/course.js create mode 100644 server/models/session.js diff --git a/package-lock.json b/package-lock.json index 32415eb..8cba22f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "stats service", + "name": "test-express", "version": "0.0.0", "lockfileVersion": 1, "requires": true, @@ -1914,6 +1914,11 @@ "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", "dev": true }, + "@types/tmp": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.0.tgz", + "integrity": "sha512-flgpHJjntpBAdJD43ShRosQvNC0ME97DCfGvZEDlAThQmnerRXrLbX6YgzRBQCZTthET9eAWFAMaYP0m0Y4HzQ==" + }, "@types/yargs": { "version": "15.0.10", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", @@ -1972,6 +1977,29 @@ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2316,8 +2344,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -2374,6 +2401,11 @@ } } }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, "basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -2404,6 +2436,20 @@ "dev": true, "optional": true }, + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -2521,7 +2567,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2593,6 +2638,25 @@ "node-int64": "^0.4.0" } }, + "bson": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.5.tgz", + "integrity": "sha512-kDuEzldR21lHciPQAIulLs1LZlCXdLziXI6Mb/TDkwXhb//UORJNPXgcRs2CuO4H0DcMkpfT3/ySsP3unoZjBg==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -2953,8 +3017,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-emitter": { "version": "1.3.0", @@ -2965,8 +3028,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { "version": "5.0.1", @@ -3076,8 +3138,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cross-env": { "version": "7.0.2", @@ -3308,6 +3369,11 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "denque": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", + "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -3415,7 +3481,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -3850,6 +3915,14 @@ "bser": "2.1.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -3943,11 +4016,15 @@ } } }, + "find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==" + }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -4001,6 +4078,11 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -4010,8 +4092,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.2.1", @@ -4055,6 +4136,11 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==" + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -4083,7 +4169,6 @@ "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4287,6 +4372,30 @@ "sshpk": "^1.7.0" } }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -4301,6 +4410,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -4333,7 +4447,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -4636,14 +4749,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -6349,6 +6460,11 @@ "verror": "1.10.0" } }, + "kareem": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", + "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -6439,11 +6555,18 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, "requires": { "p-locate": "^4.1.0" } }, + "lockfile": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", + "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", + "requires": { + "signal-exit": "^3.0.2" + } + }, "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", @@ -6516,11 +6639,22 @@ "object-visit": "^1.0.0" } }, + "md5-file": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", + "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==" + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -6598,7 +6732,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6633,8 +6766,192 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mongodb": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz", + "integrity": "sha512-rOZuR0QkodZiM+UbQE5kDsJykBqWi0CL4Ec2i1nrGrUI3KO11r6Fbxskqmq3JK2NH7aW4dcccBuUujAP0ERl5w==", + "requires": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "mongodb-memory-server": { + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/mongodb-memory-server/-/mongodb-memory-server-6.9.2.tgz", + "integrity": "sha512-+8axA5PlO+C3H+kgsxt6+6edcKAaY56YjYt+MWj9t1ZiKsEr+7SPsQfJcEoX+Kiz802jt1BOOIbYQVLX+08Hag==", + "requires": { + "mongodb-memory-server-core": "6.9.2" + } + }, + "mongodb-memory-server-core": { + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/mongodb-memory-server-core/-/mongodb-memory-server-core-6.9.2.tgz", + "integrity": "sha512-0naMEESKsJNBg4/djN9qc+Argmg5UElJ/EFP9M4opTH//GZ1Rn6SI5S43NFHJrizOPGojAAp21gn7rNOru7Ypw==", + "requires": { + "@types/tmp": "^0.2.0", + "camelcase": "^6.0.0", + "cross-spawn": "^7.0.3", + "debug": "^4.2.0", + "find-cache-dir": "^3.3.1", + "find-package-json": "^1.2.0", + "get-port": "^5.1.1", + "https-proxy-agent": "^5.0.0", + "lockfile": "^1.0.4", + "md5-file": "^5.0.0", + "mkdirp": "^1.0.4", + "mongodb": "3.6.2", + "semver": "^7.3.2", + "tar-stream": "^2.1.4", + "tmp": "^0.2.1", + "uuid": "8.3.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "mongodb": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.2.tgz", + "integrity": "sha512-sSZOb04w3HcnrrXC82NEh/YGCmBuRgR+C1hZgmmv4L6dBz4BkRse6Y8/q/neXer9i95fKUBbFi4KgeceXmbsOA==", + "optional": true, + "requires": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "require_optional": "^1.0.1", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "mongoose": { + "version": "5.10.16", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.10.16.tgz", + "integrity": "sha512-rgfK1lvAQdCZ0buPju7Wny3suls5A1GjYRsv+jrQBVA0N/OhtGKHjr5RXJs0rxQhodwNVfc7O8g4bwDqW4R0sQ==", + "requires": { + "bson": "^1.1.4", + "kareem": "2.3.1", + "mongodb": "3.6.3", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.7.0", + "mquery": "3.2.2", + "ms": "2.1.2", + "regexp-clone": "1.0.0", + "safe-buffer": "5.2.1", + "sift": "7.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" }, "morgan": { "version": "1.9.1", @@ -6648,6 +6965,38 @@ "on-headers": "~1.0.1" } }, + "mpath": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.7.0.tgz", + "integrity": "sha512-Aiq04hILxhz1L+f7sjGyn7IxYzWm1zLNNXcfhDtx04kZ2Gk7uvFdgZ8ts1cWa/6d0TQmag2yR8zSGZUmp0tFNg==" + }, + "mquery": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.2.tgz", + "integrity": "sha512-XB52992COp0KP230I3qloVUbkLUxJIu328HBP2t2EsxSFtf4W1HPSOBWOXf1bqxK4Xbb66lfMJ+Bpfd9/yZE1Q==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "^1.0.0", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -6937,7 +7286,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -6987,7 +7335,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -6996,7 +7343,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -7004,8 +7350,7 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-json": { "version": "6.5.0", @@ -7064,14 +7409,12 @@ "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", @@ -7099,6 +7442,11 @@ "pify": "^3.0.0" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -7136,7 +7484,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, "requires": { "find-up": "^4.0.0" } @@ -7206,9 +7553,7 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "optional": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "prompts": { "version": "2.4.0", @@ -7389,8 +7734,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7453,6 +7796,11 @@ "safe-regex": "^1.1.0" } }, + "regexp-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", + "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" + }, "regexpu-core": { "version": "4.7.1", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", @@ -7616,6 +7964,22 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "^2.0.0", + "semver": "^5.1.0" + }, + "dependencies": { + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + } + } + }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -7666,7 +8030,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -7713,6 +8076,15 @@ "walker": "~1.0.5" } }, + "saslprep": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", + "optional": true, + "requires": { + "sparse-bitfield": "^3.0.3" + } + }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -7736,8 +8108,7 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-diff": { "version": "3.1.1", @@ -7849,11 +8220,15 @@ "dev": true, "optional": true }, + "sift": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sisteransi": { "version": "1.0.5", @@ -7867,6 +8242,11 @@ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -8017,6 +8397,15 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "optional": true, + "requires": { + "memory-pager": "^1.0.2" + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -8275,7 +8664,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -8454,6 +8842,47 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "tar-stream": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", + "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "bl": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", + "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -8487,6 +8916,14 @@ "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", @@ -8883,8 +9320,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -8927,6 +9363,11 @@ "spdx-expression-parse": "^3.0.0" } }, + "validator": { + "version": "13.1.17", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.1.17.tgz", + "integrity": "sha512-zL5QBoemJ3jYFb2/j38y7ljhwYGXVLUp8H6W1nVxadnAOvUOytec+L7BHh1oBQ82/TzWXHd+GSaxUWp4lROkLg==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -9098,8 +9539,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", @@ -9171,6 +9611,15 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/package.json b/package.json index 62f1c7e..f9d5a31 100644 --- a/package.json +++ b/package.json @@ -18,14 +18,18 @@ "test:watch": "jest --watch" }, "dependencies": { + "bluebird": "^3.7.2", "body-parser": "^1.19.0", "cookie-parser": "~1.4.4", "debug": "~2.6.9", "dotenv": "^8.2.0", "express": "~4.16.1", "express-list-endpoints": "^5.0.0", + "mongodb-memory-server": "^6.9.2", + "mongoose": "^5.10.16", "morgan": "~1.9.1", - "swagger-ui-express": "^4.1.5" + "swagger-ui-express": "^4.1.5", + "validator": "^13.1.17" }, "babel": { "presets": [ diff --git a/server/models/course.js b/server/models/course.js new file mode 100644 index 0000000..1f51569 --- /dev/null +++ b/server/models/course.js @@ -0,0 +1,8 @@ +import mongoose from 'mongoose'; + +const courseSchema = new mongoose.Schema({ + courseId: { type: ObjectId, required: true }, + userId: { type: String, required: true } +}); + +export default mongoose.model("course", courseSchema); \ No newline at end of file diff --git a/server/models/session.js b/server/models/session.js new file mode 100644 index 0000000..b1a359d --- /dev/null +++ b/server/models/session.js @@ -0,0 +1,11 @@ +import mongoose from 'mongoose'; + +const sessionSchema = new mongoose.Schema({ + sessionId: { type: ObjectId, required: true }, + courseId: { type: ObjectId, required: true }, + userId: { type: String, required: true }, + totalModulesStudied: { type: Number, required: true }, + timeStudied: { type: Number, required: true }, +}); + +export default mongoose.model("session", sessionSchema); \ No newline at end of file From 9dbe04f4e487c6868c3d327538ba999b5e55277e Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 27 Nov 2020 17:12:59 +0000 Subject: [PATCH 08/60] Create database infrastructure Connecting and diconnecting --- .env | 3 ++- .gitignore | 1 + server/config.js | 1 + server/database/index.js | 27 +++++++++++++++++++++++++++ server/database/index.test.js | 22 ++++++++++++++++++++++ 5 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 server/database/index.js create mode 100644 server/database/index.test.js diff --git a/.env b/.env index c0c68b1..d8eedd9 100644 --- a/.env +++ b/.env @@ -1 +1,2 @@ -PORT=3000 \ No newline at end of file +PORT=3000 +MONGODB_URI="mongodb://localhost:27017/SenecaStats?safe=true" \ No newline at end of file diff --git a/.gitignore b/.gitignore index d52f442..404600c 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,4 @@ dist # Distributed files generated dist-server/ +.vscode/launch.json diff --git a/server/config.js b/server/config.js index ce4c252..0a87ca3 100644 --- a/server/config.js +++ b/server/config.js @@ -6,4 +6,5 @@ export default { isDev: process.env.NODE_ENV === "development", isProd: process.env.NODE_ENV === "production", port: process.env.PORT || 3000, + defaultMongoUri: process.env.MONGODB_URI || 'mongodb://localhost:27017/SenecaStats?safe=true', }; diff --git a/server/database/index.js b/server/database/index.js new file mode 100644 index 0000000..7ecefe5 --- /dev/null +++ b/server/database/index.js @@ -0,0 +1,27 @@ +import mongoose from "mongoose"; +import { MongoMemoryServer } from "mongodb-memory-server"; +import config from '../config'; + +const { defaultMongoUri } = config; +const mongod = new MongoMemoryServer(); + +export const connect = async (isMemoryServer = true) => { + const uri = isMemoryServer ? await mongod.getUri() : defaultMongoUri; + console.debug(`Connecting to MongoDB URI '${uri}'`); + + const connectionOptions = { + useNewUrlParser: true, + autoReconnect: true, + reconnectTries: Number.MAX_VALUE, + reconnectInterval: 1000 + }; + + const result = await mongoose.connect(uri , connectionOptions); + return result; +}; + +export const disconnect = async () => { + // await mongoose.connection.dropDatabase(); + await mongoose.connection.close(); + await mongod.stop(); +}; diff --git a/server/database/index.test.js b/server/database/index.test.js new file mode 100644 index 0000000..a22ef8e --- /dev/null +++ b/server/database/index.test.js @@ -0,0 +1,22 @@ +import { connect, disconnect } from "./index"; +import mongoose from "mongoose"; + +describe("mongo in-memory database", () => { + describe("connect and disconnect memory mongo db integration test", () => { + beforeAll(async() => { + const isInMemory = true; + await connect(isInMemory); + }); + + afterAll(async() => { + await disconnect(); + }); + + test("should have an active mongodb connection", (done) => { + const actualConnections = mongoose.connections; + expect(actualConnections).toBeDefined() + expect(actualConnections.length).toBeGreaterThanOrEqual(1); + done(); + }); + }); +}); From 24b7aed8c4ee65c87a41202b0f5707e1630addc5 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 27 Nov 2020 17:13:25 +0000 Subject: [PATCH 09/60] Fixed failing tests because of missing file --- server/routes/index.test.js | 4 ++-- server/routes/users.test.js | 4 ++-- test-utilities/test-route.js | 12 ++++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 test-utilities/test-route.js diff --git a/server/routes/index.test.js b/server/routes/index.test.js index 90cded3..d47060a 100644 --- a/server/routes/index.test.js +++ b/server/routes/index.test.js @@ -1,8 +1,8 @@ -import { getTest } from "../../test-utilities/test-route"; +import { getRequestTest } from "../../test-utilities/test-route.js"; describe("index or home page", () => { it("should get the route", async (done) => { - const actualResponse = await getTest("/"); + const actualResponse = await getRequestTest("/"); expect(actualResponse).toBeTruthy(); expect(actualResponse.status).toBe(200); expect(actualResponse.text).toMatchSnapshot(); diff --git a/server/routes/users.test.js b/server/routes/users.test.js index e0f661b..3ae9d5d 100644 --- a/server/routes/users.test.js +++ b/server/routes/users.test.js @@ -1,8 +1,8 @@ -import { getTest } from "../../test-utilities/test-route"; +import { getRequestTest } from "../../test-utilities/test-route"; describe("users api", () => { it("should get the users json response", async (done) => { - const actualResponse = await getTest("/users"); + const actualResponse = await getRequestTest("/users"); expect(actualResponse).toBeTruthy(); expect(actualResponse.status).toBe(200); expect(actualResponse.text).toMatchSnapshot(); diff --git a/test-utilities/test-route.js b/test-utilities/test-route.js new file mode 100644 index 0000000..07974dd --- /dev/null +++ b/test-utilities/test-route.js @@ -0,0 +1,12 @@ +import app from "../server/app"; +import supertest from "supertest"; +const request = supertest(app); + +/* +** REMARKS: Help remove duplication in tests and this wraps the +** get without needing to include all the imports +*/ +export async function getRequestTest(url) { + const actualResponse = await request.get(url); + return actualResponse; +} \ No newline at end of file From 5570c772778639933f94585edb52665083a00ecd Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 27 Nov 2020 21:15:45 +0000 Subject: [PATCH 10/60] Added default createOrUpdate with create only path --- .../__snapshots__/createOrUpdate.test.js.snap | 19 +++ server/courses/createOrUpdate.test.js | 114 ++++++++++++++++++ server/courses/index.js | 22 ++++ server/database/index.js | 11 +- server/models/course.js | 21 +++- server/models/session.js | 34 ++++-- server/validator/index.js | 3 + server/validator/isNullOrUndefined.test.js | 11 ++ 8 files changed, 223 insertions(+), 12 deletions(-) create mode 100644 server/courses/__snapshots__/createOrUpdate.test.js.snap create mode 100644 server/courses/createOrUpdate.test.js create mode 100644 server/courses/index.js create mode 100644 server/validator/index.js create mode 100644 server/validator/isNullOrUndefined.test.js diff --git a/server/courses/__snapshots__/createOrUpdate.test.js.snap b/server/courses/__snapshots__/createOrUpdate.test.js.snap new file mode 100644 index 0000000..527a4a1 --- /dev/null +++ b/server/courses/__snapshots__/createOrUpdate.test.js.snap @@ -0,0 +1,19 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`createOrUpdate a course should throw an error when an invalid courseId is added 1`] = `"course validation failed: courseId: Validator failed for path \`courseId\` with value \`NotValid\`"`; + +exports[`createOrUpdate a course should throw an error when an invalid sessionId is added 1`] = `"session validation failed: sessionId: Validator failed for path \`sessionId\` with value \`NotUUID\`"`; + +exports[`createOrUpdate a course should throw an error when an undefined averageScore is added 1`] = `"session validation failed: averageScore: Path \`averageScore\` is required."`; + +exports[`createOrUpdate a course should throw an error when an undefined sessionId is added 1`] = `"session validation failed: sessionId: Path \`sessionId\` is required."`; + +exports[`createOrUpdate a course should throw an error when an undefined timeStudied is added 1`] = `"session validation failed: timeStudied: Path \`timeStudied\` is required."`; + +exports[`createOrUpdate a course should throw an error when an undefined totalModulesStudied is added 1`] = `"session validation failed: totalModulesStudied: Path \`totalModulesStudied\` is required."`; + +exports[`createOrUpdate a course should throw an error when an undefined userId is added 1`] = `"course validation failed: userId: Path \`userId\` is required."`; + +exports[`createOrUpdate a course should throw an error when and empty course is added 1`] = `"course validation failed: userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; + +exports[`createOrUpdate a course should throw an error when no course is added 1`] = `"Course is required"`; diff --git a/server/courses/createOrUpdate.test.js b/server/courses/createOrUpdate.test.js new file mode 100644 index 0000000..b81885d --- /dev/null +++ b/server/courses/createOrUpdate.test.js @@ -0,0 +1,114 @@ +import { connect, disconnect, clearDatabase } from "../database"; +import { createOrUpdate } from "./index"; + +describe("createOrUpdate a course", () => { + const validCourse = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + userId: "jane.doe@somemail.com", + }; + beforeAll(async () => { + const isInMemory = true; + await connect(isInMemory); + }); + + afterEach(async () => { + await clearDatabase(); + }); + + afterAll(async () => { + await disconnect(); + }); + + test("should throw an error when no course is added", async (done) => { + await expect(() => createOrUpdate()).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when and empty course is added", async (done) => { + await expect(() => + createOrUpdate({}) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when an invalid courseId is added", async (done) => { + const invalidCourse = { ...validCourse }; + (invalidCourse.courseId = "NotValid"), + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when an undefined sessionId is added", async (done) => { + const invalidCourse = { ...validCourse }; + invalidCourse.sessionId = undefined; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an invalid sessionId is added", async (done) => { + const invalidCourse = { ...validCourse }; + invalidCourse.sessionId = "NotUUID"; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an undefined totalModulesStudied is added", async (done) => { + const invalidCourse = { ...validCourse }; + invalidCourse.totalModulesStudied = undefined; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an undefined averageScore is added", async (done) => { + const invalidCourse = { ...validCourse }; + invalidCourse.averageScore = undefined; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an undefined timeStudied is added", async (done) => { + const invalidCourse = { ...validCourse }; + invalidCourse.timeStudied = undefined; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when an undefined userId is added", async (done) => { + const invalidCourse = { ...validCourse }; + invalidCourse.userId = undefined; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should create or update the course information", () => { + expect(async () => await createOrUpdate(validCourse)).not.toThrow(); + }); +}); diff --git a/server/courses/index.js b/server/courses/index.js new file mode 100644 index 0000000..f69b3ad --- /dev/null +++ b/server/courses/index.js @@ -0,0 +1,22 @@ +import validator from "validator"; +import { Promise } from "bluebird"; + +import courseModel from "../models/course"; +import sessionModel from "../models/session"; +import { isNullOrUndefined } from "../validator"; + +export const createOrUpdate = (course) => { + return new Promise(async (resolve, reject) => { + if (isNullOrUndefined(course)) { + return reject(new Error("Course is required")); + } + + try { + const courseResponse = await courseModel.create(course); + const sessionResponse = await sessionModel.create(course); + resolve({ courseResponse, sessionResponse }); + } catch (error) { + reject(error); + } + }); +}; diff --git a/server/database/index.js b/server/database/index.js index 7ecefe5..f68d63b 100644 --- a/server/database/index.js +++ b/server/database/index.js @@ -21,7 +21,16 @@ export const connect = async (isMemoryServer = true) => { }; export const disconnect = async () => { - // await mongoose.connection.dropDatabase(); + await mongoose.connection.dropDatabase(); await mongoose.connection.close(); await mongod.stop(); }; + +export const clearDatabase = async () => { + const collections = mongoose.connection.collections; + + for (const key in collections) { + const collection = collections[key]; + await collection.deleteMany(); + } +} diff --git a/server/models/course.js b/server/models/course.js index 1f51569..4443ff5 100644 --- a/server/models/course.js +++ b/server/models/course.js @@ -1,8 +1,21 @@ -import mongoose from 'mongoose'; +import mongoose from "mongoose"; +import validator from "validator"; const courseSchema = new mongoose.Schema({ - courseId: { type: ObjectId, required: true }, - userId: { type: String, required: true } + courseId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + userId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => !validator.isEmpty(value), + }, }); -export default mongoose.model("course", courseSchema); \ No newline at end of file +export default mongoose.model("course", courseSchema); diff --git a/server/models/session.js b/server/models/session.js index b1a359d..d6fa473 100644 --- a/server/models/session.js +++ b/server/models/session.js @@ -1,11 +1,31 @@ -import mongoose from 'mongoose'; +import mongoose from "mongoose"; +import validator from "validator"; const sessionSchema = new mongoose.Schema({ - sessionId: { type: ObjectId, required: true }, - courseId: { type: ObjectId, required: true }, - userId: { type: String, required: true }, - totalModulesStudied: { type: Number, required: true }, - timeStudied: { type: Number, required: true }, + sessionId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + courseId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + userId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => !validator.isEmpty(value), + }, + averageScore: { type: Number, required: true }, + totalModulesStudied: { type: Number, required: true }, + timeStudied: { type: Number, required: true }, }); -export default mongoose.model("session", sessionSchema); \ No newline at end of file +export default mongoose.model("session", sessionSchema); diff --git a/server/validator/index.js b/server/validator/index.js new file mode 100644 index 0000000..94844f7 --- /dev/null +++ b/server/validator/index.js @@ -0,0 +1,3 @@ +export const isNullOrUndefined = (data) => { + return data === undefined || data === null; +}; diff --git a/server/validator/isNullOrUndefined.test.js b/server/validator/isNullOrUndefined.test.js new file mode 100644 index 0000000..8d560ae --- /dev/null +++ b/server/validator/isNullOrUndefined.test.js @@ -0,0 +1,11 @@ +import { isNullOrUndefined} from './index'; + +describe('isNullOrUndefined', () => { + test('should be true when value is undefined', () => { + expect(isNullOrUndefined(undefined)).toBeTruthy() + }); + + test('should be true when value is null', () => { + expect(isNullOrUndefined(null)).toBeTruthy() + }); +}); \ No newline at end of file From 591cc97ee5013c441b7faaf6351754423d7afb1e Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 18:13:56 +0000 Subject: [PATCH 11/60] Added cleaning the snapshots from the build --- TODO | 1 + package.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index cefc639..7a9d34f 100644 --- a/TODO +++ b/TODO @@ -5,3 +5,4 @@ ☐ Start developing by domain an using an In-memory mongo database @high ☐ Start configuring a serverless.yaml for AWS deployment script @high ☐ Start PUML Architecture decisions @low +✔ Issue Remove the snapshots being outputted @done(20-11-28 18:13) diff --git a/package.json b/package.json index f9d5a31..7b28d5d 100644 --- a/package.json +++ b/package.json @@ -3,13 +3,14 @@ "version": "0.0.0", "private": true, "scripts": { - "build": "npm-run-all clean transpile clean:buildtests", + "build": "npm-run-all clean transpile clean:buildtests clean:buildsnapshots", "start": "npm run prod", "start:dev": "npm run dev", "server": "node ./dist-server/bin/server", "transpile": "babel ./server --out-dir dist-server --copy-files", "clean": "rimraf dist-server", "clean:buildtests": "rimraf dist-server/**/*.test.js", + "clean:buildsnapshots": "rimraf dist-server/**/__snapshots__/**", "coverage": "npm test -- --coverage --watchAll=false", "dev": "cross-env NODE_ENV=development npm-run-all build server", "prod": "cross-env NODE_ENV=production npm-run-all build server", From ce0f952b17ed4919e58e75e1c4dd27aea7403534 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 18:17:13 +0000 Subject: [PATCH 12/60] Minor refactoring --- server/bin/server.js | 47 ++++++++++++---------- server/courses/index.js | 4 +- server/models/course.js | 11 +---- server/models/session.js | 6 +-- server/validator/index.js | 3 -- server/validator/isNullOrUndefined.test.js | 11 ----- 6 files changed, 31 insertions(+), 51 deletions(-) delete mode 100644 server/validator/index.js delete mode 100644 server/validator/isNullOrUndefined.test.js diff --git a/server/bin/server.js b/server/bin/server.js index b4c8183..796f67c 100644 --- a/server/bin/server.js +++ b/server/bin/server.js @@ -1,26 +1,32 @@ - -import app from '../app'; -import debugLib from 'debug'; -import { createServer } from 'http'; +import app from "../app"; +import debugLib from "debug"; +import { createServer } from "http"; import config from "../config"; -import listEndpoints from 'express-list-endpoints'; +import listEndpoints from "express-list-endpoints"; +import { connect } from "../database"; -const debug = debugLib('test-express:server'); +const debug = debugLib("test-express:server"); const { port } = config; const iisPort = getPortAndConfigureIISExpress(); const server = generateServer(); +connectMongoDb(); + +async function connectMongoDb() { + const result = await connect(false); + return result; +} function generateServer() { const result = createServer(app); result.listen(iisPort); - result.on('error', onError); - result.on('listening', onListening); + result.on("error", onError); + result.on("listening", onListening); return result; } function getPortAndConfigureIISExpress() { const result = normalizePort(port); - app.set('port', result); + app.set("port", result); return result; } @@ -33,23 +39,22 @@ function normalizePort(val) { } function onError(error) { - if (error.syscall !== 'listen') { + if (error.syscall !== "listen") { throw error; } - var bind = typeof iisPort === 'string' - ? 'Pipe ' + iisPort - : 'Port ' + iisPort; + const bind = + typeof iisPort === "string" ? "Pipe " + iisPort : "Port " + iisPort; makeErrorsMoreInformative(); function makeErrorsMoreInformative() { switch (error.code) { - case 'EACCES': - console.error(bind + ' requires elevated privileges'); + case "EACCES": + console.error(bind + " requires elevated privileges"); process.exit(1); - case 'EADDRINUSE': - console.error(bind + ' is already in use'); + case "EADDRINUSE": + console.error(bind + " is already in use"); process.exit(1); default: throw error; @@ -59,10 +64,8 @@ function onError(error) { function onListening() { var addr = server.address(); - var bind = typeof addr === 'string' - ? 'pipe ' + addr - : 'port ' + addr.port; - debug('Listening on ' + bind); + var bind = typeof addr === "string" ? "pipe " + addr : "port " + addr.port; + debug("Listening on " + bind); console.debug(listEndpoints(app)); - console.debug(`http://localhost:${app.get("port")} is ready`); + console.debug(`http://localhost:${app.get("port")} is ready`); } diff --git a/server/courses/index.js b/server/courses/index.js index f69b3ad..9ae2d5e 100644 --- a/server/courses/index.js +++ b/server/courses/index.js @@ -1,13 +1,11 @@ -import validator from "validator"; import { Promise } from "bluebird"; import courseModel from "../models/course"; import sessionModel from "../models/session"; -import { isNullOrUndefined } from "../validator"; export const createOrUpdate = (course) => { return new Promise(async (resolve, reject) => { - if (isNullOrUndefined(course)) { + if (!course) { return reject(new Error("Course is required")); } diff --git a/server/models/course.js b/server/models/course.js index 4443ff5..2afa58e 100644 --- a/server/models/course.js +++ b/server/models/course.js @@ -5,17 +5,10 @@ const courseSchema = new mongoose.Schema({ courseId: { type: String, required: true, - unique: false, + unique: true, lowercase: false, validate: (value) => validator.isUUID(value), - }, - userId: { - type: String, - required: true, - unique: false, - lowercase: false, - validate: (value) => !validator.isEmpty(value), - }, + } }); export default mongoose.model("course", courseSchema); diff --git a/server/models/session.js b/server/models/session.js index d6fa473..0312810 100644 --- a/server/models/session.js +++ b/server/models/session.js @@ -5,21 +5,21 @@ const sessionSchema = new mongoose.Schema({ sessionId: { type: String, required: true, - unique: false, + unique: true, lowercase: false, validate: (value) => validator.isUUID(value), }, courseId: { type: String, required: true, - unique: false, + unique: true, lowercase: false, validate: (value) => validator.isUUID(value), }, userId: { type: String, required: true, - unique: false, + unique: true, lowercase: false, validate: (value) => !validator.isEmpty(value), }, diff --git a/server/validator/index.js b/server/validator/index.js deleted file mode 100644 index 94844f7..0000000 --- a/server/validator/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export const isNullOrUndefined = (data) => { - return data === undefined || data === null; -}; diff --git a/server/validator/isNullOrUndefined.test.js b/server/validator/isNullOrUndefined.test.js deleted file mode 100644 index 8d560ae..0000000 --- a/server/validator/isNullOrUndefined.test.js +++ /dev/null @@ -1,11 +0,0 @@ -import { isNullOrUndefined} from './index'; - -describe('isNullOrUndefined', () => { - test('should be true when value is undefined', () => { - expect(isNullOrUndefined(undefined)).toBeTruthy() - }); - - test('should be true when value is null', () => { - expect(isNullOrUndefined(null)).toBeTruthy() - }); -}); \ No newline at end of file From a26ef2ed27d0a4ad76dc35ca533933d22d6c2c0d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 18:25:07 +0000 Subject: [PATCH 13/60] Renamed server folder to be src --- package.json | 4 ++-- {server => src}/app.js | 0 {server => src}/app.test.js | 0 {server => src}/bin/server.js | 0 {server => src}/config.js | 0 .../__snapshots__/createOrUpdate.test.js.snap | 4 ++-- .../courses/createOrUpdate.test.js | 0 {server => src}/courses/index.js | 0 {server => src}/database/index.js | 0 {server => src}/database/index.test.js | 0 {server => src}/models/course.js | 0 {server => src}/models/session.js | 0 .../routes/__snapshots__/index.test.js.snap | 0 .../routes/__snapshots__/users.test.js.snap | 0 {server => src}/routes/courses.js | 24 ++++++++++++------- {server => src}/routes/index.js | 0 {server => src}/routes/index.test.js | 0 {server => src}/routes/users.js | 0 {server => src}/routes/users.test.js | 0 {server => src}/swagger.json | 0 {server => src}/users/index.js | 0 test-utilities/test-route.js | 2 +- 22 files changed, 21 insertions(+), 13 deletions(-) rename {server => src}/app.js (100%) rename {server => src}/app.test.js (100%) rename {server => src}/bin/server.js (100%) rename {server => src}/config.js (100%) rename {server => src}/courses/__snapshots__/createOrUpdate.test.js.snap (85%) rename {server => src}/courses/createOrUpdate.test.js (100%) rename {server => src}/courses/index.js (100%) rename {server => src}/database/index.js (100%) rename {server => src}/database/index.test.js (100%) rename {server => src}/models/course.js (100%) rename {server => src}/models/session.js (100%) rename {server => src}/routes/__snapshots__/index.test.js.snap (100%) rename {server => src}/routes/__snapshots__/users.test.js.snap (100%) rename {server => src}/routes/courses.js (80%) rename {server => src}/routes/index.js (100%) rename {server => src}/routes/index.test.js (100%) rename {server => src}/routes/users.js (100%) rename {server => src}/routes/users.test.js (100%) rename {server => src}/swagger.json (100%) rename {server => src}/users/index.js (100%) diff --git a/package.json b/package.json index 7b28d5d..3f2522f 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "start": "npm run prod", "start:dev": "npm run dev", "server": "node ./dist-server/bin/server", - "transpile": "babel ./server --out-dir dist-server --copy-files", + "transpile": "babel ./src --out-dir dist-server --copy-files", "clean": "rimraf dist-server", "clean:buildtests": "rimraf dist-server/**/*.test.js", "clean:buildsnapshots": "rimraf dist-server/**/__snapshots__/**", @@ -70,7 +70,7 @@ "nodemonConfig": { "exec": "npm run dev", "watch": [ - "server/*", + "src/*", "public/*" ], "ignore": [ diff --git a/server/app.js b/src/app.js similarity index 100% rename from server/app.js rename to src/app.js diff --git a/server/app.test.js b/src/app.test.js similarity index 100% rename from server/app.test.js rename to src/app.test.js diff --git a/server/bin/server.js b/src/bin/server.js similarity index 100% rename from server/bin/server.js rename to src/bin/server.js diff --git a/server/config.js b/src/config.js similarity index 100% rename from server/config.js rename to src/config.js diff --git a/server/courses/__snapshots__/createOrUpdate.test.js.snap b/src/courses/__snapshots__/createOrUpdate.test.js.snap similarity index 85% rename from server/courses/__snapshots__/createOrUpdate.test.js.snap rename to src/courses/__snapshots__/createOrUpdate.test.js.snap index 527a4a1..f6ee439 100644 --- a/server/courses/__snapshots__/createOrUpdate.test.js.snap +++ b/src/courses/__snapshots__/createOrUpdate.test.js.snap @@ -12,8 +12,8 @@ exports[`createOrUpdate a course should throw an error when an undefined timeStu exports[`createOrUpdate a course should throw an error when an undefined totalModulesStudied is added 1`] = `"session validation failed: totalModulesStudied: Path \`totalModulesStudied\` is required."`; -exports[`createOrUpdate a course should throw an error when an undefined userId is added 1`] = `"course validation failed: userId: Path \`userId\` is required."`; +exports[`createOrUpdate a course should throw an error when an undefined userId is added 1`] = `"session validation failed: userId: Path \`userId\` is required."`; -exports[`createOrUpdate a course should throw an error when and empty course is added 1`] = `"course validation failed: userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; +exports[`createOrUpdate a course should throw an error when and empty course is added 1`] = `"course validation failed: courseId: Path \`courseId\` is required."`; exports[`createOrUpdate a course should throw an error when no course is added 1`] = `"Course is required"`; diff --git a/server/courses/createOrUpdate.test.js b/src/courses/createOrUpdate.test.js similarity index 100% rename from server/courses/createOrUpdate.test.js rename to src/courses/createOrUpdate.test.js diff --git a/server/courses/index.js b/src/courses/index.js similarity index 100% rename from server/courses/index.js rename to src/courses/index.js diff --git a/server/database/index.js b/src/database/index.js similarity index 100% rename from server/database/index.js rename to src/database/index.js diff --git a/server/database/index.test.js b/src/database/index.test.js similarity index 100% rename from server/database/index.test.js rename to src/database/index.test.js diff --git a/server/models/course.js b/src/models/course.js similarity index 100% rename from server/models/course.js rename to src/models/course.js diff --git a/server/models/session.js b/src/models/session.js similarity index 100% rename from server/models/session.js rename to src/models/session.js diff --git a/server/routes/__snapshots__/index.test.js.snap b/src/routes/__snapshots__/index.test.js.snap similarity index 100% rename from server/routes/__snapshots__/index.test.js.snap rename to src/routes/__snapshots__/index.test.js.snap diff --git a/server/routes/__snapshots__/users.test.js.snap b/src/routes/__snapshots__/users.test.js.snap similarity index 100% rename from server/routes/__snapshots__/users.test.js.snap rename to src/routes/__snapshots__/users.test.js.snap diff --git a/server/routes/courses.js b/src/routes/courses.js similarity index 80% rename from server/routes/courses.js rename to src/routes/courses.js index 095159b..14e0795 100644 --- a/server/routes/courses.js +++ b/src/routes/courses.js @@ -1,7 +1,8 @@ import { Router } from "express"; +import { createOrUpdate } from "../courses"; const router = Router(); -router.post("/:courseId", function (req, res, next) { +router.post("/:courseId", async (req, res, next) => { const { body, params, headers } = req; console.debug("headers, params, body", headers, params, body); const { courseId } = params; @@ -16,8 +17,6 @@ router.post("/:courseId", function (req, res, next) { userId ); - // TODO: Validate all the values - // TODO: createOrUpdateCourse in MongoDb const course = { courseId, sessionId, @@ -27,11 +26,20 @@ router.post("/:courseId", function (req, res, next) { userId, }; - return res.status(201).send({ - success: "true", - message: "Course added successfully", - course, - }); + try { + await createOrUpdate(course); + return res.status(201).send({ + success: "true", + message: "Course added successfully", + course, + }); + } catch (error) { + return res.status(400).send({ + success: "false", + message: "Course failed to add", + error, + }); + } }); router.get("/:courseId", function (req, res, next) { diff --git a/server/routes/index.js b/src/routes/index.js similarity index 100% rename from server/routes/index.js rename to src/routes/index.js diff --git a/server/routes/index.test.js b/src/routes/index.test.js similarity index 100% rename from server/routes/index.test.js rename to src/routes/index.test.js diff --git a/server/routes/users.js b/src/routes/users.js similarity index 100% rename from server/routes/users.js rename to src/routes/users.js diff --git a/server/routes/users.test.js b/src/routes/users.test.js similarity index 100% rename from server/routes/users.test.js rename to src/routes/users.test.js diff --git a/server/swagger.json b/src/swagger.json similarity index 100% rename from server/swagger.json rename to src/swagger.json diff --git a/server/users/index.js b/src/users/index.js similarity index 100% rename from server/users/index.js rename to src/users/index.js diff --git a/test-utilities/test-route.js b/test-utilities/test-route.js index 07974dd..7e0aa9b 100644 --- a/test-utilities/test-route.js +++ b/test-utilities/test-route.js @@ -1,4 +1,4 @@ -import app from "../server/app"; +import app from "../src/app"; import supertest from "supertest"; const request = supertest(app); From 3c5ade9b537de13ecf3fac040a163e22110fa837 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 18:28:02 +0000 Subject: [PATCH 14/60] Added todo --- src/bin/server.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/server.js b/src/bin/server.js index 796f67c..2b2049d 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -12,6 +12,7 @@ const server = generateServer(); connectMongoDb(); async function connectMongoDb() { + //TODO: Remember to change this back to true when final checkin is done const result = await connect(false); return result; } From 866d07933c4df74e7c0d289977a93de28b8b8486 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 22:26:41 +0000 Subject: [PATCH 15/60] Update courses test --- package-lock.json | 17 +++++- package.json | 3 +- src/app.js | 2 - src/bin/server.js | 3 +- src/courses/createOrUpdate.test.js | 1 + src/routes/__snapshots__/courses.test.js.snap | 5 ++ src/routes/__snapshots__/users.test.js.snap | 3 -- src/routes/courses.js | 4 +- src/routes/courses.test.js | 53 +++++++++++++++++++ src/routes/users.js | 11 ---- src/routes/users.test.js | 11 ---- src/users/index.js | 46 ---------------- test-utilities/test-route.js | 9 ++++ 13 files changed, 89 insertions(+), 79 deletions(-) create mode 100644 src/routes/__snapshots__/courses.test.js.snap delete mode 100644 src/routes/__snapshots__/users.test.js.snap create mode 100644 src/routes/courses.test.js delete mode 100644 src/routes/users.js delete mode 100644 src/routes/users.test.js delete mode 100644 src/users/index.js diff --git a/package-lock.json b/package-lock.json index 8cba22f..7f0b4e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1919,6 +1919,12 @@ "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.0.tgz", "integrity": "sha512-flgpHJjntpBAdJD43ShRosQvNC0ME97DCfGvZEDlAThQmnerRXrLbX6YgzRBQCZTthET9eAWFAMaYP0m0Y4HzQ==" }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "dev": true + }, "@types/yargs": { "version": "15.0.10", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", @@ -9331,8 +9337,17 @@ "version": "8.3.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true + }, + "uuidv4": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.5.tgz", + "integrity": "sha512-ZUFxKFP9EWmju6a1tdne/pP+R65QGfcZ3LK2ExHHdwKuznX0Sx9kwhFd3Ss543Ft107SCQLyXcvHS+lmFsM9Zw==", "dev": true, - "optional": true + "requires": { + "@types/uuid": "8.3.0", + "uuid": "8.3.1" + } }, "v8-to-istanbul": { "version": "7.0.0", diff --git a/package.json b/package.json index 3f2522f..03c5e87 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,8 @@ "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "supertest": "^6.0.1", - "ts-jest": "^26.4.4" + "ts-jest": "^26.4.4", + "uuidv4": "^6.2.5" }, "nodemonConfig": { "exec": "npm run dev", diff --git a/src/app.js b/src/app.js index f19c73b..736fdcc 100644 --- a/src/app.js +++ b/src/app.js @@ -6,7 +6,6 @@ import swaggerUi from "swagger-ui-express"; import swaggerDocument from "./swagger.json"; import indexRouter from "./routes/index"; -import usersRouter from "./routes/users"; import coursesRouter from "./routes/courses"; import config from "./config"; @@ -27,7 +26,6 @@ app.use(cookieParser()); app.use(express.static(join(__dirname, "../public"))); app.use("/", indexRouter); -app.use("/users", usersRouter); app.use("/courses", coursesRouter); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); diff --git a/src/bin/server.js b/src/bin/server.js index 2b2049d..34e2b05 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -12,8 +12,7 @@ const server = generateServer(); connectMongoDb(); async function connectMongoDb() { - //TODO: Remember to change this back to true when final checkin is done - const result = await connect(false); + const result = await connect(true); return result; } diff --git a/src/courses/createOrUpdate.test.js b/src/courses/createOrUpdate.test.js index b81885d..38a5205 100644 --- a/src/courses/createOrUpdate.test.js +++ b/src/courses/createOrUpdate.test.js @@ -10,6 +10,7 @@ describe("createOrUpdate a course", () => { timeStudied: 4, userId: "jane.doe@somemail.com", }; + beforeAll(async () => { const isInMemory = true; await connect(isInMemory); diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap new file mode 100644 index 0000000..df516a2 --- /dev/null +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -0,0 +1,5 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`courses api should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course failed to add\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`\\"}}"`; + +exports[`courses api should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course added successfully\\",\\"course\\":{\\"courseId\\":\\"05e8ee94-0ef9-430d-89da-81c53848fa09\\",\\"sessionId\\":\\"580a9887-2607-44dc-877c-c50909d2d140\\",\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123,\\"userId\\":\\"161678b3-6e1e-4bb4-b5b0-57d388c88edc\\"}}"`; diff --git a/src/routes/__snapshots__/users.test.js.snap b/src/routes/__snapshots__/users.test.js.snap deleted file mode 100644 index e942141..0000000 --- a/src/routes/__snapshots__/users.test.js.snap +++ /dev/null @@ -1,3 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`users api should get the users json response 1`] = `"[{\\"user\\":{\\"id\\":1,\\"name\\":\\"Jane\\",\\"lastname\\":\\"Doe\\"}},{\\"user\\":{\\"id\\":2,\\"name\\":\\"Jon\\",\\"lastname\\":\\"Doe\\"}},{\\"user\\":{\\"id\\":3,\\"name\\":\\"Michael\\",\\"lastname\\":\\"Caine\\"}},{\\"user\\":{\\"id\\":4,\\"name\\":\\"James\\",\\"lastname\\":\\"Bond\\"}},{\\"user\\":{\\"id\\":5,\\"name\\":\\"Robert\\",\\"lastname\\":\\"Plant\\"}},{\\"user\\":{\\"id\\":6,\\"name\\":\\"Jordan\\",\\"lastname\\":\\"Peterson\\"}}]"`; diff --git a/src/routes/courses.js b/src/routes/courses.js index 14e0795..3f80b2b 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -30,13 +30,13 @@ router.post("/:courseId", async (req, res, next) => { await createOrUpdate(course); return res.status(201).send({ success: "true", - message: "Course added successfully", + message: "Course created successfully", course, }); } catch (error) { return res.status(400).send({ success: "false", - message: "Course failed to add", + message: "Course creation failed", error, }); } diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js new file mode 100644 index 0000000..2191b5d --- /dev/null +++ b/src/routes/courses.test.js @@ -0,0 +1,53 @@ +import { uuid } from "uuidv4"; + +import { postRequestTest } from "../../test-utilities/test-route"; +import { connect, disconnect, clearDatabase } from "../database"; + +describe("courses api", () => { + beforeAll(async () => { + const isInMemory = true; + await connect(isInMemory); + }); + + afterEach(async () => { + await clearDatabase(); + }); + + afterAll(async () => { + await disconnect(); + }); + + test("should post new courses when all data is valid", async (done) => { + const courseId = uuid(); + const userId = uuid(); + const body = { + sessionId: uuid(), + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + const actualResponse = await postRequestTest( + `/courses/${courseId}`, + userId, + body + ); + expect(actualResponse.status).toBe(201); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + + test("should post http 400 when course id is invalid", async (done) => { + const courseId = undefined; + const userId = uuid(); + const actualResponse = await postRequestTest( + `/courses/${courseId}`, + userId, + undefined + ); + expect(actualResponse.status).toBe(400); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + + +}); diff --git a/src/routes/users.js b/src/routes/users.js deleted file mode 100644 index 22bf641..0000000 --- a/src/routes/users.js +++ /dev/null @@ -1,11 +0,0 @@ -import { Router } from 'express'; -const router = Router(); -import { getUserList } from '../users' - -router.get('/', function (req, res, next) { - // console.debug(req, next); - const usersResponse = getUserList(); - res.json(usersResponse); -}); - -export default router; diff --git a/src/routes/users.test.js b/src/routes/users.test.js deleted file mode 100644 index 3ae9d5d..0000000 --- a/src/routes/users.test.js +++ /dev/null @@ -1,11 +0,0 @@ -import { getRequestTest } from "../../test-utilities/test-route"; - -describe("users api", () => { - it("should get the users json response", async (done) => { - const actualResponse = await getRequestTest("/users"); - expect(actualResponse).toBeTruthy(); - expect(actualResponse.status).toBe(200); - expect(actualResponse.text).toMatchSnapshot(); - done(); - }); -}); diff --git a/src/users/index.js b/src/users/index.js deleted file mode 100644 index 48329db..0000000 --- a/src/users/index.js +++ /dev/null @@ -1,46 +0,0 @@ -export const getUserList = () => { - return [ - { - user: { - id: 1, - name: 'Jane', - lastname: 'Doe' - } - }, - { - user: { - id: 2, - name: 'Jon', - lastname: 'Doe' - } - }, - { - user: { - id: 3, - name: 'Michael', - lastname: 'Caine' - } - }, - { - user: { - id: 4, - name: 'James', - lastname: 'Bond' - } - }, - { - user: { - id: 5, - name: 'Robert', - lastname: 'Plant' - } - }, - { - user: { - id: 6, - name: 'Jordan', - lastname: 'Peterson' - } - }, - ]; -} \ No newline at end of file diff --git a/test-utilities/test-route.js b/test-utilities/test-route.js index 7e0aa9b..f46f8f8 100644 --- a/test-utilities/test-route.js +++ b/test-utilities/test-route.js @@ -9,4 +9,13 @@ const request = supertest(app); export async function getRequestTest(url) { const actualResponse = await request.get(url); return actualResponse; +} + +export async function postRequestTest(url, userId, payload) { + const actualResponse = await request + .post(url) + .set('Content-type', 'application/json') + .set('X-User-Id', userId) + .send(payload) + return actualResponse; } \ No newline at end of file From 97b1476df78e29f97db4839888341bdc3dca9f7d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 22:34:24 +0000 Subject: [PATCH 16/60] Cleaned tests --- package-lock.json | 17 +---------------- package.json | 3 +-- src/routes/__snapshots__/courses.test.js.snap | 4 ++-- src/routes/courses.test.js | 10 +++------- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f0b4e5..8cba22f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1919,12 +1919,6 @@ "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.2.0.tgz", "integrity": "sha512-flgpHJjntpBAdJD43ShRosQvNC0ME97DCfGvZEDlAThQmnerRXrLbX6YgzRBQCZTthET9eAWFAMaYP0m0Y4HzQ==" }, - "@types/uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", - "dev": true - }, "@types/yargs": { "version": "15.0.10", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", @@ -9337,17 +9331,8 @@ "version": "8.3.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", - "dev": true - }, - "uuidv4": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.5.tgz", - "integrity": "sha512-ZUFxKFP9EWmju6a1tdne/pP+R65QGfcZ3LK2ExHHdwKuznX0Sx9kwhFd3Ss543Ft107SCQLyXcvHS+lmFsM9Zw==", "dev": true, - "requires": { - "@types/uuid": "8.3.0", - "uuid": "8.3.1" - } + "optional": true }, "v8-to-istanbul": { "version": "7.0.0", diff --git a/package.json b/package.json index 03c5e87..3f2522f 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,7 @@ "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "supertest": "^6.0.1", - "ts-jest": "^26.4.4", - "uuidv4": "^6.2.5" + "ts-jest": "^26.4.4" }, "nodemonConfig": { "exec": "npm run dev", diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index df516a2..c4f1b6a 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`courses api should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course failed to add\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`\\"}}"`; +exports[`courses api should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`\\"}}"`; -exports[`courses api should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course added successfully\\",\\"course\\":{\\"courseId\\":\\"05e8ee94-0ef9-430d-89da-81c53848fa09\\",\\"sessionId\\":\\"580a9887-2607-44dc-877c-c50909d2d140\\",\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123,\\"userId\\":\\"161678b3-6e1e-4bb4-b5b0-57d388c88edc\\"}}"`; +exports[`courses api should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123,\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 2191b5d..1154e7f 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -1,5 +1,3 @@ -import { uuid } from "uuidv4"; - import { postRequestTest } from "../../test-utilities/test-route"; import { connect, disconnect, clearDatabase } from "../database"; @@ -18,10 +16,10 @@ describe("courses api", () => { }); test("should post new courses when all data is valid", async (done) => { - const courseId = uuid(); - const userId = uuid(); + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "jane.doe@someemail.com"; const body = { - sessionId: uuid(), + sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", totalModulesStudied: 9, averageScore: 70, timeStudied: 123, @@ -48,6 +46,4 @@ describe("courses api", () => { expect(actualResponse.text).toMatchSnapshot(); done(); }); - - }); From 26870c29ba6091350063f66bf07d43f0f5777b12 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 22:36:57 +0000 Subject: [PATCH 17/60] Prepare tests for next scenario --- src/routes/courses.test.js | 66 ++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 1154e7f..eab0c6e 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -15,35 +15,45 @@ describe("courses api", () => { await disconnect(); }); - test("should post new courses when all data is valid", async (done) => { - const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "jane.doe@someemail.com"; - const body = { - sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", - totalModulesStudied: 9, - averageScore: 70, - timeStudied: 123, - }; - const actualResponse = await postRequestTest( - `/courses/${courseId}`, - userId, - body - ); - expect(actualResponse.status).toBe(201); - expect(actualResponse.text).toMatchSnapshot(); - done(); + describe("post", () => { + test("should post new courses when all data is valid", async (done) => { + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "jane.doe@someemail.com"; + const body = { + sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + const actualResponse = await postRequestTest( + `/courses/${courseId}`, + userId, + body + ); + expect(actualResponse.status).toBe(201); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + + test("should post http 400 when course id is invalid", async (done) => { + const courseId = undefined; + const userId = uuid(); + const actualResponse = await postRequestTest( + `/courses/${courseId}`, + userId, + undefined + ); + expect(actualResponse.status).toBe(400); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + }); + + describe("get course", () => { + // TODO: When ready }); - test("should post http 400 when course id is invalid", async (done) => { - const courseId = undefined; - const userId = uuid(); - const actualResponse = await postRequestTest( - `/courses/${courseId}`, - userId, - undefined - ); - expect(actualResponse.status).toBe(400); - expect(actualResponse.text).toMatchSnapshot(); - done(); + describe("get course and session", () => { + // TODO: When ready }); }); From 1067a2a4d23acfcc2f070b7e0d0def66dbe0b03e Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 22:39:30 +0000 Subject: [PATCH 18/60] Mental notes for tomorrow --- src/courses/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/courses/index.js b/src/courses/index.js index 9ae2d5e..6d4dd14 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -10,7 +10,9 @@ export const createOrUpdate = (course) => { } try { + // TODO: Check if course already exists const courseResponse = await courseModel.create(course); + // TODO: Check if session already exists and Upsert const sessionResponse = await sessionModel.create(course); resolve({ courseResponse, sessionResponse }); } catch (error) { From a2b53b21db02f45a42faff01c21061594f22aaef Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 23:53:34 +0000 Subject: [PATCH 19/60] Update courses to update too --- src/bin/server.js | 10 ++++++--- src/courses/index.js | 22 +++++++++++++++---- src/routes/__snapshots__/courses.test.js.snap | 4 ++-- src/routes/courses.js | 5 +++-- src/routes/courses.test.js | 2 +- 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/bin/server.js b/src/bin/server.js index 34e2b05..0b4b195 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -31,7 +31,7 @@ function getPortAndConfigureIISExpress() { } function normalizePort(val) { - var port = parseInt(val, 10); + const port = parseInt(val, 10); if (isNaN(port)) return val; if (port >= 0) return port; @@ -63,9 +63,13 @@ function onError(error) { } function onListening() { - var addr = server.address(); - var bind = typeof addr === "string" ? "pipe " + addr : "port " + addr.port; + const addr = server.address(); + const bind = extractAddressInformation(addr); debug("Listening on " + bind); console.debug(listEndpoints(app)); console.debug(`http://localhost:${app.get("port")} is ready`); } + +function extractAddressInformation(addr) { + return typeof addr === "string" ? "pipe " + addr : "port " + addr.port; +} diff --git a/src/courses/index.js b/src/courses/index.js index 6d4dd14..c729618 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -10,10 +10,24 @@ export const createOrUpdate = (course) => { } try { - // TODO: Check if course already exists - const courseResponse = await courseModel.create(course); - // TODO: Check if session already exists and Upsert - const sessionResponse = await sessionModel.create(course); + const { courseId, sessionId, userId } = course; + let courseResponse; + const courseExists = await courseModel.exists({ courseId }); + if (!courseExists) { + courseResponse = await courseModel.create(course); + console.debug(courseResponse); + } + + const sessionExists = await sessionModel.exists({ + userId, + sessionId, + userId, + }); + // NOTE: upsert not used here because validation does not work with findOneAndUpdate + const sessionResponse = !sessionExists + ? await sessionModel.create(course) + : await sessionModel.updateOne({ courseId, sessionId, userId }, course); + console.debug(sessionResponse); resolve({ courseResponse, sessionResponse }); } catch (error) { reject(error); diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index c4f1b6a..c39d549 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`courses api should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`\\"}}"`; +exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`\\"}}"`; -exports[`courses api should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123,\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; +exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123,\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; diff --git a/src/routes/courses.js b/src/routes/courses.js index 3f80b2b..5d0c78e 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -27,8 +27,9 @@ router.post("/:courseId", async (req, res, next) => { }; try { - await createOrUpdate(course); - return res.status(201).send({ + const response = await createOrUpdate(course); + const { courseResponse } = response; + return res.status(courseResponse ? 201 : 200).send({ success: "true", message: "Course created successfully", course, diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index eab0c6e..7a29bfa 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -37,7 +37,7 @@ describe("courses api", () => { test("should post http 400 when course id is invalid", async (done) => { const courseId = undefined; - const userId = uuid(); + const userId = "jane.doe@someemail.com"; const actualResponse = await postRequestTest( `/courses/${courseId}`, userId, From 7a88cd0bb1ae20b8d37a9fd261c288350abe8e75 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 28 Nov 2020 23:56:04 +0000 Subject: [PATCH 20/60] Refactor --- src/courses/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/courses/index.js b/src/courses/index.js index c729618..ada6e28 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -5,9 +5,7 @@ import sessionModel from "../models/session"; export const createOrUpdate = (course) => { return new Promise(async (resolve, reject) => { - if (!course) { - return reject(new Error("Course is required")); - } + if (!course) reject(new Error("Course is required")); try { const { courseId, sessionId, userId } = course; From 0a4cdf90c5d7e2a4cb6d12fb33abbfdcd204555d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 16:08:37 +0000 Subject: [PATCH 21/60] Started adding stats to the models Created compound index to represent changed structure --- src/models/course.js | 18 ++++++++++++++++-- src/models/session.js | 13 ++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/models/course.js b/src/models/course.js index 2afa58e..01f83da 100644 --- a/src/models/course.js +++ b/src/models/course.js @@ -5,10 +5,24 @@ const courseSchema = new mongoose.Schema({ courseId: { type: String, required: true, - unique: true, + unique: false, lowercase: false, validate: (value) => validator.isUUID(value), - } + }, + userId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => !validator.isEmpty(value), + }, + stats: { + sessionCount: { type: Number, required: true }, + averageScore: { type: Number, required: true }, + totalModulesStudied: { type: Number, required: true }, + timeStudied: { type: Number, required: true }, + }, }); +courseSchema.index({ courseId: 1, userId: 1 }, { unique: true }); export default mongoose.model("course", courseSchema); diff --git a/src/models/session.js b/src/models/session.js index 0312810..07e2bef 100644 --- a/src/models/session.js +++ b/src/models/session.js @@ -12,20 +12,23 @@ const sessionSchema = new mongoose.Schema({ courseId: { type: String, required: true, - unique: true, + unique: false, lowercase: false, validate: (value) => validator.isUUID(value), }, userId: { type: String, required: true, - unique: true, + unique: false, lowercase: false, validate: (value) => !validator.isEmpty(value), }, - averageScore: { type: Number, required: true }, - totalModulesStudied: { type: Number, required: true }, - timeStudied: { type: Number, required: true }, + stats:{ + averageScore: { type: Number, required: true }, + totalModulesStudied: { type: Number, required: true }, + timeStudied: { type: Number, required: true }, + } }); +sessionSchema.index({ sessionId: 1, courseId: 1, userId: 1 }, { unique: true }); export default mongoose.model("session", sessionSchema); From b151014cadfce7aa0787ee9fc6c053951e9d2d18 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 17:01:40 +0000 Subject: [PATCH 22/60] Define todo items --- TODO | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index 7a9d34f..7d948c9 100644 --- a/TODO +++ b/TODO @@ -4,5 +4,9 @@ ☐ Start developing endpoints so they get values @high ☐ Start developing by domain an using an In-memory mongo database @high ☐ Start configuring a serverless.yaml for AWS deployment script @high -☐ Start PUML Architecture decisions @low +☐ Start PUML Architecture design and descptions @low ✔ Issue Remove the snapshots being outputted @done(20-11-28 18:13) +☐ Disconnect and drop database when express closing @critical +☐ Seperate the disconnect from the drop @high +☐ Add database onto all the exported functions @low +✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) \ No newline at end of file From f57686e90ce15e20ac1af002751bcae7659a183d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 18:10:12 +0000 Subject: [PATCH 23/60] Refactored database to seperarte db drop Remove database properties to prevent exposing internals --- src/database/index.test.js | 6 +++--- src/database/removeDatabaseProps.test.js | 27 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 src/database/removeDatabaseProps.test.js diff --git a/src/database/index.test.js b/src/database/index.test.js index a22ef8e..3260d3a 100644 --- a/src/database/index.test.js +++ b/src/database/index.test.js @@ -1,15 +1,15 @@ -import { connect, disconnect } from "./index"; +import { connect, disconnectAndDropDatabase } from "./index"; import mongoose from "mongoose"; describe("mongo in-memory database", () => { - describe("connect and disconnect memory mongo db integration test", () => { + describe("connect and disconnect memory mongo db and drop database integration test", () => { beforeAll(async() => { const isInMemory = true; await connect(isInMemory); }); afterAll(async() => { - await disconnect(); + await disconnectAndDropDatabase(); }); test("should have an active mongodb connection", (done) => { diff --git a/src/database/removeDatabaseProps.test.js b/src/database/removeDatabaseProps.test.js new file mode 100644 index 0000000..89579bb --- /dev/null +++ b/src/database/removeDatabaseProps.test.js @@ -0,0 +1,27 @@ +import { removeDatabaseProps } from "./index"; + +describe("removeDatabaseProps", () => { + test("should remove private underscore values from an object without mutating data", () => { + const testObject = { + _id: "5fc2f9bf9a9bdb5c8468fc5f", + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: 0, + stats: { + totalModulesStudied: 5, + averageScore: 70, + timeStudied: 20, + }, + intList:[1,2,3], + __v: 0, + }; + + const cleanedObject = removeDatabaseProps(testObject); + console.debug(cleanedObject); + expect(testObject).not.toEqual(cleanedObject); + expect(cleanedObject._id).toBeUndefined(); + expect(cleanedObject.__v).toBeUndefined(); + expect(cleanedObject.courseId).toBeDefined(); + expect(cleanedObject.sessionId).toBeDefined(); + expect(cleanedObject.intList).toBeDefined(); + }); +}); From ebba94a5b6be6f1f1d86e7443323b95e182db4c2 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 18:37:56 +0000 Subject: [PATCH 24/60] refactored createOrUpdate to deal with aggregates refactored code to deal with updated model changes created getCourse and tests created getSession and tests --- .../__snapshots__/createOrUpdate.test.js.snap | 10 +- .../__snapshots__/getCourse.test.js.snap | 14 +++ .../__snapshots__/getSession.test.js.snap | 14 +++ src/courses/createOrUpdate.test.js | 108 ++++++++++++++---- src/courses/getCourse.test.js | 44 +++++++ src/courses/getSession.test.js | 44 +++++++ src/courses/index.js | 63 +++++++++- src/database/index.js | 60 ++++++---- test-utilities/index.js | 5 + 9 files changed, 311 insertions(+), 51 deletions(-) create mode 100644 src/courses/__snapshots__/getCourse.test.js.snap create mode 100644 src/courses/__snapshots__/getSession.test.js.snap create mode 100644 src/courses/getCourse.test.js create mode 100644 src/courses/getSession.test.js create mode 100644 test-utilities/index.js diff --git a/src/courses/__snapshots__/createOrUpdate.test.js.snap b/src/courses/__snapshots__/createOrUpdate.test.js.snap index f6ee439..cc89732 100644 --- a/src/courses/__snapshots__/createOrUpdate.test.js.snap +++ b/src/courses/__snapshots__/createOrUpdate.test.js.snap @@ -4,16 +4,16 @@ exports[`createOrUpdate a course should throw an error when an invalid courseId exports[`createOrUpdate a course should throw an error when an invalid sessionId is added 1`] = `"session validation failed: sessionId: Validator failed for path \`sessionId\` with value \`NotUUID\`"`; -exports[`createOrUpdate a course should throw an error when an undefined averageScore is added 1`] = `"session validation failed: averageScore: Path \`averageScore\` is required."`; +exports[`createOrUpdate a course should throw an error when an undefined averageScore is added 1`] = `"course validation failed: stats.averageScore: Path \`stats.averageScore\` is required."`; exports[`createOrUpdate a course should throw an error when an undefined sessionId is added 1`] = `"session validation failed: sessionId: Path \`sessionId\` is required."`; -exports[`createOrUpdate a course should throw an error when an undefined timeStudied is added 1`] = `"session validation failed: timeStudied: Path \`timeStudied\` is required."`; +exports[`createOrUpdate a course should throw an error when an undefined timeStudied is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required."`; -exports[`createOrUpdate a course should throw an error when an undefined totalModulesStudied is added 1`] = `"session validation failed: totalModulesStudied: Path \`totalModulesStudied\` is required."`; +exports[`createOrUpdate a course should throw an error when an undefined totalModulesStudied is added 1`] = `"course validation failed: stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required."`; -exports[`createOrUpdate a course should throw an error when an undefined userId is added 1`] = `"session validation failed: userId: Path \`userId\` is required."`; +exports[`createOrUpdate a course should throw an error when an undefined userId is added 1`] = `"course validation failed: userId: Path \`userId\` is required."`; -exports[`createOrUpdate a course should throw an error when and empty course is added 1`] = `"course validation failed: courseId: Path \`courseId\` is required."`; +exports[`createOrUpdate a course should throw an error when and empty course is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required., stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.sessionCount: Path \`stats.sessionCount\` is required., userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; exports[`createOrUpdate a course should throw an error when no course is added 1`] = `"Course is required"`; diff --git a/src/courses/__snapshots__/getCourse.test.js.snap b/src/courses/__snapshots__/getCourse.test.js.snap new file mode 100644 index 0000000..59b9a3c --- /dev/null +++ b/src/courses/__snapshots__/getCourse.test.js.snap @@ -0,0 +1,14 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`getCourse should get expected course from the database 1`] = ` +Object { + "courseId": "04473bf9-6ec6-47e9-be92-77b2bba9b606", + "stats": Object { + "averageScore": 70, + "sessionCount": 1, + "timeStudied": 4, + "totalModulesStudied": 10, + }, + "userId": "jane.doe@somemail.com", +} +`; diff --git a/src/courses/__snapshots__/getSession.test.js.snap b/src/courses/__snapshots__/getSession.test.js.snap new file mode 100644 index 0000000..03f5e5b --- /dev/null +++ b/src/courses/__snapshots__/getSession.test.js.snap @@ -0,0 +1,14 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`getSession should get expected session from the database 1`] = ` +Object { + "courseId": "04473bf9-6ec6-47e9-be92-77b2bba9b606", + "sessionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "stats": Object { + "averageScore": 70, + "timeStudied": 4, + "totalModulesStudied": 10, + }, + "userId": "jane.doe@somemail.com", +} +`; diff --git a/src/courses/createOrUpdate.test.js b/src/courses/createOrUpdate.test.js index 38a5205..a05df23 100644 --- a/src/courses/createOrUpdate.test.js +++ b/src/courses/createOrUpdate.test.js @@ -1,16 +1,33 @@ -import { connect, disconnect, clearDatabase } from "../database"; +import { connect, disconnectAndDropDatabase, clearDatabase } from "../database"; import { createOrUpdate } from "./index"; +import courseModel from "../models/course"; +import { cloneCourse } from '../../test-utilities'; describe("createOrUpdate a course", () => { const validCourse = { courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - totalModulesStudied: 10, - averageScore: 70, - timeStudied: 4, userId: "jane.doe@somemail.com", + stats: { + sessionCount: 1, + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + }, }; - + + const validCourseWithNewSession = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + userId: "jane.doe@somemail.com", + stats: { + sessionCount: 1, + totalModulesStudied: 5, + averageScore: 8, + timeStudied: 6, + }, + }; + beforeAll(async () => { const isInMemory = true; await connect(isInMemory); @@ -21,7 +38,7 @@ describe("createOrUpdate a course", () => { }); afterAll(async () => { - await disconnect(); + await disconnectAndDropDatabase(); }); test("should throw an error when no course is added", async (done) => { @@ -37,7 +54,7 @@ describe("createOrUpdate a course", () => { }); test("should throw an error when an invalid courseId is added", async (done) => { - const invalidCourse = { ...validCourse }; + const invalidCourse = cloneCourse(validCourse); (invalidCourse.courseId = "NotValid"), await expect(() => createOrUpdate(invalidCourse) @@ -46,7 +63,7 @@ describe("createOrUpdate a course", () => { }); test("should throw an error when an undefined sessionId is added", async (done) => { - const invalidCourse = { ...validCourse }; + const invalidCourse = cloneCourse(validCourse); invalidCourse.sessionId = undefined; await expect(() => @@ -57,7 +74,7 @@ describe("createOrUpdate a course", () => { }); test("should throw an error when an invalid sessionId is added", async (done) => { - const invalidCourse = { ...validCourse }; + const invalidCourse = cloneCourse(validCourse); invalidCourse.sessionId = "NotUUID"; await expect(() => @@ -67,9 +84,20 @@ describe("createOrUpdate a course", () => { done(); }); + test("should throw an error when an undefined userId is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + invalidCourse.userId = undefined; + + await expect(() => + createOrUpdate(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + test("should throw an error when an undefined totalModulesStudied is added", async (done) => { - const invalidCourse = { ...validCourse }; - invalidCourse.totalModulesStudied = undefined; + const stats = { ...validCourse.stats }; + const invalidCourse = { ...validCourse, stats }; + invalidCourse.stats.totalModulesStudied = undefined; await expect(() => createOrUpdate(invalidCourse) @@ -79,8 +107,8 @@ describe("createOrUpdate a course", () => { }); test("should throw an error when an undefined averageScore is added", async (done) => { - const invalidCourse = { ...validCourse }; - invalidCourse.averageScore = undefined; + const invalidCourse = cloneCourse(validCourse); + invalidCourse.stats.averageScore = undefined; await expect(() => createOrUpdate(invalidCourse) @@ -90,8 +118,8 @@ describe("createOrUpdate a course", () => { }); test("should throw an error when an undefined timeStudied is added", async (done) => { - const invalidCourse = { ...validCourse }; - invalidCourse.timeStudied = undefined; + const invalidCourse = cloneCourse(validCourse); + invalidCourse.stats.timeStudied = undefined; await expect(() => createOrUpdate(invalidCourse) @@ -99,17 +127,51 @@ describe("createOrUpdate a course", () => { done(); }); - test("should throw an error when an undefined userId is added", async (done) => { - const invalidCourse = { ...validCourse }; - invalidCourse.userId = undefined; + test("should create or update the course information", async () => { + const course = cloneCourse(validCourse); + console.debug(course); - await expect(() => - createOrUpdate(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); + const actual = await createOrUpdate(course); + + expect(actual).toBeDefined(); + }); + + test("should be idempotent when postring the same course twice and should reflect it already exists", async (done) => { + const course = cloneCourse(validCourse); + const actual = await createOrUpdate(course); + const actualAgain = await createOrUpdate(course); + + expect(actual.courseResponse).toBeDefined(); + expect(actual.sessionResponse).toBeDefined(); + + expect(actualAgain.courseResponse).toBeUndefined(); + expect(actualAgain.sessionResponse).toBeDefined(); + + const { courseId, userId } = course; + const courseCount = await courseModel.count({ courseId, userId }); + expect(courseCount).toBe(1); done(); }); - test("should create or update the course information", () => { - expect(async () => await createOrUpdate(validCourse)).not.toThrow(); + test("should create one course with correct aggregate stats and two sessions", async (done) => { + const course = cloneCourse(validCourse); + await createOrUpdate(course); + const courseOther = cloneCourse(validCourseWithNewSession); + await createOrUpdate(courseOther); + + const { courseId, userId } = course; + + expect(courseId).toBe(courseOther.courseId); + expect(userId).toBe(courseOther.userId); + const existingCourseInDb = await courseModel.findOne({ courseId, userId }); + expect(existingCourseInDb).toBeDefined(); + const {sessionCount, totalModulesStudied, timeStudied, averageScore} = existingCourseInDb.stats; + expect(sessionCount).toBe(2); + expect(totalModulesStudied).toBe(10 + 5); + expect(timeStudied).toBe(4 + 6); + expect(averageScore).toBe((70 + 8)/2); + done(); }); }); + + diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js new file mode 100644 index 0000000..a479ce0 --- /dev/null +++ b/src/courses/getCourse.test.js @@ -0,0 +1,44 @@ +import { cloneCourse } from "../../test-utilities"; +import { createOrUpdate, getCourse } from "./index"; +import { connect, disconnectAndDropDatabase } from "../database"; + +describe("getCourse", () => { + const validCourse = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + userId: "jane.doe@somemail.com", + stats: { + sessionCount: 1, + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + }, + }; + + beforeAll(async () => { + const isInMemory = true; + await connect(isInMemory); + const course = cloneCourse(validCourse); + await createOrUpdate(course); + }); + + afterAll(async () => { + await disconnectAndDropDatabase(); + }); + + test("should get expected course from the database", async(done) => { + const { courseId, userId } = validCourse; + + const actual = await getCourse(courseId, userId); + + expect(actual).toMatchSnapshot(); + done(); + }); + + test("should get null when data does not exist", async(done) => { + const actual = await getCourse('non-existent-client-id', 'non-existent-userid'); + + expect(actual).toBeNull(); + done(); + }); +}); diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js new file mode 100644 index 0000000..306bacc --- /dev/null +++ b/src/courses/getSession.test.js @@ -0,0 +1,44 @@ +import { cloneCourse } from "../../test-utilities"; +import { createOrUpdate, getSession } from "./index"; +import { connect, disconnectAndDropDatabase } from "../database"; + +describe("getSession", () => { + const validCourse = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + userId: "jane.doe@somemail.com", + stats: { + sessionCount: 1, + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + }, + }; + + beforeAll(async () => { + const isInMemory = true; + await connect(isInMemory); + const course = cloneCourse(validCourse); + await createOrUpdate(course); + }); + + afterAll(async () => { + await disconnectAndDropDatabase(); + }); + + test("should get expected session from the database", async(done) => { + const { courseId, userId, sessionId } = validCourse; + + const actual = await getSession(courseId, sessionId, userId); + + expect(actual).toMatchSnapshot(); + done(); + }); + + test("should get null when data does not exist", async(done) => { + const actual = await getSession('non-existent-client-id', 'non-existent-session-id', 'non-existent-userid'); + + expect(actual).toBeNull(); + done(); + }); +}); diff --git a/src/courses/index.js b/src/courses/index.js index ada6e28..ca00dac 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -2,7 +2,9 @@ import { Promise } from "bluebird"; import courseModel from "../models/course"; import sessionModel from "../models/session"; +import { removeDatabaseProps } from "../database"; +// TODO: Refactor big method export const createOrUpdate = (course) => { return new Promise(async (resolve, reject) => { if (!course) reject(new Error("Course is required")); @@ -10,7 +12,7 @@ export const createOrUpdate = (course) => { try { const { courseId, sessionId, userId } = course; let courseResponse; - const courseExists = await courseModel.exists({ courseId }); + const courseExists = await courseModel.exists({ courseId, userId }); if (!courseExists) { courseResponse = await courseModel.create(course); console.debug(courseResponse); @@ -26,9 +28,68 @@ export const createOrUpdate = (course) => { ? await sessionModel.create(course) : await sessionModel.updateOne({ courseId, sessionId, userId }, course); console.debug(sessionResponse); + + if (courseExists) { + const aggregateQuery = [ + { $match: { courseId, userId } }, + { + $group: { + _id: "$courseId", + sessionCount: { $sum: 1 }, + totalModulesStudied: { $sum: "$stats.totalModulesStudied" }, + timeStudied: { $sum: "$stats.timeStudied" }, + averageScore: { $avg: "$stats.averageScore" }, + }, + }, + ]; + const aggregateResponse = await sessionModel.aggregate(aggregateQuery); + const cleanedAggregateResponse = removeDatabaseProps( + aggregateResponse[0] + ); + console.debug("AGGREGATE Result", cleanedAggregateResponse); + await courseModel.updateOne( + { courseId, userId }, + { courseId, sessionId, userId, stats: cleanedAggregateResponse } + ); + } + resolve({ courseResponse, sessionResponse }); } catch (error) { reject(error); } }); }; + +export const getCourse = (courseId, userId) => { + return new Promise(async (resolve, reject) => { + if (!courseId) reject(new Error("courseId is required")); + if (!userId) reject(new Error("userId is required")); + const response = await courseModel.findOne({ courseId, userId }); + if (response) { + const cleanedResponse = removeDatabaseProps(response._doc); + console.debug("Returning", cleanedResponse); + resolve(cleanedResponse); + } else { + resolve(null); + } + }); +}; + +export const getSession = (courseId, sessionId, userId) => { + return new Promise(async (resolve, reject) => { + if (!courseId) reject(new Error("courseId is required")); + if (!sessionId) reject(new Error("sessionId is required")); + if (!userId) reject(new Error("userId is required")); + const response = await sessionModel.findOne({ + courseId, + sessionId, + userId, + }); + if (response) { + const cleanedResponse = removeDatabaseProps(response._doc); + resolve(cleanedResponse); + } else { + resolve(null); + } + }); +}; diff --git a/src/database/index.js b/src/database/index.js index f68d63b..b8646f0 100644 --- a/src/database/index.js +++ b/src/database/index.js @@ -1,36 +1,52 @@ import mongoose from "mongoose"; import { MongoMemoryServer } from "mongodb-memory-server"; -import config from '../config'; +import config from "../config"; const { defaultMongoUri } = config; const mongod = new MongoMemoryServer(); export const connect = async (isMemoryServer = true) => { - const uri = isMemoryServer ? await mongod.getUri() : defaultMongoUri; - console.debug(`Connecting to MongoDB URI '${uri}'`); - - const connectionOptions = { - useNewUrlParser: true, - autoReconnect: true, - reconnectTries: Number.MAX_VALUE, - reconnectInterval: 1000 - }; - - const result = await mongoose.connect(uri , connectionOptions); - return result; + const uri = isMemoryServer ? await mongod.getUri() : defaultMongoUri; + console.debug(`Connecting to MongoDB URI '${uri}'`); + + const connectionOptions = { + useNewUrlParser: true, + autoReconnect: true, + reconnectTries: Number.MAX_VALUE, + reconnectInterval: 1000, + }; + + const result = await mongoose.connect(uri, connectionOptions); + return result; }; -export const disconnect = async () => { +export const disconnectAndDropDatabase = async () => { await mongoose.connection.dropDatabase(); - await mongoose.connection.close(); - await mongod.stop(); + await disconnect(); + }; + +export const disconnect = async () => { + await mongoose.connection.close(); + await mongod.stop(); }; export const clearDatabase = async () => { - const collections = mongoose.connection.collections; + const collections = mongoose.connection.collections; + + for (const key in collections) { + const collection = collections[key]; + await collection.deleteMany(); + } +}; - for (const key in collections) { - const collection = collections[key]; - await collection.deleteMany(); - } -} +export const removeDatabaseProps = (data) => { + const result = { + ...Object.keys(data).reduce((newProperty, key) => { + if (!key.startsWith("_")) { + return {...newProperty, [key]: data[key],}; + } + return newProperty; + }, {}), + }; + return result; +}; diff --git a/test-utilities/index.js b/test-utilities/index.js new file mode 100644 index 0000000..46ad120 --- /dev/null +++ b/test-utilities/index.js @@ -0,0 +1,5 @@ +export const cloneCourse = (course) => { + const stats = { ...course.stats }; + const result = { ...course, stats }; + return result; + } \ No newline at end of file From ff214632e5136114aa29385af560d32290e05d73 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 19:30:46 +0000 Subject: [PATCH 25/60] Implemented the route logic getting courses Implemented the route logic getting courses/sessions --- src/routes/__snapshots__/courses.test.js.snap | 8 +- src/routes/courses.js | 83 +++++++++-------- src/routes/courses.test.js | 91 +++++++++++++++++-- test-utilities/test-route.js | 28 +++--- 4 files changed, 147 insertions(+), 63 deletions(-) diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index c39d549..2586009 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -1,5 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`\\"}}"`; +exports[`courses api get course and session should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course and Session retrieved successfully\\",\\"session\\":{\\"stats\\":{\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; -exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123,\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; +exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"User Course retrieved successfully\\",\\"course\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; + +exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"stats.totalModulesStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"stats.averageScore\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"stats.timeStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`, stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.timeStudied: Path \`stats.timeStudied\` is required.\\"}}"`; + +exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"jane.doe@someemail.com\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; diff --git a/src/routes/courses.js b/src/routes/courses.js index 5d0c78e..191245b 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -1,5 +1,5 @@ import { Router } from "express"; -import { createOrUpdate } from "../courses"; +import { createOrUpdate, getCourse, getSession } from "../courses"; const router = Router(); router.post("/:courseId", async (req, res, next) => { @@ -20,10 +20,13 @@ router.post("/:courseId", async (req, res, next) => { const course = { courseId, sessionId, - totalModulesStudied, - averageScore, - timeStudied, userId, + stats: { + sessionCount: 1, + totalModulesStudied, + averageScore, + timeStudied, + } }; try { @@ -43,47 +46,49 @@ router.post("/:courseId", async (req, res, next) => { } }); -router.get("/:courseId", function (req, res, next) { - const { params, headers } = req; - console.debug("headers, params", headers, params); - const { courseId } = params; - const userId = headers["x-user-id"]; - console.debug("userId", userId); - - // TODO: Validate all the values - // TODO: getCourse in MongoDb - const course = { - courseId, - userId, - }; - - return res.status(200).send({ - success: "true", - message: "Course retrieved successfully", - course, - }); +router.get("/:courseId", async (req, res, next) => { + try { + const { params, headers } = req; + console.debug("headers, params", headers, params); + const { courseId } = params; + const userId = headers["x-user-id"]; + console.debug("userId", userId); + const courseResponse = await getCourse(courseId, userId); + return res.status(!courseResponse ? 404 : 200).send({ + success: "true", + message: "User Course retrieved successfully", + course: courseResponse, + }); + } catch (error) { + return res.status(400).send({ + success: "fail", + message: "Failed to get course", + error, + }); + } }); -router.get("/:courseId/sessions/:sessionsId", function (req, res, next) { +router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { const { params, headers } = req; console.debug("headers, params", headers, params); - const { courseId, sessionsId } = params; + const { courseId, sessionId } = params; const userId = headers["x-user-id"]; - console.debug("userId, sessionsId", userId, sessionsId); - - // TODO: Validate all the values - // TODO: getSessionFromCourse in MongoDb - const course = { - courseId, - userId, - sessionsId, - }; + console.debug("courseId, sessionId, userId", courseId, sessionId, userId); - return res.status(200).send({ - success: "true", - message: "Course and Session retrieved successfully", - course, - }); + try { + const session = await getSession(courseId, sessionId, userId ); + return res.status(!session?404:200).send({ + success: "true", + message: "Course and Session retrieved successfully", + session, + }); + } catch (error) { + return res.status(400).send({ + success: "false", + message: "Failed to retrieve Course and Session", + error, + }); + } }); export default router; diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 7a29bfa..745214e 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -1,5 +1,8 @@ -import { postRequestTest } from "../../test-utilities/test-route"; -import { connect, disconnect, clearDatabase } from "../database"; +import { + postRequestTest, + getRequestTest, +} from "../../test-utilities/test-route"; +import { connect, disconnectAndDropDatabase, clearDatabase } from "../database"; describe("courses api", () => { beforeAll(async () => { @@ -7,15 +10,15 @@ describe("courses api", () => { await connect(isInMemory); }); - afterEach(async () => { - await clearDatabase(); - }); - afterAll(async () => { - await disconnect(); + await disconnectAndDropDatabase(); }); describe("post", () => { + afterEach(async () => { + await clearDatabase(); + }); + test("should post new courses when all data is valid", async (done) => { const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; const userId = "jane.doe@someemail.com"; @@ -50,10 +53,80 @@ describe("courses api", () => { }); describe("get course", () => { - // TODO: When ready + test("should get non-existent course with 404 notfound", async (done) => { + const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; + const userId = "jane.doe@someemail.com"; + const nonExistentCourseResponse = await getRequestTest( + `/courses/${courseId}`, + userId + ); + expect(nonExistentCourseResponse.status).toBe(404); + done(); + }); + + test("should get a posted record with 200 response", async(done) => { + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "jane.doe@someemail.com"; + const body = { + sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + await postRequestTest( + `/courses/${courseId}`, + userId, + body + ); + + const actualResponse = await getRequestTest( + `/courses/${courseId}`, + userId + ); + + expect(actualResponse.status).toBe(200); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); }); describe("get course and session", () => { - // TODO: When ready + test("should get non-existent course with 404 notfound", async (done) => { + const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; + const userId = "jane.doe@someemail.com"; + const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; + const nonExistentCourseResponse = await getRequestTest( + `/courses/${courseId}/sessions/${sessionId}`, + userId + ); + expect(nonExistentCourseResponse.status).toBe(404); + done(); + }); + + test("should get a posted record with 200 response", async(done) => { + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "jane.doe@someemail.com"; + const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; + const body = { + sessionId, + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + await postRequestTest( + `/courses/${courseId}`, + userId, + body + ); + + const actualResponse = await getRequestTest( + `/courses/${courseId}/sessions/${sessionId}`, + userId + ); + + expect(actualResponse.status).toBe(200); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); }); }); diff --git a/test-utilities/test-route.js b/test-utilities/test-route.js index f46f8f8..33c84c4 100644 --- a/test-utilities/test-route.js +++ b/test-utilities/test-route.js @@ -3,19 +3,21 @@ import supertest from "supertest"; const request = supertest(app); /* -** REMARKS: Help remove duplication in tests and this wraps the -** get without needing to include all the imports -*/ -export async function getRequestTest(url) { - const actualResponse = await request.get(url); - return actualResponse; + ** REMARKS: Help remove duplication in tests and this wraps the + ** get without needing to include all the imports + */ +export async function getRequestTest(url, userId = undefined) { + const actualResponse = userId + ? await request.get(url).set("x-user-id", userId) + : await request.get(url); + return actualResponse; } export async function postRequestTest(url, userId, payload) { - const actualResponse = await request - .post(url) - .set('Content-type', 'application/json') - .set('X-User-Id', userId) - .send(payload) - return actualResponse; -} \ No newline at end of file + const actualResponse = await request + .post(url) + .set("Content-type", "application/json") + .set("x-user-id", userId) + .send(payload); + return actualResponse; +} From 568af954b061196b9ce74c0126735f0b362e9e29 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 19:49:03 +0000 Subject: [PATCH 26/60] Fixed some TODO whcih included: renaming database --- TODO | 10 +++++----- src/bin/server.js | 8 ++++++-- src/courses/createOrUpdate.test.js | 27 +++++++++++++++++---------- src/courses/getCourse.test.js | 21 ++++++++++++--------- src/courses/getSession.test.js | 22 +++++++++++++--------- src/database/index.js | 12 ++++++------ src/database/index.test.js | 14 +++++++------- src/routes/courses.test.js | 24 ++++++++++-------------- 8 files changed, 76 insertions(+), 62 deletions(-) diff --git a/TODO b/TODO index 7d948c9..3c741aa 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,12 @@ ✔ Setup basic `express` application @critical @done(20-11-26 15:48) ✔ Clean up and prepare the application so that it is ready for `Senaca requirments` @high @done(20-11-26 15:50) ✔ Add the `SWAGGER` into the definition so the swagger UI can test the endpoint @high @done(20-11-26 15:50) -☐ Start developing endpoints so they get values @high -☐ Start developing by domain an using an In-memory mongo database @high +✔ Start developing endpoints so they get values @high @done(20-11-29 19:47) +✔ Start developing by domain an using an In-memory mongo database @high @done(20-11-29 19:47) ☐ Start configuring a serverless.yaml for AWS deployment script @high ☐ Start PUML Architecture design and descptions @low ✔ Issue Remove the snapshots being outputted @done(20-11-28 18:13) -☐ Disconnect and drop database when express closing @critical -☐ Seperate the disconnect from the drop @high -☐ Add database onto all the exported functions @low +✔ Disconnect and drop database when express closing @critical @done(20-11-29 19:46) +✔ Seperate the disconnect from the drop @high @done(20-11-29 19:35) +✔ Add database onto all the exported functions @low @done(20-11-29 19:46) ✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) \ No newline at end of file diff --git a/src/bin/server.js b/src/bin/server.js index 0b4b195..ea4343c 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -3,16 +3,20 @@ import debugLib from "debug"; import { createServer } from "http"; import config from "../config"; import listEndpoints from "express-list-endpoints"; -import { connect } from "../database"; +import { connectDatabase, disconnectDatabase } from "../database"; const debug = debugLib("test-express:server"); const { port } = config; const iisPort = getPortAndConfigureIISExpress(); const server = generateServer(); connectMongoDb(); +process.on('exit', async() => { + console.debug('Disconnecting from database.'); + await disconnectDatabase(); +}); async function connectMongoDb() { - const result = await connect(true); + const result = await connectDatabase(true); return result; } diff --git a/src/courses/createOrUpdate.test.js b/src/courses/createOrUpdate.test.js index a05df23..ad7ac3a 100644 --- a/src/courses/createOrUpdate.test.js +++ b/src/courses/createOrUpdate.test.js @@ -1,7 +1,11 @@ -import { connect, disconnectAndDropDatabase, clearDatabase } from "../database"; +import { + connectDatabase, + disconnectAndDropDatabase, + clearDatabase, +} from "../database"; import { createOrUpdate } from "./index"; import courseModel from "../models/course"; -import { cloneCourse } from '../../test-utilities'; +import { cloneCourse } from "../../test-utilities"; describe("createOrUpdate a course", () => { const validCourse = { @@ -30,7 +34,7 @@ describe("createOrUpdate a course", () => { beforeAll(async () => { const isInMemory = true; - await connect(isInMemory); + await connectDatabase(isInMemory); }); afterEach(async () => { @@ -160,18 +164,21 @@ describe("createOrUpdate a course", () => { await createOrUpdate(courseOther); const { courseId, userId } = course; - + expect(courseId).toBe(courseOther.courseId); - expect(userId).toBe(courseOther.userId); - const existingCourseInDb = await courseModel.findOne({ courseId, userId }); + expect(userId).toBe(courseOther.userId); + const existingCourseInDb = await courseModel.findOne({ courseId, userId }); expect(existingCourseInDb).toBeDefined(); - const {sessionCount, totalModulesStudied, timeStudied, averageScore} = existingCourseInDb.stats; + const { + sessionCount, + totalModulesStudied, + timeStudied, + averageScore, + } = existingCourseInDb.stats; expect(sessionCount).toBe(2); expect(totalModulesStudied).toBe(10 + 5); expect(timeStudied).toBe(4 + 6); - expect(averageScore).toBe((70 + 8)/2); + expect(averageScore).toBe((70 + 8) / 2); done(); }); }); - - diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index a479ce0..d99e73c 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -1,6 +1,6 @@ import { cloneCourse } from "../../test-utilities"; import { createOrUpdate, getCourse } from "./index"; -import { connect, disconnectAndDropDatabase } from "../database"; +import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getCourse", () => { const validCourse = { @@ -17,7 +17,7 @@ describe("getCourse", () => { beforeAll(async () => { const isInMemory = true; - await connect(isInMemory); + await connectDatabase(isInMemory); const course = cloneCourse(validCourse); await createOrUpdate(course); }); @@ -26,18 +26,21 @@ describe("getCourse", () => { await disconnectAndDropDatabase(); }); - test("should get expected course from the database", async(done) => { + test("should get expected course from the database", async (done) => { const { courseId, userId } = validCourse; - + const actual = await getCourse(courseId, userId); - - expect(actual).toMatchSnapshot(); + + expect(actual).toMatchSnapshot(); done(); }); - test("should get null when data does not exist", async(done) => { - const actual = await getCourse('non-existent-client-id', 'non-existent-userid'); - + test("should get null when data does not exist", async (done) => { + const actual = await getCourse( + "non-existent-client-id", + "non-existent-userid" + ); + expect(actual).toBeNull(); done(); }); diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index 306bacc..9bfdc73 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -1,6 +1,6 @@ import { cloneCourse } from "../../test-utilities"; import { createOrUpdate, getSession } from "./index"; -import { connect, disconnectAndDropDatabase } from "../database"; +import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getSession", () => { const validCourse = { @@ -17,7 +17,7 @@ describe("getSession", () => { beforeAll(async () => { const isInMemory = true; - await connect(isInMemory); + await connectDatabase(isInMemory); const course = cloneCourse(validCourse); await createOrUpdate(course); }); @@ -26,18 +26,22 @@ describe("getSession", () => { await disconnectAndDropDatabase(); }); - test("should get expected session from the database", async(done) => { + test("should get expected session from the database", async (done) => { const { courseId, userId, sessionId } = validCourse; - + const actual = await getSession(courseId, sessionId, userId); - - expect(actual).toMatchSnapshot(); + + expect(actual).toMatchSnapshot(); done(); }); - test("should get null when data does not exist", async(done) => { - const actual = await getSession('non-existent-client-id', 'non-existent-session-id', 'non-existent-userid'); - + test("should get null when data does not exist", async (done) => { + const actual = await getSession( + "non-existent-client-id", + "non-existent-session-id", + "non-existent-userid" + ); + expect(actual).toBeNull(); done(); }); diff --git a/src/database/index.js b/src/database/index.js index b8646f0..aab83cd 100644 --- a/src/database/index.js +++ b/src/database/index.js @@ -5,7 +5,7 @@ import config from "../config"; const { defaultMongoUri } = config; const mongod = new MongoMemoryServer(); -export const connect = async (isMemoryServer = true) => { +export const connectDatabase = async (isMemoryServer = true) => { const uri = isMemoryServer ? await mongod.getUri() : defaultMongoUri; console.debug(`Connecting to MongoDB URI '${uri}'`); @@ -21,11 +21,11 @@ export const connect = async (isMemoryServer = true) => { }; export const disconnectAndDropDatabase = async () => { - await mongoose.connection.dropDatabase(); - await disconnect(); - }; + await mongoose.connection.dropDatabase(); + await disconnectDatabase(); +}; -export const disconnect = async () => { +export const disconnectDatabase = async () => { await mongoose.connection.close(); await mongod.stop(); }; @@ -43,7 +43,7 @@ export const removeDatabaseProps = (data) => { const result = { ...Object.keys(data).reduce((newProperty, key) => { if (!key.startsWith("_")) { - return {...newProperty, [key]: data[key],}; + return { ...newProperty, [key]: data[key] }; } return newProperty; }, {}), diff --git a/src/database/index.test.js b/src/database/index.test.js index 3260d3a..b02a785 100644 --- a/src/database/index.test.js +++ b/src/database/index.test.js @@ -1,20 +1,20 @@ -import { connect, disconnectAndDropDatabase } from "./index"; -import mongoose from "mongoose"; +import { connectDatabase, disconnectAndDropDatabase } from "./index"; +import mongoose from "mongoose"; describe("mongo in-memory database", () => { describe("connect and disconnect memory mongo db and drop database integration test", () => { - beforeAll(async() => { + beforeAll(async () => { const isInMemory = true; - await connect(isInMemory); + await connectDatabase(isInMemory); }); - afterAll(async() => { + afterAll(async () => { await disconnectAndDropDatabase(); }); test("should have an active mongodb connection", (done) => { - const actualConnections = mongoose.connections; - expect(actualConnections).toBeDefined() + const actualConnections = mongoose.connections; + expect(actualConnections).toBeDefined(); expect(actualConnections.length).toBeGreaterThanOrEqual(1); done(); }); diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 745214e..042577c 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -2,12 +2,16 @@ import { postRequestTest, getRequestTest, } from "../../test-utilities/test-route"; -import { connect, disconnectAndDropDatabase, clearDatabase } from "../database"; +import { + connectDatabase, + disconnectAndDropDatabase, + clearDatabase, +} from "../database"; describe("courses api", () => { beforeAll(async () => { const isInMemory = true; - await connect(isInMemory); + await connectDatabase(isInMemory); }); afterAll(async () => { @@ -64,7 +68,7 @@ describe("courses api", () => { done(); }); - test("should get a posted record with 200 response", async(done) => { + test("should get a posted record with 200 response", async (done) => { const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; const userId = "jane.doe@someemail.com"; const body = { @@ -73,11 +77,7 @@ describe("courses api", () => { averageScore: 70, timeStudied: 123, }; - await postRequestTest( - `/courses/${courseId}`, - userId, - body - ); + await postRequestTest(`/courses/${courseId}`, userId, body); const actualResponse = await getRequestTest( `/courses/${courseId}`, @@ -103,7 +103,7 @@ describe("courses api", () => { done(); }); - test("should get a posted record with 200 response", async(done) => { + test("should get a posted record with 200 response", async (done) => { const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; const userId = "jane.doe@someemail.com"; const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; @@ -113,11 +113,7 @@ describe("courses api", () => { averageScore: 70, timeStudied: 123, }; - await postRequestTest( - `/courses/${courseId}`, - userId, - body - ); + await postRequestTest(`/courses/${courseId}`, userId, body); const actualResponse = await getRequestTest( `/courses/${courseId}/sessions/${sessionId}`, From abfd1d80b8f0c5dbec6a65bbe146dec6dd7088ba Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 20:15:18 +0000 Subject: [PATCH 27/60] Fixed inconsistent test experience --- TODO | 3 ++- jest.config.js | 2 +- setupTests.js | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 setupTests.js diff --git a/TODO b/TODO index 3c741aa..dfe0528 100644 --- a/TODO +++ b/TODO @@ -9,4 +9,5 @@ ✔ Disconnect and drop database when express closing @critical @done(20-11-29 19:46) ✔ Seperate the disconnect from the drop @high @done(20-11-29 19:35) ✔ Add database onto all the exported functions @low @done(20-11-29 19:46) -✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) \ No newline at end of file +✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) +✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 5ab53ef..0f88d6b 100644 --- a/jest.config.js +++ b/jest.config.js @@ -135,7 +135,7 @@ module.exports = { // setupFiles: [], // A list of paths to modules that run some code to configure or set up the testing framework before each test - // setupFilesAfterEnv: [], + setupFilesAfterEnv: ['./setupTests.js'], // The number of seconds after which a test is considered as slow and reported as such in the results. // slowTestThreshold: 5, diff --git a/setupTests.js b/setupTests.js new file mode 100644 index 0000000..1daf5b1 --- /dev/null +++ b/setupTests.js @@ -0,0 +1,2 @@ +// Increase timeout to satisfy potential long running tests +jest.setTimeout(10000); \ No newline at end of file From c728333d4fc121d4531f8fc02afe1456fc28e620 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 22:47:51 +0000 Subject: [PATCH 28/60] Documentation on architecture and design decisions Updated the user to be UUID rather than email --- README.md | 128 +++++++++++++++++- architecture.puml | 22 +++ readme-images/code-coverage-sample.png | Bin 0 -> 131513 bytes readme-images/document-indexes-sample.png | Bin 0 -> 9950 bytes readme-images/lcov-report-sample.png | Bin 0 -> 34465 bytes readme-images/paths-sample.png | Bin 0 -> 108948 bytes readme-images/swagger-ui-sample.png | Bin 0 -> 167418 bytes readme-images/system-diagram.png | Bin 0 -> 89729 bytes src/bin/server.js | 1 + .../__snapshots__/getCourse.test.js.snap | 2 +- .../__snapshots__/getSession.test.js.snap | 2 +- src/courses/createOrUpdate.test.js | 4 +- src/courses/getCourse.test.js | 2 +- src/courses/getSession.test.js | 2 +- src/models/course.js | 2 +- src/models/session.js | 2 +- src/routes/__snapshots__/courses.test.js.snap | 6 +- src/routes/courses.test.js | 12 +- 18 files changed, 165 insertions(+), 20 deletions(-) create mode 100644 architecture.puml create mode 100644 readme-images/code-coverage-sample.png create mode 100644 readme-images/document-indexes-sample.png create mode 100644 readme-images/lcov-report-sample.png create mode 100644 readme-images/paths-sample.png create mode 100644 readme-images/swagger-ui-sample.png create mode 100644 readme-images/system-diagram.png diff --git a/README.md b/README.md index 46e385e..e1876a1 100644 --- a/README.md +++ b/README.md @@ -23,12 +23,12 @@ The service interface it defined in the form of a **swagger**. ## A little elaboration of the terminology we use to garner a bit more context: -**Course** - refers to a course on a particular subject that a user is learning. A course is made up of learning sessions. +**Course** - refers to a course on a particular subject that a user is learning. A course is made up of learning sessions -**Session** - refers to a learning session that a user studies. Sessions are made up of modules that display content. +**Session** - refers to a learning session that a user studies. Sessions are made up of modules that display content **Modules** - display content to the user. There are *15 module types* and these are -used depending on the type of content that is being displayed. +used depending on the type of content that is being displayed # Environment @@ -44,3 +44,125 @@ Basic instructions to start build and get this API up and running | `npm run test` | Runs all the **tests once** | | `npm run test:watch` | Runs test in **test-development** mode while the developer creates tests giving the ability to automatically run when changes made | | `npm run coverage` | Runs all the tests to calculate the test coverage and to vet if it succeeds against the expected size | + +## Architecture + +- **Node Express API** solution using Mongoose to connect to *MongoDb* either a temporary or a real mongo database. By default this is configured to work with data in the temp data storage. + +![system diagram](./readme-images/system-diagram.png) + +- **Architecture diagram** is included in code as a [C4 model](https://c4model.com/) Container Diagram of the proposed system done using [PUML](https://github.com/vfarah-if/C4-PlantUML#advanced-samples) within the project, so the architecture diagrams can live in the context of the code base and become living documentation that wont be lost in some Wiki, but with the code that this communicates + +- *Testing the API manually* can be done through either the **Swagger UI** which I embedded in the application using the Swagger library and simply added the swagger.xml sent as part of the code exercise. Personally I used ***Postman*** to test the API making it easier to repeat manually testing stuff until I had tests in place + + ![swagger-ui-sample](./readme-images/swagger-ui-sample.png) + +- Database model consists of two structures, **course** and **session**. When you post the first course with some session information this will generate some aggregated stats on the session data that is passed in for the course. The course data model has various data and validators built in to make sure the data is in the expected format, built into the model. **NOTE:** I introduce ***SessionCount*** into the structure to help me understand some of the data I was aggregating. It make it easier, in my opinion to obviously see the generated data and what I was aggregating the data on + + ```javascript + const courseSchema = new mongoose.Schema({ + courseId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + userId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + stats: { + sessionCount: { type: Number, required: true }, + averageScore: { type: Number, required: true }, + totalModulesStudied: { type: Number, required: true }, + timeStudied: { type: Number, required: true }, + }, + }); + courseSchema.index({ courseId: 1, userId: 1 }, { unique: true }); + + export default mongoose.model("course", courseSchema); + ``` + + The session data has a **composite index** on *sessionId*, courseId and userId making sure duplicates can not be added and also optimising retrieval of data by each of those values + + ```javascript + const sessionSchema = new mongoose.Schema({ + sessionId: { + type: String, + required: true, + unique: true, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + courseId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + userId: { + type: String, + required: true, + unique: false, + lowercase: false, + validate: (value) => validator.isUUID(value), + }, + stats:{ + averageScore: { type: Number, required: true }, + totalModulesStudied: { type: Number, required: true }, + timeStudied: { type: Number, required: true }, + } + }); + sessionSchema.index({ sessionId: 1, courseId: 1, userId: 1 }, { unique: true }); + + export default mongoose.model("session", sessionSchema); + + ``` + +- The databases documents that get generated automatically create **indexes** and **optimise** the efficiency of how this stored for reading and writing and verifying the integrity of the data + + ![document-indexes-sample](F:\Dev\Git\NodeCodingExercise\readme-images\document-indexes-sample.png) + +- Toggling between an *in-memory* database and a *durable* database can be done by configuring the **server.js** file if you want to see the values generated in a visible database, but for the ease of deployment and running this without configuring a docker file or cloudformation script to prepare a *MongoDB environment*. This could simplify things and guarantee this will work. At the same time it also made testing database integration very easy, which is why I wanted an excuse to use this library and implementation. + + ```javascript + async function connectMongoDb() { + // REMARKS: Change the true to false if you want to connect to a durable database + const result = await connectDatabase(false); + return result; + } + ``` + +- The **4 rules of Simple Design**, by Kent Beck states: + + - Tests Pass + - Express Intent + - No Duplication (Logical ideas) + - KISS + +- Elaborating on what *Kent* stated above as key values for a good design, and valuing my solution by each premise, I added tests to almost every part of the application. Most of them utilised the test framework or temp database so mimicked an integration test more than a unit test. Usually I mock all this using Jest mock frameworks, but the actual temp database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all under a second each so on a slow system it took 20 seconds to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a test pyramid more strictly, unit tests the biggest, integration second and e2e the smallest being the most expensive to run + + ![code-coverage-sample](./readme-images/code-coverage-sample.png) + +- The code structure is simple, the business domain exposes function that reflect services by the domain. The *course* is the domain term used in the original requirement. The infrastructure layer is named database and is implemented within the domain layer as an internal object, so this could be replaced with another infrastructure as the web API calls the courses service without understanding the internals of the infrastructure. Everything within src is **transpiled** to a *dist-server* folder where this is run locally using Node. Everything outside of *src* is more to do with configuration and tests. So using DDD and Hexagonal Architecture helps with layering various bits, which is simplified within a Node structure + +- I added my .env file to source just for simplicity but usually the target builds should stich this by environment variables and builds + +- The entire API is driven by environment variables to make this easy when this is deployed to AWS so *APIGateway* can utilise lambdas and environment variables configured and passed to the ***serverless.yaml*** file + +- Never mutate data and try use composable pure functions where possible + +- The paths and environments are outputted when the application is starting up with debug outputs and general output that helps developers quickly understand information that Express Endpoints output. Communicating as much of the environment is the best way to get newbs familiar with what this API does + + ![paths-sample](./readme-images/paths-sample.png) + +- The API has a static page that can be enhanced to add wiki like documentation on the usage of the API and any other information that may help people consuming this API. Communication is fundamental at all levels + + # Summary + + *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and I was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React r Next CLI frameworks do a lot of this manual plumbing and creating my own template too a little time and helped me to reuse some concepts for next time means things can get developed really quickly. \ No newline at end of file diff --git a/architecture.puml b/architecture.puml new file mode 100644 index 0000000..5ec9dca --- /dev/null +++ b/architecture.puml @@ -0,0 +1,22 @@ +@startuml "Vincent Farah Test for Seneca" +!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml +' uncomment the following line and comment the first to use locally +' !include C4_Container.puml + +' LAYOUT_TOP_DOWN() +LAYOUT_LEFT_RIGHT() + +'LAYOUT_AS_SKETCH +LAYOUT_WITH_LEGEND() + +Person(api_user, "Web Application User") + +Container_Boundary(c1, "stats services solution by Vincent Farah"){ + Container(web_app, "Web Application", "Node, AWS ApiGateway", "Allows stats to be generated for users related to courses and session statistics") + ContainerDb(nosql, "NoSQL Data Store", "MongoDB In Memory-Database", "Stores courses and sessions data ephemerally") +} + +Rel(api_user, web_app, "Uses", "HTTPS") +Rel(web_app, nosql, "Reads from and Writes to", "MongoDB wire protocol, port 27017") + +@enduml \ No newline at end of file diff --git a/readme-images/code-coverage-sample.png b/readme-images/code-coverage-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..f7318e65015a921928b98cce6a62890f7687ae28 GIT binary patch literal 131513 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

x$y~a5GJ{$) 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 Y{r1;dsVx;F@?NGh`lfnsbnGMl19iz%=>Px# literal 0 HcmV?d00001 diff --git a/readme-images/swagger-ui-sample.png b/readme-images/swagger-ui-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..54185995ba9b34a216222ee901a6a8512d5e1105 GIT binary patch literal 167418 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

uj3w9$Q?Jhs~yX*=L#J}%!o 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

9EYnlCnE#?R)3Ez3^V|ZxD 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 literal 0 HcmV?d00001 diff --git a/readme-images/system-diagram.png b/readme-images/system-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..91bd764daa6272dc64ab5382d1a5055d7d4772e1 GIT binary patch literal 89729 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 literal 0 HcmV?d00001 diff --git a/src/bin/server.js b/src/bin/server.js index ea4343c..57ea68a 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -16,6 +16,7 @@ process.on('exit', async() => { }); async function connectMongoDb() { + // REMARKS: Change the true to false if you want to connect to a durable database const result = await connectDatabase(true); return result; } diff --git a/src/courses/__snapshots__/getCourse.test.js.snap b/src/courses/__snapshots__/getCourse.test.js.snap index 59b9a3c..2fe8632 100644 --- a/src/courses/__snapshots__/getCourse.test.js.snap +++ b/src/courses/__snapshots__/getCourse.test.js.snap @@ -9,6 +9,6 @@ Object { "timeStudied": 4, "totalModulesStudied": 10, }, - "userId": "jane.doe@somemail.com", + "userId": "915a54b7-8220-4c2b-ac03-cc6edda055a5", } `; diff --git a/src/courses/__snapshots__/getSession.test.js.snap b/src/courses/__snapshots__/getSession.test.js.snap index 03f5e5b..edf4f79 100644 --- a/src/courses/__snapshots__/getSession.test.js.snap +++ b/src/courses/__snapshots__/getSession.test.js.snap @@ -9,6 +9,6 @@ Object { "timeStudied": 4, "totalModulesStudied": 10, }, - "userId": "jane.doe@somemail.com", + "userId": "915a54b7-8220-4c2b-ac03-cc6edda055a5", } `; diff --git a/src/courses/createOrUpdate.test.js b/src/courses/createOrUpdate.test.js index ad7ac3a..afc3d27 100644 --- a/src/courses/createOrUpdate.test.js +++ b/src/courses/createOrUpdate.test.js @@ -11,7 +11,7 @@ describe("createOrUpdate a course", () => { const validCourse = { courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - userId: "jane.doe@somemail.com", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", stats: { sessionCount: 1, totalModulesStudied: 10, @@ -23,7 +23,7 @@ describe("createOrUpdate a course", () => { const validCourseWithNewSession = { courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", sessionId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - userId: "jane.doe@somemail.com", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", stats: { sessionCount: 1, totalModulesStudied: 5, diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index d99e73c..9ec886f 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -6,7 +6,7 @@ describe("getCourse", () => { const validCourse = { courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - userId: "jane.doe@somemail.com", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", stats: { sessionCount: 1, totalModulesStudied: 10, diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index 9bfdc73..37b90cb 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -6,7 +6,7 @@ describe("getSession", () => { const validCourse = { courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - userId: "jane.doe@somemail.com", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", stats: { sessionCount: 1, totalModulesStudied: 10, diff --git a/src/models/course.js b/src/models/course.js index 01f83da..9a9fbd2 100644 --- a/src/models/course.js +++ b/src/models/course.js @@ -14,7 +14,7 @@ const courseSchema = new mongoose.Schema({ required: true, unique: false, lowercase: false, - validate: (value) => !validator.isEmpty(value), + validate: (value) => validator.isUUID(value), }, stats: { sessionCount: { type: Number, required: true }, diff --git a/src/models/session.js b/src/models/session.js index 07e2bef..cb71141 100644 --- a/src/models/session.js +++ b/src/models/session.js @@ -21,7 +21,7 @@ const sessionSchema = new mongoose.Schema({ required: true, unique: false, lowercase: false, - validate: (value) => !validator.isEmpty(value), + validate: (value) => validator.isUUID(value), }, stats:{ averageScore: { type: Number, required: true }, diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index 2586009..0410709 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -1,9 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`courses api get course and session should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course and Session retrieved successfully\\",\\"session\\":{\\"stats\\":{\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; +exports[`courses api get course and session should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course and Session retrieved successfully\\",\\"session\\":{\\"stats\\":{\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; -exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"User Course retrieved successfully\\",\\"course\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"jane.doe@someemail.com\\"}}"`; +exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"User Course retrieved successfully\\",\\"course\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"stats.totalModulesStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"stats.averageScore\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"stats.timeStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`, stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.timeStudied: Path \`stats.timeStudied\` is required.\\"}}"`; -exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"jane.doe@someemail.com\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; +exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 042577c..8247d45 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -25,7 +25,7 @@ describe("courses api", () => { test("should post new courses when all data is valid", async (done) => { const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "jane.doe@someemail.com"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; const body = { sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", totalModulesStudied: 9, @@ -44,7 +44,7 @@ describe("courses api", () => { test("should post http 400 when course id is invalid", async (done) => { const courseId = undefined; - const userId = "jane.doe@someemail.com"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; const actualResponse = await postRequestTest( `/courses/${courseId}`, userId, @@ -59,7 +59,7 @@ describe("courses api", () => { describe("get course", () => { test("should get non-existent course with 404 notfound", async (done) => { const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; - const userId = "jane.doe@someemail.com"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; const nonExistentCourseResponse = await getRequestTest( `/courses/${courseId}`, userId @@ -70,7 +70,7 @@ describe("courses api", () => { test("should get a posted record with 200 response", async (done) => { const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "jane.doe@someemail.com"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; const body = { sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", totalModulesStudied: 9, @@ -93,7 +93,7 @@ describe("courses api", () => { describe("get course and session", () => { test("should get non-existent course with 404 notfound", async (done) => { const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; - const userId = "jane.doe@someemail.com"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; const nonExistentCourseResponse = await getRequestTest( `/courses/${courseId}/sessions/${sessionId}`, @@ -105,7 +105,7 @@ describe("courses api", () => { test("should get a posted record with 200 response", async (done) => { const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "jane.doe@someemail.com"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; const body = { sessionId, From 5fca60111e0da63d6f7ce7d301eaf25131ebfbf3 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 22:52:49 +0000 Subject: [PATCH 29/60] Fixed broken image link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e1876a1..b5b4566 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ Basic instructions to start build and get this API up and running - The databases documents that get generated automatically create **indexes** and **optimise** the efficiency of how this stored for reading and writing and verifying the integrity of the data - ![document-indexes-sample](F:\Dev\Git\NodeCodingExercise\readme-images\document-indexes-sample.png) + ![document-indexes-sample](./readme-images/document-indexes-sample.png) - Toggling between an *in-memory* database and a *durable* database can be done by configuring the **server.js** file if you want to see the values generated in a visible database, but for the ease of deployment and running this without configuring a docker file or cloudformation script to prepare a *MongoDB environment*. This could simplify things and guarantee this will work. At the same time it also made testing database integration very easy, which is why I wanted an excuse to use this library and implementation. From 238350685fcba9dee321203053afcbfe7e909367 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 23:00:28 +0000 Subject: [PATCH 30/60] Apdated last bit of documentation --- README.md | 4 +++- readme-images/web-api-home-sample.png | Bin 0 -> 21316 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 readme-images/web-api-home-sample.png diff --git a/README.md b/README.md index b5b4566..8c625f0 100644 --- a/README.md +++ b/README.md @@ -163,6 +163,8 @@ Basic instructions to start build and get this API up and running - The API has a static page that can be enhanced to add wiki like documentation on the usage of the API and any other information that may help people consuming this API. Communication is fundamental at all levels - # Summary + ![web-api-home-sample](./readme-images/web-api-home-sample.png) + # Summary + *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and I was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React r Next CLI frameworks do a lot of this manual plumbing and creating my own template too a little time and helped me to reuse some concepts for next time means things can get developed really quickly. \ No newline at end of file diff --git a/readme-images/web-api-home-sample.png b/readme-images/web-api-home-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..017b88731f5e503af7fea5a32d11929c2f7c41f0 GIT binary patch literal 21316 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 literal 0 HcmV?d00001 From be6d9a865dcb31bb75937f97f31ae81c65f39a4d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sun, 29 Nov 2020 23:05:07 +0000 Subject: [PATCH 31/60] Last README fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c625f0..96c3470 100644 --- a/README.md +++ b/README.md @@ -167,4 +167,4 @@ Basic instructions to start build and get this API up and running # Summary - *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and I was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React r Next CLI frameworks do a lot of this manual plumbing and creating my own template too a little time and helped me to reuse some concepts for next time means things can get developed really quickly. \ No newline at end of file + *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and I was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express and node from a simplistic template generated. Having finished this I can already see other better templates I could have based it on but there will always be something better. \ No newline at end of file From 63ab66c82f59595bb106fbb44155ff010ee15ef5 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 07:16:45 +0000 Subject: [PATCH 32/60] Added last TODO's to finish off before submitting --- README.md | 2 +- TODO | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 96c3470..8850d63 100644 --- a/README.md +++ b/README.md @@ -167,4 +167,4 @@ Basic instructions to start build and get this API up and running # Summary - *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and I was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express and node from a simplistic template generated. Having finished this I can already see other better templates I could have based it on but there will always be something better. \ No newline at end of file + *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express and node from a simplistic template generated. Having finished this I can already see other better templates I could have based it on but there will always be something better. \ No newline at end of file diff --git a/TODO b/TODO index dfe0528..368cb0d 100644 --- a/TODO +++ b/TODO @@ -3,11 +3,12 @@ ✔ Add the `SWAGGER` into the definition so the swagger UI can test the endpoint @high @done(20-11-26 15:50) ✔ Start developing endpoints so they get values @high @done(20-11-29 19:47) ✔ Start developing by domain an using an In-memory mongo database @high @done(20-11-29 19:47) -☐ Start configuring a serverless.yaml for AWS deployment script @high -☐ Start PUML Architecture design and descptions @low +☐ Start configuring a `serverless.yaml` for AWS deployment script @high +✔ Start `PUML Architecture` design and descptions @low @done(20-11-30 07:14) ✔ Issue Remove the snapshots being outputted @done(20-11-28 18:13) ✔ Disconnect and drop database when express closing @critical @done(20-11-29 19:46) ✔ Seperate the disconnect from the drop @high @done(20-11-29 19:35) ✔ Add database onto all the exported functions @low @done(20-11-29 19:46) ✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) -✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) \ No newline at end of file +✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) +☐ Refactor code to be cleaner - Clean engineering practises \ No newline at end of file From 9479776adea52f4fd2a6957885ab45341df6861c Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 08:19:13 +0000 Subject: [PATCH 33/60] Added serverless to run express and documented --- README.md | 82 +- package-lock.json | 1135 ++++++++++++++++++- package.json | 9 +- readme-images/serverless-offline-sample.png | Bin 0 -> 199519 bytes serverless.yml | 19 + src/bin/server.js | 2 + 6 files changed, 1222 insertions(+), 25 deletions(-) create mode 100644 readme-images/serverless-offline-sample.png create mode 100644 serverless.yml diff --git a/README.md b/README.md index 8850d63..8094f22 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,21 @@ used depending on the type of content that is being displayed Basic instructions to start build and get this API up and running +```powershell +// Quick instructions to start application +npm i +npm start + +// Quick instructions for test +npm run coverage + +// Quick instructions for running serverless offline +serverless offline + +``` + + + | package command | description | | :------------------- | :----------------------------------------------------------- | | `npm i` | **Install** all the packages | @@ -45,6 +60,10 @@ Basic instructions to start build and get this API up and running | `npm run test:watch` | Runs test in **test-development** mode while the developer creates tests giving the ability to automatically run when changes made | | `npm run coverage` | Runs all the tests to calculate the test coverage and to vet if it succeeds against the expected size | +serverless offline will work like the deploy except locally + +![serverless-offline-sample](./readme-images/serverless-offline-sample.png) + ## Architecture - **Node Express API** solution using Mongoose to connect to *MongoDb* either a temporary or a real mongo database. By default this is configured to work with data in the temp data storage. @@ -57,7 +76,7 @@ Basic instructions to start build and get this API up and running ![swagger-ui-sample](./readme-images/swagger-ui-sample.png) -- Database model consists of two structures, **course** and **session**. When you post the first course with some session information this will generate some aggregated stats on the session data that is passed in for the course. The course data model has various data and validators built in to make sure the data is in the expected format, built into the model. **NOTE:** I introduce ***SessionCount*** into the structure to help me understand some of the data I was aggregating. It make it easier, in my opinion to obviously see the generated data and what I was aggregating the data on +- Database model consists of two structures, **course** and **session**. When you post the first course with some session information this will generate some aggregated stats on the session data that is passed in for the course. The course data model has various data and validators built in to make sure the data is in the expected format, built into the model. **NOTE:** I introduced ***sessionCount*** into the structure to help me understand some of the data I was aggregating and to have an obvious and easy dimension to visualise. ```javascript const courseSchema = new mongoose.Schema({ @@ -128,7 +147,54 @@ Basic instructions to start build and get this API up and running ![document-indexes-sample](./readme-images/document-indexes-sample.png) -- Toggling between an *in-memory* database and a *durable* database can be done by configuring the **server.js** file if you want to see the values generated in a visible database, but for the ease of deployment and running this without configuring a docker file or cloudformation script to prepare a *MongoDB environment*. This could simplify things and guarantee this will work. At the same time it also made testing database integration very easy, which is why I wanted an excuse to use this library and implementation. +- **Data samples** of tested data below show the summary data related to the users course and you can see how the individual sessions made up that aggregated data + + ```json + { + "_id" : ObjectId("5fc4139d1c0fc5496431a89e"), + "courseId" : "04473bf9-6ec6-47e9-be92-77b2bba9b606", + "userId" : "915a54b7-8220-4c2b-ac03-cc6edda055a5", + "stats" : { + "sessionCount" : 2, + "totalModulesStudied" : 10, + "timeStudied" : 40, + "averageScore" : 75 + }, + "__v" : 0 + } + ``` + + ```json + /* 1 */ + { + "_id" : ObjectId("5fc4139d1c0fc5496431a89f"), + "courseId" : "04473bf9-6ec6-47e9-be92-77b2bba9b606", + "sessionId" : "3fa85f64-5717-4562-b3fc-2c963f66afa6", + "userId" : "915a54b7-8220-4c2b-ac03-cc6edda055a5", + "stats" : { + "totalModulesStudied" : 5, + "averageScore" : 70, + "timeStudied" : 20 + }, + "__v" : 0 + } + + /* 2 */ + { + "_id" : ObjectId("5fc413a61c0fc5496431a8a0"), + "courseId" : "04473bf9-6ec6-47e9-be92-77b2bba9b606", + "sessionId" : "cfca500b-0afd-4605-a1f4-772b58dd4cf5", + "userId" : "915a54b7-8220-4c2b-ac03-cc6edda055a5", + "stats" : { + "totalModulesStudied" : 5, + "averageScore" : 80, + "timeStudied" : 20 + }, + "__v" : 0 + } + ``` + +- Toggling between an *in-memory* database and a *durable* database can be done by configuring the **server.js** file if you want to see the values generated in a visible database, but for the ease of deployment and running this without configuring a docker file or *CloudFormation* script to prepare a *MongoDB environment*. This could simplify things and guarantee this will work. At the same time it also made testing database integration very easy, which is why I wanted an excuse to use this library and implementation. ```javascript async function connectMongoDb() { @@ -137,15 +203,15 @@ Basic instructions to start build and get this API up and running return result; } ``` - + - The **4 rules of Simple Design**, by Kent Beck states: - - Tests Pass - - Express Intent - - No Duplication (Logical ideas) - - KISS + - **Tests Pass** + - **Express Intent** + - **No Logical Duplication DRY** + - **Keep it simple (KISS)** -- Elaborating on what *Kent* stated above as key values for a good design, and valuing my solution by each premise, I added tests to almost every part of the application. Most of them utilised the test framework or temp database so mimicked an integration test more than a unit test. Usually I mock all this using Jest mock frameworks, but the actual temp database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all under a second each so on a slow system it took 20 seconds to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a test pyramid more strictly, unit tests the biggest, integration second and e2e the smallest being the most expensive to run +- Elaborating on what *Kent* stated a as his principles of good design, and valuing my solution with each rule, I added tests to almost every part of the system. Most of the tests utilised the temp database so mimicked an integration test more than a unit test. Usually I mock all this using Jest Mock frameworks, but the actual temp database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database at all times. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all under a second so on a slow system it took 15 seconds on average to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a struct test pyramid, unit tests the biggest, integration second and e2e the smallest, being the most expensive to run. Usually I add *Cypress* tests and like *Artillery.js* for performance tests ![code-coverage-sample](./readme-images/code-coverage-sample.png) diff --git a/package-lock.json b/package-lock.json index 8cba22f..e0a59ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "test-express", - "version": "0.0.0", + "name": "stats-service", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1136,6 +1136,356 @@ "minimist": "^1.2.0" } }, + "@hapi/accept": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-3.2.4.tgz", + "integrity": "sha512-soThGB+QMgfxlh0Vzhzlf3ZOEOPk5biEwcOXhkF0Eedqx8VnhGiggL9UYHrIsOb1rUg3Be3K8kp0iDL2wbVSOQ==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/ammo": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-3.1.2.tgz", + "integrity": "sha512-ej9OtFmiZv1qr45g1bxEZNGyaR4jRpyMxU6VhbxjaYThymvOwsyIsUKMZnP5Qw2tfYFuwqCJuIBHGpeIbdX9gQ==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/b64": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-4.2.1.tgz", + "integrity": "sha512-zqHpQuH5CBMw6hADzKfU/IGNrxq1Q+/wTYV+OiZRQN9F3tMyk+9BUMeBvFRMamduuqL8iSp62QAnJ+7ATiYLWA==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/boom": { + "version": "7.4.11", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-7.4.11.tgz", + "integrity": "sha512-VSU/Cnj1DXouukYxxkes4nNJonCnlogHvIff1v1RVoN4xzkKhMXX+GRmb3NyH1iar10I9WFPDv2JPwfH3GaV0A==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/bounce": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-1.3.2.tgz", + "integrity": "sha512-3bnb1AlcEByFZnpDIidxQyw1Gds81z/1rSqlx4bIEE+wUN0ATj0D49B5cE1wGocy90Rp/de4tv7GjsKd5RQeew==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "^8.3.1" + } + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/call": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@hapi/call/-/call-5.1.3.tgz", + "integrity": "sha512-5DfWpMk7qZiYhvBhM5oUiT4GQ/O8a2rFR121/PdwA/eZ2C1EsuD547ZggMKAR5bZ+FtxOf0fdM20zzcXzq2mZA==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/catbox": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-10.2.3.tgz", + "integrity": "sha512-kN9hXO4NYyOHW09CXiuj5qW1syc/0XeVOBsNNk0Tz89wWNQE5h21WF+VsfAw3uFR8swn/Wj3YEVBnWqo82m/JQ==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/joi": "16.x.x", + "@hapi/podium": "3.x.x" + } + }, + "@hapi/catbox-memory": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-4.1.1.tgz", + "integrity": "sha512-T6Hdy8DExzG0jY7C8yYWZB4XHfc0v+p1EGkwxl2HoaPYAmW7I3E59M/IvmSVpis8RPcIoBp41ZpO2aZPBpM2Ww==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/content": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@hapi/content/-/content-4.1.1.tgz", + "integrity": "sha512-3TWvmwpVPxFSF3KBjKZ8yDqIKKZZIm7VurDSweYpXYENZrJH3C1hd1+qEQW9wQaUaI76pPBLGrXl6I3B7i3ipA==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x" + } + }, + "@hapi/cryptiles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-4.2.1.tgz", + "integrity": "sha512-XoqgKsHK0l/VpqPs+tr6j6vE+VQ3+2bkF2stvttmc7xAOf1oSAwHcJ0tlp/6MxMysktt1IEY0Csy3khKaP9/uQ==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x" + } + }, + "@hapi/file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@hapi/file/-/file-1.0.0.tgz", + "integrity": "sha512-Bsfp/+1Gyf70eGtnIgmScvrH8sSypO3TcK3Zf0QdHnzn/ACnAkI6KLtGACmNRPEzzIy+W7aJX5E+1fc9GwIABQ==", + "dev": true + }, + "@hapi/formula": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-1.2.0.tgz", + "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==", + "dev": true + }, + "@hapi/h2o2": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/@hapi/h2o2/-/h2o2-8.3.2.tgz", + "integrity": "sha512-2WkZq+QAkvYHWGqnUuG0stcVeGyv9T7bopBYnCJSUEuvBZlUf2BTX2JCVSKxsnTLOxCYwoC/aI4Rr0ZSRd2oVg==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/joi": "16.x.x", + "@hapi/wreck": "15.x.x" + } + }, + "@hapi/hapi": { + "version": "18.4.1", + "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-18.4.1.tgz", + "integrity": "sha512-9HjVGa0Z4Qv9jk9AVoUdJMQLA+KuZ+liKWyEEkVBx3e3H1F0JM6aGbPkY9jRfwsITBWGBU2iXazn65SFKSi/tg==", + "dev": true, + "requires": { + "@hapi/accept": "^3.2.4", + "@hapi/ammo": "^3.1.2", + "@hapi/boom": "7.x.x", + "@hapi/bounce": "1.x.x", + "@hapi/call": "^5.1.3", + "@hapi/catbox": "10.x.x", + "@hapi/catbox-memory": "4.x.x", + "@hapi/heavy": "6.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/joi": "15.x.x", + "@hapi/mimos": "4.x.x", + "@hapi/podium": "3.x.x", + "@hapi/shot": "4.x.x", + "@hapi/somever": "2.x.x", + "@hapi/statehood": "6.x.x", + "@hapi/subtext": "^6.1.3", + "@hapi/teamwork": "3.x.x", + "@hapi/topo": "3.x.x" + }, + "dependencies": { + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + } + } + }, + "@hapi/heavy": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-6.2.2.tgz", + "integrity": "sha512-PY1dCCO6dsze7RlafIRhTaGeyTgVe49A/lSkxbhKGjQ7x46o/OFf7hLiRqTCDh3atcEKf6362EaB3+kTUbCsVA==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/joi": "16.x.x" + } + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + }, + "@hapi/iron": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-5.1.4.tgz", + "integrity": "sha512-+ElC+OCiwWLjlJBmm8ZEWjlfzTMQTdgPnU/TsoU5QsktspIWmWi9IU4kU83nH+X/SSya8TP8h8P11Wr5L7dkQQ==", + "dev": true, + "requires": { + "@hapi/b64": "4.x.x", + "@hapi/boom": "7.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/cryptiles": "4.x.x", + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/joi": { + "version": "16.1.8", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.8.tgz", + "integrity": "sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg==", + "dev": true, + "requires": { + "@hapi/address": "^2.1.2", + "@hapi/formula": "^1.2.0", + "@hapi/hoek": "^8.2.4", + "@hapi/pinpoint": "^1.0.2", + "@hapi/topo": "^3.1.3" + } + }, + "@hapi/mimos": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-4.1.1.tgz", + "integrity": "sha512-CXoi/zfcTWfKYX756eEea8rXJRIb9sR4d7VwyAH9d3BkDyNgAesZxvqIdm55npQc6S9mU3FExinMAQVlIkz0eA==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x", + "mime-db": "1.x.x" + } + }, + "@hapi/nigel": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-3.1.1.tgz", + "integrity": "sha512-R9YWx4S8yu0gcCBrMUDCiEFm1SQT895dMlYoeNBp8I6YhF1BFF1iYPueKA2Kkp9BvyHdjmvrxCOns7GMmpl+Fw==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x", + "@hapi/vise": "3.x.x" + } + }, + "@hapi/pez": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-4.1.2.tgz", + "integrity": "sha512-8zSdJ8cZrJLFldTgwjU9Fb1JebID+aBCrCsycgqKYe0OZtM2r3Yv3aAwW5z97VsZWCROC1Vx6Mdn4rujh5Ktcg==", + "dev": true, + "requires": { + "@hapi/b64": "4.x.x", + "@hapi/boom": "7.x.x", + "@hapi/content": "^4.1.1", + "@hapi/hoek": "8.x.x", + "@hapi/nigel": "3.x.x" + } + }, + "@hapi/pinpoint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz", + "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==", + "dev": true + }, + "@hapi/podium": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-3.4.3.tgz", + "integrity": "sha512-QJlnYLEYZWlKQ9fSOtuUcpANyoVGwT68GA9P0iQQCAetBK0fI+nbRBt58+aMixoifczWZUthuGkNjqKxgPh/CQ==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x", + "@hapi/joi": "16.x.x" + } + }, + "@hapi/shot": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-4.1.2.tgz", + "integrity": "sha512-6LeHLjvsq/bQ0R+fhEyr7mqExRGguNTrxFZf5DyKe3CK6pNabiGgYO4JVFaRrLZ3JyuhkS0fo8iiRE2Ql2oA/A==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x", + "@hapi/joi": "16.x.x" + } + }, + "@hapi/somever": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-2.1.1.tgz", + "integrity": "sha512-cic5Sto4KGd9B0oQSdKTokju+rYhCbdpzbMb0EBnrH5Oc1z048hY8PaZ1lx2vBD7I/XIfTQVQetBH57fU51XRA==", + "dev": true, + "requires": { + "@hapi/bounce": "1.x.x", + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/statehood": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-6.1.2.tgz", + "integrity": "sha512-pYXw1x6npz/UfmtcpUhuMvdK5kuOGTKcJNfLqdNptzietK2UZH5RzNJSlv5bDHeSmordFM3kGItcuQWX2lj2nQ==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/bounce": "1.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/cryptiles": "4.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/iron": "5.x.x", + "@hapi/joi": "16.x.x" + } + }, + "@hapi/subtext": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-6.1.3.tgz", + "integrity": "sha512-qWN6NbiHNzohVcJMeAlpku/vzbyH4zIpnnMPMPioQMwIxbPFKeNViDCNI6fVBbMPBiw/xB4FjqiJkRG5P9eWWg==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/content": "^4.1.1", + "@hapi/file": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/pez": "^4.1.2", + "@hapi/wreck": "15.x.x" + } + }, + "@hapi/teamwork": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-3.3.1.tgz", + "integrity": "sha512-61tiqWCYvMKP7fCTXy0M4VE6uNIwA0qvgFoiDubgfj7uqJ0fdHJFQNnVPGrxhLWlwz0uBPWrQlBH7r8y9vFITQ==", + "dev": true + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@hapi/vise": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-3.1.1.tgz", + "integrity": "sha512-OXarbiCSadvtg+bSdVPqu31Z1JoBL+FwNYz3cYoBKQ5xq1/Cr4A3IkGpAZbAuxU5y4NL5pZFZG3d2a3ZGm/dOQ==", + "dev": true, + "requires": { + "@hapi/hoek": "8.x.x" + } + }, + "@hapi/wreck": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-15.1.0.tgz", + "integrity": "sha512-tQczYRTTeYBmvhsek/D49En/5khcShaBEmzrAaDjMrFXKJRuF8xA8+tlq1ETLBFwGd6Do6g2OC74rt11kzawzg==", + "dev": true, + "requires": { + "@hapi/boom": "7.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x" + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1800,6 +2150,12 @@ "defer-to-connect": "^1.0.1" } }, + "@types/aws-lambda": { + "version": "8.10.64", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.64.tgz", + "integrity": "sha512-LRKk2UQCSi7BsO5TlfSI8cTNpOGz+MH6+RXEWtuZmxJficQgxwEYJDiKVirzgyiHce0L0F4CqCVvKTwblAeOUw==", + "optional": true + }, "@types/babel__core": { "version": "7.1.12", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", @@ -1908,6 +2264,12 @@ "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, "@types/stack-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", @@ -2152,6 +2514,15 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", @@ -2171,6 +2542,48 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, + "aws-sdk": { + "version": "2.799.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.799.0.tgz", + "integrity": "sha512-NYAoiNU+bJXhlJsC0rFqrmD5t5ho7/VxldmziP6HLPYHfOCI9Uvk6UVjfPmhLWPm0mHnIxhsHqmsNGyjhHNYmw==", + "dev": true, + "requires": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -2657,6 +3070,12 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3140,6 +3559,16 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cron-parser": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-2.18.0.tgz", + "integrity": "sha512-s4odpheTyydAbTBQepsqd2rNWGa2iV3cyo8g7zbI2QQYGLVsfbhmwukayS1XHppe02Oy1fg7mg6xoaraVJeEcg==", + "dev": true, + "requires": { + "is-nan": "^1.3.0", + "moment-timezone": "^0.5.31" + } + }, "cross-env": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", @@ -3234,6 +3663,12 @@ } } }, + "cuid": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz", + "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -3443,6 +3878,15 @@ "safer-buffer": "^2.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3592,6 +4036,18 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, "exec-sh": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", @@ -4083,6 +4539,17 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -4421,6 +4888,12 @@ "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -4635,6 +5108,15 @@ "is-path-inside": "^3.0.1" } }, + "is-nan": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", + "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "is-negative-zero": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", @@ -4881,6 +5363,12 @@ "istanbul-lib-report": "^3.0.0" } }, + "java-invoke-local": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/java-invoke-local/-/java-invoke-local-0.0.6.tgz", + "integrity": "sha512-gZmQKe1QrfkkMjCn8Qv9cpyJFyogTYqkP5WCobX5RNaHsJzIV/6NvAnlnouOcwKr29QrxLGDGcqYuJ+ae98s1A==", + "dev": true + }, "jest": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", @@ -6341,6 +6829,18 @@ } } }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true + }, + "js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6448,6 +6948,53 @@ "minimist": "^1.2.5" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonpath-plus": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-3.0.0.tgz", + "integrity": "sha512-WQwgWEBgn+SJU1tlDa/GiY5/ngRpa9yrSj8n4BYPHcwoxTDaMEaYCHMOn42hIHHDd3CrUoRr3+HpsK0hCKoxzA==", + "dev": true + }, + "jsonschema": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", + "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", + "dev": true + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dev": true, + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -6460,6 +7007,39 @@ "verror": "1.10.0" } }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "kareem": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", @@ -6511,6 +7091,15 @@ "type-check": "~0.3.2" } }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -6573,22 +7162,76 @@ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", "dev": true }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", + "dev": true + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "long-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", + "integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "luxon": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.25.0.tgz", + "integrity": "sha512-hEgLurSH8kQRjY6i4YLey+mcKVAWXbDNlZRmM6AgWDJ1cY3atl8Ztf5wEY7VBReFbmGnwQPz7KYJblL8B2k0jQ==", "dev": true }, "make-dir": { @@ -6624,6 +7267,15 @@ "tmpl": "1.0.x" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -6649,6 +7301,24 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "mem": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-6.1.1.tgz", + "integrity": "sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true + } + } + }, "memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", @@ -6768,6 +7438,21 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "dev": true + }, + "moment-timezone": { + "version": "0.5.32", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.32.tgz", + "integrity": "sha512-Z8QNyuQHQAmWucp8Knmgei8YNo28aLjJq6Ma+jy1ZSpSk5nyfRT8xgUbSQvD2+2UajISfenndwvFuH3NGS+nvA==", + "dev": true, + "requires": { + "moment": ">= 2.9.0" + } + }, "mongodb": { "version": "3.6.3", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.3.tgz", @@ -7038,6 +7723,12 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -7090,6 +7781,17 @@ "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", "dev": true }, + "node-schedule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-1.3.2.tgz", + "integrity": "sha512-GIND2pHMHiReSZSvS6dpZcDH7pGPGFfWBIEud6S00Q8zEIzAs9ommdyRK1ZbQt8y1LyZsJYZgPnyi7gpU2lcdw==", + "dev": true, + "requires": { + "cron-parser": "^2.7.3", + "long-timeout": "0.1.1", + "sorted-array-functions": "^1.0.0" + } + }, "nodemon": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", @@ -7260,6 +7962,40 @@ "object-keys": "^1.1.1" } }, + "object.fromentries": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz", + "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -7319,6 +8055,12 @@ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, "p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", @@ -7347,6 +8089,53 @@ "p-limit": "^2.2.0" } }, + "p-memoize": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.1.tgz", + "integrity": "sha512-km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==", + "dev": true, + "requires": { + "mem": "^6.0.1", + "mimic-fn": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "dev": true + } + } + }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-retry": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz", + "integrity": "sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==", + "dev": true, + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.12.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -7372,6 +8161,12 @@ } } }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -7488,6 +8283,52 @@ "find-up": "^4.0.0" } }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -7616,6 +8457,12 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -8026,6 +8873,12 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -8085,6 +8938,12 @@ "sparse-bitfield": "^3.0.3" } }, + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true + }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -8110,6 +8969,12 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", @@ -8158,12 +9023,202 @@ "send": "0.16.2" } }, + "serverless-http": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/serverless-http/-/serverless-http-2.6.0.tgz", + "integrity": "sha512-2mBz+MO+JXgC8PDHIZi/Ytsa65v78fc+7cFeXqcYM5laGQS/GEX9Cq+72WOaIGqPJia5JLADqjhdTBI5/iLcHQ==", + "requires": { + "@types/aws-lambda": "^8.10.56" + } + }, + "serverless-offline": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/serverless-offline/-/serverless-offline-6.8.0.tgz", + "integrity": "sha512-DBDMcU58Bl+zZGSTAZ96Ed57k11oh0fQwgSoH2iVJpO6xFV9dTIttBYzTCwnfAgG0kB6NZK99Q/69b4brChTnQ==", + "dev": true, + "requires": { + "@hapi/boom": "^7.4.11", + "@hapi/h2o2": "^8.3.2", + "@hapi/hapi": "^18.4.1", + "aws-sdk": "^2.624.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "cuid": "^2.1.8", + "execa": "^4.0.0", + "extend": "^3.0.2", + "fs-extra": "^8.1.0", + "java-invoke-local": "0.0.6", + "js-string-escape": "^1.0.1", + "jsonpath-plus": "^3.0.0", + "jsonschema": "^1.2.6", + "jsonwebtoken": "^8.5.1", + "jszip": "^3.2.2", + "luxon": "^1.22.0", + "node-fetch": "^2.6.0", + "node-schedule": "^1.3.2", + "object.fromentries": "^2.0.2", + "p-memoize": "^4.0.0", + "p-queue": "^6.3.0", + "p-retry": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "portfinder": "^1.0.25", + "semver": "^7.1.3", + "update-notifier": "^4.1.0", + "velocityjs": "^2.0.0", + "ws": "^7.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -8354,6 +9409,12 @@ } } }, + "sorted-array-functions": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==", + "dev": true + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -9163,6 +10224,12 @@ "crypto-random-string": "^2.0.0" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -9302,6 +10369,24 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -9373,6 +10458,12 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "velocityjs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/velocityjs/-/velocityjs-2.0.2.tgz", + "integrity": "sha512-TUQ7/lOEFEho7zSXlh6M/+lAOIRU0g7nMDUlGn1Jt40Y0JLOnIVM4RTuB4KpkN6eL7BPl+ygc2zi5XJIi874zQ==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -9571,6 +10662,22 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", diff --git a/package.json b/package.json index 3f2522f..322caa0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { - "name": "test-express", - "version": "0.0.0", + "name": "stats-service", + "author": "Vincent Farah", + "version": "1.0.0", "private": true, "scripts": { "build": "npm-run-all clean transpile clean:buildtests clean:buildsnapshots", @@ -24,11 +25,12 @@ "cookie-parser": "~1.4.4", "debug": "~2.6.9", "dotenv": "^8.2.0", - "express": "~4.16.1", + "express": "^4.16.4", "express-list-endpoints": "^5.0.0", "mongodb-memory-server": "^6.9.2", "mongoose": "^5.10.16", "morgan": "~1.9.1", + "serverless-http": "^2.6.0", "swagger-ui-express": "^4.1.5", "validator": "^13.1.17" }, @@ -64,6 +66,7 @@ "nodemon": "^2.0.6", "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", + "serverless-offline": "^6.8.0", "supertest": "^6.0.1", "ts-jest": "^26.4.4" }, diff --git a/readme-images/serverless-offline-sample.png b/readme-images/serverless-offline-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..a5161b05feb26b49250260230785394a40e0ef75 GIT binary patch literal 199519 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

)Wy72GckolW+5pt{G#F!BZ`3(F7N+O8E~ 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ƥS6u&E7usdz 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%0DSlp7~fi+k=UJr&6DSB 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 literal 0 HcmV?d00001 diff --git a/serverless.yml b/serverless.yml new file mode 100644 index 0000000..8cf6c22 --- /dev/null +++ b/serverless.yml @@ -0,0 +1,19 @@ +# serverless.yml + +service: stats-service + +plugins: + - serverless-offline + +provider: + name: aws + runtime: nodejs12.x + stage: dev + region: eu-west-1 + +functions: + app: + handler: dist-server/bin/server.handler + events: + - http: ANY / + - http: "ANY {proxy+}" diff --git a/src/bin/server.js b/src/bin/server.js index 57ea68a..f2a9917 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -4,6 +4,7 @@ import { createServer } from "http"; import config from "../config"; import listEndpoints from "express-list-endpoints"; import { connectDatabase, disconnectDatabase } from "../database"; +import serverless from "serverless-http"; const debug = debugLib("test-express:server"); const { port } = config; @@ -14,6 +15,7 @@ process.on('exit', async() => { console.debug('Disconnecting from database.'); await disconnectDatabase(); }); +export const handler = serverless(app); async function connectMongoDb() { // REMARKS: Change the true to false if you want to connect to a durable database From 86f49c0014810a7619aa636102e16fa37574bfca Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 08:41:37 +0000 Subject: [PATCH 34/60] Refactored last TODO --- TODO | 4 +- src/courses/index.js | 90 ++++++++++++++++++++++++++------------------ 2 files changed, 55 insertions(+), 39 deletions(-) diff --git a/TODO b/TODO index 368cb0d..9cc8d7d 100644 --- a/TODO +++ b/TODO @@ -3,7 +3,7 @@ ✔ Add the `SWAGGER` into the definition so the swagger UI can test the endpoint @high @done(20-11-26 15:50) ✔ Start developing endpoints so they get values @high @done(20-11-29 19:47) ✔ Start developing by domain an using an In-memory mongo database @high @done(20-11-29 19:47) -☐ Start configuring a `serverless.yaml` for AWS deployment script @high +✔ Start configuring a `serverless.yaml` for AWS deployment script @high @done(20-11-30 08:34) ✔ Start `PUML Architecture` design and descptions @low @done(20-11-30 07:14) ✔ Issue Remove the snapshots being outputted @done(20-11-28 18:13) ✔ Disconnect and drop database when express closing @critical @done(20-11-29 19:46) @@ -11,4 +11,4 @@ ✔ Add database onto all the exported functions @low @done(20-11-29 19:46) ✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) ✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) -☐ Refactor code to be cleaner - Clean engineering practises \ No newline at end of file +✔ Refactor code to be cleaner - Clean engineering practises @done(20-11-30 08:41) \ No newline at end of file diff --git a/src/courses/index.js b/src/courses/index.js index ca00dac..8d81e85 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -4,7 +4,6 @@ import courseModel from "../models/course"; import sessionModel from "../models/session"; import { removeDatabaseProps } from "../database"; -// TODO: Refactor big method export const createOrUpdate = (course) => { return new Promise(async (resolve, reject) => { if (!course) reject(new Error("Course is required")); @@ -12,45 +11,13 @@ export const createOrUpdate = (course) => { try { const { courseId, sessionId, userId } = course; let courseResponse; - const courseExists = await courseModel.exists({ courseId, userId }); - if (!courseExists) { - courseResponse = await courseModel.create(course); - console.debug(courseResponse); - } + let courseExists; + ({ courseExists, courseResponse } = await createCourse(courseId, userId, courseResponse, course)); - const sessionExists = await sessionModel.exists({ - userId, - sessionId, - userId, - }); - // NOTE: upsert not used here because validation does not work with findOneAndUpdate - const sessionResponse = !sessionExists - ? await sessionModel.create(course) - : await sessionModel.updateOne({ courseId, sessionId, userId }, course); - console.debug(sessionResponse); + const sessionResponse = await createOrUpdateSession(userId, sessionId, course, courseId); if (courseExists) { - const aggregateQuery = [ - { $match: { courseId, userId } }, - { - $group: { - _id: "$courseId", - sessionCount: { $sum: 1 }, - totalModulesStudied: { $sum: "$stats.totalModulesStudied" }, - timeStudied: { $sum: "$stats.timeStudied" }, - averageScore: { $avg: "$stats.averageScore" }, - }, - }, - ]; - const aggregateResponse = await sessionModel.aggregate(aggregateQuery); - const cleanedAggregateResponse = removeDatabaseProps( - aggregateResponse[0] - ); - console.debug("AGGREGATE Result", cleanedAggregateResponse); - await courseModel.updateOne( - { courseId, userId }, - { courseId, sessionId, userId, stats: cleanedAggregateResponse } - ); + await updateCourseAggregates(courseId, userId, sessionId); } resolve({ courseResponse, sessionResponse }); @@ -93,3 +60,52 @@ export const getSession = (courseId, sessionId, userId) => { } }); }; + + +async function updateCourseAggregates(courseId, userId, sessionId) { + const aggregateQuery = [ + { $match: { courseId, userId } }, + { + $group: { + _id: "$courseId", + sessionCount: { $sum: 1 }, + totalModulesStudied: { $sum: "$stats.totalModulesStudied" }, + timeStudied: { $sum: "$stats.timeStudied" }, + averageScore: { $avg: "$stats.averageScore" }, + }, + }, + ]; + const aggregateResponse = await sessionModel.aggregate(aggregateQuery); + const cleanedAggregateResponse = removeDatabaseProps( + aggregateResponse[0] + ); + console.debug("AGGREGATE Result", cleanedAggregateResponse); + await courseModel.updateOne( + { courseId, userId }, + { courseId, sessionId, userId, stats: cleanedAggregateResponse } + ); +} + +async function createOrUpdateSession(userId, sessionId, course, courseId) { + const sessionExists = await sessionModel.exists({ + userId, + sessionId, + userId, + }); + // NOTE: upsert not used here because validation does not work with findOneAndUpdate + const sessionResponse = !sessionExists + ? await sessionModel.create(course) + : await sessionModel.updateOne({ courseId, sessionId, userId }, course); + console.debug(sessionResponse); + return sessionResponse; +} + +async function createCourse(courseId, userId, courseResponse, course) { + const courseExists = await courseModel.exists({ courseId, userId }); + if (!courseExists) { + courseResponse = await courseModel.create(course); + console.debug(courseResponse); + } + return { courseExists, courseResponse }; +} + From 834f6f78f34841caa7c407faa70524c775e07a5c Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 08:54:56 +0000 Subject: [PATCH 35/60] Last note fixed --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8094f22..20b4b2c 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ serverless offline will work like the deploy except locally - **No Logical Duplication DRY** - **Keep it simple (KISS)** -- Elaborating on what *Kent* stated a as his principles of good design, and valuing my solution with each rule, I added tests to almost every part of the system. Most of the tests utilised the temp database so mimicked an integration test more than a unit test. Usually I mock all this using Jest Mock frameworks, but the actual temp database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database at all times. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all under a second so on a slow system it took 15 seconds on average to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a struct test pyramid, unit tests the biggest, integration second and e2e the smallest, being the most expensive to run. Usually I add *Cypress* tests and like *Artillery.js* for performance tests +- Elaborating on what *Kent* stated a as his principles of good design, and valuing my solution with each rule, I added tests to almost every part of the system. Most of the tests utilised the temp database so mimicked an integration test more than a unit test. Usually I mock all this using Jest Mock frameworks, but the actual in-memory database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database at all times. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all majorly under a second so on a slow system it took 15 seconds on average to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a strict test pyramid, unit tests the biggest, integration second and e2e the smallest, being the most expensive to run. Usually I add *Cypress* tests and like *Artillery.js* for performance tests ![code-coverage-sample](./readme-images/code-coverage-sample.png) @@ -233,4 +233,4 @@ serverless offline will work like the deploy except locally # Summary - *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express and node from a simplistic template generated. Having finished this I can already see other better templates I could have based it on but there will always be something better. \ No newline at end of file + *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express. Having finished this I can already see other better templates I could have based it on but there will always be something better. \ No newline at end of file From b3d2c86294efca9d52d857fb5b43376c136aabd2 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 11:16:33 +0000 Subject: [PATCH 36/60] Add a joke in the summary using fastify --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 20b4b2c..1a307ab 100644 --- a/README.md +++ b/README.md @@ -233,4 +233,4 @@ serverless offline will work like the deploy except locally # Summary - *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express. Having finished this I can already see other better templates I could have based it on but there will always be something better. \ No newline at end of file + *Mongoose* was new to me, as well as *SuperTest* and doing Node as an ES6+ application, usually convert to Typescript or leave Node as a default Node App and was pleasantly surprised on how nice all of the libraries where to put a Node application together. Working with React and Next JS CLI frameworks help with generating a lot of this manual plumbing we take for granted. Creating my own template took a little time and helped me to reuse some concepts for next time I need to play with express. Having finished this I can already see other better templates I could have based it on but there will always be something [better](https://www.fastify.io/benchmarks/). \ No newline at end of file From b376cc74fd95b39ebf690ac0c7d0ed2f74b44c8b Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 11:42:55 +0000 Subject: [PATCH 37/60] Fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a307ab..54e3120 100644 --- a/README.md +++ b/README.md @@ -211,7 +211,7 @@ serverless offline will work like the deploy except locally - **No Logical Duplication DRY** - **Keep it simple (KISS)** -- Elaborating on what *Kent* stated a as his principles of good design, and valuing my solution with each rule, I added tests to almost every part of the system. Most of the tests utilised the temp database so mimicked an integration test more than a unit test. Usually I mock all this using Jest Mock frameworks, but the actual in-memory database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database at all times. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all majorly under a second so on a slow system it took 15 seconds on average to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a strict test pyramid, unit tests the biggest, integration second and e2e the smallest, being the most expensive to run. Usually I add *Cypress* tests and like *Artillery.js* for performance tests +- Elaborating on what *Kent* stated as his principles of good design, and valuing my solution with each design rule, I added tests to almost every part of the system. Most of the tests utilised the in-memory database so mimicked an integration test more than a unit test. Usually I mock all this using Jest Mock frameworks, but the actual in-memory database provider really made it easy for me to generate a lot without needing to mock anything. The advantage is I could develop database stuff quickly using a the "real" database and control the state of the database at all times. The disadvantage is it is probably slower than mocking and can have an impact on time taken with a big database. The honest truth is for 29 tests they were all majorly under a second so on a slow system it took 15 seconds on average to run all the tests, which I can live with as my dev machine is not the fastest. However production wise it makes more sense to adhere to a strict test pyramid, unit tests the biggest, integration second and e2e the smallest, being the most expensive to run. Usually I add *Cypress* tests and like *Artillery.js* for performance tests ![code-coverage-sample](./readme-images/code-coverage-sample.png) From 53ad00e95353d5390a265745ea7e355bd7df483b Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Mon, 30 Nov 2020 11:51:08 +0000 Subject: [PATCH 38/60] Last coverage note --- README.md | 8 ++++++++ readme-images/lcov-report-details.sample.png | Bin 0 -> 58116 bytes 2 files changed, 8 insertions(+) create mode 100644 readme-images/lcov-report-details.sample.png diff --git a/README.md b/README.md index 54e3120..8022cd3 100644 --- a/README.md +++ b/README.md @@ -215,6 +215,14 @@ serverless offline will work like the deploy except locally ![code-coverage-sample](./readme-images/code-coverage-sample.png) +- **Code coverage** details can be viewed through generated HTML files making it easier to understand what has been tested and what is outstanding + + ![lcov-report-sample](F:\Dev\Git\NodeCodingExercise\readme-images\lcov-report-sample.png) + + You can select the links and drill into what has been tested and how many time this has been covered - summarising information at the top. Navigate to the coverage folder to play with the code yourself. + + ![lcov-report-details.sample](./readme-images/lcov-report-details.sample.png) + - The code structure is simple, the business domain exposes function that reflect services by the domain. The *course* is the domain term used in the original requirement. The infrastructure layer is named database and is implemented within the domain layer as an internal object, so this could be replaced with another infrastructure as the web API calls the courses service without understanding the internals of the infrastructure. Everything within src is **transpiled** to a *dist-server* folder where this is run locally using Node. Everything outside of *src* is more to do with configuration and tests. So using DDD and Hexagonal Architecture helps with layering various bits, which is simplified within a Node structure - I added my .env file to source just for simplicity but usually the target builds should stich this by environment variables and builds diff --git a/readme-images/lcov-report-details.sample.png b/readme-images/lcov-report-details.sample.png new file mode 100644 index 0000000000000000000000000000000000000000..bca1bb130556fd283733f437448d7a71a838a16c GIT binary patch literal 58116 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 Date: Mon, 30 Nov 2020 11:54:40 +0000 Subject: [PATCH 39/60] Fixed image path issue --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8022cd3..d33a721 100644 --- a/README.md +++ b/README.md @@ -217,12 +217,14 @@ serverless offline will work like the deploy except locally - **Code coverage** details can be viewed through generated HTML files making it easier to understand what has been tested and what is outstanding - ![lcov-report-sample](F:\Dev\Git\NodeCodingExercise\readme-images\lcov-report-sample.png) + ![lcov-report-sample](./readme-images/lcov-report-sample.png) You can select the links and drill into what has been tested and how many time this has been covered - summarising information at the top. Navigate to the coverage folder to play with the code yourself. ![lcov-report-details.sample](./readme-images/lcov-report-details.sample.png) + + - The code structure is simple, the business domain exposes function that reflect services by the domain. The *course* is the domain term used in the original requirement. The infrastructure layer is named database and is implemented within the domain layer as an internal object, so this could be replaced with another infrastructure as the web API calls the courses service without understanding the internals of the infrastructure. Everything within src is **transpiled** to a *dist-server* folder where this is run locally using Node. Everything outside of *src* is more to do with configuration and tests. So using DDD and Hexagonal Architecture helps with layering various bits, which is simplified within a Node structure - I added my .env file to source just for simplicity but usually the target builds should stich this by environment variables and builds From a6ff1e16bb91831c838e152e1822b49bfe974342 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 3 Dec 2020 15:40:22 +0000 Subject: [PATCH 40/60] Refactored bad name from code review --- TODO | 3 +- .../__snapshots__/createOrUpdate.test.js.snap | 19 ----------- .../createOrUpdateCourse.test.js.snap | 19 +++++++++++ ...e.test.js => createOrUpdateCourse.test.js} | 32 +++++++++---------- src/courses/getCourse.test.js | 4 +-- src/courses/getSession.test.js | 4 +-- src/courses/index.js | 2 +- src/routes/courses.js | 4 +-- 8 files changed, 44 insertions(+), 43 deletions(-) delete mode 100644 src/courses/__snapshots__/createOrUpdate.test.js.snap create mode 100644 src/courses/__snapshots__/createOrUpdateCourse.test.js.snap rename src/courses/{createOrUpdate.test.js => createOrUpdateCourse.test.js} (86%) diff --git a/TODO b/TODO index 9cc8d7d..13e9f61 100644 --- a/TODO +++ b/TODO @@ -11,4 +11,5 @@ ✔ Add database onto all the exported functions @low @done(20-11-29 19:46) ✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) ✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) -✔ Refactor code to be cleaner - Clean engineering practises @done(20-11-30 08:41) \ No newline at end of file +✔ Refactor code to be cleaner - Clean engineering practises @done(20-11-30 08:41) +✔ Refactor bad name createOrUpdate to createOrUpdateCourse @high @done(20-12-03 15:39) \ No newline at end of file diff --git a/src/courses/__snapshots__/createOrUpdate.test.js.snap b/src/courses/__snapshots__/createOrUpdate.test.js.snap deleted file mode 100644 index cc89732..0000000 --- a/src/courses/__snapshots__/createOrUpdate.test.js.snap +++ /dev/null @@ -1,19 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`createOrUpdate a course should throw an error when an invalid courseId is added 1`] = `"course validation failed: courseId: Validator failed for path \`courseId\` with value \`NotValid\`"`; - -exports[`createOrUpdate a course should throw an error when an invalid sessionId is added 1`] = `"session validation failed: sessionId: Validator failed for path \`sessionId\` with value \`NotUUID\`"`; - -exports[`createOrUpdate a course should throw an error when an undefined averageScore is added 1`] = `"course validation failed: stats.averageScore: Path \`stats.averageScore\` is required."`; - -exports[`createOrUpdate a course should throw an error when an undefined sessionId is added 1`] = `"session validation failed: sessionId: Path \`sessionId\` is required."`; - -exports[`createOrUpdate a course should throw an error when an undefined timeStudied is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required."`; - -exports[`createOrUpdate a course should throw an error when an undefined totalModulesStudied is added 1`] = `"course validation failed: stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required."`; - -exports[`createOrUpdate a course should throw an error when an undefined userId is added 1`] = `"course validation failed: userId: Path \`userId\` is required."`; - -exports[`createOrUpdate a course should throw an error when and empty course is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required., stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.sessionCount: Path \`stats.sessionCount\` is required., userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; - -exports[`createOrUpdate a course should throw an error when no course is added 1`] = `"Course is required"`; diff --git a/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap b/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap new file mode 100644 index 0000000..4981435 --- /dev/null +++ b/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap @@ -0,0 +1,19 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`createOrUpdateCourse a course should throw an error when an invalid courseId is added 1`] = `"course validation failed: courseId: Validator failed for path \`courseId\` with value \`NotValid\`"`; + +exports[`createOrUpdateCourse a course should throw an error when an invalid sessionId is added 1`] = `"session validation failed: sessionId: Validator failed for path \`sessionId\` with value \`NotUUID\`"`; + +exports[`createOrUpdateCourse a course should throw an error when an undefined averageScore is added 1`] = `"course validation failed: stats.averageScore: Path \`stats.averageScore\` is required."`; + +exports[`createOrUpdateCourse a course should throw an error when an undefined sessionId is added 1`] = `"session validation failed: sessionId: Path \`sessionId\` is required."`; + +exports[`createOrUpdateCourse a course should throw an error when an undefined timeStudied is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required."`; + +exports[`createOrUpdateCourse a course should throw an error when an undefined totalModulesStudied is added 1`] = `"course validation failed: stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required."`; + +exports[`createOrUpdateCourse a course should throw an error when an undefined userId is added 1`] = `"course validation failed: userId: Path \`userId\` is required."`; + +exports[`createOrUpdateCourse a course should throw an error when and empty course is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required., stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.sessionCount: Path \`stats.sessionCount\` is required., userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; + +exports[`createOrUpdateCourse a course should throw an error when no course is added 1`] = `"Course is required"`; diff --git a/src/courses/createOrUpdate.test.js b/src/courses/createOrUpdateCourse.test.js similarity index 86% rename from src/courses/createOrUpdate.test.js rename to src/courses/createOrUpdateCourse.test.js index afc3d27..9fe6d1b 100644 --- a/src/courses/createOrUpdate.test.js +++ b/src/courses/createOrUpdateCourse.test.js @@ -3,11 +3,11 @@ import { disconnectAndDropDatabase, clearDatabase, } from "../database"; -import { createOrUpdate } from "./index"; +import { createOrUpdateCourse } from "./index"; import courseModel from "../models/course"; import { cloneCourse } from "../../test-utilities"; -describe("createOrUpdate a course", () => { +describe("createOrUpdateCourse a course", () => { const validCourse = { courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", @@ -46,13 +46,13 @@ describe("createOrUpdate a course", () => { }); test("should throw an error when no course is added", async (done) => { - await expect(() => createOrUpdate()).rejects.toThrowErrorMatchingSnapshot(); + await expect(() => createOrUpdateCourse()).rejects.toThrowErrorMatchingSnapshot(); done(); }); test("should throw an error when and empty course is added", async (done) => { await expect(() => - createOrUpdate({}) + createOrUpdateCourse({}) ).rejects.toThrowErrorMatchingSnapshot(); done(); }); @@ -61,7 +61,7 @@ describe("createOrUpdate a course", () => { const invalidCourse = cloneCourse(validCourse); (invalidCourse.courseId = "NotValid"), await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); }); @@ -71,7 +71,7 @@ describe("createOrUpdate a course", () => { invalidCourse.sessionId = undefined; await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); @@ -82,7 +82,7 @@ describe("createOrUpdate a course", () => { invalidCourse.sessionId = "NotUUID"; await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); @@ -93,7 +93,7 @@ describe("createOrUpdate a course", () => { invalidCourse.userId = undefined; await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); }); @@ -104,7 +104,7 @@ describe("createOrUpdate a course", () => { invalidCourse.stats.totalModulesStudied = undefined; await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); @@ -115,7 +115,7 @@ describe("createOrUpdate a course", () => { invalidCourse.stats.averageScore = undefined; await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); @@ -126,7 +126,7 @@ describe("createOrUpdate a course", () => { invalidCourse.stats.timeStudied = undefined; await expect(() => - createOrUpdate(invalidCourse) + createOrUpdateCourse(invalidCourse) ).rejects.toThrowErrorMatchingSnapshot(); done(); }); @@ -135,15 +135,15 @@ describe("createOrUpdate a course", () => { const course = cloneCourse(validCourse); console.debug(course); - const actual = await createOrUpdate(course); + const actual = await createOrUpdateCourse(course); expect(actual).toBeDefined(); }); test("should be idempotent when postring the same course twice and should reflect it already exists", async (done) => { const course = cloneCourse(validCourse); - const actual = await createOrUpdate(course); - const actualAgain = await createOrUpdate(course); + const actual = await createOrUpdateCourse(course); + const actualAgain = await createOrUpdateCourse(course); expect(actual.courseResponse).toBeDefined(); expect(actual.sessionResponse).toBeDefined(); @@ -159,9 +159,9 @@ describe("createOrUpdate a course", () => { test("should create one course with correct aggregate stats and two sessions", async (done) => { const course = cloneCourse(validCourse); - await createOrUpdate(course); + await createOrUpdateCourse(course); const courseOther = cloneCourse(validCourseWithNewSession); - await createOrUpdate(courseOther); + await createOrUpdateCourse(courseOther); const { courseId, userId } = course; diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index 9ec886f..77bc3fe 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -1,5 +1,5 @@ import { cloneCourse } from "../../test-utilities"; -import { createOrUpdate, getCourse } from "./index"; +import { createOrUpdateCourse, getCourse } from "./index"; import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getCourse", () => { @@ -19,7 +19,7 @@ describe("getCourse", () => { const isInMemory = true; await connectDatabase(isInMemory); const course = cloneCourse(validCourse); - await createOrUpdate(course); + await createOrUpdateCourse(course); }); afterAll(async () => { diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index 37b90cb..6013344 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -1,5 +1,5 @@ import { cloneCourse } from "../../test-utilities"; -import { createOrUpdate, getSession } from "./index"; +import { createOrUpdateCourse, getSession } from "./index"; import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getSession", () => { @@ -19,7 +19,7 @@ describe("getSession", () => { const isInMemory = true; await connectDatabase(isInMemory); const course = cloneCourse(validCourse); - await createOrUpdate(course); + await createOrUpdateCourse(course); }); afterAll(async () => { diff --git a/src/courses/index.js b/src/courses/index.js index 8d81e85..fe6e893 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -4,7 +4,7 @@ import courseModel from "../models/course"; import sessionModel from "../models/session"; import { removeDatabaseProps } from "../database"; -export const createOrUpdate = (course) => { +export const createOrUpdateCourse = (course) => { return new Promise(async (resolve, reject) => { if (!course) reject(new Error("Course is required")); diff --git a/src/routes/courses.js b/src/routes/courses.js index 191245b..0d9ee6f 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -1,5 +1,5 @@ import { Router } from "express"; -import { createOrUpdate, getCourse, getSession } from "../courses"; +import { createOrUpdateCourse, getCourse, getSession } from "../courses"; const router = Router(); router.post("/:courseId", async (req, res, next) => { @@ -30,7 +30,7 @@ router.post("/:courseId", async (req, res, next) => { }; try { - const response = await createOrUpdate(course); + const response = await createOrUpdateCourse(course); const { courseResponse } = response; return res.status(courseResponse ? 201 : 200).send({ success: "true", From 8991bfa41fb004e274bf5edc09df42098074b256 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 3 Dec 2020 20:27:15 +0000 Subject: [PATCH 41/60] Removed promise from code review Learnt a very good lesson won't forget --- package-lock.json | 5 - package.json | 1 - .../createOrUpdateCourse.test.js.snap | 2 +- src/courses/index.js | 165 ++++++++---------- src/database/index.js | 61 +++---- src/database/removeDatabaseProps.test.js | 8 + src/routes/courses.js | 154 ++++++++-------- 7 files changed, 193 insertions(+), 203 deletions(-) diff --git a/package-lock.json b/package-lock.json index e0a59ed..791d635 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2858,11 +2858,6 @@ "safe-buffer": "^5.1.1" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", diff --git a/package.json b/package.json index 322caa0..09e80b7 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "test:watch": "jest --watch" }, "dependencies": { - "bluebird": "^3.7.2", "body-parser": "^1.19.0", "cookie-parser": "~1.4.4", "debug": "~2.6.9", diff --git a/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap b/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap index 4981435..63b0476 100644 --- a/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap +++ b/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap @@ -16,4 +16,4 @@ exports[`createOrUpdateCourse a course should throw an error when an undefined u exports[`createOrUpdateCourse a course should throw an error when and empty course is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required., stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.sessionCount: Path \`stats.sessionCount\` is required., userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; -exports[`createOrUpdateCourse a course should throw an error when no course is added 1`] = `"Course is required"`; +exports[`createOrUpdateCourse a course should throw an error when no course is added 1`] = `"Cannot read property 'courseId' of undefined"`; diff --git a/src/courses/index.js b/src/courses/index.js index fe6e893..97f4229 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -1,111 +1,98 @@ -import { Promise } from "bluebird"; - import courseModel from "../models/course"; import sessionModel from "../models/session"; import { removeDatabaseProps } from "../database"; -export const createOrUpdateCourse = (course) => { - return new Promise(async (resolve, reject) => { - if (!course) reject(new Error("Course is required")); +export const createOrUpdateCourse = async (course) => { + if (!course) { + new Error("Course is required"); + } - try { - const { courseId, sessionId, userId } = course; - let courseResponse; - let courseExists; - ({ courseExists, courseResponse } = await createCourse(courseId, userId, courseResponse, course)); + const { courseId, sessionId, userId } = course; + let courseResponse; + let courseExists; + ({ courseExists, courseResponse } = await createCourse( + courseId, + userId, + courseResponse, + course + )); - const sessionResponse = await createOrUpdateSession(userId, sessionId, course, courseId); + const sessionResponse = await createOrUpdateSession( + userId, + sessionId, + course, + courseId + ); - if (courseExists) { - await updateCourseAggregates(courseId, userId, sessionId); - } + if (courseExists) { + await updateCourseAggregates(courseId, userId, sessionId); + } - resolve({ courseResponse, sessionResponse }); - } catch (error) { - reject(error); - } - }); + return { courseResponse, sessionResponse }; }; -export const getCourse = (courseId, userId) => { - return new Promise(async (resolve, reject) => { - if (!courseId) reject(new Error("courseId is required")); - if (!userId) reject(new Error("userId is required")); - const response = await courseModel.findOne({ courseId, userId }); - if (response) { - const cleanedResponse = removeDatabaseProps(response._doc); - console.debug("Returning", cleanedResponse); - resolve(cleanedResponse); - } else { - resolve(null); - } - }); +export const getCourse = async (courseId, userId) => { + if (!courseId) new Error("courseId is required"); + if (!userId) new Error("userId is required"); + const response = await courseModel.findOne({ courseId, userId }); + return !response + ? null + : removeDatabaseProps(response._doc); }; -export const getSession = (courseId, sessionId, userId) => { - return new Promise(async (resolve, reject) => { - if (!courseId) reject(new Error("courseId is required")); - if (!sessionId) reject(new Error("sessionId is required")); - if (!userId) reject(new Error("userId is required")); - const response = await sessionModel.findOne({ - courseId, - sessionId, - userId, - }); - if (response) { - const cleanedResponse = removeDatabaseProps(response._doc); - resolve(cleanedResponse); - } else { - resolve(null); - } - }); +export const getSession = async (courseId, sessionId, userId) => { + if (!courseId) new Error("courseId is required"); + if (!sessionId) new Error("sessionId is required"); + if (!userId) new Error("userId is required"); + const response = await sessionModel.findOne({ + courseId, + sessionId, + userId, + }); + return !response ? null : removeDatabaseProps(response._doc); }; - async function updateCourseAggregates(courseId, userId, sessionId) { - const aggregateQuery = [ - { $match: { courseId, userId } }, - { - $group: { - _id: "$courseId", - sessionCount: { $sum: 1 }, - totalModulesStudied: { $sum: "$stats.totalModulesStudied" }, - timeStudied: { $sum: "$stats.timeStudied" }, - averageScore: { $avg: "$stats.averageScore" }, - }, - }, - ]; - const aggregateResponse = await sessionModel.aggregate(aggregateQuery); - const cleanedAggregateResponse = removeDatabaseProps( - aggregateResponse[0] - ); - console.debug("AGGREGATE Result", cleanedAggregateResponse); - await courseModel.updateOne( - { courseId, userId }, - { courseId, sessionId, userId, stats: cleanedAggregateResponse } - ); + const aggregateQuery = [ + { $match: { courseId, userId } }, + { + $group: { + _id: "$courseId", + sessionCount: { $sum: 1 }, + totalModulesStudied: { $sum: "$stats.totalModulesStudied" }, + timeStudied: { $sum: "$stats.timeStudied" }, + averageScore: { $avg: "$stats.averageScore" }, + }, + }, + ]; + const aggregateResponse = await sessionModel.aggregate(aggregateQuery); + const cleanedAggregateResponse = removeDatabaseProps(aggregateResponse[0]); + console.debug("AGGREGATE Result", cleanedAggregateResponse); + await courseModel.updateOne( + { courseId, userId }, + { courseId, sessionId, userId, stats: cleanedAggregateResponse } + ); } async function createOrUpdateSession(userId, sessionId, course, courseId) { - const sessionExists = await sessionModel.exists({ - userId, - sessionId, - userId, - }); - // NOTE: upsert not used here because validation does not work with findOneAndUpdate - const sessionResponse = !sessionExists - ? await sessionModel.create(course) - : await sessionModel.updateOne({ courseId, sessionId, userId }, course); - console.debug(sessionResponse); - return sessionResponse; + const sessionExists = await sessionModel.exists({ + userId, + sessionId, + userId, + }); + // NOTE: upsert not used here because validation does not work with findOneAndUpdate + const sessionResponse = !sessionExists + ? await sessionModel.create(course) + : await sessionModel.updateOne({ courseId, sessionId, userId }, course); + console.debug(sessionResponse); + return sessionResponse; } async function createCourse(courseId, userId, courseResponse, course) { - const courseExists = await courseModel.exists({ courseId, userId }); - if (!courseExists) { - courseResponse = await courseModel.create(course); - console.debug(courseResponse); - } - return { courseExists, courseResponse }; + const courseExists = await courseModel.exists({ courseId, userId }); + if (!courseExists) { + courseResponse = await courseModel.create(course); + console.debug(courseResponse); + } + return { courseExists, courseResponse }; } - diff --git a/src/database/index.js b/src/database/index.js index aab83cd..5a3c612 100644 --- a/src/database/index.js +++ b/src/database/index.js @@ -6,47 +6,48 @@ const { defaultMongoUri } = config; const mongod = new MongoMemoryServer(); export const connectDatabase = async (isMemoryServer = true) => { - const uri = isMemoryServer ? await mongod.getUri() : defaultMongoUri; - console.debug(`Connecting to MongoDB URI '${uri}'`); - - const connectionOptions = { - useNewUrlParser: true, - autoReconnect: true, - reconnectTries: Number.MAX_VALUE, - reconnectInterval: 1000, - }; - - const result = await mongoose.connect(uri, connectionOptions); - return result; + const uri = isMemoryServer ? await mongod.getUri() : defaultMongoUri; + console.debug(`Connecting to MongoDB URI '${uri}'`); + + const connectionOptions = { + useNewUrlParser: true, + autoReconnect: true, + reconnectTries: Number.MAX_VALUE, + reconnectInterval: 1000, + }; + + const result = await mongoose.connect(uri, connectionOptions); + return result; }; export const disconnectAndDropDatabase = async () => { - await mongoose.connection.dropDatabase(); - await disconnectDatabase(); + await mongoose.connection.dropDatabase(); + await disconnectDatabase(); }; export const disconnectDatabase = async () => { - await mongoose.connection.close(); - await mongod.stop(); + await mongoose.connection.close(); + await mongod.stop(); }; export const clearDatabase = async () => { - const collections = mongoose.connection.collections; + const collections = mongoose.connection.collections; - for (const key in collections) { - const collection = collections[key]; - await collection.deleteMany(); - } + for (const key in collections) { + const collection = collections[key]; + await collection.deleteMany(); + } }; export const removeDatabaseProps = (data) => { - const result = { - ...Object.keys(data).reduce((newProperty, key) => { - if (!key.startsWith("_")) { - return { ...newProperty, [key]: data[key] }; - } - return newProperty; - }, {}), - }; - return result; + if (!data) return data; + const result = { + ...Object.keys(data).reduce((newProperty, key) => { + if (!key.startsWith("_")) { + return { ...newProperty, [key]: data[key] }; + } + return newProperty; + }, {}), + }; + return result; }; diff --git a/src/database/removeDatabaseProps.test.js b/src/database/removeDatabaseProps.test.js index 89579bb..c6851cb 100644 --- a/src/database/removeDatabaseProps.test.js +++ b/src/database/removeDatabaseProps.test.js @@ -24,4 +24,12 @@ describe("removeDatabaseProps", () => { expect(cleanedObject.sessionId).toBeDefined(); expect(cleanedObject.intList).toBeDefined(); }); + + test('should be assigned a null or undefined object without changing the output', () => { + let actual = removeDatabaseProps(null); + expect(actual).toBe(null); + + actual = removeDatabaseProps(undefined); + expect(actual).toBe(undefined); + }); }); diff --git a/src/routes/courses.js b/src/routes/courses.js index 0d9ee6f..0e41148 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -3,92 +3,92 @@ import { createOrUpdateCourse, getCourse, getSession } from "../courses"; const router = Router(); router.post("/:courseId", async (req, res, next) => { - const { body, params, headers } = req; - console.debug("headers, params, body", headers, params, body); - const { courseId } = params; - const { sessionId, totalModulesStudied, averageScore, timeStudied } = body; - const userId = headers["x-user-id"]; - console.debug( - "sessionId, totalModulesStudied, averageScore, timeStudied, userId", - sessionId, - totalModulesStudied, - averageScore, - timeStudied, - userId - ); + const { body, params, headers } = req; + console.debug("headers, params, body", headers, params, body); + const { courseId } = params; + const { sessionId, totalModulesStudied, averageScore, timeStudied } = body; + const userId = headers["x-user-id"]; + console.debug( + "sessionId, totalModulesStudied, averageScore, timeStudied, userId", + sessionId, + totalModulesStudied, + averageScore, + timeStudied, + userId + ); - const course = { - courseId, - sessionId, - userId, - stats: { - sessionCount: 1, - totalModulesStudied, - averageScore, - timeStudied, - } - }; + const course = { + courseId, + sessionId, + userId, + stats: { + sessionCount: 1, + totalModulesStudied, + averageScore, + timeStudied, + }, + }; - try { - const response = await createOrUpdateCourse(course); - const { courseResponse } = response; - return res.status(courseResponse ? 201 : 200).send({ - success: "true", - message: "Course created successfully", - course, - }); - } catch (error) { - return res.status(400).send({ - success: "false", - message: "Course creation failed", - error, - }); - } + try { + const response = await createOrUpdateCourse(course); + const { courseResponse } = response; + return res.status(courseResponse ? 201 : 200).send({ + success: "true", + message: "Course created successfully", + course, + }); + } catch (error) { + return res.status(400).send({ + success: "false", + message: "Course creation failed", + error, + }); + } }); router.get("/:courseId", async (req, res, next) => { - try { - const { params, headers } = req; - console.debug("headers, params", headers, params); - const { courseId } = params; - const userId = headers["x-user-id"]; - console.debug("userId", userId); - const courseResponse = await getCourse(courseId, userId); - return res.status(!courseResponse ? 404 : 200).send({ - success: "true", - message: "User Course retrieved successfully", - course: courseResponse, - }); - } catch (error) { - return res.status(400).send({ - success: "fail", - message: "Failed to get course", - error, - }); - } + try { + const { params, headers } = req; + console.debug("headers, params", headers, params); + const { courseId } = params; + const userId = headers["x-user-id"]; + console.debug("userId", userId); + const courseResponse = await getCourse(courseId, userId); + return res.status(!courseResponse ? 404 : 200).send({ + success: "true", + message: "User Course retrieved successfully", + course: courseResponse, + }); + } catch (error) { + return res.status(400).send({ + success: "fail", + message: "Failed to get course", + error, + }); + } }); router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { - const { params, headers } = req; - console.debug("headers, params", headers, params); - const { courseId, sessionId } = params; - const userId = headers["x-user-id"]; - console.debug("courseId, sessionId, userId", courseId, sessionId, userId); + const { params, headers } = req; + console.debug("headers, params", headers, params); + const { courseId, sessionId } = params; + const userId = headers["x-user-id"]; + console.debug("courseId, sessionId, userId", courseId, sessionId, userId); - try { - const session = await getSession(courseId, sessionId, userId ); - return res.status(!session?404:200).send({ - success: "true", - message: "Course and Session retrieved successfully", - session, - }); - } catch (error) { - return res.status(400).send({ - success: "false", - message: "Failed to retrieve Course and Session", - error, - }); - } + try { + const session = await getSession(courseId, sessionId, userId); + return res.status(!session ? 404 : 200).send({ + success: "true", + message: "Course and Session retrieved successfully", + session, + }); + } catch (error) { + return res.status(400).send({ + success: "false", + message: "Failed to retrieve Course and Session", + error, + }); + } }); export default router; From a5a7c5ed16df8e1681e0735a618997d5a645cd8c Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Thu, 3 Dec 2020 20:43:29 +0000 Subject: [PATCH 42/60] Styling issues resolved --- src/courses/createOrUpdateCourse.test.js | 357 ++++++++++++----------- src/courses/getCourse.test.js | 82 +++--- src/courses/getSession.test.js | 84 +++--- src/courses/index.js | 4 +- src/routes/courses.test.js | 218 +++++++------- 5 files changed, 374 insertions(+), 371 deletions(-) diff --git a/src/courses/createOrUpdateCourse.test.js b/src/courses/createOrUpdateCourse.test.js index 9fe6d1b..a6d47ec 100644 --- a/src/courses/createOrUpdateCourse.test.js +++ b/src/courses/createOrUpdateCourse.test.js @@ -1,184 +1,189 @@ import { - connectDatabase, - disconnectAndDropDatabase, - clearDatabase, + connectDatabase, + disconnectAndDropDatabase, + clearDatabase, } from "../database"; import { createOrUpdateCourse } from "./index"; import courseModel from "../models/course"; import { cloneCourse } from "../../test-utilities"; describe("createOrUpdateCourse a course", () => { - const validCourse = { - courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", - stats: { - sessionCount: 1, - totalModulesStudied: 10, - averageScore: 70, - timeStudied: 4, - }, - }; - - const validCourseWithNewSession = { - courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - sessionId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", - stats: { - sessionCount: 1, - totalModulesStudied: 5, - averageScore: 8, - timeStudied: 6, - }, - }; - - beforeAll(async () => { - const isInMemory = true; - await connectDatabase(isInMemory); - }); - - afterEach(async () => { - await clearDatabase(); - }); - - afterAll(async () => { - await disconnectAndDropDatabase(); - }); - - test("should throw an error when no course is added", async (done) => { - await expect(() => createOrUpdateCourse()).rejects.toThrowErrorMatchingSnapshot(); - done(); - }); - - test("should throw an error when and empty course is added", async (done) => { - await expect(() => - createOrUpdateCourse({}) - ).rejects.toThrowErrorMatchingSnapshot(); - done(); - }); - - test("should throw an error when an invalid courseId is added", async (done) => { - const invalidCourse = cloneCourse(validCourse); - (invalidCourse.courseId = "NotValid"), - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - done(); - }); - - test("should throw an error when an undefined sessionId is added", async (done) => { - const invalidCourse = cloneCourse(validCourse); - invalidCourse.sessionId = undefined; - - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - - done(); - }); - - test("should throw an error when an invalid sessionId is added", async (done) => { - const invalidCourse = cloneCourse(validCourse); - invalidCourse.sessionId = "NotUUID"; - - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - - done(); - }); - - test("should throw an error when an undefined userId is added", async (done) => { - const invalidCourse = cloneCourse(validCourse); - invalidCourse.userId = undefined; - - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - done(); - }); - - test("should throw an error when an undefined totalModulesStudied is added", async (done) => { - const stats = { ...validCourse.stats }; - const invalidCourse = { ...validCourse, stats }; - invalidCourse.stats.totalModulesStudied = undefined; - - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - - done(); - }); - - test("should throw an error when an undefined averageScore is added", async (done) => { - const invalidCourse = cloneCourse(validCourse); - invalidCourse.stats.averageScore = undefined; - - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - - done(); - }); - - test("should throw an error when an undefined timeStudied is added", async (done) => { - const invalidCourse = cloneCourse(validCourse); - invalidCourse.stats.timeStudied = undefined; - - await expect(() => - createOrUpdateCourse(invalidCourse) - ).rejects.toThrowErrorMatchingSnapshot(); - done(); - }); - - test("should create or update the course information", async () => { - const course = cloneCourse(validCourse); - console.debug(course); - - const actual = await createOrUpdateCourse(course); - - expect(actual).toBeDefined(); - }); - - test("should be idempotent when postring the same course twice and should reflect it already exists", async (done) => { - const course = cloneCourse(validCourse); - const actual = await createOrUpdateCourse(course); - const actualAgain = await createOrUpdateCourse(course); - - expect(actual.courseResponse).toBeDefined(); - expect(actual.sessionResponse).toBeDefined(); - - expect(actualAgain.courseResponse).toBeUndefined(); - expect(actualAgain.sessionResponse).toBeDefined(); - - const { courseId, userId } = course; - const courseCount = await courseModel.count({ courseId, userId }); - expect(courseCount).toBe(1); - done(); - }); - - test("should create one course with correct aggregate stats and two sessions", async (done) => { - const course = cloneCourse(validCourse); - await createOrUpdateCourse(course); - const courseOther = cloneCourse(validCourseWithNewSession); - await createOrUpdateCourse(courseOther); - - const { courseId, userId } = course; - - expect(courseId).toBe(courseOther.courseId); - expect(userId).toBe(courseOther.userId); - const existingCourseInDb = await courseModel.findOne({ courseId, userId }); - expect(existingCourseInDb).toBeDefined(); - const { - sessionCount, - totalModulesStudied, - timeStudied, - averageScore, - } = existingCourseInDb.stats; - expect(sessionCount).toBe(2); - expect(totalModulesStudied).toBe(10 + 5); - expect(timeStudied).toBe(4 + 6); - expect(averageScore).toBe((70 + 8) / 2); - done(); - }); + const validCourse = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", + stats: { + sessionCount: 1, + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + }, + }; + + const validCourseWithNewSession = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", + stats: { + sessionCount: 1, + totalModulesStudied: 5, + averageScore: 8, + timeStudied: 6, + }, + }; + + beforeAll(async () => { + const isInMemory = true; + await connectDatabase(isInMemory); + }); + + afterEach(async () => { + await clearDatabase(); + }); + + afterAll(async () => { + await disconnectAndDropDatabase(); + }); + + test("should throw an error when no course is added", async (done) => { + await expect(() => + createOrUpdateCourse() + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when and empty course is added", async (done) => { + await expect(() => + createOrUpdateCourse({}) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when an invalid courseId is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + (invalidCourse.courseId = "NotValid"), + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when an undefined sessionId is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + invalidCourse.sessionId = undefined; + + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an invalid sessionId is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + invalidCourse.sessionId = "NotUUID"; + + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an undefined userId is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + invalidCourse.userId = undefined; + + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should throw an error when an undefined totalModulesStudied is added", async (done) => { + const stats = { ...validCourse.stats }; + const invalidCourse = { ...validCourse, stats }; + invalidCourse.stats.totalModulesStudied = undefined; + + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an undefined averageScore is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + invalidCourse.stats.averageScore = undefined; + + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + + done(); + }); + + test("should throw an error when an undefined timeStudied is added", async (done) => { + const invalidCourse = cloneCourse(validCourse); + invalidCourse.stats.timeStudied = undefined; + + await expect(() => + createOrUpdateCourse(invalidCourse) + ).rejects.toThrowErrorMatchingSnapshot(); + done(); + }); + + test("should create or update the course information", async () => { + const course = cloneCourse(validCourse); + console.debug(course); + + const actual = await createOrUpdateCourse(course); + + expect(actual).toBeDefined(); + }); + + test("should be idempotent when postring the same course twice and should reflect it already exists", async (done) => { + const course = cloneCourse(validCourse); + const actual = await createOrUpdateCourse(course); + const actualAgain = await createOrUpdateCourse(course); + + expect(actual.courseResponse).toBeDefined(); + expect(actual.sessionResponse).toBeDefined(); + + expect(actualAgain.courseResponse).toBeUndefined(); + expect(actualAgain.sessionResponse).toBeDefined(); + + const { courseId, userId } = course; + const courseCount = await courseModel.count({ courseId, userId }); + expect(courseCount).toBe(1); + done(); + }); + + test("should create one course with correct aggregate stats and two sessions", async (done) => { + const course = cloneCourse(validCourse); + await createOrUpdateCourse(course); + const courseOther = cloneCourse(validCourseWithNewSession); + await createOrUpdateCourse(courseOther); + + const { courseId, userId } = course; + + expect(courseId).toBe(courseOther.courseId); + expect(userId).toBe(courseOther.userId); + const existingCourseInDb = await courseModel.findOne({ + courseId, + userId, + }); + expect(existingCourseInDb).toBeDefined(); + const { + sessionCount, + totalModulesStudied, + timeStudied, + averageScore, + } = existingCourseInDb.stats; + expect(sessionCount).toBe(2); + expect(totalModulesStudied).toBe(10 + 5); + expect(timeStudied).toBe(4 + 6); + expect(averageScore).toBe((70 + 8) / 2); + done(); + }); }); diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index 77bc3fe..2e760db 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -3,45 +3,45 @@ import { createOrUpdateCourse, getCourse } from "./index"; import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getCourse", () => { - const validCourse = { - courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", - stats: { - sessionCount: 1, - totalModulesStudied: 10, - averageScore: 70, - timeStudied: 4, - }, - }; - - beforeAll(async () => { - const isInMemory = true; - await connectDatabase(isInMemory); - const course = cloneCourse(validCourse); - await createOrUpdateCourse(course); - }); - - afterAll(async () => { - await disconnectAndDropDatabase(); - }); - - test("should get expected course from the database", async (done) => { - const { courseId, userId } = validCourse; - - const actual = await getCourse(courseId, userId); - - expect(actual).toMatchSnapshot(); - done(); - }); - - test("should get null when data does not exist", async (done) => { - const actual = await getCourse( - "non-existent-client-id", - "non-existent-userid" - ); - - expect(actual).toBeNull(); - done(); - }); + const validCourse = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", + stats: { + sessionCount: 1, + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + }, + }; + + beforeAll(async () => { + const isInMemory = true; + await connectDatabase(isInMemory); + const course = cloneCourse(validCourse); + await createOrUpdateCourse(course); + }); + + afterAll(async () => { + await disconnectAndDropDatabase(); + }); + + test("should get expected course from the database", async (done) => { + const { courseId, userId } = validCourse; + + const actual = await getCourse(courseId, userId); + + expect(actual).toMatchSnapshot(); + done(); + }); + + test("should get null when data does not exist", async (done) => { + const actual = await getCourse( + "non-existent-client-id", + "non-existent-userid" + ); + + expect(actual).toBeNull(); + done(); + }); }); diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index 6013344..d9b7e8a 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -3,46 +3,46 @@ import { createOrUpdateCourse, getSession } from "./index"; import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getSession", () => { - const validCourse = { - courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", - userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", - stats: { - sessionCount: 1, - totalModulesStudied: 10, - averageScore: 70, - timeStudied: 4, - }, - }; - - beforeAll(async () => { - const isInMemory = true; - await connectDatabase(isInMemory); - const course = cloneCourse(validCourse); - await createOrUpdateCourse(course); - }); - - afterAll(async () => { - await disconnectAndDropDatabase(); - }); - - test("should get expected session from the database", async (done) => { - const { courseId, userId, sessionId } = validCourse; - - const actual = await getSession(courseId, sessionId, userId); - - expect(actual).toMatchSnapshot(); - done(); - }); - - test("should get null when data does not exist", async (done) => { - const actual = await getSession( - "non-existent-client-id", - "non-existent-session-id", - "non-existent-userid" - ); - - expect(actual).toBeNull(); - done(); - }); + const validCourse = { + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6", + userId: "915a54b7-8220-4c2b-ac03-cc6edda055a5", + stats: { + sessionCount: 1, + totalModulesStudied: 10, + averageScore: 70, + timeStudied: 4, + }, + }; + + beforeAll(async () => { + const isInMemory = true; + await connectDatabase(isInMemory); + const course = cloneCourse(validCourse); + await createOrUpdateCourse(course); + }); + + afterAll(async () => { + await disconnectAndDropDatabase(); + }); + + test("should get expected session from the database", async (done) => { + const { courseId, userId, sessionId } = validCourse; + + const actual = await getSession(courseId, sessionId, userId); + + expect(actual).toMatchSnapshot(); + done(); + }); + + test("should get null when data does not exist", async (done) => { + const actual = await getSession( + "non-existent-client-id", + "non-existent-session-id", + "non-existent-userid" + ); + + expect(actual).toBeNull(); + done(); + }); }); diff --git a/src/courses/index.js b/src/courses/index.js index 97f4229..64a0cce 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -35,9 +35,7 @@ export const getCourse = async (courseId, userId) => { if (!courseId) new Error("courseId is required"); if (!userId) new Error("userId is required"); const response = await courseModel.findOne({ courseId, userId }); - return !response - ? null - : removeDatabaseProps(response._doc); + return !response ? null : removeDatabaseProps(response._doc); }; export const getSession = async (courseId, sessionId, userId) => { diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 8247d45..968ce7a 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -1,128 +1,128 @@ import { - postRequestTest, - getRequestTest, + postRequestTest, + getRequestTest, } from "../../test-utilities/test-route"; import { - connectDatabase, - disconnectAndDropDatabase, - clearDatabase, + connectDatabase, + disconnectAndDropDatabase, + clearDatabase, } from "../database"; describe("courses api", () => { - beforeAll(async () => { - const isInMemory = true; - await connectDatabase(isInMemory); - }); + beforeAll(async () => { + const isInMemory = true; + await connectDatabase(isInMemory); + }); - afterAll(async () => { - await disconnectAndDropDatabase(); - }); + afterAll(async () => { + await disconnectAndDropDatabase(); + }); - describe("post", () => { - afterEach(async () => { - await clearDatabase(); - }); + describe("post", () => { + afterEach(async () => { + await clearDatabase(); + }); - test("should post new courses when all data is valid", async (done) => { - const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; - const body = { - sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", - totalModulesStudied: 9, - averageScore: 70, - timeStudied: 123, - }; - const actualResponse = await postRequestTest( - `/courses/${courseId}`, - userId, - body - ); - expect(actualResponse.status).toBe(201); - expect(actualResponse.text).toMatchSnapshot(); - done(); - }); + test("should post new courses when all data is valid", async (done) => { + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; + const body = { + sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + const actualResponse = await postRequestTest( + `/courses/${courseId}`, + userId, + body + ); + expect(actualResponse.status).toBe(201); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); - test("should post http 400 when course id is invalid", async (done) => { - const courseId = undefined; - const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; - const actualResponse = await postRequestTest( - `/courses/${courseId}`, - userId, - undefined - ); - expect(actualResponse.status).toBe(400); - expect(actualResponse.text).toMatchSnapshot(); - done(); - }); - }); + test("should post http 400 when course id is invalid", async (done) => { + const courseId = undefined; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; + const actualResponse = await postRequestTest( + `/courses/${courseId}`, + userId, + undefined + ); + expect(actualResponse.status).toBe(400); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + }); - describe("get course", () => { - test("should get non-existent course with 404 notfound", async (done) => { - const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; - const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; - const nonExistentCourseResponse = await getRequestTest( - `/courses/${courseId}`, - userId - ); - expect(nonExistentCourseResponse.status).toBe(404); - done(); - }); + describe("get course", () => { + test("should get non-existent course with 404 notfound", async (done) => { + const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; + const nonExistentCourseResponse = await getRequestTest( + `/courses/${courseId}`, + userId + ); + expect(nonExistentCourseResponse.status).toBe(404); + done(); + }); - test("should get a posted record with 200 response", async (done) => { - const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; - const body = { - sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", - totalModulesStudied: 9, - averageScore: 70, - timeStudied: 123, - }; - await postRequestTest(`/courses/${courseId}`, userId, body); + test("should get a posted record with 200 response", async (done) => { + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; + const body = { + sessionId: "ff61a6fa-753e-42b3-8eef-076b5484fd70", + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + await postRequestTest(`/courses/${courseId}`, userId, body); - const actualResponse = await getRequestTest( - `/courses/${courseId}`, - userId - ); + const actualResponse = await getRequestTest( + `/courses/${courseId}`, + userId + ); - expect(actualResponse.status).toBe(200); - expect(actualResponse.text).toMatchSnapshot(); - done(); - }); - }); + expect(actualResponse.status).toBe(200); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + }); - describe("get course and session", () => { - test("should get non-existent course with 404 notfound", async (done) => { - const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; - const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; - const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; - const nonExistentCourseResponse = await getRequestTest( - `/courses/${courseId}/sessions/${sessionId}`, - userId - ); - expect(nonExistentCourseResponse.status).toBe(404); - done(); - }); + describe("get course and session", () => { + test("should get non-existent course with 404 notfound", async (done) => { + const courseId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; + const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; + const nonExistentCourseResponse = await getRequestTest( + `/courses/${courseId}/sessions/${sessionId}`, + userId + ); + expect(nonExistentCourseResponse.status).toBe(404); + done(); + }); - test("should get a posted record with 200 response", async (done) => { - const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; - const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; - const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; - const body = { - sessionId, - totalModulesStudied: 9, - averageScore: 70, - timeStudied: 123, - }; - await postRequestTest(`/courses/${courseId}`, userId, body); + test("should get a posted record with 200 response", async (done) => { + const courseId = "f4df274b-5fde-473c-a40d-7b5ffae9f8d4"; + const userId = "915a54b7-8220-4c2b-ac03-cc6edda055a5"; + const sessionId = "ff61a6fa-753e-42b3-8eef-076b5484fd70"; + const body = { + sessionId, + totalModulesStudied: 9, + averageScore: 70, + timeStudied: 123, + }; + await postRequestTest(`/courses/${courseId}`, userId, body); - const actualResponse = await getRequestTest( - `/courses/${courseId}/sessions/${sessionId}`, - userId - ); + const actualResponse = await getRequestTest( + `/courses/${courseId}/sessions/${sessionId}`, + userId + ); - expect(actualResponse.status).toBe(200); - expect(actualResponse.text).toMatchSnapshot(); - done(); - }); - }); + expect(actualResponse.status).toBe(200); + expect(actualResponse.text).toMatchSnapshot(); + done(); + }); + }); }); From 9ed05edb23ea62c4751e73e8d5490948f38c107d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 08:25:57 +0000 Subject: [PATCH 43/60] Cleaned course infrastructure and added a note to clean error handling --- TODO | 3 +- src/routes/courses.js | 82 ++++++++++++++++++++++++++++++++----------- 2 files changed, 64 insertions(+), 21 deletions(-) diff --git a/TODO b/TODO index 13e9f61..b6bad3c 100644 --- a/TODO +++ b/TODO @@ -12,4 +12,5 @@ ✔ Remove the `private database properties` exposing too much internal information @high @done(20-11-29 12:17) ✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) ✔ Refactor code to be cleaner - Clean engineering practises @done(20-11-30 08:41) -✔ Refactor bad name createOrUpdate to createOrUpdateCourse @high @done(20-12-03 15:39) \ No newline at end of file +✔ Refactor bad name createOrUpdate to createOrUpdateCourse @high @done(20-12-03 15:39) +☐ Error Handling very primitive - https://www.joyent.com/node-js/production/design/errors \ No newline at end of file diff --git a/src/routes/courses.js b/src/routes/courses.js index 0e41148..e706b02 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -3,19 +3,14 @@ import { createOrUpdateCourse, getCourse, getSession } from "../courses"; const router = Router(); router.post("/:courseId", async (req, res, next) => { - const { body, params, headers } = req; - console.debug("headers, params, body", headers, params, body); - const { courseId } = params; - const { sessionId, totalModulesStudied, averageScore, timeStudied } = body; - const userId = headers["x-user-id"]; - console.debug( - "sessionId, totalModulesStudied, averageScore, timeStudied, userId", + const { + courseId, sessionId, totalModulesStudied, averageScore, timeStudied, - userId - ); + userId, + } = extractCourseAndStatsDetails(req); const course = { courseId, @@ -38,6 +33,8 @@ router.post("/:courseId", async (req, res, next) => { course, }); } catch (error) { + console.error(error); + // TODO: Better Error Handling return res.status(400).send({ success: "false", message: "Course creation failed", @@ -48,11 +45,7 @@ router.post("/:courseId", async (req, res, next) => { router.get("/:courseId", async (req, res, next) => { try { - const { params, headers } = req; - console.debug("headers, params", headers, params); - const { courseId } = params; - const userId = headers["x-user-id"]; - console.debug("userId", userId); + const { courseId, userId } = extractCourseDetails(req); const courseResponse = await getCourse(courseId, userId); return res.status(!courseResponse ? 404 : 200).send({ success: "true", @@ -60,6 +53,8 @@ router.get("/:courseId", async (req, res, next) => { course: courseResponse, }); } catch (error) { + console.error(error); + // TODO: Better Error Handling return res.status(400).send({ success: "fail", message: "Failed to get course", @@ -69,13 +64,12 @@ router.get("/:courseId", async (req, res, next) => { }); router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { - const { params, headers } = req; - console.debug("headers, params", headers, params); - const { courseId, sessionId } = params; - const userId = headers["x-user-id"]; - console.debug("courseId, sessionId, userId", courseId, sessionId, userId); - try { + const { + courseId, + sessionId, + userId + } = extractCourseAndSessionDetails(req); const session = await getSession(courseId, sessionId, userId); return res.status(!session ? 404 : 200).send({ success: "true", @@ -83,6 +77,8 @@ router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { session, }); } catch (error) { + console.error(error); + // TODO: Better Error Handling return res.status(400).send({ success: "false", message: "Failed to retrieve Course and Session", @@ -91,4 +87,50 @@ router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { } }); +const extractCourseDetails = (request) => { + const { params, headers } = request; + console.debug("headers, params", headers, params); + const { courseId } = params; + const userId = headers["x-user-id"]; + console.debug("courseId, userId", courseId, userId); + return { courseId, userId }; +}; + +const extractCourseAndSessionDetails = (request) => { + const { courseId, userId } = extractCourseDetails(request); + const { sessionId } = extractSessionDetails(request); + return { courseId, sessionId, userId }; +}; + +const extractSessionDetails = (request) => { + console.debug("params", request.params); + const { sessionId } = request.params; + console.debug("sessionId", sessionId); + return { sessionId }; +}; + +const extractCourseAndStatsDetails = (request) => { + const { body, params, headers } = request; + console.debug("headers, params, body", headers, params, body); + const { courseId } = params; + const { sessionId, totalModulesStudied, averageScore, timeStudied } = body; + const userId = headers["x-user-id"]; + console.debug( + "sessionId, totalModulesStudied, averageScore, timeStudied, userId", + sessionId, + totalModulesStudied, + averageScore, + timeStudied, + userId + ); + return { + courseId, + sessionId, + totalModulesStudied, + averageScore, + timeStudied, + userId, + }; +}; + export default router; From 30500fe954b19f00f1c598c4948b3fe0ddcbb867 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 08:47:53 +0000 Subject: [PATCH 44/60] Created all response types needed --- src/responses/index.js | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/responses/index.js diff --git a/src/responses/index.js b/src/responses/index.js new file mode 100644 index 0000000..6303aa5 --- /dev/null +++ b/src/responses/index.js @@ -0,0 +1,47 @@ +export const success = (message) => ({ + status: 200, + name: "Success", + message: message || "Succeeded", +}); + +export const created = (message) => ({ + status: 200, + name: "Created", + message: message || "Created", +}); + +export const badRequest = (message) => ({ + status: 400, + name: "BadRequestError", + message: message || "Bad Request", +}); + +export const unauthorized = (message) => ({ + status: 401, + name: "UnauthorizedRequestError", + message: message || "Unauthorized", +}); + +export const notFound = (message) => ({ + status: 404, + name: "NotFoundError", + message: message || "Resource Not Found", +}); + +export const noContent = (message) => ({ + status: 204, + name: "NotContentError", + message: message || "No Data Imported", +}); + +export const unprocessable = (message) => ({ + status: 422, + name: "UnprocessableError", + message: message || "Unprocessable", +}); + +export const internalServerError = (message) => ({ + status: 500, + name: "InternalServerError", + message: message || "Internal Server Error", +}); From 05fd271b7b01c86e701252ad5368c75b8284aa45 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 08:49:37 +0000 Subject: [PATCH 45/60] Fixed 201 --- src/responses/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/responses/index.js b/src/responses/index.js index 6303aa5..898215f 100644 --- a/src/responses/index.js +++ b/src/responses/index.js @@ -5,7 +5,7 @@ export const success = (message) => ({ }); export const created = (message) => ({ - status: 200, + status: 201, name: "Created", message: message || "Created", }); From b019c02dafdb69157898b13075d686cc1877893c Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 17:15:55 +0000 Subject: [PATCH 46/60] Created structured http responses --- src/responses/index.js | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/src/responses/index.js b/src/responses/index.js index 898215f..74344c5 100644 --- a/src/responses/index.js +++ b/src/responses/index.js @@ -1,47 +1,35 @@ -export const success = (message) => ({ +export const success = (message, data) => ({ status: 200, name: "Success", message: message || "Succeeded", + data, }); -export const created = (message) => ({ +export const created = (message, data) => ({ status: 201, name: "Created", - message: message || "Created", + message: message || "Created", + data, }); -export const badRequest = (message) => ({ +export const badRequest = (message, errors) => ({ status: 400, name: "BadRequestError", message: message || "Bad Request", + errors, }); -export const unauthorized = (message) => ({ - status: 401, - name: "UnauthorizedRequestError", - message: message || "Unauthorized", -}); + export const notFound = (message) => ({ - status: 404, - name: "NotFoundError", + status: 404, + name: "NotFoundError", message: message || "Resource Not Found", }); -export const noContent = (message) => ({ - status: 204, - name: "NotContentError", - message: message || "No Data Imported", -}); - -export const unprocessable = (message) => ({ - status: 422, - name: "UnprocessableError", - message: message || "Unprocessable", -}); export const internalServerError = (message) => ({ - status: 500, - name: "InternalServerError", + status: 500, + name: "InternalServerError", message: message || "Internal Server Error", }); From 73e880df6347f92276ea8e9b3bd5804f11b633ae Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 17:17:26 +0000 Subject: [PATCH 47/60] Created application error types Error handling methods --- src/errors/errors.test.js | 50 +++++++++++++++++++++++++++++++ src/errors/index.js | 62 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 src/errors/errors.test.js create mode 100644 src/errors/index.js diff --git a/src/errors/errors.test.js b/src/errors/errors.test.js new file mode 100644 index 0000000..706e501 --- /dev/null +++ b/src/errors/errors.test.js @@ -0,0 +1,50 @@ +import course from "../models/course"; +import { + isInvalidArgumentError, + InvalidArgumentError, + hasValidatorErrors, + ValidationError, + isApplicationError, +} from "./index"; + +describe("errors", () => { + describe("InvalidArgumentError", () => { + test("should be true when using InvalidArgumentError", () => { + const error = new InvalidArgumentError("Field is not valid"); + const actual = isInvalidArgumentError(error); + expect(actual).toBeTruthy(); + }); + + test("should be false when using standard error", () => { + const error = new Error("Field is not valid"); + const actual = isInvalidArgumentError(error); + expect(actual).toBeFalsy(); + }); + }); + + describe("hasValidationError", () => { + test("should be true when there is a validation error", async (done) => { + try { + await course.create({}); + } catch (error) { + const actual = hasValidatorErrors(error); + console.debug("isValidationError", actual); + expect(actual).toBeTruthy(); + done(); + } + }); + + test("should be able to serialize error into ValidationError object", async (done) => { + try { + await course.create({}); + } catch (error) { + const actualError = new ValidationError("Test", error.errors); + console.debug("isValidationError", actualError); + expect(actualError).toBeTruthy(); + expect(actualError.errors).toBeTruthy(); + expect(isApplicationError(actualError)).toBeTruthy(); + done(); + } + }); + }); +}); diff --git a/src/errors/index.js b/src/errors/index.js new file mode 100644 index 0000000..3475d2b --- /dev/null +++ b/src/errors/index.js @@ -0,0 +1,62 @@ +import { notFound, internalServerError, badRequest } from "../responses"; + +class ApplicationError extends Error { + constructor(message) { + super(message); + this.name = this.constructor.name; + Error.captureStackTrace(this, this.constructor); + } +} + +export class InvalidArgumentError extends ApplicationError { + constructor(message) { + super(message); + } +} + +export class NotFoundError extends ApplicationError { + constructor(message) { + super(message); + } +} + +export class ValidationError extends ApplicationError { + constructor(message, errors) { + super(message); + this.errors = errors; + } +} + +export const isInvalidArgumentError = (error) => + error instanceof InvalidArgumentError; +export const isNotFoundError = (error) => error instanceof NotFoundError; +export const isApplicationError = (error) => error instanceof ApplicationError; +export const hasValidatorErrors = (error) => { + // TODO: Replace with a reducer as this will be more efficient + const regex = /"ValidatorError"/gms; + const errorString = JSON.stringify(error); + const result = error && error.errors && regex.test(errorString); + return result; +}; +export const getValidationErrors = (error) => error.errors; + +export const mapErrorToHttpResponse = (error, res) => { + const errorResponse = getErrorResponse(error); + return res.status(errorResponse.status).send(errorResponse); +}; +function getErrorResponse(error) { + if (isApplicationError(error)) { + if (isInvalidArgumentError) { + return badRequest(error.message); + } + + if (isNotFoundError(error)) { + return notFound(error.message); + } + + if (hasValidatorErrors(error)) { + return badRequest(error.message, error.errors); + } + } + return internalServerError(); +} From 73be1296b127cdfb175a2839be0770f613617f78 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 19:21:04 +0000 Subject: [PATCH 48/60] Added error handling --- .../createOrUpdateCourse.test.js.snap | 18 +-- .../__snapshots__/getCourse.test.js.snap | 2 + .../__snapshots__/getSession.test.js.snap | 2 + src/courses/getCourse.test.js | 10 +- src/courses/getSession.test.js | 13 +-- src/courses/index.js | 74 ++++++++++--- src/errors/errors.test.js | 21 ++-- src/errors/index.js | 18 ++- src/responses/index.js | 6 +- src/routes/__snapshots__/courses.test.js.snap | 8 +- src/routes/courses.js | 103 ++++++++---------- src/routes/courses.test.js | 2 +- 12 files changed, 155 insertions(+), 122 deletions(-) diff --git a/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap b/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap index 63b0476..ec145e5 100644 --- a/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap +++ b/src/courses/__snapshots__/createOrUpdateCourse.test.js.snap @@ -1,19 +1,19 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`createOrUpdateCourse a course should throw an error when an invalid courseId is added 1`] = `"course validation failed: courseId: Validator failed for path \`courseId\` with value \`NotValid\`"`; +exports[`createOrUpdateCourse a course should throw an error when an invalid courseId is added 1`] = `"Unable to create course details"`; -exports[`createOrUpdateCourse a course should throw an error when an invalid sessionId is added 1`] = `"session validation failed: sessionId: Validator failed for path \`sessionId\` with value \`NotUUID\`"`; +exports[`createOrUpdateCourse a course should throw an error when an invalid sessionId is added 1`] = `"Unable to create or update session details"`; -exports[`createOrUpdateCourse a course should throw an error when an undefined averageScore is added 1`] = `"course validation failed: stats.averageScore: Path \`stats.averageScore\` is required."`; +exports[`createOrUpdateCourse a course should throw an error when an undefined averageScore is added 1`] = `"Unable to create course details"`; -exports[`createOrUpdateCourse a course should throw an error when an undefined sessionId is added 1`] = `"session validation failed: sessionId: Path \`sessionId\` is required."`; +exports[`createOrUpdateCourse a course should throw an error when an undefined sessionId is added 1`] = `"Unable to create or update session details"`; -exports[`createOrUpdateCourse a course should throw an error when an undefined timeStudied is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required."`; +exports[`createOrUpdateCourse a course should throw an error when an undefined timeStudied is added 1`] = `"Unable to create course details"`; -exports[`createOrUpdateCourse a course should throw an error when an undefined totalModulesStudied is added 1`] = `"course validation failed: stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required."`; +exports[`createOrUpdateCourse a course should throw an error when an undefined totalModulesStudied is added 1`] = `"Unable to create course details"`; -exports[`createOrUpdateCourse a course should throw an error when an undefined userId is added 1`] = `"course validation failed: userId: Path \`userId\` is required."`; +exports[`createOrUpdateCourse a course should throw an error when an undefined userId is added 1`] = `"Unable to create course details"`; -exports[`createOrUpdateCourse a course should throw an error when and empty course is added 1`] = `"course validation failed: stats.timeStudied: Path \`stats.timeStudied\` is required., stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.sessionCount: Path \`stats.sessionCount\` is required., userId: Path \`userId\` is required., courseId: Path \`courseId\` is required."`; +exports[`createOrUpdateCourse a course should throw an error when and empty course is added 1`] = `"Unable to create course details"`; -exports[`createOrUpdateCourse a course should throw an error when no course is added 1`] = `"Cannot read property 'courseId' of undefined"`; +exports[`createOrUpdateCourse a course should throw an error when no course is added 1`] = `"Course is required"`; diff --git a/src/courses/__snapshots__/getCourse.test.js.snap b/src/courses/__snapshots__/getCourse.test.js.snap index 2fe8632..c437b93 100644 --- a/src/courses/__snapshots__/getCourse.test.js.snap +++ b/src/courses/__snapshots__/getCourse.test.js.snap @@ -1,5 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`getCourse should get NotFoundError when data does not exist 1`] = `[NotFoundError: User 'non-ex-userid' not found with 'non-ex-client-id']`; + exports[`getCourse should get expected course from the database 1`] = ` Object { "courseId": "04473bf9-6ec6-47e9-be92-77b2bba9b606", diff --git a/src/courses/__snapshots__/getSession.test.js.snap b/src/courses/__snapshots__/getSession.test.js.snap index edf4f79..c8417e4 100644 --- a/src/courses/__snapshots__/getSession.test.js.snap +++ b/src/courses/__snapshots__/getSession.test.js.snap @@ -1,5 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`getSession should get NotFoundError when data does not exist 1`] = `[NotFoundError: User 'non-ex-userid'not found with course 'non-ex-client-id or session 'non-ex-session-id']`; + exports[`getSession should get expected session from the database 1`] = ` Object { "courseId": "04473bf9-6ec6-47e9-be92-77b2bba9b606", diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index 2e760db..a59be68 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -35,13 +35,11 @@ describe("getCourse", () => { done(); }); - test("should get null when data does not exist", async (done) => { - const actual = await getCourse( - "non-existent-client-id", - "non-existent-userid" - ); + test("should get NotFoundError when data does not exist", async (done) => { + await expect( + () => getCourse("non-ex-client-id", "non-ex-userid") + ).rejects.toMatchSnapshot(); - expect(actual).toBeNull(); done(); }); }); diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index d9b7e8a..206a885 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -35,14 +35,11 @@ describe("getSession", () => { done(); }); - test("should get null when data does not exist", async (done) => { - const actual = await getSession( - "non-existent-client-id", - "non-existent-session-id", - "non-existent-userid" - ); - - expect(actual).toBeNull(); + test("should get NotFoundError when data does not exist", async (done) => { + await expect(() => + getSession("non-ex-client-id", "non-ex-session-id", "non-ex-userid") + ).rejects.toMatchSnapshot(); + done(); }); }); diff --git a/src/courses/index.js b/src/courses/index.js index 64a0cce..e1d2c15 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -1,11 +1,16 @@ import courseModel from "../models/course"; import sessionModel from "../models/session"; import { removeDatabaseProps } from "../database"; +import { + hasValidatorErrors, + InvalidArgumentError, + NotFoundError, + ValidationError, + getValidationErrors, +} from "../errors"; export const createOrUpdateCourse = async (course) => { - if (!course) { - new Error("Course is required"); - } + if (!course) throw new InvalidArgumentError("Course is required"); const { courseId, sessionId, userId } = course; let courseResponse; @@ -32,22 +37,36 @@ export const createOrUpdateCourse = async (course) => { }; export const getCourse = async (courseId, userId) => { - if (!courseId) new Error("courseId is required"); - if (!userId) new Error("userId is required"); + if (!courseId) throw new InvalidArgumentError("courseId is required"); + if (!userId) throw new InvalidArgumentError("result is required"); + const response = await courseModel.findOne({ courseId, userId }); - return !response ? null : removeDatabaseProps(response._doc); + if (!response) { + throw new NotFoundError( + `User '${userId}' not found with '${courseId}'` + ); + } + return removeDatabaseProps(response._doc); }; export const getSession = async (courseId, sessionId, userId) => { - if (!courseId) new Error("courseId is required"); - if (!sessionId) new Error("sessionId is required"); - if (!userId) new Error("userId is required"); + if (!courseId) throw new InvalidArgumentError("courseId is required"); + if (!sessionId) throw new InvalidArgumentError("sessionId is required"); + if (!userId) throw new InvalidArgumentError("userId is required"); + const response = await sessionModel.findOne({ courseId, sessionId, userId, }); - return !response ? null : removeDatabaseProps(response._doc); + + if (!response) { + throw new NotFoundError( + `User '${userId}'not found with course '${courseId} or session '${sessionId}'` + ); + } + + return removeDatabaseProps(response._doc); }; async function updateCourseAggregates(courseId, userId, sessionId) { @@ -78,19 +97,38 @@ async function createOrUpdateSession(userId, sessionId, course, courseId) { sessionId, userId, }); - // NOTE: upsert not used here because validation does not work with findOneAndUpdate - const sessionResponse = !sessionExists - ? await sessionModel.create(course) - : await sessionModel.updateOne({ courseId, sessionId, userId }, course); - console.debug(sessionResponse); - return sessionResponse; + try { + // NOTE: upsert not used here because validation does not work with findOneAndUpdate + const sessionResponse = !sessionExists + ? await sessionModel.create(course) + : await sessionModel.updateOne( + { courseId, sessionId, userId }, + course + ); + console.debug(sessionResponse); + return sessionResponse; + } catch (error) { + throwCustomError(error, "Unable to create or update session details"); + } } async function createCourse(courseId, userId, courseResponse, course) { const courseExists = await courseModel.exists({ courseId, userId }); if (!courseExists) { - courseResponse = await courseModel.create(course); - console.debug(courseResponse); + try { + courseResponse = await courseModel.create(course); + console.debug(courseResponse); + } catch (error) { + throwCustomError(error, "Unable to create course details"); + } } return { courseExists, courseResponse }; } + +function throwCustomError(error, errorMessage) { + if (hasValidatorErrors(error)) { + console.debug("Threw up a validation error"); + throw new ValidationError(errorMessage, getValidationErrors(error)); + } + throw error; +} diff --git a/src/errors/errors.test.js b/src/errors/errors.test.js index 706e501..1df8e8f 100644 --- a/src/errors/errors.test.js +++ b/src/errors/errors.test.js @@ -34,17 +34,24 @@ describe("errors", () => { } }); - test("should be able to serialize error into ValidationError object", async (done) => { + test("should create and serialize an application validation error as expected", async (done) => { try { await course.create({}); } catch (error) { - const actualError = new ValidationError("Test", error.errors); - console.debug("isValidationError", actualError); - expect(actualError).toBeTruthy(); - expect(actualError.errors).toBeTruthy(); - expect(isApplicationError(actualError)).toBeTruthy(); - done(); + const validationError = new ValidationError("Test", error.errors); + console.debug("isValidationError", validationError); + expect(validationError).toBeTruthy(); + expect(validationError.errors).toBeTruthy(); + expect(isApplicationError(validationError)).toBeTruthy(); + try { + throw validationError; + } catch (err) { + console.debug("serialized error", err); + expect(err.message).toBe("Test"); + expect(err.errors).toBe(error.errors) + } } + done(); }); }); }); diff --git a/src/errors/index.js b/src/errors/index.js index 3475d2b..e3aac35 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -31,6 +31,8 @@ export const isInvalidArgumentError = (error) => error instanceof InvalidArgumentError; export const isNotFoundError = (error) => error instanceof NotFoundError; export const isApplicationError = (error) => error instanceof ApplicationError; +export const isValidationError = (error) => error instanceof ValidationError; + export const hasValidatorErrors = (error) => { // TODO: Replace with a reducer as this will be more efficient const regex = /"ValidatorError"/gms; @@ -42,20 +44,24 @@ export const getValidationErrors = (error) => error.errors; export const mapErrorToHttpResponse = (error, res) => { const errorResponse = getErrorResponse(error); + console.debug("errorResponse => ", errorResponse); return res.status(errorResponse.status).send(errorResponse); }; + function getErrorResponse(error) { if (isApplicationError(error)) { - if (isInvalidArgumentError) { - return badRequest(error.message); - } - if (isNotFoundError(error)) { return notFound(error.message); } - if (hasValidatorErrors(error)) { - return badRequest(error.message, error.errors); + if (isValidationError(error)) { + const { message, errors } = error; + console.debug("For bad request", message, errors); + return badRequest(message, errors); + } + + if (isInvalidArgumentError) { + return badRequest(error.message); } } return internalServerError(); diff --git a/src/responses/index.js b/src/responses/index.js index 74344c5..e20d281 100644 --- a/src/responses/index.js +++ b/src/responses/index.js @@ -12,15 +12,13 @@ export const created = (message, data) => ({ data, }); -export const badRequest = (message, errors) => ({ +export const badRequest = (message, data) => ({ status: 400, name: "BadRequestError", message: message || "Bad Request", - errors, + data }); - - export const notFound = (message) => ({ status: 404, name: "NotFoundError", diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index 0410709..e23ea77 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -1,9 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`courses api get course and session should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course and Session retrieved successfully\\",\\"session\\":{\\"stats\\":{\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; +exports[`courses api get course and session should get a posted record with 200 response 1`] = `"{\\"status\\":200,\\"name\\":\\"Success\\",\\"message\\":\\"Course and Session retrieved successfully\\",\\"data\\":{\\"stats\\":{\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; -exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"User Course retrieved successfully\\",\\"course\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; +exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"status\\":200,\\"name\\":\\"Success\\",\\"message\\":\\"User Course retrieved successfully\\",\\"data\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; -exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"success\\":\\"false\\",\\"message\\":\\"Course creation failed\\",\\"error\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"stats.totalModulesStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"stats.averageScore\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"stats.timeStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"}},\\"_message\\":\\"course validation failed\\",\\"message\\":\\"course validation failed: courseId: Validator failed for path \`courseId\` with value \`undefined\`, stats.totalModulesStudied: Path \`stats.totalModulesStudied\` is required., stats.averageScore: Path \`stats.averageScore\` is required., stats.timeStudied: Path \`stats.timeStudied\` is required.\\"}}"`; +exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"status\\":400,\\"name\\":\\"BadRequestError\\",\\"message\\":\\"Unable to create course details\\"}"`; -exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"success\\":\\"true\\",\\"message\\":\\"Course created successfully\\",\\"course\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; +exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"status\\":201,\\"name\\":\\"Created\\",\\"message\\":\\"Course created successfully\\",\\"data\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; diff --git a/src/routes/courses.js b/src/routes/courses.js index e706b02..9ca538a 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -1,45 +1,42 @@ import { Router } from "express"; import { createOrUpdateCourse, getCourse, getSession } from "../courses"; +import { success, created } from "./../responses"; +import { mapErrorToHttpResponse } from "../errors"; + const router = Router(); router.post("/:courseId", async (req, res, next) => { - const { - courseId, - sessionId, - totalModulesStudied, - averageScore, - timeStudied, - userId, - } = extractCourseAndStatsDetails(req); - - const course = { - courseId, - sessionId, - userId, - stats: { - sessionCount: 1, + try { + const { + courseId, + sessionId, totalModulesStudied, averageScore, timeStudied, - }, - }; + userId, + } = extractCourseAndStatsDetails(req); + + const course = { + courseId, + sessionId, + userId, + stats: { + sessionCount: 1, + totalModulesStudied, + averageScore, + timeStudied, + }, + }; - try { const response = await createOrUpdateCourse(course); const { courseResponse } = response; - return res.status(courseResponse ? 201 : 200).send({ - success: "true", - message: "Course created successfully", - course, - }); + const successResponse = courseResponse + ? created("Course created successfully", course) + : success("Course updated successfully", course); + return res.status(successResponse.status).send(successResponse); } catch (error) { - console.error(error); - // TODO: Better Error Handling - return res.status(400).send({ - success: "false", - message: "Course creation failed", - error, - }); + // next(error); // TODO: Check as a middleware + mapErrorToHttpResponse(error, res); } }); @@ -47,43 +44,31 @@ router.get("/:courseId", async (req, res, next) => { try { const { courseId, userId } = extractCourseDetails(req); const courseResponse = await getCourse(courseId, userId); - return res.status(!courseResponse ? 404 : 200).send({ - success: "true", - message: "User Course retrieved successfully", - course: courseResponse, - }); + const successResponse = success( + "User Course retrieved successfully", + courseResponse + ); + return res.status(successResponse.status).send(successResponse); } catch (error) { - console.error(error); - // TODO: Better Error Handling - return res.status(400).send({ - success: "fail", - message: "Failed to get course", - error, - }); + // next(error); // TODO: Check as a middleware + mapErrorToHttpResponse(error, res); } }); router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { try { - const { - courseId, - sessionId, - userId - } = extractCourseAndSessionDetails(req); + const { courseId, sessionId, userId } = extractCourseAndSessionDetails( + req + ); const session = await getSession(courseId, sessionId, userId); - return res.status(!session ? 404 : 200).send({ - success: "true", - message: "Course and Session retrieved successfully", - session, - }); + const successResponse = success( + "Course and Session retrieved successfully", + session + ); + return res.status(successResponse.status).send(successResponse); } catch (error) { - console.error(error); - // TODO: Better Error Handling - return res.status(400).send({ - success: "false", - message: "Failed to retrieve Course and Session", - error, - }); + // next(error); + return mapErrorToHttpResponse(error, res); } }); diff --git a/src/routes/courses.test.js b/src/routes/courses.test.js index 968ce7a..ec0ec89 100644 --- a/src/routes/courses.test.js +++ b/src/routes/courses.test.js @@ -1,6 +1,6 @@ import { postRequestTest, - getRequestTest, + getRequestTest } from "../../test-utilities/test-route"; import { connectDatabase, From 08e2571ae632b72d74aaa703a5b24b8cd9d9eec4 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Fri, 4 Dec 2020 19:37:23 +0000 Subject: [PATCH 49/60] Fixed the bug --- src/errors/index.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/errors/index.js b/src/errors/index.js index e3aac35..ded90a2 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -53,16 +53,16 @@ function getErrorResponse(error) { if (isNotFoundError(error)) { return notFound(error.message); } + + if (isInvalidArgumentError(error)) { + return badRequest(error.message); + } if (isValidationError(error)) { const { message, errors } = error; console.debug("For bad request", message, errors); return badRequest(message, errors); } - - if (isInvalidArgumentError) { - return badRequest(error.message); - } } return internalServerError(); } From 79e4e4f952aacdf27deed37609bbc7372e62f7eb Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 14:08:25 +0000 Subject: [PATCH 50/60] Checkin passing tests --- package.json | 2 +- .../__snapshots__/getCourse.test.js.snap | 2 +- .../__snapshots__/getSession.test.js.snap | 2 +- src/courses/index.js | 1 - src/errors/errors.test.js | 18 +----- src/errors/index.js | 55 +++++-------------- src/responses/index.js | 1 - src/routes/__snapshots__/courses.test.js.snap | 2 +- 8 files changed, 19 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index 09e80b7..11e9faa 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "build": "npm-run-all clean transpile clean:buildtests clean:buildsnapshots", "start": "npm run prod", "start:dev": "npm run dev", - "server": "node ./dist-server/bin/server", + "server": "node --inspect ./dist-server/bin/server", "transpile": "babel ./src --out-dir dist-server --copy-files", "clean": "rimraf dist-server", "clean:buildtests": "rimraf dist-server/**/*.test.js", diff --git a/src/courses/__snapshots__/getCourse.test.js.snap b/src/courses/__snapshots__/getCourse.test.js.snap index c437b93..86abf12 100644 --- a/src/courses/__snapshots__/getCourse.test.js.snap +++ b/src/courses/__snapshots__/getCourse.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`getCourse should get NotFoundError when data does not exist 1`] = `[NotFoundError: User 'non-ex-userid' not found with 'non-ex-client-id']`; +exports[`getCourse should get NotFoundError when data does not exist 1`] = `[Error: User 'non-ex-userid' not found with 'non-ex-client-id']`; exports[`getCourse should get expected course from the database 1`] = ` Object { diff --git a/src/courses/__snapshots__/getSession.test.js.snap b/src/courses/__snapshots__/getSession.test.js.snap index c8417e4..1686c98 100644 --- a/src/courses/__snapshots__/getSession.test.js.snap +++ b/src/courses/__snapshots__/getSession.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`getSession should get NotFoundError when data does not exist 1`] = `[NotFoundError: User 'non-ex-userid'not found with course 'non-ex-client-id or session 'non-ex-session-id']`; +exports[`getSession should get NotFoundError when data does not exist 1`] = `[Error: User 'non-ex-userid'not found with course 'non-ex-client-id or session 'non-ex-session-id']`; exports[`getSession should get expected session from the database 1`] = ` Object { diff --git a/src/courses/index.js b/src/courses/index.js index e1d2c15..04eaf7a 100644 --- a/src/courses/index.js +++ b/src/courses/index.js @@ -127,7 +127,6 @@ async function createCourse(courseId, userId, courseResponse, course) { function throwCustomError(error, errorMessage) { if (hasValidatorErrors(error)) { - console.debug("Threw up a validation error"); throw new ValidationError(errorMessage, getValidationErrors(error)); } throw error; diff --git a/src/errors/errors.test.js b/src/errors/errors.test.js index 1df8e8f..b15fc00 100644 --- a/src/errors/errors.test.js +++ b/src/errors/errors.test.js @@ -3,25 +3,10 @@ import { isInvalidArgumentError, InvalidArgumentError, hasValidatorErrors, - ValidationError, - isApplicationError, + ValidationError } from "./index"; describe("errors", () => { - describe("InvalidArgumentError", () => { - test("should be true when using InvalidArgumentError", () => { - const error = new InvalidArgumentError("Field is not valid"); - const actual = isInvalidArgumentError(error); - expect(actual).toBeTruthy(); - }); - - test("should be false when using standard error", () => { - const error = new Error("Field is not valid"); - const actual = isInvalidArgumentError(error); - expect(actual).toBeFalsy(); - }); - }); - describe("hasValidationError", () => { test("should be true when there is a validation error", async (done) => { try { @@ -42,7 +27,6 @@ describe("errors", () => { console.debug("isValidationError", validationError); expect(validationError).toBeTruthy(); expect(validationError.errors).toBeTruthy(); - expect(isApplicationError(validationError)).toBeTruthy(); try { throw validationError; } catch (err) { diff --git a/src/errors/index.js b/src/errors/index.js index ded90a2..9e4c20a 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -1,38 +1,13 @@ import { notFound, internalServerError, badRequest } from "../responses"; - -class ApplicationError extends Error { - constructor(message) { - super(message); - this.name = this.constructor.name; - Error.captureStackTrace(this, this.constructor); - } -} - -export class InvalidArgumentError extends ApplicationError { - constructor(message) { - super(message); - } -} - -export class NotFoundError extends ApplicationError { - constructor(message) { - super(message); - } -} - -export class ValidationError extends ApplicationError { +export class InvalidArgumentError extends Error {} +export class NotFoundError extends Error {} +export class ValidationError extends Error { constructor(message, errors) { super(message); this.errors = errors; } } -export const isInvalidArgumentError = (error) => - error instanceof InvalidArgumentError; -export const isNotFoundError = (error) => error instanceof NotFoundError; -export const isApplicationError = (error) => error instanceof ApplicationError; -export const isValidationError = (error) => error instanceof ValidationError; - export const hasValidatorErrors = (error) => { // TODO: Replace with a reducer as this will be more efficient const regex = /"ValidatorError"/gms; @@ -49,20 +24,18 @@ export const mapErrorToHttpResponse = (error, res) => { }; function getErrorResponse(error) { - if (isApplicationError(error)) { - if (isNotFoundError(error)) { - return notFound(error.message); - } - - if (isInvalidArgumentError(error)) { - return badRequest(error.message); - } + if (error instanceof NotFoundError) { + return notFound(error.message); + } + + if (error instanceof InvalidArgumentError) { + return badRequest(error.message); + } - if (isValidationError(error)) { - const { message, errors } = error; - console.debug("For bad request", message, errors); - return badRequest(message, errors); - } + if (error instanceof ValidationError) { + const { message, errors } = error; + console.debug("For bad request", message, errors); + return badRequest(message, errors); } return internalServerError(); } diff --git a/src/responses/index.js b/src/responses/index.js index e20d281..8ff206d 100644 --- a/src/responses/index.js +++ b/src/responses/index.js @@ -25,7 +25,6 @@ export const notFound = (message) => ({ message: message || "Resource Not Found", }); - export const internalServerError = (message) => ({ status: 500, name: "InternalServerError", diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index e23ea77..8941333 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -4,6 +4,6 @@ exports[`courses api get course and session should get a posted record with 200 exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"status\\":200,\\"name\\":\\"Success\\",\\"message\\":\\"User Course retrieved successfully\\",\\"data\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; -exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"status\\":400,\\"name\\":\\"BadRequestError\\",\\"message\\":\\"Unable to create course details\\"}"`; +exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"status\\":400,\\"name\\":\\"BadRequestError\\",\\"message\\":\\"Unable to create course details\\",\\"data\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"stats.totalModulesStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"stats.averageScore\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"stats.timeStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"}}}"`; exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"status\\":201,\\"name\\":\\"Created\\",\\"message\\":\\"Course created successfully\\",\\"data\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; From a3c666a473823a56f09f20af48342a894d7bce07 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 14:56:25 +0000 Subject: [PATCH 51/60] Updated course domain layer --- TODO | 6 ++- .../__snapshots__/getCourse.test.js.snap | 2 +- .../{index.js => createOrUpdateCourse.js} | 44 +++---------------- src/courses/createOrUpdateCourse.test.js | 2 +- src/courses/getCourse.js | 16 +++++++ src/courses/getCourse.test.js | 7 +-- src/courses/getSession.js | 23 ++++++++++ src/courses/getSession.test.js | 3 +- src/errors/errors.test.js | 22 +++------- src/routes/__snapshots__/courses.test.js.snap | 2 +- src/routes/courses.js | 6 ++- 11 files changed, 69 insertions(+), 64 deletions(-) rename src/courses/{index.js => createOrUpdateCourse.js} (66%) create mode 100644 src/courses/getCourse.js create mode 100644 src/courses/getSession.js diff --git a/TODO b/TODO index b6bad3c..0cd32c8 100644 --- a/TODO +++ b/TODO @@ -13,4 +13,8 @@ ✔ Increase Jest Test times for some tests that potentially can run longer than 5 seconds @high @done(20-11-29 20:14) ✔ Refactor code to be cleaner - Clean engineering practises @done(20-11-30 08:41) ✔ Refactor bad name createOrUpdate to createOrUpdateCourse @high @done(20-12-03 15:39) -☐ Error Handling very primitive - https://www.joyent.com/node-js/production/design/errors \ No newline at end of file +✔ Error Handling very primitive - https://www.joyent.com/node-js/production/design/errors @critical @done(20-12-05 14:54) +☐ Refactor error handling to Middleware +☐ Refactor use of index.js making it hard to debug or find stuff @high + ✔ Refactor course domain @done(20-12-05 14:56) + ☐ Refactor anything that has code in the index.js \ No newline at end of file diff --git a/src/courses/__snapshots__/getCourse.test.js.snap b/src/courses/__snapshots__/getCourse.test.js.snap index 86abf12..96ca249 100644 --- a/src/courses/__snapshots__/getCourse.test.js.snap +++ b/src/courses/__snapshots__/getCourse.test.js.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`getCourse should get NotFoundError when data does not exist 1`] = `[Error: User 'non-ex-userid' not found with 'non-ex-client-id']`; +exports[`getCourse should get NotFoundError when data does not exist 1`] = `[Error: User 'non-ex-userid' not found with course 'non-ex-client-id']`; exports[`getCourse should get expected course from the database 1`] = ` Object { diff --git a/src/courses/index.js b/src/courses/createOrUpdateCourse.js similarity index 66% rename from src/courses/index.js rename to src/courses/createOrUpdateCourse.js index 04eaf7a..ef83cab 100644 --- a/src/courses/index.js +++ b/src/courses/createOrUpdateCourse.js @@ -4,7 +4,6 @@ import { removeDatabaseProps } from "../database"; import { hasValidatorErrors, InvalidArgumentError, - NotFoundError, ValidationError, getValidationErrors, } from "../errors"; @@ -36,39 +35,6 @@ export const createOrUpdateCourse = async (course) => { return { courseResponse, sessionResponse }; }; -export const getCourse = async (courseId, userId) => { - if (!courseId) throw new InvalidArgumentError("courseId is required"); - if (!userId) throw new InvalidArgumentError("result is required"); - - const response = await courseModel.findOne({ courseId, userId }); - if (!response) { - throw new NotFoundError( - `User '${userId}' not found with '${courseId}'` - ); - } - return removeDatabaseProps(response._doc); -}; - -export const getSession = async (courseId, sessionId, userId) => { - if (!courseId) throw new InvalidArgumentError("courseId is required"); - if (!sessionId) throw new InvalidArgumentError("sessionId is required"); - if (!userId) throw new InvalidArgumentError("userId is required"); - - const response = await sessionModel.findOne({ - courseId, - sessionId, - userId, - }); - - if (!response) { - throw new NotFoundError( - `User '${userId}'not found with course '${courseId} or session '${sessionId}'` - ); - } - - return removeDatabaseProps(response._doc); -}; - async function updateCourseAggregates(courseId, userId, sessionId) { const aggregateQuery = [ { $match: { courseId, userId } }, @@ -108,7 +74,7 @@ async function createOrUpdateSession(userId, sessionId, course, courseId) { console.debug(sessionResponse); return sessionResponse; } catch (error) { - throwCustomError(error, "Unable to create or update session details"); + generateValidationErrorOrThrow(error, "Unable to create or update session details"); } } @@ -119,15 +85,17 @@ async function createCourse(courseId, userId, courseResponse, course) { courseResponse = await courseModel.create(course); console.debug(courseResponse); } catch (error) { - throwCustomError(error, "Unable to create course details"); + generateValidationErrorOrThrow(error, "Unable to create course details"); } } return { courseExists, courseResponse }; } -function throwCustomError(error, errorMessage) { +function generateValidationErrorOrThrow(error, errorMessage) { if (hasValidatorErrors(error)) { - throw new ValidationError(errorMessage, getValidationErrors(error)); + throw new ValidationError(errorMessage, { + errors: getValidationErrors(error), + }); } throw error; } diff --git a/src/courses/createOrUpdateCourse.test.js b/src/courses/createOrUpdateCourse.test.js index a6d47ec..6709b18 100644 --- a/src/courses/createOrUpdateCourse.test.js +++ b/src/courses/createOrUpdateCourse.test.js @@ -3,7 +3,7 @@ import { disconnectAndDropDatabase, clearDatabase, } from "../database"; -import { createOrUpdateCourse } from "./index"; +import { createOrUpdateCourse } from "./createOrUpdateCourse"; import courseModel from "../models/course"; import { cloneCourse } from "../../test-utilities"; diff --git a/src/courses/getCourse.js b/src/courses/getCourse.js new file mode 100644 index 0000000..a0db58e --- /dev/null +++ b/src/courses/getCourse.js @@ -0,0 +1,16 @@ +import courseModel from "../models/course"; +import { removeDatabaseProps } from "../database"; +import { InvalidArgumentError, NotFoundError } from "../errors"; + +export const getCourse = async (courseId, userId) => { + if (!courseId) throw new InvalidArgumentError("courseId is required"); + if (!userId) throw new InvalidArgumentError("result is required"); + + const response = await courseModel.findOne({ courseId, userId }); + if (!response) { + throw new NotFoundError( + `User '${userId}' not found with course '${courseId}'` + ); + } + return removeDatabaseProps(response._doc); +}; diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index a59be68..4a843e0 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -1,5 +1,6 @@ import { cloneCourse } from "../../test-utilities"; -import { createOrUpdateCourse, getCourse } from "./index"; +import { getCourse } from "./getCourse"; +import { createOrUpdateCourse } from "./createOrUpdateCourse"; import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getCourse", () => { @@ -36,8 +37,8 @@ describe("getCourse", () => { }); test("should get NotFoundError when data does not exist", async (done) => { - await expect( - () => getCourse("non-ex-client-id", "non-ex-userid") + await expect(() => + getCourse("non-ex-client-id", "non-ex-userid") ).rejects.toMatchSnapshot(); done(); diff --git a/src/courses/getSession.js b/src/courses/getSession.js new file mode 100644 index 0000000..a441bd6 --- /dev/null +++ b/src/courses/getSession.js @@ -0,0 +1,23 @@ +import sessionModel from "../models/session"; +import { removeDatabaseProps } from "../database"; +import { InvalidArgumentError, NotFoundError } from "../errors"; + +export const getSession = async (courseId, sessionId, userId) => { + if (!courseId) throw new InvalidArgumentError("courseId is required"); + if (!sessionId) throw new InvalidArgumentError("sessionId is required"); + if (!userId) throw new InvalidArgumentError("userId is required"); + + const response = await sessionModel.findOne({ + courseId, + sessionId, + userId, + }); + + if (!response) { + throw new NotFoundError( + `User '${userId}'not found with course '${courseId} or session '${sessionId}'` + ); + } + + return removeDatabaseProps(response._doc); +}; diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index 206a885..cabc89e 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -1,5 +1,6 @@ import { cloneCourse } from "../../test-utilities"; -import { createOrUpdateCourse, getSession } from "./index"; +import { getSession } from "./getSession"; +import { createOrUpdateCourse } from "./createOrUpdateCourse"; import { connectDatabase, disconnectAndDropDatabase } from "../database"; describe("getSession", () => { diff --git a/src/errors/errors.test.js b/src/errors/errors.test.js index b15fc00..234be99 100644 --- a/src/errors/errors.test.js +++ b/src/errors/errors.test.js @@ -1,10 +1,5 @@ import course from "../models/course"; -import { - isInvalidArgumentError, - InvalidArgumentError, - hasValidatorErrors, - ValidationError -} from "./index"; +import { hasValidatorErrors, ValidationError } from "./index"; describe("errors", () => { describe("hasValidationError", () => { @@ -23,19 +18,14 @@ describe("errors", () => { try { await course.create({}); } catch (error) { - const validationError = new ValidationError("Test", error.errors); - console.debug("isValidationError", validationError); + const validationError = new ValidationError( + "Test", + error.errors + ); expect(validationError).toBeTruthy(); expect(validationError.errors).toBeTruthy(); - try { - throw validationError; - } catch (err) { - console.debug("serialized error", err); - expect(err.message).toBe("Test"); - expect(err.errors).toBe(error.errors) - } + done(); } - done(); }); }); }); diff --git a/src/routes/__snapshots__/courses.test.js.snap b/src/routes/__snapshots__/courses.test.js.snap index 8941333..0bbb0bb 100644 --- a/src/routes/__snapshots__/courses.test.js.snap +++ b/src/routes/__snapshots__/courses.test.js.snap @@ -4,6 +4,6 @@ exports[`courses api get course and session should get a posted record with 200 exports[`courses api get course should get a posted record with 200 response 1`] = `"{\\"status\\":200,\\"name\\":\\"Success\\",\\"message\\":\\"User Course retrieved successfully\\",\\"data\\":{\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123},\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\"}}"`; -exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"status\\":400,\\"name\\":\\"BadRequestError\\",\\"message\\":\\"Unable to create course details\\",\\"data\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"stats.totalModulesStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"stats.averageScore\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"stats.timeStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"}}}"`; +exports[`courses api post should post http 400 when course id is invalid 1`] = `"{\\"status\\":400,\\"name\\":\\"BadRequestError\\",\\"message\\":\\"Unable to create course details\\",\\"data\\":{\\"errors\\":{\\"courseId\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"properties\\":{\\"message\\":\\"Validator failed for path \`courseId\` with value \`undefined\`\\",\\"type\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"kind\\":\\"user defined\\",\\"path\\":\\"courseId\\",\\"value\\":\\"undefined\\"},\\"stats.totalModulesStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.totalModulesStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.totalModulesStudied\\"},\\"stats.averageScore\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.averageScore\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.averageScore\\"},\\"stats.timeStudied\\":{\\"name\\":\\"ValidatorError\\",\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"properties\\":{\\"message\\":\\"Path \`stats.timeStudied\` is required.\\",\\"type\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"},\\"kind\\":\\"required\\",\\"path\\":\\"stats.timeStudied\\"}}}}"`; exports[`courses api post should post new courses when all data is valid 1`] = `"{\\"status\\":201,\\"name\\":\\"Created\\",\\"message\\":\\"Course created successfully\\",\\"data\\":{\\"courseId\\":\\"f4df274b-5fde-473c-a40d-7b5ffae9f8d4\\",\\"sessionId\\":\\"ff61a6fa-753e-42b3-8eef-076b5484fd70\\",\\"userId\\":\\"915a54b7-8220-4c2b-ac03-cc6edda055a5\\",\\"stats\\":{\\"sessionCount\\":1,\\"totalModulesStudied\\":9,\\"averageScore\\":70,\\"timeStudied\\":123}}}"`; diff --git a/src/routes/courses.js b/src/routes/courses.js index 9ca538a..5fef18e 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -1,6 +1,8 @@ import { Router } from "express"; -import { createOrUpdateCourse, getCourse, getSession } from "../courses"; -import { success, created } from "./../responses"; +import { getCourse } from "../courses/getCourse"; +import { getSession } from "../courses/getSession"; +import { createOrUpdateCourse } from "../courses/createOrUpdateCourse"; +import { success, created } from "../responses"; import { mapErrorToHttpResponse } from "../errors"; const router = Router(); From a8023061970de385ada4cf769260f3a6d9345d9f Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 15:16:12 +0000 Subject: [PATCH 52/60] Refactor database --- src/database/database.test.js | 60 ++++++++++++++++++++++++ src/database/index.test.js | 22 --------- src/database/removeDatabaseProps.test.js | 35 -------------- 3 files changed, 60 insertions(+), 57 deletions(-) create mode 100644 src/database/database.test.js delete mode 100644 src/database/index.test.js delete mode 100644 src/database/removeDatabaseProps.test.js diff --git a/src/database/database.test.js b/src/database/database.test.js new file mode 100644 index 0000000..3f91298 --- /dev/null +++ b/src/database/database.test.js @@ -0,0 +1,60 @@ +import { + connectDatabase, + disconnectAndDropDatabase, + removeDatabaseProps, +} from "./index"; +import mongoose from "mongoose"; + +describe("mongo in-memory database", () => { + describe("connect and disconnect memory mongo db and drop database integration test", () => { + beforeAll(async () => { + const isInMemory = true; + await connectDatabase(isInMemory); + }); + + afterAll(async () => { + await disconnectAndDropDatabase(); + }); + + test("should have an active mongodb connection", (done) => { + const actualConnections = mongoose.connections; + expect(actualConnections).toBeDefined(); + expect(actualConnections.length).toBeGreaterThanOrEqual(1); + done(); + }); + }); + + describe("removeDatabaseProps", () => { + test("should remove private underscore values from an object without mutating data", () => { + const testObject = { + _id: "5fc2f9bf9a9bdb5c8468fc5f", + courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", + sessionId: 0, + stats: { + totalModulesStudied: 5, + averageScore: 70, + timeStudied: 20, + }, + intList: [1, 2, 3], + __v: 0, + }; + + const cleanedObject = removeDatabaseProps(testObject); + console.debug(cleanedObject); + expect(testObject).not.toEqual(cleanedObject); + expect(cleanedObject._id).toBeUndefined(); + expect(cleanedObject.__v).toBeUndefined(); + expect(cleanedObject.courseId).toBeDefined(); + expect(cleanedObject.sessionId).toBeDefined(); + expect(cleanedObject.intList).toBeDefined(); + }); + + test("should be assigned a null or undefined object without changing the output", () => { + let actual = removeDatabaseProps(null); + expect(actual).toBe(null); + + actual = removeDatabaseProps(undefined); + expect(actual).toBe(undefined); + }); + }); +}); diff --git a/src/database/index.test.js b/src/database/index.test.js deleted file mode 100644 index b02a785..0000000 --- a/src/database/index.test.js +++ /dev/null @@ -1,22 +0,0 @@ -import { connectDatabase, disconnectAndDropDatabase } from "./index"; -import mongoose from "mongoose"; - -describe("mongo in-memory database", () => { - describe("connect and disconnect memory mongo db and drop database integration test", () => { - beforeAll(async () => { - const isInMemory = true; - await connectDatabase(isInMemory); - }); - - afterAll(async () => { - await disconnectAndDropDatabase(); - }); - - test("should have an active mongodb connection", (done) => { - const actualConnections = mongoose.connections; - expect(actualConnections).toBeDefined(); - expect(actualConnections.length).toBeGreaterThanOrEqual(1); - done(); - }); - }); -}); diff --git a/src/database/removeDatabaseProps.test.js b/src/database/removeDatabaseProps.test.js deleted file mode 100644 index c6851cb..0000000 --- a/src/database/removeDatabaseProps.test.js +++ /dev/null @@ -1,35 +0,0 @@ -import { removeDatabaseProps } from "./index"; - -describe("removeDatabaseProps", () => { - test("should remove private underscore values from an object without mutating data", () => { - const testObject = { - _id: "5fc2f9bf9a9bdb5c8468fc5f", - courseId: "04473bf9-6ec6-47e9-be92-77b2bba9b606", - sessionId: 0, - stats: { - totalModulesStudied: 5, - averageScore: 70, - timeStudied: 20, - }, - intList:[1,2,3], - __v: 0, - }; - - const cleanedObject = removeDatabaseProps(testObject); - console.debug(cleanedObject); - expect(testObject).not.toEqual(cleanedObject); - expect(cleanedObject._id).toBeUndefined(); - expect(cleanedObject.__v).toBeUndefined(); - expect(cleanedObject.courseId).toBeDefined(); - expect(cleanedObject.sessionId).toBeDefined(); - expect(cleanedObject.intList).toBeDefined(); - }); - - test('should be assigned a null or undefined object without changing the output', () => { - let actual = removeDatabaseProps(null); - expect(actual).toBe(null); - - actual = removeDatabaseProps(undefined); - expect(actual).toBe(undefined); - }); -}); From fb35b29d336a2fb6f658ca728bffcaf7b952c46b Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 15:26:46 +0000 Subject: [PATCH 53/60] Refactored errors --- TODO | 3 ++- src/courses/createOrUpdateCourse.js | 9 ++++----- src/courses/getCourse.js | 3 ++- src/courses/getSession.js | 3 ++- src/errors/InvalidArgumentError.js | 1 + src/errors/NotFoundError.js | 1 + src/errors/ValidationError.js | 6 ++++++ src/errors/errors.test.js | 3 ++- src/errors/index.js | 13 ++++--------- 9 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 src/errors/InvalidArgumentError.js create mode 100644 src/errors/NotFoundError.js create mode 100644 src/errors/ValidationError.js diff --git a/TODO b/TODO index 0cd32c8..270a769 100644 --- a/TODO +++ b/TODO @@ -17,4 +17,5 @@ ☐ Refactor error handling to Middleware ☐ Refactor use of index.js making it hard to debug or find stuff @high ✔ Refactor course domain @done(20-12-05 14:56) - ☐ Refactor anything that has code in the index.js \ No newline at end of file + ✔ Refactor Database @done(20-12-05 15:19) + ✔ Refactor errors @done(20-12-05 15:20) \ No newline at end of file diff --git a/src/courses/createOrUpdateCourse.js b/src/courses/createOrUpdateCourse.js index ef83cab..eeaa1e2 100644 --- a/src/courses/createOrUpdateCourse.js +++ b/src/courses/createOrUpdateCourse.js @@ -2,11 +2,10 @@ import courseModel from "../models/course"; import sessionModel from "../models/session"; import { removeDatabaseProps } from "../database"; import { - hasValidatorErrors, - InvalidArgumentError, - ValidationError, - getValidationErrors, + hasValidatorErrors } from "../errors"; +import { ValidationError } from "../errors/ValidationError"; +import { InvalidArgumentError } from "../errors/InvalidArgumentError"; export const createOrUpdateCourse = async (course) => { if (!course) throw new InvalidArgumentError("Course is required"); @@ -94,7 +93,7 @@ async function createCourse(courseId, userId, courseResponse, course) { function generateValidationErrorOrThrow(error, errorMessage) { if (hasValidatorErrors(error)) { throw new ValidationError(errorMessage, { - errors: getValidationErrors(error), + errors: error.errors, }); } throw error; diff --git a/src/courses/getCourse.js b/src/courses/getCourse.js index a0db58e..c3f09bd 100644 --- a/src/courses/getCourse.js +++ b/src/courses/getCourse.js @@ -1,6 +1,7 @@ import courseModel from "../models/course"; import { removeDatabaseProps } from "../database"; -import { InvalidArgumentError, NotFoundError } from "../errors"; +import { NotFoundError } from "../errors/NotFoundError"; +import { InvalidArgumentError } from "../errors/InvalidArgumentError"; export const getCourse = async (courseId, userId) => { if (!courseId) throw new InvalidArgumentError("courseId is required"); diff --git a/src/courses/getSession.js b/src/courses/getSession.js index a441bd6..8296d5f 100644 --- a/src/courses/getSession.js +++ b/src/courses/getSession.js @@ -1,6 +1,7 @@ import sessionModel from "../models/session"; import { removeDatabaseProps } from "../database"; -import { InvalidArgumentError, NotFoundError } from "../errors"; +import { NotFoundError } from "../errors/NotFoundError"; +import { InvalidArgumentError } from "../errors/InvalidArgumentError"; export const getSession = async (courseId, sessionId, userId) => { if (!courseId) throw new InvalidArgumentError("courseId is required"); diff --git a/src/errors/InvalidArgumentError.js b/src/errors/InvalidArgumentError.js new file mode 100644 index 0000000..e0743c0 --- /dev/null +++ b/src/errors/InvalidArgumentError.js @@ -0,0 +1 @@ +export class InvalidArgumentError extends Error { } diff --git a/src/errors/NotFoundError.js b/src/errors/NotFoundError.js new file mode 100644 index 0000000..b62f885 --- /dev/null +++ b/src/errors/NotFoundError.js @@ -0,0 +1 @@ +export class NotFoundError extends Error { } diff --git a/src/errors/ValidationError.js b/src/errors/ValidationError.js new file mode 100644 index 0000000..7142282 --- /dev/null +++ b/src/errors/ValidationError.js @@ -0,0 +1,6 @@ +export class ValidationError extends Error { + constructor(message, errors) { + super(message); + this.errors = errors; + } +} diff --git a/src/errors/errors.test.js b/src/errors/errors.test.js index 234be99..3649172 100644 --- a/src/errors/errors.test.js +++ b/src/errors/errors.test.js @@ -1,5 +1,6 @@ import course from "../models/course"; -import { hasValidatorErrors, ValidationError } from "./index"; +import { hasValidatorErrors } from "./index"; +import { ValidationError } from "./ValidationError"; describe("errors", () => { describe("hasValidationError", () => { diff --git a/src/errors/index.js b/src/errors/index.js index 9e4c20a..d4922d8 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -1,12 +1,7 @@ import { notFound, internalServerError, badRequest } from "../responses"; -export class InvalidArgumentError extends Error {} -export class NotFoundError extends Error {} -export class ValidationError extends Error { - constructor(message, errors) { - super(message); - this.errors = errors; - } -} +import { InvalidArgumentError } from "./InvalidArgumentError"; +import { NotFoundError } from "./NotFoundError"; +import { ValidationError } from "./ValidationError"; export const hasValidatorErrors = (error) => { // TODO: Replace with a reducer as this will be more efficient @@ -15,7 +10,6 @@ export const hasValidatorErrors = (error) => { const result = error && error.errors && regex.test(errorString); return result; }; -export const getValidationErrors = (error) => error.errors; export const mapErrorToHttpResponse = (error, res) => { const errorResponse = getErrorResponse(error); @@ -37,5 +31,6 @@ function getErrorResponse(error) { console.debug("For bad request", message, errors); return badRequest(message, errors); } + return internalServerError(); } From b1608a01cf9088019e9dce730cc9b555b2ccfdaa Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 16:21:44 +0000 Subject: [PATCH 54/60] Used the most efficient way of gettign the values --- src/errors/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/errors/index.js b/src/errors/index.js index d4922d8..b98f595 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -4,7 +4,6 @@ import { NotFoundError } from "./NotFoundError"; import { ValidationError } from "./ValidationError"; export const hasValidatorErrors = (error) => { - // TODO: Replace with a reducer as this will be more efficient const regex = /"ValidatorError"/gms; const errorString = JSON.stringify(error); const result = error && error.errors && regex.test(errorString); @@ -31,6 +30,7 @@ function getErrorResponse(error) { console.debug("For bad request", message, errors); return badRequest(message, errors); } - + + console.error(error); return internalServerError(); } From c91376d65ffd47dacf837c039d1ac054a2e504a7 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 16:48:49 +0000 Subject: [PATCH 55/60] Refactored ,issing tests and error in output --- .../__snapshots__/getCourse.test.js.snap | 4 +++ .../__snapshots__/getSession.test.js.snap | 6 ++++ src/courses/getCourse.js | 2 +- src/courses/getCourse.test.js | 20 +++++++++++++ src/courses/getSession.test.js | 30 +++++++++++++++++++ src/errors/index.js | 8 ++--- 6 files changed, 65 insertions(+), 5 deletions(-) diff --git a/src/courses/__snapshots__/getCourse.test.js.snap b/src/courses/__snapshots__/getCourse.test.js.snap index 96ca249..7d6bd75 100644 --- a/src/courses/__snapshots__/getCourse.test.js.snap +++ b/src/courses/__snapshots__/getCourse.test.js.snap @@ -2,6 +2,8 @@ exports[`getCourse should get NotFoundError when data does not exist 1`] = `[Error: User 'non-ex-userid' not found with course 'non-ex-client-id']`; +exports[`getCourse should get course id validation error if course id is not assigned 1`] = `[Error: courseId is required]`; + exports[`getCourse should get expected course from the database 1`] = ` Object { "courseId": "04473bf9-6ec6-47e9-be92-77b2bba9b606", @@ -14,3 +16,5 @@ Object { "userId": "915a54b7-8220-4c2b-ac03-cc6edda055a5", } `; + +exports[`getCourse should get user validation error if userid is not assigned 1`] = `[Error: userId is required]`; diff --git a/src/courses/__snapshots__/getSession.test.js.snap b/src/courses/__snapshots__/getSession.test.js.snap index 1686c98..594a07b 100644 --- a/src/courses/__snapshots__/getSession.test.js.snap +++ b/src/courses/__snapshots__/getSession.test.js.snap @@ -2,6 +2,8 @@ exports[`getSession should get NotFoundError when data does not exist 1`] = `[Error: User 'non-ex-userid'not found with course 'non-ex-client-id or session 'non-ex-session-id']`; +exports[`getSession should get course id validation error 1`] = `[Error: courseId is required]`; + exports[`getSession should get expected session from the database 1`] = ` Object { "courseId": "04473bf9-6ec6-47e9-be92-77b2bba9b606", @@ -14,3 +16,7 @@ Object { "userId": "915a54b7-8220-4c2b-ac03-cc6edda055a5", } `; + +exports[`getSession should get session id validation error 1`] = `[Error: sessionId is required]`; + +exports[`getSession should get session id validation error 2`] = `[Error: userId is required]`; diff --git a/src/courses/getCourse.js b/src/courses/getCourse.js index c3f09bd..193957d 100644 --- a/src/courses/getCourse.js +++ b/src/courses/getCourse.js @@ -5,7 +5,7 @@ import { InvalidArgumentError } from "../errors/InvalidArgumentError"; export const getCourse = async (courseId, userId) => { if (!courseId) throw new InvalidArgumentError("courseId is required"); - if (!userId) throw new InvalidArgumentError("result is required"); + if (!userId) throw new InvalidArgumentError("userId is required"); const response = await courseModel.findOne({ courseId, userId }); if (!response) { diff --git a/src/courses/getCourse.test.js b/src/courses/getCourse.test.js index 4a843e0..d8046a3 100644 --- a/src/courses/getCourse.test.js +++ b/src/courses/getCourse.test.js @@ -27,6 +27,26 @@ describe("getCourse", () => { await disconnectAndDropDatabase(); }); + test("should get course id validation error if course id is not assigned", async (done) => { + const { userId } = validCourse; + + await expect(() => + getCourse(undefined, userId) + ).rejects.toMatchSnapshot(); + + done(); + }); + + test("should get user validation error if userid is not assigned", async (done) => { + const { courseId } = validCourse; + + await expect(() => + getCourse(courseId, undefined) + ).rejects.toMatchSnapshot(); + + done(); + }); + test("should get expected course from the database", async (done) => { const { courseId, userId } = validCourse; diff --git a/src/courses/getSession.test.js b/src/courses/getSession.test.js index cabc89e..10ef921 100644 --- a/src/courses/getSession.test.js +++ b/src/courses/getSession.test.js @@ -27,6 +27,36 @@ describe("getSession", () => { await disconnectAndDropDatabase(); }); + test("should get course id validation error", async (done) => { + const { userId, sessionId } = validCourse; + + await expect(() => + getSession(undefined, sessionId, userId) + ).rejects.toMatchSnapshot(); + + done(); + }); + + test("should get session id validation error", async (done) => { + const { courseId, userId } = validCourse; + + await expect(() => + getSession(courseId, undefined, userId) + ).rejects.toMatchSnapshot(); + + done(); + }); + + test("should get session id validation error", async (done) => { + const { courseId, sessionId } = validCourse; + + await expect(() => + getSession(courseId, sessionId, undefined) + ).rejects.toMatchSnapshot(); + + done(); + }); + test("should get expected session from the database", async (done) => { const { courseId, userId, sessionId } = validCourse; diff --git a/src/errors/index.js b/src/errors/index.js index b98f595..baea8f0 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -11,12 +11,12 @@ export const hasValidatorErrors = (error) => { }; export const mapErrorToHttpResponse = (error, res) => { - const errorResponse = getErrorResponse(error); - console.debug("errorResponse => ", errorResponse); - return res.status(errorResponse.status).send(errorResponse); + const errorHttpResponse = getErrorHttpResponse(error); + console.debug("errorResponse => ", errorHttpResponse); + res.status(errorHttpResponse.status).send(errorHttpResponse); }; -function getErrorResponse(error) { +export const getErrorHttpResponse = (error) => { if (error instanceof NotFoundError) { return notFound(error.message); } From b8fa774b28266c0c0cab54ed1d22e2f0e6e3c96d Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 17:35:40 +0000 Subject: [PATCH 56/60] Finally created custom error handler --- TODO | 4 ++-- src/app.js | 8 +++++--- src/bin/server.js | 25 ------------------------- src/errors/index.js | 10 +++++++--- src/routes/courses.js | 10 +++------- 5 files changed, 17 insertions(+), 40 deletions(-) diff --git a/TODO b/TODO index 270a769..1910925 100644 --- a/TODO +++ b/TODO @@ -14,8 +14,8 @@ ✔ Refactor code to be cleaner - Clean engineering practises @done(20-11-30 08:41) ✔ Refactor bad name createOrUpdate to createOrUpdateCourse @high @done(20-12-03 15:39) ✔ Error Handling very primitive - https://www.joyent.com/node-js/production/design/errors @critical @done(20-12-05 14:54) -☐ Refactor error handling to Middleware -☐ Refactor use of index.js making it hard to debug or find stuff @high +✔ Refactor error handling to Middleware @done(20-12-05 17:26) +✔ Refactor use of index.js making it hard to debug or find stuff @high @done(20-12-05 16:49) ✔ Refactor course domain @done(20-12-05 14:56) ✔ Refactor Database @done(20-12-05 15:19) ✔ Refactor errors @done(20-12-05 15:20) \ No newline at end of file diff --git a/src/app.js b/src/app.js index 736fdcc..8de3c3b 100644 --- a/src/app.js +++ b/src/app.js @@ -7,14 +7,15 @@ import swaggerDocument from "./swagger.json"; import indexRouter from "./routes/index"; import coursesRouter from "./routes/courses"; +import { customErrorHandler } from "./errors"; import config from "./config"; const { isDev, port } = config; console.debug( - `This is a ${ - isDev ? "Development" : "Production" - } release preparing API on port '${port}'` + `This is a ${ + isDev ? "Development" : "Production" + } release preparing API on port '${port}'` ); const app = express(); @@ -28,5 +29,6 @@ app.use(express.static(join(__dirname, "../public"))); app.use("/", indexRouter); app.use("/courses", coursesRouter); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); +app.use(customErrorHandler); export default app; diff --git a/src/bin/server.js b/src/bin/server.js index f2a9917..3c39f1c 100644 --- a/src/bin/server.js +++ b/src/bin/server.js @@ -26,7 +26,6 @@ async function connectMongoDb() { function generateServer() { const result = createServer(app); result.listen(iisPort); - result.on("error", onError); result.on("listening", onListening); return result; } @@ -45,30 +44,6 @@ function normalizePort(val) { return false; } -function onError(error) { - if (error.syscall !== "listen") { - throw error; - } - - const bind = - typeof iisPort === "string" ? "Pipe " + iisPort : "Port " + iisPort; - - makeErrorsMoreInformative(); - - function makeErrorsMoreInformative() { - switch (error.code) { - case "EACCES": - console.error(bind + " requires elevated privileges"); - process.exit(1); - case "EADDRINUSE": - console.error(bind + " is already in use"); - process.exit(1); - default: - throw error; - } - } -} - function onListening() { const addr = server.address(); const bind = extractAddressInformation(addr); diff --git a/src/errors/index.js b/src/errors/index.js index baea8f0..1f64944 100644 --- a/src/errors/index.js +++ b/src/errors/index.js @@ -10,13 +10,17 @@ export const hasValidatorErrors = (error) => { return result; }; -export const mapErrorToHttpResponse = (error, res) => { +export const customErrorHandler = (error, req, res, next) => { + if (res.headersSent) { + return next(error); + } + const errorHttpResponse = getErrorHttpResponse(error); console.debug("errorResponse => ", errorHttpResponse); res.status(errorHttpResponse.status).send(errorHttpResponse); }; -export const getErrorHttpResponse = (error) => { +const getErrorHttpResponse = (error) => { if (error instanceof NotFoundError) { return notFound(error.message); } @@ -33,4 +37,4 @@ export const getErrorHttpResponse = (error) => { console.error(error); return internalServerError(); -} +}; diff --git a/src/routes/courses.js b/src/routes/courses.js index 5fef18e..4dab2bd 100644 --- a/src/routes/courses.js +++ b/src/routes/courses.js @@ -3,7 +3,6 @@ import { getCourse } from "../courses/getCourse"; import { getSession } from "../courses/getSession"; import { createOrUpdateCourse } from "../courses/createOrUpdateCourse"; import { success, created } from "../responses"; -import { mapErrorToHttpResponse } from "../errors"; const router = Router(); @@ -37,8 +36,7 @@ router.post("/:courseId", async (req, res, next) => { : success("Course updated successfully", course); return res.status(successResponse.status).send(successResponse); } catch (error) { - // next(error); // TODO: Check as a middleware - mapErrorToHttpResponse(error, res); + next(error); } }); @@ -52,8 +50,7 @@ router.get("/:courseId", async (req, res, next) => { ); return res.status(successResponse.status).send(successResponse); } catch (error) { - // next(error); // TODO: Check as a middleware - mapErrorToHttpResponse(error, res); + next(error); } }); @@ -69,8 +66,7 @@ router.get("/:courseId/sessions/:sessionId", async (req, res, next) => { ); return res.status(successResponse.status).send(successResponse); } catch (error) { - // next(error); - return mapErrorToHttpResponse(error, res); + next(error); } }); From eff84f914ba197429f33ba9b1eb591df3fe8bec3 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 17:46:45 +0000 Subject: [PATCH 57/60] Updated changes reflected in documentation --- readme-images/code-coverage-sample.png | Bin 131513 -> 157061 bytes readme-images/lcov-report-details.sample.png | Bin 58116 -> 71314 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/readme-images/code-coverage-sample.png b/readme-images/code-coverage-sample.png index f7318e65015a921928b98cce6a62890f7687ae28..1cb83c7d38fa523aff77ddd8c2051465e0e109ff 100644 GIT binary patch literal 157061 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�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 diff --git a/readme-images/lcov-report-details.sample.png b/readme-images/lcov-report-details.sample.png index bca1bb130556fd283733f437448d7a71a838a16c..be3bd9a0edce614b242de1afd697ff6bfbf728b6 100644 GIT binary patch literal 71314 zcmcG!WmH_h7dDEu6nD2$+_gZl!KJu66qn)-158_rySo&3cNi${?rw#_9fm_rqC9c6N4la&mHZo+n|d%CZ=!q^NLka2WD(QtEJU2rxJ}MDY&@Z<1S1zQDHx z-c4Or0;OFTG#5Z@~;A%9)7JPK?!9_(6i|x>|aw=i5?oAx~|5Yx127Lp;KNdbTA7$`6 zCBC{=)|Hi!jtWA>r{Le3Qc{X7)LO?{xa|(yX7D@a!YTYW3qL~8V?9m?X*bu}Jg%EJ z1I%6i>&BZAUT;ve)eSN+p22TtXQxa4pOjMj&4Ogv`Fgv5d${y}lCACc78JnUmuKW= zW~bT@|A~ZeepHw{X=-mYAkNOu#eO6FUoQ`89D2q6k9P*5&lWzKv=RKAG_Sn4&y+s@ za0r_}D=Uj^__-}aXXQ}6+Djs`!%{jH~a z{z!%_sjjuULD|vt5W+q`-W5LGR^thJo}}i05S|}y4zFWCTYZrAbv^q3y0wALsV(3j zWl4r~Zgjx#l2`s_3i}*ESabwEj_loBAW>alQQ%!h3cJY*UsZWvc@`fx9XkidKn5MyOENtFhZFfB8m!AQA=bf~J<1w6yeN$4!c!(}Z|e zit)o}*DJ;9o0lr0%QlrQcsG~LQVe~sm=2f{rRV1|+w12E@GQvGkI(WB~y*GD@7g$Cfg#^n2k zlHngRty|Zi8oAkDk4nOuY;&kN^}$*8d2AkW9tFQ9WT~o5OQR%SF8wkhgd~H}19qbp z<8teryM+KR-tmRFs_xr>TB$tsFVpxLA3q3|Kx0*d+NSAuCcwb1x>&tf^0yhuQidEK zLoFZR6MsqNbSV>?=xN=aJJf0vzhD&l-ESjnlhvcn1_Phto(CqBrI@G`#kZNLrp7VG z3fEPj+Vz{))T?@B)a4977d`p&nNar>t@Jbark2EN^qYUYVcWEklk*opi*>?fy|f=PV6&Y@wjTVU2mU+K#FKHM=)?Uq(W3iPY_NumXQ26d{vf8;-5I$Z+jRTDrG>3d6eAr;E2i)epXpRLliO|A<|w`NUtyeBaj{skQ#kQApbnA?(>PyLb2Bf z=@fN#wqnmz#i5ooP@~$op#U@U4q`22EVyxFrl0%)Ej)GQmJpGcMz@3o~$1C9V86GWdZxTf5ak9gw-Ki=1;HSHNa~24a~;5rOd9?CsaY9!;%45wO24}$LAXd)(DbI zW3z=y>ukIrl!~R;3F?z zCe-DMR?9Q{l$BBR3e9^)_k`)Q9eVj$?RP$&yg(C{<GA8B%NdRL#n+8_&-D9= zNgr3rq6e#GOzU^D{1RO%f3LdNlFK_yITq85dIdFX%BjtieQo|4Njl&r+4n6SCxZAn zj2THjZ%J&~1?PV1i9Nhmil^e!=K`Uxb;C-WWT=4lxRx%XFR0J<==(-*V_iFu)uf83Ws(je}P-BK8@^paYMA`VWIiN1Q!~HhhREg4d6kCbE@ACQnySs~9_j_28Ds zAmZfP8E+z4ooz$Zt<-*6!BMUsnVIL=Eq%AX#w~W=*rKI`qV~vM@K0C4G}T*NSZyY1 z3?@5{mZlmh|3u%*lNl~hZnsH>Vl03BvbvWW5z%LyY`720c0Lr(C~{}m%Qty()1bxu zu+hgQeL2E9$aLb0x4)9b<8Kndq0(bq;P#t^X@%ApPN*^3HHGOUA$n%xz7sJK~q~AVs(NL7EigRHmPKhB~7Omq)Yc#k2$WX9tQt(}R zsi(v1OR)h(j(?cR2c-%N1PYPC_%LzSj{QLw_U1Tpg)GB;0%`+Mr7;!7>K~BkT_uh# z3)q~bG)nIvf5JCS`TUKKbLQN-QruDBc@)w*(+cVZIScN*W+6fDooVD0g+49MQPd@F zjxH(A=A|%76ZUM8aj&7by^FbVD+2O4C@EEucCeGx%K4K4dgYqAS%Ukn3P^@UXBcjOyfTFpMw27@6yfLXnRok2LjA{mi{hD%s>9d ze~J36$%QtUg;WxvbVZiS^IM1#_-t~9_@BvG@@!Op8t7#llKzMpjYyTsNgRtIjXSl8 zr6#fLWVlolnEX4>eHi;&4_3k-|C`jT;DOK8KZX!lP%2N({6osR*XB1Oo4r=?I3=FC zIXXNhq-*03IEEGu1>ioU0}v=8h=Lo*#@+k$*RW}x++Oenmjs`orq`#19aJ>1668Gw z^_XYkutxAn<5%(`?94&;b_?#zpI2h=VeXcuGoUyg` z^5jWA-Z3YQh(XOs!Ge(g19Yrg$Ro1}SyAtAyL_>OkG zdYn~ShjXSdnBS;Qh@S@%wA8%M5OXQaixh+Z`D6GOpT;(e4n_03F|8ka)s0SdO2P_9 zy)-exSH%DyucJ8<6hYXaba8^9+u@ZZ2ZsuegNy4?t(Qr7&MPfpHH+NK?C~wD8EK$( zcLf9sWYaHU1$%kS_kXzIy4Hk!uT~O&&9~>ZlVpwojR9&c)%fZ#Z1y<0QAnr(yTSMvJs62C3~CwFvI(T+h5n)63qxSB;jDal7g2hU1I>qCg8<+lhL2Vm-pLW(fH>#G}`T`N@bf5fVJZt6?8~$cIbt z!8ie3%DUf_8>t-YUB)lP8otUxo^>@V6_Py!r6z?M(V=9}O!EnYTvf2HP_+6H7Yc^5 zh;NDnB|xddSniccRDNQS@yjf++;uy|2g9SRMO>A_())Q#kZ^kkfI$-w1{p zwZ~7rzMj916J#^LLc7enp18AuA8*c{SHAz$($bO$kCJ0$f(W|1nb*o7lv^Yju}YVe zy{QJR_?=RlaZ)bDp#CI@O%U!|=RdM)5^V&Y*$ zB%!&e3YGR29mH0GBV$bFx*xm!+CzW!`4{TJhKb7u)m&M5u4lRFl|@c8iL&~ca&W@I zKTDt%oEHL_^q3jk3lr+-aoh16mlL4API@j@eGlVQQVNahDQsc&aPFwE2!>i{T3rCM zdv&Qxbwov=4X#TuH4+7qot#yX)k#b3+tFDiuql`ED>=7?oZZNVV7UQl)Iw#YFYT#! zK!ESV&$qwGhja8NXp`GAqF?@8xa8kn{b>Xi`gATwL4JyMmAc`Ce;hw4C9N& z5$VA7HqPD5j69X^;F--ivUa zUVHoS4Y#0i=N-11@{XgI)iP634SkHO21LX&-}?HTiK)5s@hEZ^qySl8FLxE)rF#UU z1{Lr>DtRWhY7FEe_w4LmijOy=ts3W$JT8buG?R0WMdu5kSPpXY00_9ejw+vI7zYcM zD%Z%GQqgt8cP0%Fe~_wY=rN}W=UrIjN;UWyt13oDm--B0({TpI;Q}*^gfS>j(m!45 z^8_0TS|p+HlY4nq2#yGT5MT3gyJJnB`-@J+wYL8Y^IhZKAQebzXM(|iuM4(c(e-2* znX@T%HvDW zEvb+qBOoB~Q5@3#p7Wbam{Zq{^q&WUjW}4))$_Ey0-|XTE$!`3Vgo`pCr{JcA;b>N14PZ0E^cF{}vwawReA|L%;Q)-c-KE(?4vcb8hx*@@Qn?Xp*diamo=Zzh{h|Xbejtb0esP80~$qC)n58bpW#Q4fOgs?jOmJl>5 zNy@?8jO@w57^AspFOy{Qo7UZ6ROiE3oD2kTo*I=FbB@{~>Ktr%DJ;a25~zev|8MAl z&Fmuszsys+ZYtvaPaJyGj8rnzS#+&HJ;Dp8aGKW9M24MW$Uje#6SZkIdc0H;dZzOz zajzqHLo2tCzA8!n%Q35;0dB2PxSJLl6qXC&cASdmBBOCkmVbsw)SzHalfoDK&9^*;jddu=JwM;x3_4c;wo5tR|10F1!jG^8e>(7mg2sxmQEW3Jl!FA{+ z)p{dKsb+CLNqTH4b+^zio^FBT7BWpc$nr(Fl<0m~eo%6R9lz1)R_7qzwB}x%Z9+PAo5#b-;3QJp(qv)SVnNtg9n!aLD;!f7%L(Q*5C z*;V(JoK{lTgj31yV?FG>j~Y{le~4QzFLCpfaXi9VPzV)imt|Q+VB83bp&^*WOHpMh zSfyC}{dzIO;;XdAJ#*SDMk=-de?szx)}!R0Zij*=Yvf3N$=F|KCLkze6Aibe`MIOfsM(v)bQ=Pq3FK~z$ZxzA?4X&P^mg0Yv zZJ&o|99A2@&lV|_YgdM9p}j87P|f{k5{~63q~^aAuEzRr!++-BeuyB}Vg8qayF(um z{9k5?2lM%1J0|4+pqoo{m>0tTN5d0+>HoHV8}@&?f3yG3Na5gsZ=mD%`)YjB5d z0}q>Bq;9>-nKT}6hebsmWyvW%PgwS+DleA^HmBaIM!rYo1@{GGc#uYZX9?uy&R&^!%2`iW zTiFhBn4^j3IsAOgcp)20+5BFd@^}KR6Xq+*R-5z)s`80a#$WX930d^QDB(=fOso6QRCdVCE+N<{uB%>Mu0t<=^w ze_`&-R0F49RYV@}qY%auMiPV|9Ri-+6DFa*O};a$IOf25%4c;>gnN)EGPS)$cdrR% zjs2-D9ISlS!yT#;DfMxpG687y&e=O zOUc$ioPPV`g@dl2PUwBEldl-|!fr`iSPcxX5ig45GbsZZ;TeF}>fl}SHK2zD$`7!b zzpFvtgaoPfV`sDf>$I?9^!`-#ZG8yOa@Upf+&)dsFT5{I%n4tEj&z6|Hp{8Al8Tqx z{in-MnhGAK+WztI+Az2SJwzPniEH3;wRI1xH9XwcCl$g~bH}^1J!dPY{X>&DG3%`{ zQ)fc#A*B&r6Q!e|m&t0@G0An8NU)pY{qb70z{_FS zY_=cR)tY6j8Q3>i6(i_^m^T{9WT!zVf;|y#ZrfrcrId`rNjz1 zf-#t-(Q(}66&>H>vL5X2+p9BAfR=!68fgJ$o?EVc-tfvf3QxEZdeQ5QD)2jde1zm| ze(}R1Sn_=s>&(xpJV5%o*Vx-WqQM~|ww!1X&SH22+ir(-%{?jh9Ty8WP;O6OHoDXa zvZxy+rrn$`QEX5Iw1g5VhDof@}6c5vqZ=DgCQsP z&$Bfr4sFsZRHa#6(R17Tx4=~$Py-F(e0}{2q*3}j81tB(O0tU8>rs~KOdzjPisE+X zIASC1?tuLrC~E`_+3Q46C~r8)n*vNpC|Jc|+u$sPqR|W)xAv$M&S|n;pXl}8YbxmkuV4#}#tHqs7 z{o#*-WwD>n%33W8FXOj0^9=>h$*MJ8uj}b6yE!AY1&}}|L)lYz%MyjG+ho3|)D|N6 zK@jX*T_nHJ%b*tNv2< z>@my$I2W)K|7q-V_|L~(#J?)XZyK*uRIBA6!C*Cfi8N+vJ)j19U&$}ZEbO0B7;4zo zX~se5jtu~8>@%?*thJ{4UEZE*l^~Tdl(*<4yyQ=x0X9cvUjerV8a<(h5sUu0K%L&V z@_55ZwsWD5nlFblD zt7(V)t*eT{>6Ga3B%j>JeOKL{EU=~Gl=zdO4+t6;UV{NRzQ>pTidFp~jn`=%{?oxn zM;kY+3ZUCn2XDv6kuMM19ne_a9}@F>D#GhnY$#YGJOET;A#1nyZjU8%`{aiFkfc~P zhJL-@g;6>ihDm)8aY>zkY>SNM&3j_kGn<4B5;EMR-|r~M*#IC5YpIL!2+U9+?d&nS zI+Q`MAgJkQZlKNlEcEr#RqU`Cz1vGo)quKW*RE8@57EkyCR6KN`#8Q2#kr*5}sOGEq+Fr?%*) zY;y7-S$3Jp3p8`enzZmgqu|qGKlrF>Qu+1e0xaglpOzbFCHME9AFw9*Hp^MmyNKH4 zO}u{lQ)hns?i9H0suu&`07sE9YHr${Yjpa9EqC|aQ=IPE1^J2u?S^S)8^9>I-4)BR zzAOiRYrC6SPZqkldPsZG2IP0wJA4=%WQaZJ?--f2N}(zzz8QnQ@;hH+6K1?XS4b+E zqYtz*2g*u+BDS9xiCjF+vzH?a=GwemUQNdEFm3Im5UkcD&f2|<6^E)-I6aIF%5JlL zUiCBq+ccp-lqscNV@|%0=s{LC*1NK0KonG)O${9EezzK{GV#a9rzWqBn{tF5MjGqY zc%={x;HI;E47*mbdwD(8N2bd1>)jmLyT_M&TR0-WwL+s}Jc9Y{K%H3yXSh)e6GML}?iu-?3ov{Prqt!?{JA50 zhpsG0l~!mWGvF78a{zP$R8xg_cIY*@E*k0kh*e1hKD>K=y;T5RUryT~Y;<+eHia%r zvUs#(ZODSB$!=#x0$NIvM0B9Ni27>kjk~%8*y}Si?sYpnN#rjF^=Ekb zumY8P%2PW~EF04$jgvb6G?nhd6!^YFfs&|xVJ)O zTLOs<&=!@|PQ@3u{$Rpd=ABCx{(W{MqZyXS7&I5J?yy}0tN7dU1AYy*K8JlM^6Hiu zDsTn!n^8QSC={C1D4kB{(|<>bIWuW|y=x1AkcXLwMQgY4e1f0+3I~V1FeFF-1H|Lq zV8yfn9vLy+kGOjXUiSiCKOakF5h-RkpJvc_+e&$4P|o133g~;0;>`G4k1dsdB_{u#=g))3Z@Xa{n}1%x$WSd~|CTx-fEu{}nbfn^e!UY)TPOFr z`PV@slB2hhKFW*w)_${*84L8#KeXt0N!lCtIm{07Q`6{|p-WvS6!J+_=L9QB)=hxddk}Y}Nq^dpm zQ4kCMQY4M6&>^bdkLs5PPRdeEGLWZLcI?Y(SNU7it9=S=Rict-)^LFwd{Lk80p9EJ zG$gO@DwW50l3d2XHv9;nCX|tX(Ke&}d``E4?s0;hr@;WGFWN%y(zRUB_5B5Exth+f& z14J&gM*04W=#?94x#DJyp?6@=FYk8S#GsYQ!SqLfOj3h`g5w`Hg|{A8D_8MYEwYc+ z{&_IC_p^Q;n`}ni*%kDk2w@6?xCG5{A2-m{qj_$17sV9z-y$XjKA3W z50BNBMJ=d$Mi2WXJvCNpg>-g5O&9Uk#!$oYQdPuyu&=EtL`oVx0+gjGqQ9S?bypP& z)m6>=cUJ&>IS94j1cJp4MajEo}!z&|+PPGN(KRQ4~ElLa4ou|QTNya^+Pcw=_82KFt zyxeQkrDOa=@@&gfLlowkS%qEhgPp%dNu=Gx2Ra$=i}-OS5U|hZ!2o#>ez7;e{o8Q# zY-sS{n|+hOex2*3^U-@Iuvo2T;fYeJCro{qlJk5{B9-`#sNTm${*tJ}3w1 zm49~-bUdHz5mE@bI-uKZcjBl8bZnY0KH0ifb2s$ev9I)`RlK>o0yb^2>7X+ z4Sv$pNzNV?X|XoyyOHiY?#E3DbHu(h1k}~xu02dAb=@4qNMV*SToKMAQpI%VRnXeR ze+3E4S{%psP}y301J$S)Br>QscJ-!GkGM~V^KFH6#?hX2*cG@V?$D1byTN@M>QGDY z?P;mt?Lr_GkJoIt%FTYYQ7Zff-k~@q)o5jT%^UdleQLP;4dnQ@f5_n*mDB9lWz&yW zqes?WIs9#K`YNL)rR!<+ zL0YJB_sIW5ID)Y}y>Ib!@|D%NdyF27*?CXM09Zw6fU0q6g$@5kLWWPj1Qlw zDxuL1NIq40kw%l*zC8tH`M;`vwD0D}f9D$XctK2fzUkr`RjahEjNec)m`CCFcbinh0O0 zzt5Pj$F(5&<00?U*MRNCva60PoIf1C-r)NqGAEge6`zYltx14zb>(D&E27L(1s8GjPsYY zJsnICxFHz(xtw%h*fRLca>2oUP^gB!6d+B@jPxPiMW|{xk-M@4(nqNrS%L9AU|6a)Jez0tr%23x!afeTK*DR%XgO_s-xcijeW3O-EEr`%@ zdu}X=XrI(GWGgSPY%O&#H^WaX-It@%A*#su{GB4sNf4b9;Gw4Y^pc;WNcZJvSVY|# zVm#(WcU^))(7U(hRQeKj47*8iRU0UgrpT@tXfn^T3H90Gg29))LyP)^^>y}>#3#|g zDAUKSv*RYG$`2ctv}8+i{~)V!4wyi;9RoU{HN_a+U%I z6~-Q#Bj#~e`10dAgAA)6RP7>y7}71Y0@j`*gy}7w{ZX_m1|TQ4>Bbf_q-K z`#q&NTyD>gF+d=qqnWnj>myhM@|n@$1FS(g;(a5DxX$t>mAx_(k6Iza93^k=^Bxgt2}ZQt zzFd#61;%|J(JIME*NSqcSZlUMGx-YTXMnT)X7+--;=1ou-4)rYUL5y67ER#tcyGus zLJ0pLX;&1sJXQuDPvO_eu#L&7SX=!@)8@yJ>r_C6*z}j3)?Yq}<1{#}+J_4wMYCq= z(|A=CcjTirChDE)I!3uiOq zg;wZn3^cSFQ$HuQy!1Zegg4B-C%Q1WGbbuYLufzjYSby{m*%D0_G|uK+&o}*M8Rf# zp!G47>uCAX!Ed#ZEtdPS}22CgmXMn^i+oUr+^r0>Ui*!k=`E!u{gI4BgNYM#|u3=kE zifZ$ii%*Qmk*AtI(k3yJvxSG}$Ma7QY3ariYaA*Nco;(={d$nR) zcNzI6E_3WWSp2?C@g8_Suh4eEg8`^1l9~*lbdPoAq4O-fdcH1k`S@Gd+%i7zaC3Yy}O^%T%z_4bc^If!{ALy|44r?%_ zSosfK%30?1QO2sP0*kx@rDh6|m1FjBmtn~FU6Ik0wwCnXN~&{yu+PFy!S$2*)x31t z@kXI>8##Yj&YVx=r&(r#J#N5qw&a}D!eObE@k8quhJJf5S01dIkA+X+$rRNoZ4Bjh zjdvYd;Q5&I%7m1@jS<6s-|t57O13<#KVV8J^kZmI@(H{b7V3%zLhX$VSQQc8=2wEO z2D!_NP8Yg$X{#yn8jRN5(CNTP%HgLN{Y!+CEW0wN-nFT48XdBgmb=>kkE6Vp_-2k= z$DVn*K2b{}vhVWcd?Lu+kDav#z3ZzG4UTdlx~qGl$!2$T-gXNUhv#5=?B=Ma?9{v4wKI+8 z)coV|@Fz5PBQNiT`QM|XdkOc{TbGi$ECgSQvy}TIh))kunH|=v+cby$QddMD65lCE zJmPSO$P^@}kD~;^mdqal=7aK#{`rR)t`5Ek|5MustshQr%;Y_I_(#D^HXjzdQP)a< zi}kaP8s~*-*+v&4cF6O;ail_FVBda*Ab^gj7+5o|@_7-fU^}KcgE#(jNBMU$<}WVA zP894CmENizr57e9x(*ceRd_2{-(LmO9G5pu6uN%U^19=%Z@38r9Y5ULaCetQXBX#9 z-b6_QHt7h&JVXN?8OV18bc`{qq&9VWOVnv;=s#6rb6Cw6lGLu2P(|~%)zZUj+)zN@ z>+zq{`oG;4+=K!cCzl!%7}ZvgI`6pk_Oj;Zw9-b$1pFu;F_ZQjqm2gvlKm&D#Kt+U zSHgrfW#_p+i4PTmQZkvvsG4-ervRJUz=ERjCUVHGubqjDL|HI$^0h%(`eQH zz2E`m?B*=cXN3&4^G=}!)KQI)xSz9n<(G@N1MzuN5`wlH6KD-3e7gfc7JPRBW{Hx2 zU8$P?MAlP8W_S+v4jY0cn(R)yKOe{c^UZQpDbwR17ftdxB|Zc@=U$Fm4g>%1wgN+8o_$m)(4-wP_BZ9C6}b@o6s*Aenl)OC`Mu7NsoqyneC zV2B=?EE@)yGRsUi#Hn81OOpW%Ri1fgXzyXWAELmIrza@_ToEYhI4z>=Idh2jJX`7+Q^6`%to>G1|JF*tQr^UQ0h>1@zVWd47i8F7GOe< z9<;dPSO2Z!r&7mxU;?Nsz+IBbr?@`yr(|0tus6&YQZ{M(_B{@3bK}a_ljN>b;9gAo zC~V?&x^clqK3)AHry(zTT|d1Q{}*3$foTShNB7ii`atFlJ)&ZdUN)-aM0(iq$T(#2 zv?wtYdih>e9*$buWit7qDQi+ovwO)`ZVeFWk&iWTqBJt-kUIOfJl}d-PuF+5dJi66 zGtYQECwa=I4ED(S@qTA+&kMj1u%P}jq}JW?-i5 z8X^4i^wqE@a3(N9@)Kr68EW`L)aj+$vYY(;yJLwW4W4AN5XWff$mkU5tk-n5_f;KX zl^~>-XrH#$5?S2Dzz^~kOV>B?P)p`UL1#pcO)M2y@~{3)K=;$`^RzQMyQv&;3D#FW?Z~$HcCR_rE-bv%MU5W%;9a^+T?c`qQQ0GJGb#h`d2-=1(qv~~y{+e}yu{8aoIEot9rq?S^F96NOeMMo zUvC4bOr!YGm`wE_534Y5vWC2&)TjJiqn@v6eplC%D)p<%I1DMU^KxxqBT2uo`33){ zedLlRlsEF}&6kd4>+{Y2o;UU({olOD`OF5cIP$dZoM8&+IS%GHD_rX)L?T-1fcstO z&v>r&%dO)g>_~e|zN4|XBp}8KX!5Ch3Kbb3+CMMuOgnh%)42;#7)KEd&CXBhJ2wJ= zo;dgMR`f*dpPp`kcRb>Q!j-H~a>~rc)0yUXzJdm=B}F{)yFTPKo~) zSw|?S0Db*<%WyLk8d4C590U_tGnBQPriC3If*k>g*lbyBCCF3u z;-?7W$Z$wwhi_D`w;X3-AzV5^_+~Ex+}}@DH~+E7V)fhNd#yZUU8{O`q;ISoE8Kr9 zvlvf^aN*~teji|{wQ{=)CE{PvcW{kwO#2%TZKW(Pk8>{1$LlP=rcTuj|3;Uyz=8fR zr#yB1KTi4E` zck5_<=m$pmyTCIP-I8hB9!bQg1sLbZcv>(q1@Wa!K1%z;Ho0Z2hdyUi=@V}*3Kj;h zKBSkC-kIa7~wH z6rH7!)mxmr{d4d*q|45FHCe^#h(_wR=D<7hyRN}!SI2_XP{!sHiZ6#q!;6;7=r9K5 ztY~p}>6@qZe+aJ0=*#+H-xQ~(hnCO@32lFT`DiRgYIab_JH=ZwADZ$XeIAZ+5|4Q7 zPaz-sahaAx3Xv8s@FU@;G-9NeHtGTe23+M1iyBw?Zk=GBXF_EX3-9s4^5Ir^G{i{0 zr4Q{bzRk2_#~!q1s1o&NCuyCu zWXP4B)%AhaPmT|T=DSqsf=!d^fB1x)Ot&Df>D2S&pTdnaHMJ9GOWRsTmvkoaLGn{% zr7(L=abz36u@OOU6md}OL6ks4A6kTv&`^JgABfdBG*&EXiI3nN4;B?qb{%~^Mpldl z@j+csY?YQ>BMszaf80f%ExT^dcGb((>9_njdL-iv<+h(NoyM%C=2C>=z}_dqcla%_ zPas*gp==D43`+0Ao#Jjt?aikk9S&DeFkfy2QK#YAPJeEjA{LF|+B33i+p*Fv*-}d) z)pOTBG}blEp>rSa$Z9O1=Gmn4f0!NQW`7p8Mgk8D&j!AftL@OSO&G@9o>1=?Uag#y zof;PRhR|X4UZ+y5(O3{nsoE~-=KP^nr?uyYr1 zV2U0VhzJe+<(1GfeC#3{drm0 z@vqn2hC<5M1?IZoZU5ptt*G@z*$;RtwBCpDsW}(^1TUkj9Lm*U!Vnerct6x$23FU^ zatXd@7E#jHDBI4*$7|mSgJREW5uU#$N%0c=+v~08H0Cj}OA+dojW=R9jKpPYn7d}n z?1+ck-k%?vhS0S`H80uE9JA5noj^|}#O=BAc^fQ)pBUM#>dCLQz0g272!v^CXhrv`nBH7cW4$v zv6dcZz)0kaYj+Oa@k?u@#UeG;taJZ#<7j-NBYfN|c|Qa@IACs-3Ym9|ljk(6ImN5! zJ;zUke-D3^D5R^gL^WEogg&p}^6psbcTD-fBKsD9JJQGk-O?3Z_qs_+Lj#FA_+zJf z7wQW=OePOfQ3WaG6SEIzku#SE6nE7#Qs&H*i{P!D;al13P3Mo)#W=rYDXPCbuMCMO za%tRzK_ID5^J(5#-J~nHuX`0CKCG9rkr+uou>n))M zdR1?Hd9y%K&yVyDQsJ?=)a|~m?7^pFS=>h#k+4eHT9Z3))GV}coKBv1nwX_-TCxLt zPDCg>1?GGe?3PU$O;Pi4UF05s>gcA6?F|=LwkvDT3?-c>vpp&gx$XfQkRwLw;t+!J zocWp#>A$GsMr|2gP)9ibb~H0RWWSnmewSFk&6(p^G=UE0vW_Qo5C})y^e4Yip0NeL z+?+{Ac; zvxW7W52=q86{n$3AIyeAPXv85aJ90jX<5fmHA8ENFj*o?VYP&176Kyo`Md7&B24yh z1-aWryH$%+>otsr=on^wjHDX8boXK6*vLfVcz=+XPGWBnFgDlxb)r-}1rse2#1r@N zgSAM(Z82Txu`sbb3;I-KC?5dzJ+Xbfl%;i>eWY9}mG5N*zsJN5cMunyM$b$kTndw- zT;>D>$CQRv+_i2LhaJu8>Y`@m_??I;%q6aZ<|gq~C*2R5;2WLXw=c`mk_fG4-SbE!FxCM*h-#xgEMl6Fv?y{q!B4%yQKbOb2O9D~C?U*jjDpIXu{X{L6gFX}S>n z`NpF{WB`{}W*;+nxmAL*{i_HYI#DDAPRnU$P(xNQMh>+j4e8lSx=8h?zuM2pPPiWls- z8=J;;{^~zC?dv^+$+9n85Z?s8POghFmk{)V(Q$M1o5&A?7#}Y?W*QQ&my|; zSz=@n5xWoiJ+xKKB4esvAK_i|6m)e7t?uXDZBH0?1qDi{@Jty|fM(AHnYqU30bX=~T8w{o7~3AnmXdx?uVK%BLE@!rfur(!^rl8!Cn7u~lc9@t z+_bDJz3rLy5&^u}%zd{k7+M;5pHpW5yZRRTjl}77?#D~!*?USyKbM0TnHc5N==&M- ziCg5T&u#S(>%`-nX-j5Fmiurf+*lXMM@u$nt77%ebtRV);p+mg_ck>{O)#hAw>|PUtOuQJ*pro zh8NTue1HP-z69|v9~?y?yguWQl2AwneD-ePI?sq)AP}77 z)Y$xsr+}K_jGVmXGY-@zHs>aDYA-BPrjyc%OduPw-Q6}_XeTkjXGD8`bSu_a@N=3m zDL$HWOi!?l!RSuV@^rz!8BTpMVof6`t2%amw>0sgR0&CGXCj%9Q^)J|<>|_=p~+G9 z{)i7g2X6i4NoP?c&WUEHs;#ZIG8By=0zpQB9R!JY$+q;N{L|yA8*uZw5g-JX{g z5*+6-#4HDH#NPPN%L2YRN8cg8gj(H99G0ZuD4D)FbTtnyNsVsM%63j%JLLWJB`R$6m2nXAzH|qK8ZaLkDv|j{(ojf-@{xG*3D*Rj!DM zRs2=sXRwG>&}sIEqh|dkMNpp?ff9ow;se;FrUaG&iMrCxISf5$XFX>3j1^~HL^S`WxQL*Hg|!9E_i1X_{T78rQ>T6r-hk@`(_#NyUP&Cy1Q8hIZw10yAT>| zE=Qvuvsa_%l}f~Fksw!yShLgqX=I7_8b8Fl;M&d+6%o*3@QvUAuNU9sx4sPY*Rte# zP7dlY@40>Pz>>YXm_Q(d^xH@5{hYLBO z;Y}*GIXa#yegPiyTzY~H*Dq|tWI}?ZFsG(wrM>@$xwnprv+KSDNpN=v9^4_gySuv= z?w$}dxVyU-uEE{i-QC@SL#C3qzprPl>F)LYR!`3w{$f=Bw+o4{+2&!D;CyRycTlJmArg9-xMnGG!j;Ht6Zs~uC6m;N76kKd zpO?|O$K(?Azl(|%B3+vd^2}JO2n@+Zk+-;%jEi_a3X|cTt`r9rZ-tW+2ClNJBpA>O zKd=>ajwl>9zpD-NsKpK5EAr8*)z%iBA3ezwXujv_p_7JB_`GuZ8A2E?4@omE9U@}v zWuE|?gPyCyLz3in;37whW`0I?&vwmd8B~>V;F7W>s=PcwG%+DV?3Qt$MaSeAze0qb zSzS#T>o06mF1WGUhw?z$;}&IMElCjyZN_w$nHT(AlVxW`xzoa{ZJ_SjC=k|V3K)br zCdgtshyIR}Mi%oLpV*D3g_umT&8>FVK37LJE}j^3+(XaSvBeX z7K$ExhoK?S=~eZbBaUdZ2=;ODyrL@40I~$PMfOfn7pc#Rz#iWzcJ(1Jg`Tolu;l^W z5whsb?EB;tqDxhVwDAbLbWm^6F-lsG*TkOu_h5+ zeq*1+Hb!htA89X7UCH3$`0UJg^Ju2Dfq(?|d5kE@&K7i&Y}@z#kBw3>dsdI+e^ot>l)LuZH8V=fm<|MDgoPid7g616l>0_Z6%S+x=T^6KCJ0#b}ikI5D z6P^+{D0F>c4t1sQahG@Jl#Lv@{6?vJT%s7cvS=@`bcTwDgfFQsE2HPsMTCqMpdv{mFV9bPXN z>#fLyyoT37(Cg?qD*OKnlIUN>5_njDFYW(UYVp6#S^c|cq{A&FG-hMGLx;ZyhOl%zWUbG&DkqQgu(y*{}IX&Enyh~EjPL3=JF$q%A zXsn+h3C|I+p~hM{&Es$`e9N{S+>MHn$7;Zfdb>)>K#chKKJ^q!kM#qz-0m_&FvI}U zc6p!QfqOf>nn#m`<$NoTPJ+GD-ct!fKZMS;A{0GYozjy6@!(x-wc}m=#me)MT3O*N zq;&F|CrAX*o!WQk4wtmp8`I-X7ZsdK84gNSTuAoM!i|o&S;V}>wH2KCs1Y0pFmbp> z0zut&EG(>Sd#wb9MuSJE{49{c#xqIIQ6~;@G_b6l?AE6o-&$Qvn8-`*5XFnWldO=_<+;wwVc%SLu^{*duc)fLewoWwI*ac`##-x$i?LQ zn1Oi>5MrN1a^_m@Q+9i2XSc80Rfn!-fi@nFOxP7{IDVna+d#b>ms~G^Fi={$81I z%r@t@a7pcmGUTHX;%>vVJo^xE4jiPgtq&1<0vXTZ`VU!)!7FZ?KM3csh6Pb4!NczY zj4@9@#Vb~f=RSoDdHW&jRV7+Ug&Z^eEzWR837YncRevwmS)J$0$9K~FU?Y@q)8a9D4N(NNJtHiq>Uy2=&gM(YE3yI(Hbudj!B}nhJ=L|!$~l#r99S`-W8_F zpNo$hi2*z{#OIl`+pg*3e+~tj=b#pZYbpULvk>AU84c8>V8z+?PDOeEhj^daH%&|n zSO#6Nr=@A`c*SRiT^PUn+Avx!IZR0Ahz#2^f0CZFF`7up(5rP(cGmtVZ{8Yjv=iQQ z?AcHD{R==f1p&s=qcFv;)#cmqwuy+;*JM{tt~y2NBq&*IN zIPD97E!0TwW<$$6m#mpZyy^^?Zm_T381?vg@|cRNbUYIZTh<0=Gbra4`4~cT-ux5L z=z`DM-T8ajS^M@qu9$NAoWMswLYgP9zDHtYFkCICy~V(%@(hX#uJXsEOYVb%rMb!t zrp)Q(Iq z=5Tkeytr=(YTmuj2!Co*#zlankf!C*VU3_AeYcVXuUHh?uBdgu@dyz{Us6&0Fz-oA7W{=T5^-H_<=a;iVp0=* zYP}XXCrV^2YSm0~v2AX2p*~R$Scwqd$vJh>sf>gSPIaLLJ;r_=qz~}s0mDB-5paqM zfwcPXUm`)zDdpiMHfKq%$>HmM?$rPtWC3NM4HY?gdaB-@r$Bx`iwep2@VRXhO6DWf z_Z~}%qO-6$E%LSYs}w?MXZ<~#z7AMBHNnxmg^pohcTsSxp{N?$IW%OL}q+<~nl4`m3W9vj~fRYYPDvA1-!XBYutC?P_GGaj$ z65%!ly-l>7m(*b}i!Tqa8jKd1442KirZT+zV%j}wp1$&ZevtP_7K4HrYfU;3)8>byet)CS!0C!xx4V-kX zPbP6hc0k_-@Upjphl{)zqrCP2?D@($3Q(^o<7yLWRb61WvyNXLVV?dW?zM4Zs;exZ zCHw^0&W|lj+3#*m>65hI@^U{$WYN{`odpD9^|OgajPDU2S(0190w3x!rqs5!xjPkN zmA3K~mzdhGU@OL&kAmn%B3i+g>VX_`YTJ!|u^{kWd^h2LG=%Ie9 z(`%Hsl*L05mHZuU1;(3vmBF+s=0=m%uK=o9HU(lj$toDn#QRA~tjG&Xhr}6NPcM3F&o8S~3b{Mszh&DFK;O;2Nlq<~67hluW9sT+HEeh<`gk%yYcuFjw zpEfQO*3gOSSWV{Yq*o&00of6(R=pnvOiqCyiwiqepjEPKQWI{p?MRf`%M+E>qfkKr z4n8aHC*DR)kBp=SXI{unZ@k&p?m(HW4@q5N%nz(3OmWZ>)-PjRzWlwz0*f@%ay8~K zI}8_#rnXELX(jK;Kf;->f6#`9?Mlx|cA8S*$SB=QD>fY9>$s<6)U@a$>KM+y7dC@N4NvnGwLSh?gj=+ zue6ucdaY>B;nuk8qNiDb$Ft3vD_{4&3zy6`Q)CU9e3RJC;M8;PR=OZr^L+9kF{$48 z>7p!|Zg^5&_mv8EJA^1c_7ZvG$J$-SQ;LP{dfTqPbzp`w_KREWq|#Nq~?C+;}}u2s1}@lkZ2ab zlb3IUNJ@>hClua8g9QVl$HH5w*2Z6W!qJ3o>5pB)EgsP9K7jyZ2Wpm;)nm)VHjFKy z$l?PM%F952kv=n6Wub&*leM26NoT#Lo`{wFOl+H4UF?k)Y$>bsG=oi_j@fQ~3&R9g zC+r>cf$^~5<)A-}GQobl-F{j9Zx!1<{|Ab(|39w%{*O-Qm~zkf4eM`NJy z1^B2qMam@9dPfI07hR5t^d4%)t&)v$BzUDjWhRA1C4W`qq1h>u$r*pd?yjN@nM~9< zLw|Gn{1lIALnbz#8CGQ;DL-b8DmF!|-m;zjWCJzV3TWt0@YT7g`=;L`<)0A{D zj+4TzpOyXeG_6Fo=4|od9d+#o-MJdFxmqdaRvT%<*$_lFx$*T=_J|jjadGnj_1!_B z(}GPE*G}+{|Ef)YFu>Ue>`&)nFh=*$$#_gd5C6zJt)vSTYhT;Zy-gupCU>vGQ4m6! zUuLZ_p*A1de-gq#FV%Y0oJ+S5VUdOTQz{!YFj#BLS*FY2pKBy!gp3+`)y0 z@#<5#>zrP*7x*?Cd1)zSt?ZEJG)n}cxArUapH!T7EMaSf6#=roZC8HtRJ^q@tMNs^ zCu2AZeHD|6oFF`iDg#tRK_nz!*g3@j%rCS{U!^|n-zf|oR0w#QX~6<&RKrD#LRVx; z);k+mvwK{wkl&D?HF1 zpaA%iq(kJRvFpY5b+!4^!RE?@7jS8`^y{Rs_0jY(PmWC0h=$bxFr*G5%{9}6`wO7h zK$o16sMNJ6XA@WeQKMO7IU^eH4xw?HpTlf4q1qj3Fy(&(h~4+BYa)?+)}9U%)4ujo6EN4MM-P;DZyFHpv;f zyA+SVGqxLDB(}6XY9$+!yPukQ4Iig3l61M^#;nQ*rl<91aUxb+mnKNj$+1w0_J?y) zNFr*D+V*^Rz1Eeas~0o{b zeB8~}-x*>y-vnJ&Yy`iUWZZ8BffzFksOWQM+E76sf9jtlWia}sW|0;e<~U4D-R_cB zJcpui-jnCnX;P6y#zFREu+NA0h&_$(Om|7EW?^+S{@r=hoa}o9kGj5Sfv=H-#~~pS zqi83h-XSE~@dqhzUu*+;l2Ei=Rc}vSrO#5l_*o+aD3FklE|yZ5rn#|qR z0LiITS~KtPA;A$$mhtYy)HU4}#go zCqgGmM;m0cy0r3$Lhoy9|NXCQ73^H@Mkq43_~_%A!ZX2KdDv5E)!}11sAR)p=Z$lt zf}?T26HFpF_TkVd(fEqyu%C zAWoS&1HSY=vmsy_*hi{(NV!sGxI@Kq4Fq;>$)j^tN`7Ti=VM@A~bTcO>tOf7ucBJ{g0-%_qoC1!GClkLY) zdJ^B^cFXLFi==W5jKWS+baRtuxrv4X>#_sW8cf>rOd5PbI`+LVoX?!q|D6OXS@*1-NVw#UUSpWz9yAwrMpF9E3|Ms zZl~%b@?qn(e&%;-yTGt!fg=8<8y;|-I6yy)Dtf-m>StFnX6U3A_G09dA>&~A^@0A> z#txhu1wD3^db;)qF;Ji@&rvcZc#05qhdlo6Cik^0{%vJuA9ESClqfNfX0hLC1Y0Z+esH8Euhs9RI%lZqN9XKa_h8}>0UELCvF|BM|wl9|cI^=&i> z(W)EGyuZvPBTLjT^&;5V?Cei(9H_2Ffz#1>z4W={_HiBzaAY>g2|;FQmbwYn)v(n3 zv#wfVE}vJ&CkTlo(9wplF|H@@AewhdGDB0qc$DViiLqhg%8(lLo;uh&$Zc7NG9;q; z`3MY5QRly70{4GeC;!8CJhCdDR7bHXIeH_E@C_1ou)cpHSmd(dYlqqGCf6iIm5R9L z3zy3boL>nx-zt=zHrZ1(#&-e-+YTo~1cp*yna}n8mlW);d4XCd227`%@gXPbi{Q%+ zpFvPX1y^mMq{HAA1Qj+my&>ONi)giIehh`$W4nZSel9lkBS(8LL+XcpXHQ@er>iU} zLG55PLiO6oh!MiAgZJ~M&CgYAzBeO|I^EOGCRO_z>_}c9TE=rX*X!>`Th3nW#0&TU8w@e_1h!bGQoU_p2jgB7!!^MI_ezT4T zI=!)&;^3rGPN)@bs8M*BVmmyM>$(m?ih8kDJ>kdR)W`Sr()E0_agCqxSvH%vCCADEu*-Fg|kjZpE`QIr>>SC~MYSSNY|R zgo`OpOiG(+TP2_77PPFt<2P?zQffu`(>bo4Ng2n!QEktXP-k1Pg+C&qmu z*7?Xh;opTHry7wK595^~(>U3F7dq-`?*Z!&Y^G8Zl?2P>+lE6mzaJ?8fT(mTj<-=Y zWDzOLdHvEia*Dl|cG9##xtsPy0yRi+jPBAjK;3d>SYU*89NMFO^Wk9CT1q#OymEPo zFBMOC2!-Yx(PU8zx0lvtW)+OcfI{;7tA^HK9iZgzxO)xbVbwJgx zLqyU?)$LGMKX>0wMiEcnZVuqSrcy`fZsf2ss)m1G-NHE2A8zMWoy+`;1@#V@9w{Cc z#k_cjx!YslP!wC~uTS{>C(L}q&YZ@ei97a4y>NXKg zuNe|$X5V44vPbPEpEfW&u$&Qt_F3S^)maeon^*uh^&yxpjJ`FdgDpk`g(6LHf_PuC zkJB_{i-L+m0k?g2?QH2ykepS9n8K%gQkniL6<$rlA3=Ek!itPLhm^srM~NWD(oPvy zYQ;i1rX1x&5BVjTdACOd9y$27^D_k*wJ^RZ+@X_9b#+|Iq%tP0czb$pyS(ABnK~4s zc|cS$emDm)HMVsgD9Qa11Ox?QJ+WUcs+k1v++5lFjvXTIIXs%Khjojcruy7mn?V*xJ+5G29wZrtjBdqcy*gL2sV+g828^V zF7CA9!f){=n;l81O7W0%+lFFOspE9T!~WJ)kTp=P8B`7-rZ^k5e{R-~b*BH_dD}V3 zL(2EHq7;W^F&quF3kEW6B+cnwMyuD$#-(HMlJVj1ri*IXgvCp{CZKy?vOpGTE4915NShcSQp7G>_^+@`mhnv`3!#Q}R|qxrI$u{uK>vf7m?Uei$3G zq}8^&hgSX^&R=99E9OkQK&hlQKGn!xyg1e$s-u=$l1oPU(fr^5GHxu-MNH2NxqRC$ zPHqg9Qy^=So%^CpX^z(<4}eBw(%7tP1%t{T!`i#};kR3UqEk&6IhBUZk&YChKn(!- z6@yTFP@+zCVwcNq9+^@T1Jtq&D>yCffZSHM)ohR3(7NSY5oVG%{@eRMfIx zm9+*a{G3kUFRgvPS*Eed~ zzD!`y?}Zi$njV?g2v6hu6Rwm%y4=MBXa6h81H3>Gn%PUw|JD19?8~Oo((-j*S1l8i z!~Zx?m|d!-x#So8{mo)EOgx>Ki)oJ~W2VX*iwF*myAH3&ekId?Tt^k%*>w?^qX)UC zlWU^FG#aJGcBhjy^Z(>P#=TyCvSUy_LQ|Mrx4?yF5SQv`k_@N*kRyJFU50go_D;n< zCvD3DFA8ZuE1?)D*2KvQ|Cy)qU>1X@?1fC5bfl_EJdFSQN#QrdN_?>$>jz>~{#SR$ zS98UujM^3HJCPYQGIc_xpK-FgToh@>*|8F~d#z$gS~mph{HXOk0!*V#fSJqc73nRO zSDI1>PM2~_E#cDuZ$z6CWJaN%S z3Jb#xp(If`vAfmm*Fzbp1|wQ~Cr4ji}D{m34D@;ulZqeb5A9QPbJt$p@R_&HYvrIj}Jn_5kn^@4W5* zrWKb_8x%}1%-o_^B~~?J7MqsmUsWIFO|O(pK(OBMYr+P9J(T?fouk2ayms5+4i(6`*fW*tbw!8|cBBVu*x(^r!C7kwLG0RFl0x$HJtBS-1r5BO=Z_rg z?OsoLIgB*aXjR%ovF-W^ov;*?GHez!POg?DWoo>10Y#u z;_S^{mk(3PT2*o;aK<8X;CT&evSRE9n=$Z^W%*M*&kT6&3v+IB!b(%EH%3hUU_joq z^R%Mm>c!y7>}uG_1CSZ*0<5DhBc2{v5wjjOiTzoXnEXE+m1k_m+cdx zRSa`MzfA9c!IO8^&SCkldIDx{)~{zA(gZ^@t{6feJ}r+v6qRW%=eH9dIN~rn-bD7G z;chn#6Z#b41qH83;jj8bR8ZKD%FajV+L!UU=3zsjz68lQNRI=~#+5Q+<1%n}!t8fK z3CYz)U6ARD41_;j-sLW4-Gn2XG8G9ty(sYo%UtyohalvEP5tHw1m%}lWg*3=N{~fB zeUcUQ_z>yOAfVlmq!A`+i51=DqdL7kz($s6Y0Bx!C{Rut_jG>3at{PTm09R( z5u`-*b%)PNt{dcGL&ST#z{!^q56)Y~KXnvJf9^n%#&lLj?#WbvkBo}nyy4(tT^OAi z)s(J)2|*@x-2x>_Qo?K;ObI&<;kK5BH=QH9;)rMo+>3Awgb2UXr_e&V6Pvyd+F_-h zbDmMivP{l9VUN1mMsg>f=(QlZe>V|BoqfQtG3l?o3*YsgQSnmv2Pg%f{sWXu_^X4^ zrN8t$-!^!crvJkK=Xb!xQ-5iw5WlnjJsP>GiC>L{d=|$`_fucN@EQ&oPA|n8QhSB8 zLnseC?i1&4foto6en5DA$ps60Y@}c zASlIYDhq{WBnqFPJ53V8<`>lm^zO)#afnTC;%Y)#;H58A(7T5X9&rDY7z2nfEOzEt zs)@&VTj~(M>$+KNZ(sHF=AKH_s+vxaJ@=QWI8I#kAX>Pmk_xxQl@JL)~o$LIU zeQL7&L}RYUntlwmUxb5q&$mg&Kso?yVp-`PoR3f?IfK>1UJREy^`{Vak|_EyEl1)K zC4QSXB2+9N8qzXOQq!p(L+m&}&C(8p&m>GK!L+{g{<`H)fWOMH860<>sI&jHwSuE} z`w*Nui1MM9iub1(kh|$FB-RRZ)`)-JTG{DD6Q>jJQD&Vrj{(vvI?UGK)^mRbAX-=P z8`%aBRro{H0C+V|goRUbJ}~=NN*=xzoUcvFAr~SxiD&3VWC>H^VmzrVFETUx!1;7% z_J3K=Y;kflAMV|T#1r$$EE5}SGS8HJnFQgqPg0~?uXzVh&Tws3`V9)-uKY_J>4u~SEU zAVx4@diFXboV2OlF+AeNzz}xmb{n|`EDbqC(|e`f06Np?Qy@BRcXbpAXia`tn7E1TX zIp$|F`quC?jQOm3+C^b-vw#Z&haF%s2nM10;dzt{s1~zlZ)+Jo!N=$qS zk&@jPiEE=G`)F%Fa^@7RXhvM*a64lPkuuRXEXQ>L0@5c9`l?+yuZ-n~H$kYgXlh+9 z57+u`5x_po$Qu+Q7;HL4=jJ)d6S#^SL{%bPoM3eDQ3IqyqJlVXy8N-Rn_tQFcyr}Q zN9Ipz-13_2^KTC2Q5>KYgp~}5jg5_NiMQ$N_zYX&hRdbhXd^&(y3j=ZVKwY3jNf2H*ub%DXGRXWkTouEKX19tKo7?2B@&Z-b@0l z8a{0x2yzbF>p9f@li?4usLDGs_+?~qWXo0bN8elGmyAv@P_b_s<>%8n!Hie4_K|a) z`zvqKo~&Fuq8I4NTH3;>b`ip!T1L<>zl3QBssaZ6fjUFC|I;=4KQ=o8srfPPBxR>6 z4;~5e^xT&sQm@9i{(P4v5Y_~g=%`trMuzIQ*8=3Mb3 z|2eW+6r@Y3eIqKctbDNQFzAWfVrIW?>_2-^A4jCrcoh7r3u=mh4hmLS!!5UaFnN&B zYHN-|7vb-vemgP0&dtdYX?1)Cu5&H5iLo((P%zwznqUW}H2XHAI@R4Zr*-kvUndoMEgW!U~+{?Hx9Lpjy zw>qy8#h@7;AyE2vW4#|@xC#p;EiZ!3&kK73uGX_FzU1}1{~-$yY?9VFi`Xl2K^Ao` zNrAwBTzS~k?f7H@9{;8A6It!Z!~LI z)w<=L^q)s4c$*7K=*N#o9vTgD1s<;`NqL}#>Cu=V!s*^aDGV@znDzN#*m(YYMSn@_zme zED(QE6zUd*l{VZ*5vok-F2(hu;Y=i_#?s07akI@U({9m{qZwy{l@^q?l^qlLtvjVU zjY+Xz-2^r;Bp6U2_$& zAVDU1YcLOj?5OzuSw$|~C0@9Op_`gj0i#R@PKl2Adr!DAbxVLJqf)ulAL)=}_>XeP z=u-eymhwnkZ$$rV^eDfI8MNLWW9S)0rkq zgQO6mb;|SaGZO@bIDPQc57v$`x4&IFt>iUo5$Q9j#&=L3t6Gu`PRQw{&|GPdDv3*m zwUbWr?t5F%n|ZZ`{^>Ys>UB=V2nMQA0MF$tRS@pn;@|3J)A<|SpPI#_<_k9 ziCE^fs;*E*XpGugz-c7^1=~P$;VsWisYIBSij9pQM{@xs$!fA1qBF$4wg8GQo_sDI zil(9Fx-YCeO>XVuS~M2IpWEx|m75*nZV5a2eeA7PMri8zlCPOQ(p(m5OHRum>XKx% zRj7?lUdm9tU~-(sg$ABfh(@GunSV8b2~XNpFDpgmEVgyn9VLpFl7h2_64uKknzs zV@#rPW%7Gc=rcG{O`qa<3bmFl+GIh!bT#5(-2loBQ8nB;&FSV8H!2T?Y0=pu?RtiA z#xBwRFBa(7!hCkcoz;IqL)v0Dh@PZ!~wma?OT!7U3#_7-}x_Ubd8~k?a3O}*5ES6Ba0{*9K z+I5mnyDN>q%LX!RB>k!Cx>q&3*u(oh?LW(N(#or%T*&(KaWuM&{<4!_VTxFG_2)i5 zc%P_RAO(4fr){b4(a9qnyyM!CT_v3==p`7-nsKep=YxqU>q&)H+!92oXm)2KxD7?oqt-S5TyoXWvdEbAcmfH+}CYq z5v}s(srh=^!_t#Jz@JB^=!5&qLlfj1Ir6FUC9qJ9HT%U^4kGf1f{xAj2J@s%`Z?Xi zs=p9RtN3@umMFkv^wM7`T$630A%`rIL&hVk=DED?%Ol8$lA9Ex--!6BW59In}~z!i@DnZQYU0Th*n9b=A&h4LrL*T^Y+A`v_NmM0)Z)cJ)Wz6ttxCXQx-GS-*?sgVjK z8iImOyM>KUW_Hzv4r~9DzokOd(c=46s199yb6y$>Pq>HAz*sf7dy+D39=4)hl!}8g zXpN)FnWy*@S1cu^aY5dJnK-|<9g)xgjQVOJFE0q1jt$(Rd)zKSh&3cOGT|s5yL%zt zGvomQueyF;g9Ci3WWh}&f{)Bn;J3Tu3zpzwt4b^amC3C_tcSxnkTR{WeNy*sYDJCr zykJ!NLAm+9gNxB&AH>5*HAW1UE4b#&{TY=f;vgWW56;tIdH&<0f{XW__`Lo61Ky;c zI<(8NkxmnGgEuZu)-dJ$hd7(2E9^C`2quOMOVc67A;U6TN91k^t?oj=wDcUKgBeh1m|aC#cY0P6QI;k#GZuQ!CI5PQamlmhx9~S z;qi&c6Uq%v7RyjAwbz#A_~*KOJ8^d~wc^VXxZLJeZcRM4tX{lrQt}rCPlc_Pry4fS zDE`1Kwd`wJiZiNQp$5_{K}$)1`24Bcovly)Nh2um3khJbT^86xb3#&DuKBC&vGJD1 z2&G|cWX*@@jt=RfuWTyXvV4Z|*nmL8Q`d8$r`a63o~(=@Z5bA1=moH; zp8syo`!_`T4@;8%ZBRC zd?ryzr!%Tt!UCax99+NDQ^c21vgZK7n*keWXrKGcm>{8KEU67oz3X3ey_5cPSh}ij z(iWdjv};&Gfg1?&9YDZiC??d!uxQz!R!}n_9p{mhCDy=zw2H0qy|oQ&irIo!tLWsy zzaC`d^o4m|Eoz=<`0zL9&@)AqIZ|mnBeL0^-PHUVD~;CTWi*SO`jnS2c=l+};MFvL zUv)|=r3auBn8&6wMjeiL9jhUddOW+zQ>=!_VvZsqu%+AF-8_ zzs^T(M6F+c^VC8BI|~NZ7#-7;{=%I1&$b)f8IR6LN%k`qpr;G8_Ia6<+s1|bHV>eHfLgQ_HuskjvjrBqE?lz{VB5{GJ_0T#89J7 zN>Z%QGh=EniZTOzi8+HAM!t+SKIK@J;wzgLr6P+-TcUZ9c6_QVx5pvc$Y?X%!P`65 z6wvnS%BnQyY9xlum!wHoDyZqsu!*8m5?-rr*qXSg%#i4H&qfih5IsB*Ml24*$Vxv5`q_#hawmXqX#Z14q4N|kz%nSFeOs!N^4l6wTl zK#;#J+Q+XZ)Z5iSAEcT&sjT4G*!3PS1qsI%v-bV*<Yb)^pz@%c z@E36zjBE{){8V&nns;Rl{fmqWUWd$QU4Vbw)QDxz4(_7i7#g2uornI+0L}ydH}+^3 zm3%17`w?e2OpX)KOKXgTjg8!(W0oFZABvKcC>VoTrc2QyThj!gzD>jr2XA&9r@l2t zmHD$0n_$Ud946-&qkfd$ zZnCgi*l9f30q?Wn6v0@j3>C-8XKjHHhysOZVWm5P@fn8%uU5x{#<-wFqO|5S6rOKn zMhWL7$?O-jhrK+*cLJGLb23as*#koO6sgzhxeyt|zIWgM2>zbjNVDw-(F{Vl08dB| znXR-WqwVacsX*O?uTAb(pxG;jpsK^~U&4$E^%91dOz?3&<5Ii^-O5Vd^A%0{(5Kup zp3jUG#jR|L_z|TXLb?1CmX6U!m+sVmNN_=!0@yq5af1?L+{UNAg8kOr!fjSxG_Gwu zv`ePikJ7@p9fRLWea4rKjVsR)?HyZ7Vyral;roW0@P6TFbJl<}I>IlNsJ z4@|B}SlLQOIgt98B~y$Zt)7nG9`kT;{l{-OgEk*!;7K+7ss76nOoE?=d7eQFV#KS=w3^Tcyo zRTlkecN19ggD~S$YN|iTERmhWAXr%wG_`xSn!t=?O@quU>vW}s@lR}C{Y?(6n=l0j z!muEB;m~$<>%4-yQ5x-Pb%Y0kF(-;fcvNT_*FT7)LjY1Hn{A}?@WA#>mE)8PG*gl! zLGWY#!5V3Q{ZqN!Vuvkl62#oczl6wa3uW~hctfdE=V&r+H7A45def^BbV-7t2xA5) z-CEB7%Va~D{$;YULGyaRqL2uia0E;56&?Wp6`ZoJ!z{$P{=X7%S0F?mU6q!kYAJ6n3x^fLb1{*}V_ zoA2bLb@806s)tF5ZopU>OyVncn-^yIIoEctKaIBV&{jJia;4&z_+gZ_$kQ#+^0ZGp zt%nFF{%vHPf`AeBFlqK%{u?u<*TM7%BC=|qgkn`=wk|!X;q`EEGgx(2NDpdd96IAXlY_ry^B`CTY&ri%OQT5=qQ=<=^QO#QQvaM;WzyfB$&p9_YS8aH^ zwZazuApWb+RVX%q35m-a zI*V`7fcewskKrKhb`Z2{hax<$D(g7Qp`h1vQFd{m2H6zKk+ec>%(~(0kRwa(viev@ zH*yB@^5H8a47Xr7lu0I5Nc?8GMzhzb&2uD7PJ<$4(3`*ca=bD$7{X^{qvgZ{G&iab z|E}3T`Y-Nl$Rr1%lO+ItU)cs9mX2n6&Bkm>%_m%6dXC`3ldBcDVG@9h%x_q`YizD= z-AsbSo1U3CU%Q@%QwT)#J0e1c0aA!PsiKY3=`%D#=~0;c^ICX{O26oGeJujQw(V5C zxtPB%vRoKJUX`Vi6TySab}3BwMfT`a_y$LUxRlZhe$Dhe51$vzJCP3(Hs|32_YrQ}AbKqLID5eD8B=C7ygJsQMf^d^GA_#| zjyvAIV*lSM-PhrS!dvTSqp{bOVoXaNvAlg^gwHaHYXsI4Y%A{OE42>+cQo zvvP51b4Va_Ph7_&bjy4^(8_yy-Q zBQ(N{N)lyoPGp@X+tBnfmRe>e4`AoucDK$%F3g0x6T0ex_iRT|(vzmb#vRqW->RD*u2v~~M7 z!R-rj@q_sKIQK{(g5IXM1S^$a&W1E8JVGY)c043BzBu4O`TdnQf>H-_t7Or9{wq0=fdE)yga z9Df{0J$V=sP`2!Y9ofdLHg3>%;T~&L#}&X-XTb-zg?t>w6fSajh7;9VAVg zy*krb->2@F6>jVNJ<#I<>A>wL#F;zQmE@sHq<#Y2qohfjF9%pyyvIX^?`iMO(`{0{ zKNJgiy}y=~`~;Xd-V_nIlTuR}+QNnXi91Qhx@Pz?Bd^doLEe*Nb=gpastO4;YNbs4 z1#SZ^KLWke%5{mVg+cEPcY?eelQi>GWy@$|s`{?PhvYzFJ%hL!{Px^RY#*mIDkp}~ zfzv>Yd}l_h9~uq<$yKu42^60~Z#Hw-Xg~k@l&0qwi4t3`F_9LHM0wwXJ+p^y*LzEf zwAd?ZZpSLAs_1XGv6+aTN5|8~va>lQwmty7g?j{3HdLXl3nEvpSPDXX<7}l%?H_OSHD0y5%8M!^?~Vo{)qQs z@uf9xh02;?&rK~4scF8uIA;50G+VeLFuhF42LyPS`kSB%Q7MU9*;g4z!rd<#{^|q8 zs>~J!jP*WuJ;CfnrBT1?!iU+ipU5xr1Tp%`lZQ?gpEepYFCTBiFOxo>4!wiI6oVh- zOP_6*R*@85CEdxeybrbaV=g$%N)%tAMYmbTl-vVGT8D*s4vZy9UwQ){&{$#z>p1j& zLjqDay+skd_(mw%f%2ORWFi^{QqZhp`PxQ@ysc5J>a&`ATBx=R%w=M7Rh*~vR@P`s zW|l_~N=A~Q&m=d&5PrcpyfgL8F_$y`*Q(d|-<6&BrZcX7JpjL^xajd1-Wto6TEt)O011sZrZ79 zIsI(5q@ht!OFLbc6VH!(Z?wTpT*;}IBpRDlt5FfZTxeEgYi%$=DW*70ofSDSStI#c zYQsPL!*_>L1bv)8WjB5&TOJkwgf$%Jlw5*#ez+o~yFk>Z`ah+bU4pH4ovpHKJz9ot zie*VxMJ;0XdYD<0(R;m~kIG)H#^gWwLA5jk!cK=34C>rl$0F}$?a)~gm?UsEDy@Q< zA9ODJ%VW3gwcUysxdXdH;2=g)fMMVV@5VEHq`2i4xwqFMf2}B}PL4Ce{~IexH<&bM zwuqvwc+&XLp?wN2C28_yzu}oWr=njjLm~KW$�Ik@S1&FFKtMho~lFUxaRx_^edw z&DAiM+vJ=+nw);wIT^y)hIP5kQ8zW>aymSY*OWq^au@_8 zv>Vax^uDxOmqD{d7+IwHMfkOkCf8V!S)fmcvQbK3uK=q$6Y7g-!G1AS=Vp%7Z~bh; zJWnOyWsj)L41lkT>eq0q&VZs%rP29Al*spq!geEgGC>Hko9W=8UDS z7TsGv67$qpk0AfwcK}k#` z7E8|6`xTQ7EawMP39Q-TFU)!>1%+Kno;zQIRpzWfu8NnA8XX``PtW}o5W{`N%Z0uYS z>8XtnyVo-b%*|RjWZnHYfgjNZ%3AK`#JTA$W5>T@Rj0HSH3iMrdrFDlI!82Z7TR;S z{Y8q%18vWP3R^}J zZG>}qua;>CeluTS+9bRt3z6q(BCNaKSo!lmbqk-RIGRe31oH4l6a39Zg-kgY%|w54}nd&FEW74XZtV1)2Uzn_HiAaqEe|LybL z^BKX@QHc%a&;d#d{Loc0-Qk*fw{!~{T2DsHTG7`T#lz}l5cM*P=l&%O^&jHbf3w>B zUuDh<6f(Jh+ExG1x7w29jIv4>ccsTt|6K|_bOzV!a3A7V5HL=*y$?<1M>;;UZSw&%XQ6Ie!mS}mx1i|!F%oAEbq55bBWL3vo~4n~P^JGK?R!wR!WFkf_Z{gjH$39$oI#En zc8VFqzuPqu8PhIi=zpIyRJVWdaQ{nN($tYx?2ye%_h+P_&CRiD)W6Sjjr{LJ{!ezc zmlw?3JFO%Q6a8)~_N+QneaVbvjtne8I;oi|iOp!hS!3~6NyB;v@e2`&{8d1_8=Er$ zY&AJtIs;%>z%ZvkdY=s;Rf0m^C!pDg`=ZFOV)}(H_Mg^GV#*FMV!JRw(@wJPVZ0$U ztk&q})u178GaLqyEieIjy-tVk*XMGz3mfwI?ywvYeFE7@`EQ&B6N&2cji<`sB579$ z?9NlK`YufXy}5RMVD&!qWQO=BAd{_t@`0#f5KPQ#<2avGaI-hn_9N_wWk>nsPJc0W zk5c4t_;~7_zz<{oR#!8u{C66m;em*`7lS##egx(DEc#AozMj>EbKzLO7 zroC9r2?-}iS?3yb)5Q!2{~~vD7zl2jxjB67en_X;ZESCQ@{+^K->XrxdEUd(x|NKY z5nolRypKt8*}|?3!;(;R8xfb4Mx5ye+;N}G)H+T+q_|JntS9hMW}HNNmpZEB$%cRW z^$@zBHy;zYl)=k3V*90$^l0TI#;r}CPY+U+2G}f$qz&`4tVWOeR458GA9}9$6AX4T zy%YyXM5<#57dY*P)e||gXwGywZ^Ysx0<2&YFb*Z61*3;W-6owB?hKSat6DK)x3ed$ zjB`WNh0Dqg{7P0Rf5fQ9kQV|E4bCkja#E8$P_idyDX;86qNAWy;J z?}hN?_=C8yMXcPCPx_&cPmT?0{($N!K8fO|E3e38;589~a3P5<*8HO%{hTKLgF??2 z3z|70?#Rqr-RCxL&1z)~!>{%~hRv*maUghUSu@&Yx0m1Ty#U*s09wsYBC3arwa9kW zIpvpYo@Gr-YAO1(!%-csek*n9HhVm@lbgca;sx^g7EC>MQy0Q3J_)COrz!fj3;g>) z8EGjJ^x<(=pVUfPW&ffFldKA8mi;+_39W3cMbG(S9G^^(wFY>xr^s^Rv$@j!6y<68zlV+HXeFHsX9pNs z^Y2z*seA;|Q6&k^wif-GHW&l=V}ac%Y{8;#6$;qvWs{2~*Y_6(qyi~OK*o)XBy{6q z4lKGzj-!UX4KjR+Mi*%!;SqB-Cy^;0*k}m}l!`jwk+7c6HXCq~IitiBRIx)*)nHs9 z4=&55qY2&hGaA?^ms3wA9+O<7(XSqh=dALExxPd7Hcc0hi2alz+1=^_@^A_u#Xx%)~>M=)8?j*IgTEoJgQgx&-)m zrK~*$Lgh@`&m^J0k`W6LP}afQh7 zs%B)qMdfRk>RHso^%AU#(zdwOUIu<(*`MrF!wzzoA*Plr|5ryp8n;LI(e}fXO4-rG z%Ae&k^e@6;-9UOV5dA+u198m|mG@rQ3tT53{aY^sJ(qSaCI|jZ*bo%I4f>Jvn*g(0ZD0Muewx+y*HczD<<4K5_w%@09C-5oVl3V2YveGrjpoih1>&U zEf>K>5f_?+bF=@7S(flIW*ER}5Bk`{JozYbdaHi8ngaDf-;bMK06{3DGGoJ)2Nmk4?WV`9jel+$n&3nHp;tTyy1JA}qfk>V<37 zMoM*nwf%WMKEQD-;gFK-1B$nu-_M95ekNZ9I5RYGIg_S!b*9LO5v1!!q%i1Ej2$S) zGGx&+tkR*wd|2Zd<(u=|&ru`U@P#r<1TE*Gx|8tVDx|G1xix57NZrU2C_>3|s8KPO zDQqAs{IXI$Z$K;XlXQe#yeJ{)#Kxymn4QDcxwbO@-c^rW=p4C!6>Jg=5fg&>pT0jp z0cO?jny+RLux*Aa-)vu_b?PiKpyRL>+DxHy*3>%Zm+QjBllzi4xe0Oo_W<5$+{%+>8f_%DYU^K3_ z*W=ryi9U3Zv&vuNUf-_>h6`dbY3##dR!%Oc64v%H;_=Y?5?rcb5a7{2YEOIT@R1vg zC>j+@WLC11dLW|1{+amrH>RntM<7|n9?y|%(i7NUdT8^Z`$H8)=dTLiYJ*hSkZd|Q z6{~%`0+tV$7{+f3Km(Cynvxp{zjg%30;*D|ZW@{E#t(tSFK4^11wnTmxjCtNSWvgB z{gJjGwwS1KSqKuYv4K!ehRZwpIT&t8ApPrJMBew@*b85pwZ*p(vt1{0R)ejp-cdYG zSFQ7zfva~L%`p4P0?RqcNDZ3KgNvE;&X%{S2m=hqyfTjzbdMwDTwJVOAb+zdA6eMD zJ7ONN`(L5DiSFTexc3XC>T9?vM&nOSu0|8T{l`qYChJSMCQOnqs|`{OW1}kz*TCcs zD@F*Ol~x39xnk}%t;`Tso5O$E9{PPJIBhc2pc@=$nj(lXQh=iRJXN-*yUNhv#&G2K z@s|@(j!QQKKZ&MGF70ynL4mR#Ys?P_nYdyVDh)%Ez;g7FfZ9c`X8B|@234jrb#J({ z3GLdvrb(GHR0MLP+k#Ij(nr4E-DLcTX&@;jqofq5F>>dPuEff$om%9XzF?5O75b2x zC!RQpx?mOao^+qdB+}=g_Hw9{w)5i*^0~Nj8i}E7JCuyqcjFI;)KQExtSmC4Kq%}r zo2AGj*`9X&nh)!SmlyB?k97iG`fkW4qh0HZte$TV7yk$?!`$!Rjzj>6C`*rhTKCR3 zR}jsJj(9to#yo$t9zwm!6}?%RP2MFSH8M}6-3LuL%0YUJy5)b_=EbL z&fo7x6P-O!TOJJ1jhrr6>D)g6!2vVr^^XES&vbQQA?OHSK@^qbTXn3r|H-{ z>@#9j=YC$Z!QM~P2}rB+clnFr6W!qIH4ytix1m8osJ{8fYk7qGe;pLXcQ7l$DfI2MvNA?^95T zUhSDfQF@;!z&|C~o9AdDM-qa-uj8r5-NS0Y)-{oq@XZ%PRDpCcfVq;4hKjHLE;oM5 zRhpVZG!N1>)G@wdQ^dNKz6HQ8U7T1O4S-2Uqkq75mUt?0X14&r zEy)Zh%>g@9gtn9kzd6u@yvtF|bck?hcp{!fh=*Z3% z|9~&qy}$JJ-Pr7I>CRP<7cX!3+CxTQqU|le(edH*`Omf-&#S(K^GR3W6EC`Me_?Fz zvzqU;mY_<0A=+(mhDK)XwA>28F`n@~ua^2bio90ss1;Pu_wAXXfu$;XS51y&4F0c{ zl~K2}Cb6l^*H94&=CH-IA|M3B#@o)W^(~IRpESS6X>m{kEUsoDuq?$`m3#gjfDO+{ z`P0!2R;y<%{VDloBpzsefB|CNFTI(*e7dj;>B|E@Z(2jX(XnY z`PcTXUPK3q0dn$}?Pu3@cu8PibKM*NI-z3cr|HHk{V+r(WoVEdKP5$Z686W&+BqW- z(hzt+EHlOBkxy@3Y>IZPwf6mb>>^-UOV~o~Z?i9#yL46WsF&(8yGc4K!%5I8hGL32 z>Sw(5`Wbv$y43b$YFi>PR;1V7AzFZse-7_zodYVps}M@B=PuM|JC?5M6XE%AXrNq{ zSBhpVj>Y~46Q?~@Affh+Q+T)GnJ@csg0~$HWm`R7F?gChOmV787W##K7c5c+i5`y& z7}%uY0^$i~4_N-_k`?-9hwj;u_2q1N7hd44^IN?s9M}n?lhJ#hkTFE8z?-Jej4_qJ z!^kh~vKp+SA$7ftCKH~;3Z^o3+s0b7yx{jYim?ha-D^-e3NcL$UmPNaeY!Qu&d^T$ zx@4T~m{&r(jgETvuxs}NW}vPRnEYvZMIW(T(g_uCIl7EUL@l9ijxCYkhNxY4*DS;k zw>zl9SVoYAJ5cOkq(-vVltE393L~*V5+#2CU# zam|GG$mhX{!Ux_3bu`eY|Hd$5 zD+u{B{3km(mvoj4ye+`PZXErG#QNDYVu7hd3PD2?YnPls_39C7=1khLO(gGYEf2S2 zOm9$2=lIYH=ULM4bLX73YOk$*Y>Cm2F@cAb+J0M6^WWNPQLu^K+2tYvP!frRZypsT z%8W!@Ca|BU7a}BE2j2%3TutVn*Aguqt}1539yg!hs+P^(OnPZY0tGS${KW9ONpb0- zX3;j3r0LN%vSPfPH*+H_3PQ$K3w0{paQj1$lVozpT_e2-TolzS78W}yL*2qe# zwQM=KUhU#C^zL*Y-1kIa=KywG91|fJ)Z@6_g=oWE;uL!Bmy;zv%f3|Sqs*e>gCC$( zS%=*SQ-+u%_vswz;!=aM^NhWVr*YM;=U7NT)uo*>qo~YCTlG051*sP+e@<>Qe*Cjb zx1y{)r6w^<{zgKQ^Otp2O2+sVHVQ0hBwVdG<$dh%CU&pMq{*|U*pA$KHW^b3<2l16 zs>Fx+5<^g9E){C}I#W)Agm@Jk=DRK}n-{$OL{#Oqb@{|x%q1{Ds+b1+Zj_wO{5QUh zrt+_y>g786FK1=;v5~$Nc{)18`I zy4kX`v0Qm+s+4=^6IY(T8^{>p zKB=f*AMT%!vlunLlRtYCMhIhwv0f(oKK#9YGY`U*cougEIJ6eCU=@s}mx~WO;_V$~!ekvUDP+m0BLD(`CbcSLzTt?zcGVjh zf}f`JQ+2mJ_5%A8TcV)PqaLUSBa5T&Sq6_s1hNUSBgHCRc<=Jo%{+$hm4DWuwadWN z!fJ+=`9r0@Xzx9^uKKDM`@6L`x}KO>*d(?qUCfRgz8p^Fe_RgOzi}cySsbCbTB|}M z5{raJ@|UuMpIx~%)^F?;@a5PR`HGg0Ogqvvw zO!n|YCYc8TD&)S%Us39Oh8(3A3@Dlv=DdAJmPTR5X16vGTrW z|6k5AgU@g?-LIK(*?hQ!Kic6)TK^&D;Wg|_jO$GdILQv`L%yLgItYsWZEP|8dC&C+ z&E*y0?cDw2N4>6au!7g z1z9of(D#f|DDIY!B;)1Xvr(N9QCG)@@^Dk zX++XWj(^`tks(9AVDDtJ^^bZ+HeGS)W=-F@OU=6y1eYHzjeof6C0JyJlSSG&(SO2T z3&H6KROi6{j#92@wH^JfpD)=4k1ejH%y& zNpNMA&?ym3dJE>qzf!^y2@HL-)z2UL<0}k!YZg6$>Y0FI8vaRSZl}NVjrQU=b_SjH zXtEOa#MjZe@(oE-eM)Vq!&ZxVsO6@P1>KI8P$K+#xAegmF{s;W1Fxs;E~Ri3s)s z0A%S804533Qb`0S#;H|s2!rzMYquTxDQAA=gx{N%snSafEMMj>YrKQMVxLVSrp9Ww z0cred+S}mch!9*j&Qvezu=CPBH#V;!@hPPqx$E1W<0w1Sjxn{$RBk{kgWLU z?7?2=)4{_|J!xKa1MqajkH}4=t8!YMVPz@U5^0Mi@YedjRgVEWoK=53h}&Py8L-PG zJTV%$Z>qoeVtpR+Kpx5g(HUg)VTv=w!A(9+-tyd*IC0B%K z+E0EcNy3c3K{VWhw-7a~EUmIqjhb&p-u?%k`0F2}Hs93ICHGtfTR#t79uUCa&(Ha* z4b3C`AH{+3200qh>^h_5OJ7ASFYG*x*0n8JzL!)1gPjJ@C#I0}>1^ zz$gcPvJA|uG~U5+YoWwFIg2Fnk20$f{r$uDpjZ0mU+5Si>}&26Koj60oewu&E;vZ; zsf&}X9!+VFaj6Y}IV*k)8Flb4|E_h>w|~Ry_!kK99m&_$=QWB1p+Ckt;`pyPHAKYQ ze=Bq>|L@e$|1UX?=W}M0)vMxmbw|760O(S$-0K)qA$z}ee}A8x3{h+83(FrG)vD@y z@IVL?krngjP8BB*1dE-NfAs>Vym;wc17XUPsSR-w`nbnX#XVc#CMZ=G1l}YrUwWJv z+{~wy)d%gl{wZ@q^~}+~`k3mX)eMzDcxxPKkzjLJc(J4bAfhrux?y5qFg~OpiO8bE zNt>-8iTNeQCDA76A^>vBPw)H9*CsUWFV9m(!oUBOUtlFY<#}noIwyJ^F~&a{^^NiP z%cT~oyPu^bo1lO0FP4h;f5ZpxSo%U&j@6MJZCldXBR5l;f9bwZT*q%Ex`ICc$}BL3OQKgFMb=4H2SKQ z$6&_6{mkf*Lux3xKxNO4(?HZH6OBv~v-d5e>XLK=SSsk~&M`$r(PWZ~GzvNr9%8K2 za3H1y+Q6(Oqh}D@<2tQ{$iaec@wOD6s!fVWIt8Iqem1M`IEt>6hU8{0t8+a1nUykZ zZW`0V=bus!zT_GQOo&zEfrOQ;sgQtonYF(C6-EvWb`~n-PA{}6$opwTiuWJQ~?df{C6#l+L)lPU)BGaxGh_P0*#L5aAWR1YnZ?D|xD`!;6hBMfSa{ z0riHqTEGx)3OZ}XP=-OZ%tmpLz;TDV_KmxJ8I%mGR2k-dK;4}Prti8lW0AS#G_AsJ zyDKsVY_*Xvi~%`fN)ZNoFi2p=VXh>mxMpAw_4aus4!QYN|{+ zpW712L3EugUBSj!?}}XbU?2pCa)ERMNLQx_>2T=i5L?pQq}Vx2_;jLeZlkz8vVK$V zfp59^`{7Op$zw_v@!NQG4bAC=DP-FeLb@6J zPLX{`M>re#hA_Ka%6dv;ZmQhhz z$6gUd63ITE2LcnoF>H!x21aiw(;XXQ*R3it_&+$u?E#F<>Oq-#rzlbL0A%yE>lDFa zbB$FI0Bya7OG2o(nXT+6ohnZOqYkq8d_;Tl?SdNh2Dhm^Q__3rNjlX4v#>(fQ?e{+ zD)aFPTvxzDxCwwY9Y3Naz;)LhF>OS==h4*#04XUfKula7m~ye@=soD!JoW+{q~G+#<88QD^ z{IH^>l!-#5yE-L^3N1ZCVS`-Z|G^m=HU$DvYqS_eCIY3n;=_`>T08(1NTdF#UPlm@ z+AE5n$sv+^i}*T+v?ET!MzF}AGp91tziVS2i>?a8yci2q@8=v#02 z#goXLYn*l5f{YD&|FjiqE*?Bu|A4slp}<(I6Gtm4RGL`oPE#aV zo`+j;h)WT`wC?Rod<$Kj26WZ5%KKAsOIc;M0_(5p4HF_~gG4a1c6;cL=RLlRy-raY zAnU~;i;TL?`AzXz)*R=Bu^5CuxfwRb+Q%GwvjywbX z3mMfSm@cpO|2 z0n>ley0>|!e&^2UY>tM@0NG@`lHacInm7^G+<5-C3lH&&%$pLDFu00H|Jn-yx~ZqZnYZM1*jH= z98PxXQ&Jz}vgTRIUd(g)C*VvoFAA4K0w^sWHox|3&PD+9wKEnc8Q;n2cydEqq7oh_ zINcDakF%{{=$urY)ihmjQpOEy@l1#gf0rBz3 zYRSDp(yJ%TLVU|Q`3|0Ah&~kt;`$2!Rs0^bE;xF|j8%)@Ka@pGD%9t_s8#TD_HhyX z0VS;+n0t$(IzePXLwXSMyrGL7+SzNkF=cyDqkMafG%Iy1@Qd%IXBL;}wGhkNhxm`V z>)*~OmJ!(>j>n5^Sb*)u^>p;}Yb^ya&-1^oKo5|<(a?8JzDxLP!7}s0lbp@Y1i1nE zkP-7P2D=055`bcG1K=**q=LOU$2%$Ci~K>@Hz9s&+a|G^jsga#UJ&D-UtK!?MGC<2 zK7+TGoYFou*-otdPC+T@57n50_ozWLr8f?M5^i6Pmyw(>cGDT2?IAHbrM^Rn`&-+@ z<;ShO*Cb$9x0o+zTdyZ)Ks7fo+CMrb=eLxYe{K#IKG8As4U36wrff?yZYGNyV`5#7 zUqXui05`ripttK&-AK#rB6=4t}>F8PlM0H^?y z<`*+AQ&gO<;xuC6L$nfOkzCd|ORVb10-Bo~u`6DMI1m0D`aZI!Ndi8@Fg6k6$u(kJ z#R5b#X=);p3T9!lblRw^m8`GxuH&Dunk>r!VL5RXija4BceZcIw*yG_@8N7Eo6ad( z%?vKr^iPAV3hXs@Cf-ggQlRcll7ZgQzOtWTqiA$s@-ttGzJgshZeMmimS?Qgx>P8r zJIGyJUD4fz*&e9kBWJZQ&3jEw6{nh57~PLN_}_8@yJ4covn|>>Y2pjtJSlRn-&=!S zp)*@}XDVVA`A+;Q0joh{0d7?J;GizO@_Mo12w1R>9`vO67~w)!yLjkwabG!Cqf{O~ zO@aJbTRKy=lkG093C>`EU-ljf5@M|$r&YbM=FnrWds{%y+x5DeR>8zD#v^JAZ6TGm zS==JLKICgqNj`t&9R4IUlCl)5deuUFA3}W&{N%|mT*OmTqLFdNuy^oShdEh10-th) zKd0Y+>&TMYNu_D_1HF%w5L(E$YblGK$y;DM^a}1v=-)FVc-Haqx29<+TTrhZSl6Pw z9;#m2pT}3xlU`oswafw2PFYJxt^}ZX)-I_hjC^DxkMw&~w;sXYNjm~gw$12X4|kuy z-Nt6Z$zangU9(*K@9`D8>aIge1^Ua7!Vz(q6-G!l!Nw;mt$mndF#Dt+30ewgtuab| zkGd7ZdjXJ9nm3)cRGnplA-4!mTTTW$kKfzmyYW*uG)s;uBwe~-kw1CZK+iy(i+wmx zob)`&a&fx}GO0GBB*pC%VEl1yd!19@4 z4|Z(i914?`&YNtDh<_(69LvHVJdd7mv=GNGSoI!AB6j?GIJ&!R7Q;;F*(9+gRmlb2 zxq7HG;CPnvk@mu$+P|X-o&IG3!MuE}1qq$5>;@D8vVr7ZRS!wHP6VtmoRkm5JB;cK5vE1|T^@OJrvDg$<9e z$bJKwgH$@Z-I^3HS0VK+WvfH4vRq0U%R;s-*YT3t+L+F~!0(QQ{UP)9lRV|q*i$G- zJ60wJw$V|yUs^5i(Yjqel_8gr2qn!!bNz|y^z7KPWCIaVdB)1^Pst@p`>ZzWz@K4B zWMP$z-%o&1a?=>36gS1iMbIE1m~~YN9DV!@I(e!~c4*!rcM#c&m&^%}Sj)51qM1NI z^xNfn5MzDMo=4i1qmp}u@dcVoGt|TH?v<&PamP{HA+Ngt-@opD^=m2m@8(P_!ey`S zRMQ~!SC{KBV%2LqnuKfkx={inOE>q=vK|KS1y?9aU%bNkY@9!RS-`DQELEWjIg`S0 z=wvDzgD^)D+|OLRj&dRWI6zs5=qYN?=rrl?9qSvVpo!BLZj6diEMf-i43OIu{d%d~ z3$zewHR&&^ou8npl$ap&AZD3n+)gRCET--F%U%8IY@0|&16pBy)SzzesRHTwtvKv0 z8MN);JgLx-VpffaBX~)#jL{Aj@+LU8I@*v5jpMN{9!0uXwz>PRgQaB9+(v9X^F7iB zA1cHodxKbe?z+a=FTSVg*SiB3K?l1~+bpp)1LAeXig0v8@upq#@6{a4kqR!LAik$E zEp9sF$%fjLJ!QKnn8>aVKJJ;upu&A&cS-qbj?!})O)XMk{Odg|2;KOGl&$m}D>XW; z8|z=Upszxw93<}5ttZsx*g7}iavL>qv8Jx<_aX=&qz`D)GhTse)N;`56rUs7ra)Su zZ$tGQY)Q}Lhua5qP$Nrg5~l>N%Cm>yVivpUyYIGk>zS)@t|cwKHmoFei3ArgpFa0VSo)yif2%&)x2 zua-v;KIo6lj?i1A8n+^YDth>)iw81U!>b2Bp~U{0{tEp+%F4X4B`9G5JlUc)TvEuq z`F{i{%Xv%vDXQGWzUqJC2-j*_N6Ig7Dy9NHe8fJpUFQaKC5k168^S>&c8l{MxFX2G z<34o8Go48>yg4$lFFdtr@H3RXl08+u*$AM?wYNVvMXxSahjG)=+A3z1-vp!Eq;sU5krMge z@M%zb6$wHz&$zl1D%0SP6Y#+5fT1n$jqUL{z<=!XHfvWYB2AL8i6LCTm%*hXx5b%r zDbl8=L!r(A79k@du&N$|F3vME?i%tRmV>T=8z9F|mspSEjEhCRT1=k@o7kn`9`R`l zf9tznE4*qSj;`kSSmL~EZGpQ0dY6OJ)tnh^#m~JEg8H1cg*UGJr30?m0isR)^`m`F zq1Dwcn!?`i$|b{)kao`Bj;34TppFz%Evlk5!4{ml5u)$)SG<{RG_^mzWLtFOBlf3l zzLE6$;f`SSp+>MXS0q?1!_qNuv07q1Z-tSf4=lCF?Pm2o7udQkT1=If2s_NE>+WK= z2W+r2ocu9CKTRGvAf1QsJ6!qONMs0%Q7mK9AJif*Zf<+=sxD)JmNfv7%PO-@o45?R_FJse7!)z zM~hxs{;5C zLN8+n*WV=K{K>b%%(~`Zu--6+lT;zYnLV!`&rd>6wSf~^leyq*bm6F@utz=ilii72 zS5SAmnjAI~890XBP9BCtk`Hg6e%ogFJiZ&_d+Br>ds&l9@kt|qiD>Fgp^T&SsWAXi zQEZLkbF^PK_ZE(WdW*ZeRrcQ}Aepl%Io{quBDhZtUvSF~rxvDqS|Q@@W-{Sz|Hk|F zb^dEWmQw#Ra+N-tw+jJt#(!UdVX9PMecP;nZu|l{o>jpAXL*-UFN0dLWGFH9I~F-qzsZ?trYO zu+LY@CG7>%z}?X`pibJ~Wo2fY$Vn}yX%6oX;z+@T@>e>O8aLHy8YTV_$`~)_QcG3s z&T6~`%(&Z@ye1u~R)a3)6!Gxq>}a=gs8Z*M>7vo0iqw-hVtTQk1{Mf;BZHNynGJh$ z$hMOmuCsSDD$XO<0z1-%441K^k)+E)@;8ZucGqO$F0sVx-BmNknxSJjmMlz-R_FL} zk|lDmT+H!k$Cw!6%rj_GRR&gU&EoK(cdi(8moEX`2RG2I2S+U)O=C&VV|B|DbSQ^P zCBOBa+7EkO*(K$$D7RA~naB1b=Jp%0Y;BI4JdT6r=BiC@_R}HrYYv;-PAG!y9i zlLuc#Y&fTAJ8u_$fc9~BnYy%rTP^K@{o144>cZ(%n@09K<38$WE*5;}0@1Qts2INk{C&{7noFlfqWz>oj5 zMdeCZ5-!A4kjOoj=OSE)b(H+b`K`Z(JH?DwVsz?g3Nzw_u5$9D zRqg`5*cnGjbHWBo@1nAoCE1VpZAbyGPXZ+2eX4rh)O8<|cS7>#8GoxPl4@!VjcxLgTKrqrR}g|8g6AJ(fM4w|6k+`uz0n?=byZ#I^`Y%)0Ld6??1 zcbdOAga=V_nBON7>o~9U^&N_QAxbtYmboB%Gj7{r zKR-Ks8q`V*s~T{>bzn3h7Thk9)^;A6X6ZNKJGNx$McxwFS$(TTe?OD)l`d;t>im;{ z;wed?I@)A3&2+Cw&8Pdy{!hVarCVi>-!BkfH06f4SA`fFVk?%XBpMC6m`cRMgP0ec zTaH#z&DbR(5rt49Ik#U+YBE)zq^_#r;R>G>tqt_%A_=yo^wb$pRqjY7r<6D~z3R5o zT36AEmT2j}NhH`^E2b)ybRRb77P7*TDlw-)$;wi8-}{K(aY?B0Beuq&S@9z1M4<`z z0tP4inB+IQoEOX8(n&duM-I+UFx$i{jjt%lw+m{j6OK8@=rkurM{lUap;|`6KM%@( z42ULtFL&6JBZIukeMVA8>&m^yggajT+|2)tyMCUOUmhaavet<3;VnxwrD;r{r>Shy z{K9X?;~k&6r&u3p(BD>f87b&qQF1eias!`*~)_bkmJTSobGYFW(^7=+d9rS<8@HLz;+G12x=1 zOwkG2i;MYoA1bHjicXL5APD8~&JQY72O`P97+=5~;XK#WTv5n)A0p4uJ|<4Qy@Xnr zy(0h@W)LbSn0@igGBb1N?Q3=b*WQ-apOuqC`p$}CUYuTXW>Dijrtt13)euY;ba;q? z$891zg2quOe+Vn#XEF0$ z1W+d>49%t?6um!BN_^{{w8e3c0{bUTXQFC>+FycwTW5(Buva#bRo@q97YV&o?2gnB zL?P`?LFmhFFzbux9Jf~OwmSM~J%}Hl*-NQq-hXRv`=xfWsr^-HwXaWL;jyy@)FF>+QNr=%b3YOFG%_NFK4 zwK*OB72Wb*rc#Z>+n?o*K96lYoW9=m!mjINqG zZmJM@Hy28+lmEVS3d{)_bgH$kw8eM@*HYMd_8zjPwN%f0P{M&kxE!Me`(}$q# zfNYvUV)t}^X!``edOP^_OHCD7#jWJ_SBgZrXAFB|bxJu%d9aW@tf|s?l}WxfcNOMI zdinKjE?b8))KBA7Y}FOZ0wxxlc>i=W{fEG(@jaPj7C4s>|GQ}huJ3c@`S*)7-~dVS|HBM} zySd^Nktz?&+yCZMDCOF0fa|!%2Uf3xSKj&I=+`F~1#>#(Y} zb`KO2Q32`h?i8d!x~03jmF^{?bT?8;2uQayNOwqgcXxBg!oBy|`#bwP&wcLw6Q0Rp zt}(}W;}`ElJ7j31=hJ?*nPIXLE(%H*fT+FZzE{y&9xY>t|2+)X^AqjfITUGm&qz8F z&t~+KJhO(-CV(=>cIUG*;h+pL(Scv$R*lID>Aq0wlifF~b6XX;win~H%cv=tkpuEC z4SPDpe#qzH|Im?0Kv8srw@S4KpY{uDc%SnG_8a)uImP+M(O=}RwyQCg$c;RhRRZh3 zcZi}eD>g*8Su{n16KM`u#&5 zgr5{IOqGRB9iCnq^yE!1_&<*|p&Q$bImW^xmfsEMc1(`xD0WM4&AP~K($P0~R-U)d zU-XIY1S4k_3m=lNU!5YV>QLSes~#Zaw^<0S~wd#^-6DM~Qf=$GR{k=(QG~#gjWzOWZQZo6WX%!ht%vv;=?~ zRT&4lAyy|EKhiq&wMbnMN4pd71NT${nJWCqK zjg3fi*}mozwp>{VN9W5244a833T3qF(}kUgjOT7D>f_iS25qoON#73-R@+3(q2t;d za&W*R$&0YIN>b;0Tka`ZKV}2~ylp?;$;FvEO#wdywL`$Z|R}wOx4itKpu7slzTodDN zUXt}p@&wN#Eoo0LR8g*3gaB`>rh%l@=~W8^+*}$vM~wM$ier1+Q0liz31_5+8S*1P1M0 z)TdYh`~xIGl~w7EN(=DTJcF>kpYyZPPq4FoqxK6ZUACEmu@>ST^9=JAljW@sTF|Sa zOdKprPQ_>X-}wB_6iR}Why@wihjfO2a0L3e;G+d$W8_sEnpJuCU~Q-92#IL2zoAp1NEG<_+3FKIt~k8EYT7Rz)908nLTj*Ue1x&HQY{}w`8nlPA&b)A>FlBQypIs3Y6<& z{tL#xQlT0C!gu!VjN|$Qb_H)z$9wGhk zFI*`@9Rt!t40#fg?2qG5r1tgrV;1le!V@cxm;2PXwP0db!AEG=>zh@gPcxdk zq}XBXGNcU|Tgm%n27*BH_TJ<~ZZ04SoEvhbI*rYqX@^P=ZNf534%WCBMvq}NgIMqu zrFdcghbk^kZwenn%ySl#UfiOG>|O|hA=V=z{Gm^mb;ZwpL#<|a!h``1*zjgLnV0tc z*MLV|qg_uxPMG^fRPdn5p6f0lvcvy@;QvPXyZ;$F{uS(xmpe_Q!EiN)3^*=t1ZPLq zD<0J1x;U~G%o3Q}yc!ok2fR()1aF|q#(c6Jc)*wf07B&%U1&t)y&YM=B5j6CS~IoY zwngjdNRAVZnFK+c2m#I&FwWlFuFKN`X{zXUhP{dghA=qd8r7y#fF za8tq(KQcH{HCwFFu8AwSXU_c)5+A#@m5&ppKkpXo;Uq#rgILc&NG(k6SrO`#D~iQRwvmQdaEUMHHNl zX6*oK?ZIdcEp3n8V#rqRmiP}OOVXvv`>bvXin5E?nf1boZcVh=O|{GVdSKV{8#7T4 zJxN;Yhvj^z_Cu%6Kwu|o%U=yVtFI`r=gbf`!7*iL@BE3SUeZ7Zx&B(wp--njywQX= zP#1#bu*?2Djv83oV^53gBXSS%@Ns;AQj-503+c%ERuw+SxXX>ajgi(S$gCaSA9>R~ zmjzis3K1*1$}|!C^6QqI_K=1)jl@>90=cn`e6pOnj$F>f=735=Eh`cnYb5*CNKTF_ zs-+Aiv-MWOUtjs$F~c%mz4*RoTCluC;s$mXbC6tpf!(jSeH`G2Aj0Rd|8MF#aOwX} zmRR=ySbfY?l=yaQc_h+f%ca5L(eFa7(&FSP@X*@fOm?5cy&i zRDoy!x;+iiBz>9g3CXJ69xS7X=~>8$Zy$umLEnY&Wcj7Od2^9})f*!i=lc|#+7l+y z5pZCRk4R4UG((h0SM*J}l0R3=TrVKrLpV^9lX*y^S$C@j{$Q)FE49<6t9LaX0X zkewUW7~N}R6f4c+lX$E;AIh=iC6XcLSzcw?JS5>ei*r934Tio67bdOeAKP|(2vjXC z5y?i$v@xub>@{D9qUh1cz;%ofUH~DtM-Z9-8`_W`%=(0ZX{AilhZcuY&+Ma0+LotW zQor~oDbt>JWG9siF58;9%zAZ$%XA+K>L-DYFg!A8mEl-mIoYk; zZ|V>(mm99nCo8xjnm!NJSEu39Qr+$qdD4Kh*wD^$#hcsxHofZNY{TTTl|J|-AUo@# zaM${Adb?)TYVJX4&xS01ZIg$rBkcq?*~I{^f7+%^cfFSIWA<+CU;n{+@OLp-aUpOOJZq*du^u(8At?am;YoFq-{mfv!Hyvk?2PTnO;n_vV&o(4PI z4s>YHdn7}#TtWTMbFe88i~Z-w3m;|dSt}eX16B-WyBA9IK{670?QnbIvR|>g!W4%8 zzvAS(p#Rwx;!#a@98P_4tZo+{L+I6^U5PI4-vi$Zqm{$1T2h$LTy7DRV3}YroBr|e z*@oIBEz`EY#kIyaHX!}e{1a?Bh7?I zM=N2WlVLt$x&`UA>?V%#HDtb%76e4p)##ZbfY!qHSBtbc%jR6uH=kinP=6aWW`(pLo-lt^rz(_@|7Yx%M z#Fni>JwfCAwa(wrLMa+aF7_$>BV?M=vm_EsCB#L)B0nKaHzGw^Rc#OV;}Qh5sC&9& zpb&A*Z@Hb_?;@M+ashOc@a&JxS`rL#_-vgpH`r{VP|$mgeZr@Ej6D{OQtw`=*J?Mb zL*Drlqn-<3mwe7U=NQRu*3tHJd%FdGu9$kD`Esu5CYNYh*`rz7UEB|IO7Lj-g%2eq z7xpVO(dBS$#MgE`{z-uB8TrD+P&%nl7oHq*E6fWlEsbzO|{7;W&=49XDX^nP3GB>~R6EqCL)?L;tb}0yp+pVhL z&0cTVSFt+Gq|m-{IY-tC64rL#UPf##n;J*dcH?+O&Ge?rttFCr*D!P;C0iu|o>yBC zA2Rx7L`nH(x^E~taF&bWyIE~jvDi}KXYa|3z|Gv6nauL=h?}3R?~J4vnjcLs7w>$Y zRLj&l{buf^ZNlP_AF7~P=1WsTeZA4O{&`q6&jK{0Sp*k8pPa&C34`tYqd^xjJ(7QX zIef8X=_L^xBUZ{7agJ=I09U8C)IgrH)nQ%S(~tLX8tE6pYkdW^1h&x9QMywP>fjrj z7hJFAZ*0PL=1fItTYQR!4OQMu7|VW_Jy!NP{Xuq1kHmC`a6H&8i5?HJ@b&o8z&<@f zj!-a7VjeN8v#8QlMvV7Co8gkpliDb1h9TFML4-TKu zQGaR`x{{L2Y`vbFH_#6C))SIz+M%VsOjl)lf!G6y;fkeK|BI%ou7%Q6l1QY%tjKGs zq3(;`#SE_NX**_)*TVOcd@~>hFLi`sZ!Vks^Ru=gF6ItVL$O=oAy*&U80dCu4<<9@ z>TGvg>vbvojf@P>i)_tS@T-_zeq1hc9_f6&z~P*h zC^}GUq@$i3MDW)&T1BY7T>n13IJ26r(q`fwk;Aq=nPi%cxaIIFwj>s3#3$U*3d|8C z_`auDRPu~NV{BOZ4OB#>I{v4KN-;vgMj$Rv!V=9*M8-hruqC7BKvCCV!E&OnNJVnA zt4g%v>(Qn}L|zbkCtHwJUP~1vCYi5aQlA(Hx|Mx*MT8Pv%h4M1*ZbRkXoHVY>%C(! zN61|;M$VeibKJtQJ-m@ci*w&7MtUodZKo>vvjYH@Kxx)L%n&7W1{J537tTJ1x>*my z=1l;2lL5k`k>*L0q}?aU0RcbR+^(P2*)G6KSQSk6YK+*>xlFcbU`e=Bo@YkE(b2oZ}V`YThG)YR6&@M!tpc$I?8itm+zosVeIL6P{ zBCt|v#dEexoC!v}#JF6Phh_ps(h6#M+O7*vrp>9Y8UyTX0EwFr;f8u2Pn`3#F}nhC zG70^l-|?z6BQvz(hH(vVn>3JOx9r&+KhP*d$^3_Fm85H zRG2wqEX>WYH$D$pGidBCR&B(j0VbECwS~5vFyb23%F4jq9>K}^Y*&Xcsh-vPF)d^f zGT0rg;F|2HVuq*PL|B&_xUr65m)h2xqh*1-k^L#S-hUTp-yF(pR$1w$IC-@x6a{); z`16}%;y88*#ppkpED>^w7OdvXEVbCb@rfMuAGWfWB#!-})vqD8CEAxXkm@k9cByAu zUNXo}s%dtZ)g};|foWu(>@(lEw#Sw`t0A81mHytl*^xW+C80s{RDJA!(a&IkthAS-8R^E^Ac!g3dHgoU|KUu(Z>=~f?OEwvkb zd%(F=Lr=FLp71u0rhQ{Ay2}20xi)oi_$QBJx$O6?oOA;s{;)ixufIzK@rqNN+d^Pi zFEeTd9vF1g)GZnVMhku-Vm3C)#%S=d5cT%tkh}a-R>lL|k=p2mwe_&RH~L++~LOF1}VFxXNf+8^Q*7E*dDZgAgTCI6yps`>g&>IbnUHu;Kvlk^bI3xSH_ zk^5$BEzILE#}4B<*>ul6n&k7uDeGRQGBc5TC%OSf{;0Xwx+k6H*#5Y}r;dIV&|3>) z#S$;;qsQi&^OerrEt=^mYLSFGomi+i!avj@65D-=fcOovXeDl0T?6sg*I%;L@k%a+ZTQ0EW?h?e5*VEPqIo zEW4K-{tlCXLebdw4}H^JrTMpFp80idFUJQKDNu|Ck%+W#c7DPyC@=yn)>6Hp+7RLSN2C+7wgXOkG}3I8?-q#z7wm!{}ISYd^XiZ9pC+)n+gAW_fJ6WrSQ4$qpHf{Q?l*_+nMQ44T7SF2sSy~%Mc zDUXQy)C))HHd#1@(q~9qwz%mcjZVda<&M<=iPd*&If*UHch5Q3Q>VYWN3qHAZ3LiuDzluo59JCCUGJc5RFJ!XgiBnqDa#c8 zm`P2N4wf6Ci-y9Zvp?~a&^L)Y?BX2Ug{d!tM(^m-*ql&*z+t`j$3oux4Ha`kvSUr& zwF8)9p|aapW0eHydC$yNsZS{rE0ROjJLQ;~zREx+$>qxXdIfFd8zmzbzYx0ReAy!B zsMaDn?uUk1Y6xl{mqiuE=25oWVMN|in@l$Dnio1`D{T>y`#ZZ$~n@N2C)K6|ru$~5iMD=82c69hxbB8u`$wYm<| zGC-1EJOvO>^Gn(yZR#_+#z{XRZl%L$n3OOYwcK8+lnLBfa}*=6bnkwK)gZuGBzrF5 z^ZHi)*?KmnbUNo|if0X7d^AN256c?rgWJeexcsJmHSyhFhRmvG$(mfNT*NBo>Ri2E zCy#&?l4hlv5xlo1*Nz=mVEE(NiIo2yMS><1JGo?34 zQ9z<2eF-{#Mr}--P0(M1yvSQ+_?ThhxAeR{E%((aN(PsGs`sc#7Q|bm zcLLDCi=AYdW-7IFy;1hb_;li@+~hXZ7?7$LLPJg`mfV#4>3{KJm?a=I{jL|1>xVSd zMmt4U_jafcbhLA?g*BkqgLf=Tfc0}`JShcbF&c4Jl<#|4Nvi6ZO0SrhIr!$LIwE;4 zzV^nack z-EQWkVa)K%Lsgd-z;#sj0q=uJ@&BD01CRqaEM@hk z)waj2LmfKQ=h`7`ctU_9`z&Y$0IHMh(YaHo09N-Q2oy(}fv|jMR~msPVQzoPzTicav<;M7U1qYh< zKG#xx&wLmBYnJ$XtzOK~{ETf;As|o*OMa(=BRG38zY;>HPRLbJAV$Z1s)HXCcK?o9 z6L*lj6fqk@KD4ogb!j2AG%7WqX}^&u?samu%=TTUgq4&S?HX=_l0gm4|8W4Sj84rC z2)`m`>s&;eft2b3PX&TSuW}#hCnI|ygiU4QvoXU-<(5&>jV-XjX`VS8XeQ8n*m0Mq z5M}>VQ%X%YjcLev)H7N99rNn9s>`G7s!+{bJN!SDq2Yk{ak37g+BQw5+2a*N{@Nz9Yuplnm5l($H_`QAP zFN|XslX7CfMlkC&lsk%hUsNPxXW_JDxSA$u?8hA0Ar7U6o9erwDFUQ^CxLzcKa#*F zR@@upx^gQE%_G)jHN43!j|ldqGE()9F>ZMUR*xrW`Li)&fCz?RVPYI1^6K>xb6fAk z^|<*4^iu%vV`0rUNaR*|Z)_N_VWzowRN-fC6GvwL!_y!PTA+E!70Ij#iQe-2o*hjM zKf@bku}=>n9sgIt#{5GDlSEof93*n5H`{Bh(-cuL>^j;I@TX&s3BEM}XzYX6so4yL z@@lg)2&jxG{|%!D;I$wHJqCSZOr?0zPi9VHUk4f_cgtd{oCOPHhZFLY;^HfDD2i4S957yCpp|Cg5ZmPI9`y(N>MK< zB%sxML!)QhhktN7O}lp`{g2@PyBzutClWMf1B70LA1Zm1qJYnJN^5H2do(Yh;PsNq}2dM ztLEDm1_kyn13&I_iZ%nV>U7lxO2ox2M~Pa#Ojl9w;NAL5O>#Rk3e#@DsA>so4LhI10k4D@_w=d z6e=H?Ns9*_6P{`Y0>=xF_NzctjHQ|V=3=$m{WkhK=&igL0F{XI)6Cl>-**B`+VKxOu%+f4nMp_H1w;FEHu7>Uri(9GUBdc7<{U|3s81L= z{0zu{8iLPMHx18!Q$7hK5{babhWvOR`h`VAuIqZGSw?wQ{}~)HjeKT(qp?C1RS0yh zE#<#7S-*n3b~#{&(%dlCBujTsABcyEUBKgKME{dYAOMuu-%V@ar~g9cuxupT0Y%|9 z!$iJjEtA7RtVCTb2`HAMflb8%p)9FhD6`pBf1LL6!LRWu@jppOaC(w0_Wu`+W9mF# zz*kS`^c3!0`%}a5n}(oAl}>wn1B8E749X|XxzM1vYMXnow3F;Cy9<9n*aD(qhYF!U zDBCKO<9sjhoS*E3lAn4MX?xgeI` zyN`FU)zUk2xsycO39bg6HfcdxeMRD;Qykzhr+pmdHOt>#fJWg)k>HMe0UVBFO|LZn z9a~27q&@*i@&1cfu!M=7t#Z5523V79zj;d2f}Q$)90(Ks?GKW|2i~Z;tdi<@Q<~}D zYD#Uar=6KF$+5pzEp)%m2~K51C_771Q|qlF+FEBU#iM56U`-^)u~-69uk%JWxyLZ? zyNwldOZbNBKq9{Z3xi%(UtqW?52^8%MV8#gSm$>jN4fxKqJk@u9v+iUJ zqt<9i?zB{R=$k`&m3vyvJP;SYdR#ar%n~6WmCkID2Qlqg&UHU2@;M;#ecz^?XFXkZ z4R3U5z>x~VIx}!R_L^Vjg5pUOf3q$Uh4WqIDt7H84d^VcVn;1n1hhEzyJB&SxlgZ+ zQfb}yt99R8+}QQi^W!6|_vqYMiv?pDsbRsHPI<8H|KiisJf`sWdG*?$2cl5Z{oE#cM-&B(3cOEM@}J64Rvhjch#$lsNJI`5r44)2e^nM(@#xqR~fsb4YI>^)$VqQZdFel?dSk z(TU9%m$GtrGq#{G0=M$HwauoD4zR!HK+F+iEn)crC_2vH3JWo5(NTwk*>weS;2JYW zDD$w`5Bhz6$}bAFDxI}E<7Ms>CLg~msH(5LE++lM*AwPwR)&9Emgk%g31eM2s8bl# zIB9`B^(Sr`b+eYuQh;@OCJ5HTgoD(zuuWmSshp*o}%kD$Yqz_9C^q(*R?@*Dr>) z}X4tNj=bYR4}ofaUNwl_A#y5AGN|HurbOA__;HIt9gHVp(aMt$5>VEXV5PeG@qn@Y{9r(bVpiGe zU9GU_Qa`D0%xb&cqo0p<+?6AD>7T$lLt?CwLLJbIjJ8XCt`I9j?(5Q)rsH~toC&7)FN;D%4_I8h<}8PPsUjT?UROLgfo>k z;1%%B_tqq)v;phSPDB$@$=Bx7ihT|wG`hLs5{JNtaP$u(>2HVF1Qe3-PPmo-~LtBGQ*|G6(5 z>6?kqN~yIc$f?|&(m98Feb3oNh;T;aW%I%FtpJB_WKWwicwj(gAY zV2{5j?%3{%NF~LdnSnE#<2YvXWJ^4~Zh+uG-0R|=i4H-^1VU|{+{~M5TUrkhF#n+% z@3)kllw1@i@+|iMZi2l;n~tbtj@tk zfp=M;ZXPq3jx!OZCEzc6%dz(|o);-k!9AOYR4EGw&sOLdvGaX-mA(l`H6q>Z{Q0VFe}&(n(Nwr`9yBX;_=mItic`ZfJnGmsl|Cx%_xI#rV9*`K zg#;80pQP#IS$#ij@8}hc?S4^45+uw9YMO~jyD7xOoEMVw&q9{#pAORJjil9;qxEsr zb?bj&^3E{)(NF9|cP`&mf)4B_U;L8+f3jW;vv6@FgH~p zXT_#DyF}X=N!yh)Sm)|#*)cMa;BIMmURPL4ID5=CK+D%YF@Fs3EK`RCzwp{HSu10Q zeP`9;!~85(x;+{*a>WKGz)Zy#j}Ki+Qr$7_i9>F}8EQgO#pyG~vi7sIhcCB^M@9m2nqR)(u2@9%~Z_@FF z9aQy4-8F5`OonmINxp_U>yw7JgY7R~hY^}QObsbqm`VV<{o4}0g%?6}JJVQ&c(B|- zhIv`OSx~u{T=thaRE~9#G`DBYxq>ne^p$LdTNa1}Ij*YDPQL-Yv~z%n4w%p|BTdB_ z=ToCs`U#AL*^J0>9HAW-*e}(lomkt8^|LtylT$tua*#hbuwJ3C#3tDL_5KdZmhF98 zIs|(%C{YKuQ=2-jsugX5^z28wMaFuo{;mw4w7G&wn5w350HUNU+xm;MpNFxWLjLNY zK%lBLw!GuWB~RWwDoE2|Uy8p_5GFfJI}X3I$|{zgu~(748}_tQ344q+)X4tYxQ}~aCtyQny*1Qo|tGiYOn40kCFr5;z5krX|Mrr zu%RijD^3mx#qGJgy=-miPvas9uO>PFRh;&h@ubMy^E}?6&kI$b$(ta_ƾ-F}Pe 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 literal 58116 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

    1n|DeAbwQ_0V|TNdgje0zV!6nPjN z3+E|nYo<4j0}rvUC>;c*+-yV1cw`9|%4I#z6;PdNRaOJpnQ=zK4>lD7V*(@3Q;-if z(iYrCb`2Fa?zS7Cu%1w&!~Luh33;s0YU8zDiviAKTL-x~x^gx{rBe5hw?jpXDDeWP zLkAhr3#U-jW_H`2(^q+&x=Lul#q9BbNq`AR)Y+nSLn-O*cp&?Kw!MN&so2h zyMWa-XGls`YanJA$NNNq08ByntR`I+=K!@ZPvF#MJk9xi=r=*f5hV_)MomY&7%I?^b3zq-QA*B1lJnhGA}39)Jj%&>pPg8 zI^Jc}L`|GQ$gCsUM~(fR-c|RU*7qlib9RiSIlpX?8=h1eZGY8Q`Gm3s*KVABZ>n*H ze*6Ix$<-+23d|{N?Hex@8uoa6n(J&vY^QrYYG@?oY`oZSQuN=;XzKgTZ>W`e9~D2H zI$%6blh9y@(1v)arE2;f(L@X7zG4wYZIU)O*s=9lZ{8f=&gwRn%TlAuXws&$3frWl zkn?j})X~b{Pjka9E|QbpXPDmLYCX-evXqQR`-K=bFsRzEa-x+ypd{)kp@p{I7(}}n z#a_&*ALHOwXGH+LKIN8a(Zx{$t6@z}g_v8e$r?sB1o4RaTXEK-3q%1?7y4vZb`aHAV~kb3Mrir%LIw5Yx%7R*JuY)Cs!_x`oqF+P?H9KqFC5RJsX|1%oY!pZ z#=V@PO3;>R$GF6C)mqKodx5job~@dE9HSM z&tOaOxKB*oeHf$7tB}%KZt-yYuEkrs0)}kynfLIyfE>|lx1e>OdvCu*N8r%dYA!DZ zW01VEs7;)jqwY^Ns-_CftN|uiyFj|K{s^?+p<|WSLQ3Mn%EhjJ1ZP>}KNw_OR(mCQ@LuiHJPIV7+ABj7pMKa?76Q`9?0bCVG@T&n;zPz513jjKQ3jEu4dz znsf*hlOi1QZb#3GuE(+7kNb|(z%hd7Y;UTZSFg$z+yLbMmtrCc@xM04>`(9vmsnbp z?#o_39OGg1jsCE`Y7Y!I3(($*S=r{((^+u&u5-EJ*Sdn?ymP35%Pz|(f1k#o1S&IV z))?9)om(DuhWpw8(`mImxreD32IHA>nE`5G&TDh)rsx*Zgm>**DdAX7#$m}E2PsPx z8v(iY*n!EwDdP*~;Va|wqjp=`{(i7OdtHp6HF5lZDPRPx?C|+K*0^-Jt@fq+qt?kh z%q8`w@e@pH%un)Vqg*~O;OvadC?*=&$wJ-nR-Z2r5X7!8pD9yANLgN2S-z4|)QKbO zz*r|b+O{{&lT|S#3oM9geVw4EYo(A3vUwroD~~A^@@5wuJ$WKC%K%U_nyC04$3gRz z265GGPWjZM-efr#1Xp(--2!9491%TEA`AWkkq{d3!f3<9C+)b*R)Bc788_h!c$7D_ zWrw!WhJZ-7m^;F}3i@Izq{}g+t@o&G>@+WaWktM=w2Ew-%@EflQE;-ACBvrRd$yAY z%E3obi}Tyo^O0Grj7Uj!)Hx5@X66&@ho<;$7n3mJb2-*K!S>#c&;thy<~BAU9*lc9&T)3sp?X^zFCCGITLO8`4(-HQ$ihwgsCMr`+^sD&hLdwlC!sOKUseR zLyY|#z$oVI-oMO_Sd9@w8BO4^%;rgwPV$lS-Cvd1)1;u06DHtSU#C zE`EM+IJU~)z2xuDgSInA(uZTXJq8l+*81>o9jDLwn)=?hA%i-{-?mgQdgb|Df5x)1 z=1Z<2VbcxL_XS03iHNk!uCw?KY1`I}1Q(lZS=2>fr)|g4IteKcCKbL{r`c6{dVmMP7NGh)Bx$&a=t(?hQicOvNCd1JKAJlbpca~!nyfvS*?V7pL z=mtz*iYT(gc4?(RuRUu08NHNdiP2);hB#ETD2T!mDsqh+qi;9Oc(RbL1l`gWJHd`t zS#HTsblo}|%cVQG+KIeebInGXai)2)Nk?qxybvc4Bk7&!;7tGq^NGhQ(-Hqg8V+@_J-6PFQU9t-nq=*oync$3y|qWH{Iz`!MvJ|4B5tLOu#8*9+!<;#kPAZu zuWd;BDHk+A_mlKUZhmDHY1V?sMUn2$u&riUOYM_QT73BQV+@gFfsrU+;Yn5Fn7I)? zcQ|PQ{^)5X$%M3q7_@STaq_(i|7nk&Fxm31Fu zG0@6NZSSbeh_Ot{h-4v7^ubxEsk@>cZh_oRR}_jbPy!?SEob3nq@c$giONIelF#H_ z8*Pu})Ggf4hwYOZQ5%TFcQ)jXCE=JBkk!9Ffl2s=7Th*~(LA(0E=<|1`}q~Z8{^vW zxxG7y-ZP!^JmPtQBh=06m%ppKa@hnk@zK#~{Z+wgkocD_US9JfuJtx0RMeTX%lKvWRWVz0}2FHtHuBzJ=wLC|M z1oZX)Pbn`n-<&_KA(Un)(21B91nWR0#TdRkESXSbgwQX)H$QDdlM%H_&RdV%O5N zK?TF@E;_^w%)1WX#H`y_N;O6Fn~u^CPU$MY+6Hx%_m(U&#T@9Z28N7^l}}^ZQL&PV zbsw*9Sq%-TOv^944s2#|d9KfB;*n9b%QSbIr*x`4`WUjk(~VrNHcvE~ZCrw!M0nSJ zWW44qw~wX6^x0~Ox({}y*58AB6!ad4XL}n)#4`3v5cURWH8iu;()MYU>MNgsP8G)4 zM`Eg_Azt%eO%2=(5|`)~Fmc5t8w&fnIc%P~PiMbW042akxs;ry+g88@n`opU6*4L|Q)P6d@2Nk3&oF;Fstj~R}Gp)LQPcK6})ZoBuT3s^W=H%dgK@cic-pzMmrunjJ~IyXOWWy20A3StR~78 z9Cl^08kK@aRrBL1oHl>0l2T}BB@NNQM9oZ5@CJCJ7t|(IZPaW-c)g1KvcIa+YWM!4 ziizXnRw1;BbdO^X<^1p<06*=Iu4Ag(1!Bi_?3dP)F~R*cy)JC4cAhhKe%Ya(OfO zS}eZA)Q~bxX2JJ|7T3<3TS8NF{e15@wfN%Xay^^L;R_Z01u9CnR?EuI^}p<&pq=V+ zlWd)lK4zgV|jg%l+6C9gn(hyLsiZ`M@OUTkml^E71tBAa^us#5}Dz(b$l`Be! zzHYbv^zUBf`ZCEn8XG1{%_tXyIj*|i6vXa9-;iHE{8l0mx}x|hyq7Jg#`cDjma~qG z&10?23%g^zA@^#MfvAcq1wF2QH5Rw%{yL?+PLNxeO@XwxEthM2jOHaC(pA1rUodE& zv>9gd9~#4sV2QJ1u2mfyLM47%!BQE^^?q27zTm?S=d-vT*-nb>hr zEmChHAY|HtYnA=J&&{JG3=h;g z!1yKfE;Bu#GPn$n_)*KzW9HAm6pns41i6nFX7TYp zN&v=EC?h_NOt?=SsVQV~I3ZQ<_7#7NH+BC^5{EB&g=>>f3mthEX4;@Msaw^j34Y9v zS}_lkR(t@ve_6uasbbb0aF8kpqMz=)8W8)*8$f;?0srRQ;0k)!@>>fU|N0Q7KfcS^ z4Lzaz&q5rMl>t;v*l20z;%S-W%$p z9qJ=uq8IpR+!0^i{gljqjyBsk69IHfBL@g|H|!TP z<2e*_0PWy?*M5BpvuO!48fZSr8D!RY4v-OXay-)&9MWCQ6X-X^?2)&=nF3pF?85?j zr&)Gry8Mn{I>O7|(+G=^!-%s4JqkGO-+v1@?nKSRX0EB|t*bP`aeElM`P*{rssxd7 z{7;{Ll#A8j8O)Qu8_@D@a0lfO>OL*O7eC zxN2O|S)#fGX{nxbh( zScdQR)X~mMvS*L^C9(S7tdqToWx7mGo8a~MN#tMcr|u)bdR{x23+PWO`2)KGFt~c} zr|a5iKFjMYZSMfa3FECbbm{I-E}B0*0mPruK+1Zxa|4{F^1rk&iXY=l1h&rj8^cSW zupv0ME#$)+21F12bxeO8LLi*wyWlUw_~*4_`Lh4nAoJfBb|_ofif{K40aEL)`sRO6 zYN;Sp=+GKI+t}#CJF$nE@k0tFhm$&i*dL&^wkdzlM=|}DlEG^K0KCZXd|(yTh(0K4 z|1reeS!$ZcI_}v-XOO?ZwCGjFhCzI+ft9{ z?QB1jPHMbK&cJ747^g6ssWH?jbUK?{BeDKHrWH$%m4O;tvthqkgVpE%Xl}!x8`X?= z%jdy%T#0fo5-A>?R*Rj(THwK=Vnol#zo>GH3QV?@t7^c@;BK}XA2>jtJCzz4ZBI&> z>oaV;9c^R+Ca{_i2U8p|%cs8vG)JqE($IXEkL0-)B3%fV?K)h|!SHu?iFEfWA4%~96QHN7IwltOAaF;${a=RF z`M+oqDyRdB1X}ke@ua&M@}5+yy|J4yHKCuNa6yeNQGXn9RCjZzq>d4FAsTc;)YMr9 zi}Rl+Zd+8fc81NH##7<%m36~nWU6J2KX)gH#gK}6Sm#$$luSk?5-G6YbRiu{_^;&W z8JlcY23V9BvYxP7h=BvbJ*?>M5RHNx21sq5ZDo@}wEOh}=vi5n<4UBo>H_h{n(Ef8 zE0(Srwv@g&s%KfGTstCqNu+E|%6h>Jz4yuGJZH=`Ui}_Li*_NNC~M&NUfEN6UPCA2 z*5?6a5i#s$?jZZ+z5S{B{khth6BqmZz2z^qYloCD2&2eY=Ff2>_=4pKqtV?x-g+n1 zBy)*$PV0W_yWmZRvG#AHyEPuafIe(!jwyxRCuS2NsE>XiuR7naG{)BZQPgggnU08y z-b*)kdnu70S!-D5r(I4FhYKR?23E&`3J06(bDl$bk|I(d`V>mE@4Q{d!OzxX#Lcby z^+0qUqZ~o;qf_}6q4LWV!5Q=F=4wyp&mwVRY+9Hg?pa}6x+OU2It&{04&B5aVF0)H zYU)y++#{}h{%yDg9T0``xoN4@fdYe7l||*>Fb<@}#z8yT@n7bh;b;xhY$omXu>^)n zz7gZQpiV#u8OV3SGm?@{cPHl+_(pH3C{mOY^iAt3Cv}o%3Lcd*ZL9qe=fs3Hh<;&{ z>q~ABo7GEg)wxGol7gCm3@3-w^pLceJjeV=11meV$i)0%5<#A*tO;H0BD_(M@Y zS+qdYJ?w)rGJ#0Z?Id~zw@j)V>e1Fz!BI9?th`t{?30Q0fpKKC3FMh|0)8OzTkEQp z^?D`Og;!=wXa;s*Ia^kw!TTa92|4 z65`RkzjT9(=uTA)RVY0skon~I1Zv$*6D72yCmmR>TbGVm@cRKu%%BcYxbxTFjF<)O z(EwZ_mY3cSwyIUW!rq$y;mLaDjTgouqPT@-MG8;ZgL)U1P^+y`iMopKMDtkcUTK^T zh2>~SpDcPFTl(s6Fs)hH0+AgC9;Zyp0+2-!yA@op1q8NCF01vcVlW_eSCmV?8w_m; z>eHbkT@Lz9-2yrX^^dz~HYvTRgVnqf07YFm#DEo0gCt442=y9RLiRT5M+8siY_cmqF8P$T>>DFvPs0FqxezCOjTaEU8R&UYMjAoxx2VJD} zKxg8{eESd~Uxy3t-KOGFb0ET>r!^*J6too12Y4w6!->1E%Of9D)OB&S?WPR1G?hk@RZGJ0X@)?&jHE z(6ag|FiEarSWJ*Wf-yez5wh(;@((L1k?)DVXg zLG%3&s-OF|7%vW!86M3Vq+PC!Iy+_AK3WNcK0f^eG9c zRYIaT-t|C#O2$WXa}cK=7qu>6y^o|UZcJ@R+%iOdKL`&(oo#?zI?R`6 z;E%-urR>`{AO6LjD3Dt#r-P6ECNYgyf}qygtTQ z*7AuyQ@h6570iHC`}LK5GyVoaQTz5h+b!u3QT8^ll#yM`nx>Is&$6);*qxp93Rp9k zKmj}$yN6u_%5CgkH{;M#5Oe6tbAB*g5iwq%yDbEcfc2MYkC&SO%L4!9fc_f@AE5Y| zG63ef{XTee*K3#j`~*(fB501qPA8~#Up=nV?yFnZcchrUy?rqjfKk}Mje5fyNdp{8En=#VT)t+7QtDRfj zD}>V|)%C98>JyBXi^&Y&jQDn1^y?o2)sn~0`9k&XDKVm(FF+Zd+5xPHR~s)C@nM;@ z8Dg-9?RD;Ee$RaKWVvYe=K0+I+DL6we5@PCz93nD*2`~lSHFi)t{bSWdxG$GBYMXW ze;G{(`nsPGpIvoJWAMnnNUYf~m-4j~+onQ3&(DE2{+5A$lj79Q_e*ov z^_Emji%@eVM@Dh7YgvePOYz4da@!Ln^+vDzNxYKc_5=)&+I;`eN%wfgFuL5bIYqW& zQPz8rj9=@Fx-@3qFNwW59dJ$#oh4?mkdZ@i`b&3W2yY#PQ+F}rRING??}xrJ)EKAv zAda+ztgm;}B39)Jkd+ku)TO6hWp{s5?YrpWhel9_Y^O_WXkzB}@#Eerm(U{yQ|kDO zubX*e)a}z_2gAV-BkSBU9ZVj%vJTWSws-@a9dCuJqv(?> zQ{S}FKO0;*+V$dfu2`SEmO$>~I2Xl>~%tt^j zw=kr-jo>8GB!Q4@>U@?p7_rfW??RCA5cxko4@JwB-*t_jT3=e8+y2~v|8X{*XcH*|%%;{sk* zDBvb5fe9;kMLQ25Rz^SNGyH|L65_(~)E?$nKOcCz!hmt&J{-lB2xjyWPHhI5i9!JD z`&j9bxS|3G)}FhKYmF($>x8=x#D~bcLxTAHrTR$R3WTtF|ZP_cCGjC$l#fHk}fz(>#?lYrFVdQ>c*U{@srH~1N zLcdq}J#d&hqn%eU^4q?+zrpkgiQ5BOB$dLWfuwmLe7|?DhykAGO-&~e(Nej+B=wp> z?53u<0=g2A_9+z>duFdYA}4xOQ%n=j%FctwQ5= zE%uPep`lj3=e)uYTuq`pwC9p(qw(YOMcp}L3e^eiv-1-<$Bw(JyswAz(VdIqc@+oC z5g-$XgO56w_vzlcL^`#4#hN2L$PiPAd%W$F371qpwt>J)btU-}*2UHXDiU~uOxBDAC@eg16M>{k1PmWHy$CSdt!O}I3FW&uc=lv*J1tU z-{#5Abv}ucPzd=7?ZC_nP~k%=Lp*ERUn@Ac{bgmYSdk*{+Y}(WH1S^OYo12!)_Ote zt{&qnBJ2(Rh|}=rT`KpKJ&^Op(Q2b_3>h@f&uSZ`o!##rHyRTp&g5HPZk#? z-PHufC{n0dRNZzFa)`0-XfrT5xz^>hi%$}mhM7qfc(!h1?k+R*1z}K&Cm_hjesQrd zogGY?@$%VcZ?Y64-h>E@ypHXYPZs7N!mPBy2w&WJ`z=7Tv)a19@*BRUR}Z-wu_`(y zHm`bw>#v--9;=uct@_ciPBZ0kiSxMfgHlv~)7_IIJx$MfI2|wD-zS2LI{>wO2G|y` zU#9ZB=8o}tcl3pGOyrfb>k@qAC3oY!jfY*42d_sECfnt9%Img%8FRkt(-(`|3eU7m z5I!F2*8hl1>3v39e+K4PJ_$50Ghl6V zkG+4a#hhn-2O5jUaFtRp#Uj8kPpZ=D*0n|hpu$Udd>(u52Mzq~imvL)tQRh*9i*7B z_qrF-moHW9F(fAzACjPg9wp0H(Dh`vDMklZFJHR0Q z5&suVrBMg?sb{1f#R)!jdjfJCyv-~{zsu2&RSN=jDKA^It1s75=Mm-7I6BqoL8e+w zv6@7dxi5%-K1{%W+{pJI68+!zNNORC>fPIZ64D@ z&GcR^{T2=t6ow%H-IB|DrEDHU!S=ST@F0CYh;_3B02vEul4MGH9 zsd6@zfulam%o6vQOeL&FoJE%xT{oMp=h%!nGd5+#4^Lr$Q48wOb$No|Z54P}dwiSs z943F1lmD21Dhoc!`r$vaK01O{|9)^g=9Wck!Vsd)ufb)n4U{5J?T*RV7u?1nBnB3+ zm0cQOouc1y%&ze-yT%$ry{pre=#4&l3ZD$Ktd!omgS8bV35hmnS zz8B#7mV-{NjsWlc(L#qs1`yHl`T>;vRgxVb>Ldr9#;N!@`8O8JTq!X58Hl!>{zb@Yw0#Bqd<$ z(M*(JM4z$>8V~Wc;Yylgz0z~Wl$4{+lv}&8h3Zlayb4g_F9!07F{NP)M>;cy3Nsp< zGGGZ>gU{7@MQzg@JW$$VEnqy{!%J7E2UD@&*lS_x%^`4qJ zNtP(>kEgj7RXkyIfJAF6`CG2EN=l1%O+WMTIt7^(tUf#5G5)73G12p)5N^m1z~z zmqk+gob38#T?-~7UWX8e^#2&g7!^egku9*p(zg#_coYfDIv9=JiG<3-d+ezES zG%cl_KWve#qqL4%8jbisF)eu1f?x7>`ctE2?!ZBUt-*I?fP|2KyEC}pX*o+9o6~&A zjfzv>A4fxg_M>XiEN@(k^=>jm53d>a`AJ*LENxkl(74)=S2;g2Y7w`tkMMLONJI}m zzYnLRB;QK2;zr}}HNwFzEzUT*^@Y``79!da!;R%YNm+;%gG}MyWQWxjKz1C>khwv_ zDPyO-T#vp>2#QYmWIoU|0@M;!I3f`2CMg4-%CZX63isTv0lC0PxK3P1CwRu{*X38< zscpA69{aq}Oo52(3*qc&uuqB}LnE-8Wc4RjfyFJ4=1^tA{@@2<0qPCYrm$e3_|crS zxPH+}tVC3Mcv^0d?<0s#Ww5nTdg*Qxpa zq&Lx6-6g$`ZnTK_bjVEYqP(8^`nyK|N>@Uz?h(J+u-Z3{{SK-%(rPg~lzwi!a zNk|M^o%~ZB68kJ;H2#)F87IPwg8fy?NqV#x?`iahI~w;tCOPFhnP&*g1(awC6|dai zw~X&7__+fC*Z@bu#V(BUF@9ohuUx#%8ST7wi8`5xwvkCleS4`hI0POE_{S)ZNn9e~ zsOio}T|G3I-WQteKf9bQmdPSd*S~e=)P;5sW?SzG__NLH!Ir*zMvB~c}cgReGqDJFurfee{ zdOcSG)a3PjWAtq*c?|h@){|%{=OImkV@Fe{F?g$3e+=yg`2qb6e`a$8X?dI) zOWlleLCF26b2NXQfT!bKgR|9NXP!y?AXy&N+w;&I!ykbo23^p!n^7ZZ;7RbI6yA2u z#N|1>psUuz`8q{q>#0N=w~QHRUeR@!KYGk_D5Vvhb^bC|afmw>eKX58-PVLhK%fS#-A z=J&2wu!;6-j=>|<;DZV}mo5o2+hih0sF-Pg_x882L@kkfGp52!O1@DVxS^DH+I`yAaafe9N`81}9a**-Nx zZojt4_)V7mFu$J@DaQfunWuYrwLK>20*}Q1=%Nykl&zHkrBV zqQ5I!R(7L6e0c4I{bk62sn4#L$2of!K!3;bABd-#5Y#2>wjasvs}5}`6VDWjsS}i- zW3czwYL~w@c0sNV#29r)1^B}>lke+cjBJ?v-1pog&HiUi!Ef4YBIgAwo8wF8j-Nrw zn(v=BB2KObF1J_cx_wh1hDDvZ$*g_SkB(?B;W&)mCLAwzss0Y)q47Cg(;Pmp&Ek}x zaUdUg7!|&$nG+R4?XWI2@`;VLYknk5242HG$JDe57QQxFgU#H~xYx}|faaCmw}pyu z+W9WzfZ6g2qLDMtMU*c%>DSY?O8bWUGb;LFo`q=M@54ZQ)7Ba9L?eFG}7nM(3j}_K{Kl3H$Lp43&)zJcpLwP^^ zUYchJU;nuEq72qJ5?9z9QxXa>YpA9Ajrk>+VSgb$zhRGvb?Mm*peBS%>$lWLh0DfM zLxYa+*y@b}kV_%S;G|1s zdQD%uMCbM6ARQ=8-t5wku9l{3(3=Geldz+JC-f{%QK~{|tD0_Yw`tYuYUVC{M7k*y z-9~uD66}nTL*I{7&VnF7Ps{muk1G#TX}`?j{K#Ntccr0Ee zElrCA+orf#Vn81=*7uHP6I zHND8-@~U#uMGn5V+GNqIqkVxY(kB}EhB{OKb>JF zPK0xW*)HJUx>Y@LF_~@u>Yx2LHxWs$>fyWm-YgzWHPTPKzx=Z*0Co`m3Rv~<<{g&^ z72?@G6Hj%`hl!3nrN{U}BVT;*F;O_3_0(|BIB)o-LmS#S??cDr^XTy_q&@OA2$}fI zd^St@lM|XU8BrXL={d~1L_H88pSj>|fTep>|G&*x7w7+wEnq#BNPd2&d(1n(?;K@7 zTODA09?tfs@7%L?I=c0{avr~-eSp;?hXZV(=%(tS3Paf&J+ssTsu@5&bNbr?_;`*xU*vG$1v2}4DlC_MdkR$j z{!iCJ#p>a!`JT&gPntiSTc9j>{Nf*M|NU=b+oT7;7;_)%3n6QKz!!g%8EZ@wFKXA{ zIam?!f9S|b+;aVz0(myJuGvulVI92ZuXUxd{@gnej_3E#7b{&Nc!y*$wH0q74f zzSTC?nD{WQxP)uIpCi=oryDiicxHNM?`Z7ij4|v!viI-_sS)TuCLnl!M#I{=4TBz# zt}xEEbJLm*X8tKY{(W-(ldyQGSa{5Dd`uH5x*Yk4JEurQ1byYGA zN10FsHL0ozNon}=Y!WnCDTe#Fo`UDvA!c$OnY<}%>a~L`zx(ztT8^xffK4+%Z07+| zcb7IAZ$Mi-PTabubCIswod~zCJJ`C#9X;^d>2mYo(WfFZyk4C7{*HIDLn7yOQ~UH@ zKuToHLI&lT8FJ#yuZ!9{q*1Bx5Wg$bB;OI&VCK z{&uIqConST-l-u{fMfiJikO=f)$uxTL)UPDP`j@D>(;a;p9`<{vMi&FZ5XS0q|EE) z$G>rN5Bwvj@{Vra8Xw6j@ryky@3O{{IJ)dnjiuL<6>-JBMnyF@9Q0ZbX{iQ?u>7S- z|9h{El(Pz7@2L3s%kO`lnyw{9IioC5>kT=|I8)~ErFplq5E)>xjGS0|;*Y?L1lx$3 zdnU2d?cJ(oMSkf7UP?hsQkfRoC9YkuW7TU(6hYvHd`|fLZ!_?M-$rwYFn#JNvcmL* zYw02Tq3V}EwhpL1!F~Nc-t=NFGX2y?DQ*$^HErDy6Zk)50xNwiP0Q6Bifk$tD{orA z;oiP=?SCHOZOMGK{Q5DqML?)k{MU-Q|9OM=YsRZY0gL2A;|?g!Luipl(UYp=JV)po zpe6C_si6kjRKifoTu?kG7cjwnhIlwagMgK3e|dgjpp82L4m+5|{NZWGh??C)^DR(E z*@W|wg|Y<@t+Vq~+w={bTrP3!o0ZY(zZuq!(Weakf!4gK-|8N}qy+k#cdOb%9e*Ig zMmw8_n$%y~HzBgkPD!6(!;%rgTN*Li}E!u)kk`YKf3fcECeG zt*^2=wd5|P#xP$Dvz@T}VTFSj+axb#RkZK1XuS@`$;}_uFN!OXId;5qrqJz|;TWW( z>d_YS5PzayEo44sWJx&^&n=Hrv@L5xT|#8Yb-@? zaZ(LlG`qOAWT^v(XW~gl9mqQux9;!6T=Qig;e_f&YuOCA=S{uiR!Nu$bbay7b=Fn#vw=SH}`n>!Ioa#58SYE z)DhwDFH_)3pn9|Uv|;KF`>MuK0W#7qv}0@txgEtVs6apUR`LZcL0oS-SEw_HfwpS$ zG^J?0ygHhn-Vus)E%gq<>7UpAHo7n8NjQa97~KHjr<%)mT9On%w>CInlRPh&i9v9I z<1>W_H-%7Ah9x(fT*7*^r2gbsCJBIah&ibk8|<&qHw5(I1Ke6K<*!VdvIZUYN7yd= zaUTObJc@9nfqU*Xa)|ra*hCtLa=M(eX&AQC*J*mw$cErLdpkVFnTYp}q3grZ0jNLh zC4LPN>?od#G6dU8m?Achy;ukX+;PKzv}ES$395hgtgWJ=ow4}|NXU=RuywThi-I(o z@zRpTqS?c-nKkuS{eSM_04HcM>`#|n-P@6GXE@>!b`F`)hFgMK6-ZjI_&2B(WTHS2di3+x zsWu8i=5vd{$HfT-SqoY>GZX)I>efE~F&@P$E~wL@h^I^QT%S0tMb}hBhLcei&IXF; zKO+Gctl)?Xo+1zR1OuN-yi>9)eJ>(#0T9;Li^va!z5+=6EP2y=Su0tH&1^J=fviRqV;0oS zpSO{mY?Jn$G(7fpM0^vj*jN=8g-iDtR>FJlpUGXH59^kVe`G;Apw%3% zReKZajNq)HfrxmK_o8(`1JZyD$ru%?J&3GCAO0TJ`{aT{KT60Q6=-Ul=5TkjA9(4I zUZ2sBlEk8!zIY+In^t1W+)4OTx!8l+&;YuLAm@;V9-h>l`J$?u)O0OB$N?XK?ZB@C zp)6d{;S46>pW*@`k!Bo)Ambj9m4eX*4gysrApCm8S4bHAXOHwfkS zz3E>w%#BYzVc>Cl)^Gc9y<)JUo4fld?l}E@fb!b_>Ei+%plS>#v;SNg93)j!&=Wxz zs}i37zgYXqusEV^OJa}&2q6$$g1fsXxVyVcF zbMKos^1g5QQ+%zb>U5p6_u6Z%tyO2^@K-SLZ0=8X@?Z7nO-_Xxi6pOZAOIgy@5N^0 zM(s0m{?9<`C71eT)-{(Bw2uDDpZ0~(L0;orWb?orPWeh|YSH7IUDfylZ|+e>JIo@H zMiK~6fcim8?ehEOyn8yLnSSC@x#Jo@tPuM^*8QT1nx2z}z8B#)plSmLE~}^J0+l4A|!VdvK%XxOGPceSBlB8LW{X-mIMDh7|Pviw>X+`}mn`S=Ll^ufIj{8?t#U z7(QSgps^&=W2YpI=qfjrn+In1t#1v*n}`OF1DsexfsH7~WE>#UODZ*ZQc(GV#?VM@ z0~^VwSFJ8w^VyPiL6T&vYLy96VGe7Ojw{h7O!U#`A3g=JQvqZ_{w$2|-#p61aJu>x zk1>%8$BW5$&(t@=ba;|PV9}iuIg6--gsMr;&Gn&zrXQe-qSvV5PG{(UT?LSGH6U;) zIf3?1T^62JCejT6jiq_t4rD-lu|C(On+k+#qc#Tk2*A+y9zt=*1L(y;{2> zDu1?OuRFL;{ihbLA@Z4qHLzcU;JH5#OEjVW3CN@Q$HiuWVmsW$H1BG`C_tA1DyENi zrLMhp}*vO|DA&VONcaaCWoH!HNazllbq8j-A^G% zjrwG@_9O!=`l73B7+J|O%0kwf2sepZw5;-&DRc&VFEL^J_Kn&+O*m`;9>QkwLzZ>s zm|=m2i4RIeGnoJ)U)|TZ1Ru;9Mic>d(~l9#mg8#qh#LIVok7}|98?i(GRT+0DQs2T zKkQ_HGO-etAdg5S!t;6)mZr0Q{SOzZ|GD;PlH+JsS|;*}jj|X1^#$er2kP>@oy}~U z|0CkBBkGIqXFnKVb_j5+)PSj_&nozk#|$u+0+K(tQO;4Iw>j`f{uOYN0{;GAJki;> zE?g6FAm6sMs9UKP+ty(p0M6@1mg_o7ZoQsfUGz3Hj{fy8rcd2p*VNQ1R?5ItZ2E2E zTr=0(YchGP6ZfH+Y-cYbGIcgJ~a$H_Ng_{M|BewT|zexZPTLNb5S}b9FeCn6$ef^=U zb=BZAc}rGS>8gaF>MRzQLt~62z^ZN{X%LH9%#_r7i^KvMV*!rLl}ah5n9(y#DQ@#k zxyE^gKHJ}QYk%-VtrLOR7Lb)}o@^_z5MLY8?nv*`6*))rr5{A3#2QnUJfHYvKL@N% zDUw3!fP1H^%9?)b@880g+Kn!nK-%KTV%(xKcS2N5YY3k<49j{QZb?H#vDlG-!Aj>B zbihoq05sC)dbzZu>~)lgyjBj^oCe5c)Nr7Z2gEZR1F-J)v2(a!GL*RQ>@YvUeV|B^ z4Hyd6Cpb5Sa*o5I{9hz|yZ!&MKmirOn;?a4{&0B>W4xbFO|Vlu&?FiUrR20DC(8l?-cS5UJ~&0D$VoWA z>dA%uq^7^Ga?zqYU#%B4NDoJDm<-Nh$)NAcJRc}fr6X6GE9x_V(*>pk_~1ks`vY*2 zZ9aFCJGla|Wk0Bk_+Lj06h8sCY555e2!=6o5z}U$zi?NCjO1ByJIEQckr|V;D=avM zN=CuVVr#>#i8BAme&~oypTjX63y`i1-|pY9X`=I4A0{3@~kPBFO~qFHN7p% zP9n|5an8tS0D@mBooM3PuK_zl({QZxkS56?kGhThaY6xF&J%zRj{+l=KJyKh`aWst zEiC3DY$yS*&^WN9_9zcX6oO=Uf1iz0;*4(w7O?eNWx`4}@9`lpXFPR6kB=YojWpAb zc(g4_i(dzkx;reIbt18IPAzG>j_z_@#&zc=Tr=|TeW3LDB&y)wluEzedMtH5Rx~3u z_HDYG-X*dIIV2GgOI?nJrJ;Ib}ZvlD42BqnUlh!q5e@mLINiG!tpY)Jjc`vb9AIP$5T|mB$Kdq zw8dNcQAF*|uxif%+VA9^+A~N4=r#CoP2GJSQSfdi^S^2UaJ&`bbP&*A?nbJt#5Lf` z!dI%drc#_K-}c)di`^J2q6GR9lL9%jD{GI2-;EN!1f<&mEGxyn+p~n}>E|#EozHus zUF{-z-^6GpGsh&9B5A9y_pb{gNie25Nf3Pjb5(ckeQERO0b5NzJtIpk1_+7zsU*s32!AmJ*4Z?imU#^4v()iNLVLc6JE}-VHhP zO%f?(1VOOMFtE5$fMu(H8;$pFIuNi>4djE7S|2CMFMjYzY5CNF{yp-Xk!yM&0s1>N zq@^mQ@_XCO{`A4WcKY_4-#aqR@RhRKLo*qJZS2aYNGq+=%D*5Q^-4YD$RKM!I(5`o zV^MF24O`}-_*2_KA!2>r?gY#VM(+gKa@1>mL`jM*V5)*PI{9?<=GmBM*T78`i`0!# zjHYZb*$tuyX*6w$2zt@Va5%0iZlKm+e)&mV;uLoRI+t++`B>)e!33-H(#vY5f*a5f zB*3CUkZPl3NV$KBkVte&5rUIUWt2C>-bW|OQB2Pv6p3MfS6^4MDtfH0A=R8V7>165 zeTYam^rXP*TXJ24XDBvnSQ+@QR-xgRPQE3uIWl$!q3zReljGLhvK-Z%q%GVMXs%sb z0)%hJrrc)WK(iu(He&j6Pd=HXr^OD9V=%~Lqa0tyv--)NlzCoFQLcrbLPv9PGLth) z;QZdWcK2^ewnd)qB2lna>RDnfGN6#4QeGLZX4>M5#Ks%f#W7_)G?^;&9k)-e86{-@ zLL&B9VxDG(*=91SWWb|0<9bqc@`cXwtt=3Q({X;dy_(rfj}mcqTyplVP3Q}=0LmzD zyj=HK(_Z87!YFf>cg)il8L+~}MSU$9m)Gn?ohL6p(C!}Q^)SRl!&l6vfpIgH+FC~Z z^0rVm9*CRG<*r04tt^Zy)Dt`N&aT1$a6v)zRayIect&f@cyZ+@c9TnGlO|hG+)*hY zt^tb9DbjMrIZ3hW9S%kBNM;?XQ~5bK0%R;V09iusrD`7;iFybdLsuF&tv&SbG={wg zs@NdMjx{={qcGdWilLx|tcxn(O7Bpn@kRzMR26{zE|6NaV?|@I9Js*j{XBGsE9ZpWbtT82lEE<-Ciwi!yGU4A;37{sY)w}GD#jfdH-OC$lAtk5 zsd6#0&82Ld!r4f2U5i}NePBZ9eHSLT4FG10mM_zOBfJuuQL}ok+Fxlo99Cf%vEHZ5 z<|lH)>#(C+RgWSrv&BqBOc4SuSXdmuU@^ziW0)>PZwQy_t#Er z1oN`tc$&~JZCn@kR>f;RS8Li?jgH`%gAHnq%}xY?S?7P)Adx&vnxw-4}7tWLylCSz(lH<8i{BUcoQPD;YIP9&b*#3dAnMSsx=^Dh98Yzz2@Rv zqHIAgC{5hk2QZZImKY~~A4rZgvIuZfn`y$F>HqrR@P5mg#@Ij4816}bb7;5su`VJr zOK->1h>*DPmVxE3K@P_e+nC|!832Ja5uTDoyYHKcRM2B$GCF*-Qh**pQCC=)=`b5Q z73INXllW>96dKH;1~b#1yw}mV-7O+NG-kKwTw!;H3AiF z7qVQj%q1%W8?nUP8)D-h>N7-CL-tYrlrgbtd*vwl1tK#ceeA>>Wp{BPczCVi1mq%J zzt*B^qTp(XA#?npiz}#P`e+~C3{cojCY5*PKe|g3zUkMl?;A0a>0F>l8^dTi0L1@$ z#r4N&XJSR0I9z%RFcqIz*6l@9)xYb4LkZj@S9JO4O5gd(SxV*S9N2}gi+_cLhbJX% zp^m)J=s2j%3%nvX&Jm_EL%StHxTO$ab0E(sd*yjH!QjjLqmu zOvtvg1}>X?3cEq75W<;u&aVU~*uGzqn>(;4A4Q)#k@R<)ZWP|z7t62A{LBxg>CcB3 zbx&xu{hHV6b`^3O9>pQ5oLQ0(!?w>X4UNEZeT=5P8fOf#VG=+P!Lnwu{=pME$EhW~ zaMUra(Mv`@?7zHHH#DgkY=Uty`$z-up z26Q7dxTqDX>|&_yPu5QJ9d5R)*DN0SeJYL?ENIU+NUjm@b3Bqf>{i%)1Aj=gcX*wL zwBl#={JUAC0HN{JPqTH=_a7f)_pQh`&D!FW!pX~*tR4FAc4ju6e^l`)N&;5mGkwB@ z?&QbHFjB~iD=#KbW#qo*fscUM2*4%=1mCQv(D?f{S03lOgMa}9PdR*orSU6UKp#y= zil)`C`I~n-Uvs%#{vLS;01k@|s75?9Cq5cdC0%z{88|E-!01wUf7KjnO}F&n@5t8zBt&pjh$V2P@cr{ zH3Ims3J4%mRcT3ENfLR^D~@&mh5tAR^xY-$u3z{@DT>xl6tPbe%s~6Ip6z%;K#c;} zEiefAvB)t*VPju?$MJtnhyKqNA%DAZe-2J$_4GKHWdgW4jn4c3cW%yK2*7)=EvG|!)BZ}oARznkfZc*aI?vgVhpPA^`yrU&>BB7F<6c*h^o6^;RO$Qkbs;8tG&86N<0reQ zjJ+e-4ST=eXU~@7x#&Nz=?x#7vFXc09x;rDTcp~+;65}Ch&dJ zg`}3=S>};aN%An9D?d*(FDI-v7GOFBDDA?9^|X#&A5A;}bT1QBqQA5%Sd*SLTj08X z!7ux(dCLVOmZqFO~w2v8$L9$gkLmb-=Wz_H~tHzXV|$&M`+7Q))!Eq~Z+p&8(4 z<)33_@-~i2wWS5X{^}eUlOv$TNUewC5|JHldF!B_yQZ3~^k|ccINIhBXkPO!RzZ*g z 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 Date: Sat, 5 Dec 2020 17:58:14 +0000 Subject: [PATCH 58/60] Update vscode settings --- .gitignore | 2 +- .vscode/launch.json | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json diff --git a/.gitignore b/.gitignore index 404600c..45f3477 100644 --- a/.gitignore +++ b/.gitignore @@ -102,4 +102,4 @@ dist # Distributed files generated dist-server/ -.vscode/launch.json + diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..f6f0164 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,33 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Attach", + "port": 9229, + "request": "attach", + "skipFiles": [ + "/**" + ], + "type": "pwa-node" + }, + { + "type": "node", + "request": "launch", + "name": "Jest All", + "program": "${workspaceFolder}/node_modules/.bin/jest", + "args": [ + "--runInBand", + "errors" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen", + "disableOptimisticBPs": true, + "windows": { + "program": "${workspaceFolder}/node_modules/jest/bin/jest", + } + } + ] +} \ No newline at end of file From 81f4917d2594520bb51f8ad97fbded7efdf84794 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 18:00:30 +0000 Subject: [PATCH 59/60] Made launch more generic --- .vscode/launch.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index f6f0164..994e8b9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -19,8 +19,7 @@ "name": "Jest All", "program": "${workspaceFolder}/node_modules/.bin/jest", "args": [ - "--runInBand", - "errors" + "--runInBand" ], "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", From 44cfe8f33e9a1ad5706fe4378ffedfdde70f9390 Mon Sep 17 00:00:00 2001 From: vfarah-if Date: Sat, 5 Dec 2020 18:29:30 +0000 Subject: [PATCH 60/60] Indentation fixed --- src/responses/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/responses/index.js b/src/responses/index.js index 8ff206d..89ea29a 100644 --- a/src/responses/index.js +++ b/src/responses/index.js @@ -8,15 +8,15 @@ export const success = (message, data) => ({ export const created = (message, data) => ({ status: 201, name: "Created", - message: message || "Created", - data, + message: message || "Created", + data, }); export const badRequest = (message, data) => ({ status: 400, name: "BadRequestError", message: message || "Bad Request", - data + data, }); export const notFound = (message) => ({

    bl3eSQmhaU4505S0ofyi&3 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 literal 131513 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

1n|DeAbwQ_0V|TNdgje0zV!6nPjN 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 z zI_oPPdMr*Hm1*O#~X5T3&ZaoTX+| zGPiGzVkv#!z~)4}6BWZ8V@fKX?fXsa7hV#!ZiJcNB_7S0pF{ED4NIXiDk&coTiXhy zJhCxPm-JkxKo-vw)!a1FUsb;O0N`a@+pZnzH8*=RmRFdTLr{<=4?T+#)r`NeXpyMY zQqod#YuU_KcC-(LIc24Cy<;U5)3Qyidl)S9TV5t4u|Z21)C7PWf6Ddk3a5KNbrVZ+ zGCS7M%Q>W0T~rCu0aMh?y=bKp_?eLEY_5i2znd&lVj>puU87b;J$vUK3m18|WzC|w zqi7bB;4${AimpXOnkm3&@}_MHi;yVUy2wJEZ-u{Fr65UkU&^IKT?|8Pg=(8}n%ZRD zGOvYI`b>6=z(|+94AnVw>`;SZzC*&g#Gs=(VE!y|tgt|84~29nLcTCZi^@eLS5ZXf z2w!F>*{Ils)$&Jcs(lBNE17rWm_*swun{~$_A2!#c>#|Ii%f>idF%9~{DfExCJ1@T zMcC~e@UuXG(m(tMivMZCe7GX-1;X&MjkQ#kI+vb+8H%r`ow^+gJ2tDE$6$-r;f;wE z??=&_V+nYBYpG906Xz#&;oPoF(f6=EadcS~1s9{{2n-FJpx;@$XYo4@msy#-23%BL zTIdNjy4NQ4LcI5D8)9y!rt-v|YqaAQ4aJ>X(Q(sML(&T=KQ@3ym2$xE*(jNIkPP*d zHnvWC$Vx?JNWQgT3rJ6cSSfP6eBZwcY({6I7>iZ-N9m|uj!)ubuHs;yK`JiSGu;Ew zO2oviX0FY%hNZ(h;79&}TXAS8))DxSTi zG!Z+%zb}EvcT(WXKk}Iv?dNFV$@F;rBIJ8YP|tIxk?H3C;JJ4ABz z7&kRBAiaSXVtpMblbUv|LRM*#{|Ya_celeMrR(!;R@2T(a^;&|vDU2|pUe#6Q!M@GzbEq}ui8DCOSSisTBEGZ-vpMG#HpLJaWokl^dsE`@YX9{j^Y65Zg62^H{Y_id(v6i2g_*e< z&{YYL|AQP?`{1S05)O?GcFvpJ_LQ^!ifYuL7mCmH^l!%0Px1D9)Xs`)h~9~Z_99`EsF(ZX6M!7Dp3&9eIGedQV|eolze|dbpJ4A>U3-#*Kql)Hbfp}6Rtcg4iGDjp zrJf@9+ygq5h#C)nF0G_A-W9rJ`W=L0>+F>-CU>ve+Uo8|5*v3YU&kx+jBy^d#!|fo zhnE-*Co1|0GeOy$dJ)gj9$|+yBtH3mbFsiAuq8M(sk2ra9xhPqrQH0O>%6fGYXOnk zdW-j+=^~@+L*j&!Br7(sOvevZ>PnJAj^Q=| zOJjHD{!2z&bFiNy2*J9yI}tQ-DnN(H{9Tfe>6QRvx(RdF`Pr23VydLv%lp||8Ws{| z-{dgBeb@reyUI*6Mwyqo+N?eCSA^QOR5x?oeCSNK;}*Ff{^riCvz0|HUw|fF#c`AZ zF*L9$MG)WZ88=6mg9*L(TE{atc9CGB(?1NIyX(oR5}c8p$<%#AP%NJ_UM0;BbwC}J z2Cldu`!?<U6Ot@W*Q;0^9e7XDU;Jo_>5VQhR8vJU-enRs%$mh8()x%e2$+uU*|Dx$4=XPi z@@B2yLU~njw{Kq>5UELshM83suCDMW{Ei+b*>n&k(*;{=9YUF*fhVs0lOA3ZMxMMp z-%26?W65lv1B+EfsP)j}g3j*pOe=1#KqOVOl_Ona&s3|YOJfi=n#zFP&^6XNQ2)tX zk;R;v{DB83l)POO-E0$q-s}Nw+f0BAJz12PNi+|UkV5^Y@c@@LqfEk@KgP-H;N`IM zEH-+f)b~@~r=>f#pwkpllIz_yh5-)3`+ugyQ>Os@h7pR*t=TYhcC=rYC*#|He^q+V zqxx{-VZC~um+&4vNRYohz1|Xy&es#H8F@;fSMXx?;;Kk-KB!H=#v!=!?#iSOaQYs> z6j8aM0vx}ICO9A#Lotv%M98;gwLQj6{FU4x6zsTtQOkmrW@ihE3&hf%a;_ZHpOzI#*OVMC(CjRE|65CGF*6B^NGl!# zIzzjzvURy9Nw%?ZcP~4T--emGUxBd3N-Gy*=EJj0%1N48!yIi{JN!Do!^^mQ!vLv? zoz~K*B%2m(Iy&rf_XlFzIDV=kuAKaCdLPw~6Y=)&7sPMn8f(G^TT+7uNV<{d4Jzk% z0n{qsk%i?pC>3>*J$qvu9K~R^$hfqnauu-J{(XTNzC@-kOU1&HztO;S^if*9UTN6F z=&qHWe#VCB>W5)Hs4-7Taws_<9=~1n2ecY|;S9EnWU|@Db@C=$`AvT;y1?$tgUdQN zP-={je(C&T$Utdbp?{3TOmK8CGNNDOsG5x?MWO071bM_}Fk$$1$0Rn-Fz=<-0cm8i)5K$F$rPa z_Ki9iPGp)SyaHQWNzOn%Z3{8%8Y;P{75rsNRR`AG*8$;r&e`a3)|8w4;U;p94OPmJzpN6>vimT&*XDq;KQUYpA#7Or`I{1hvs+X^9 zvI6q}EzzQfPzsRnj_(3Ygq_E!Z_5AF(uB`8tN=`xf{FxwBI}K2VnAL?xS8?2o#uYv zAFbX1Qo*0}Hn0L#O1?9&+n#)Hf_OMwf7=+sN)3Aw4ro+s0c3Q*8^yyA39eH1^)$A* z0UDRrpJz+m{*OL1uu>|_%GZYWqC>)Ej$g%R&x{H7Alyf`|D63^b}IskCtSj*k_(k5 zhELv?{%Kziv?qml%k3kr!oUI`A9nw1a}0+>^iQH1Aig?&taIfUmC^o|{!{FQ^vjj! zG&pw^?{ng8p1ul%UwBnkz_Co8`IWA%qawVC1Gd#9cSlnquKYL{to+Jj`+xX zv{$l}x7PSYFDB#Tqg_rEE-|MkQ6h($ZPcC>g^3dESK$m*siG9UL9`9$YBQy@L@zu; zoIZK+K2HN5`0&7#%9HBt+#}b=o~GT8p)Cb|Z1&n_GbL#%Pc4uv2@{)qZgD+p+Z24i zOi@KDS)mika#)5SIwuf%*G^7pIi>N25SWH5q|tNO{zmkT?=GYs1r1F--&B2Lbl?%W;^q4X)sJymw3q_k74v(<4E7c6Eu6 zfkFm}z!?Z5^?PvKDb;h**&=9u^ijqADAXmnx+{l>Syc#%oA;KU(!{q6l?1!?Zu7)( z{B{t^VnOHk&hDTM7Hc0vFHs!<+03M_d;4%EtP4 z)^9pAxxcpEqC7x;hPJK9Xr2qS4YugwUn(0DEHquT>DCAi6#7Jz6mKhLQ8|{gTfn8A zqGWkeJF;obomDbxFwg9rUwww}UflG~e8?dFS~m5#(_9rstGJc@9-*LISEWFQREvUW z;l;ELb&YW{X9`n5?X4?ae<12z$c4p)=Qq|)811MZd$%F)6Na7 zET(RJY(Spz4Ap*Q_w)1);H+F}S~crCDCqS+`xPVB5qKdHHo$9%s=i{P5I8IPjzaGO z$+C)p_4Ef*DN2exMV*$mYPntay<)Bt9&0XFb_NBzlx4i&VT8L?%`X-e+^_4`xzZR| z_e`uUz1x&*CP7K#6>L@Q)WE5Z%lb@%-VQt|nZ|F|$?uPSBiL=KSPOQ5A8?@4C`Ca zmG&kBw~g(m@EJYzG~6K{5#QjiOiR8ARU<@m9E`s#+Zss~&3H$b$dh5u6MRTyt$ z9goFcW!XiEgV%#{ZX)@Mhk=B#mZGRy0vf@ctKB3oF z$4l53yI`(ad~PXNcQ8AuJId(YV-lCt93D!`pdL2fL*B z*E?x$+`QLZq0e0rix{yr$k^B0%S(k@e8MddaNV!eU6YYUj4PI>z+O+bVaOKw*sXYkSEA#@sYwKva!Z~lW~H&$7)jC!-h;SBRp zC52H}2uujqQaHKby!Jj`{7c$lwv_J;&ycMIW&*MM`6fl1Ks>8Qs_iU&DU_ljwYoE( zua)9XQ#q?w&xa-*NEZind_D;TRedKW{!#c4TW(2VVue9#_KZbf_eO|xdv0QulGj$d zw|m;zk|QC+Xa`3o#4;;OS(}l1E=eU>dboYdJEW{j!ZND2k?VGl&pE+@8E2>1FKlSM zTfF0BjY?y@6V4{|9L*_=->wziJ%n`rw=|s2GEL5!d}|Oya|8K|$GegrK}ixgVP(Pf zvm12dUb^vBpnv^o&S(J7sAffvsTDh~;SWbtrOBCG4heNb$R6G#r1u zydKG~yxd#(R=BKM;2JHRcPiX34aQ4?tN6$pjwXc|>WV04mB@kJuT@p&p>guvHkVAd zBZJ4VTL$Qk4u|gF?hSjfJnH%1Hc=rT{;x+ttX+7iip6+-mo=FmJK^8;tIZcx^a*5U zsBld(DpW1$n^u!R;v5#SOQ+UuT>Y#KsxDHzuuTeH4HG`dw!d3xRZ*@W$9dul#wi6= zm1+c!A?A_2BtiDiWJBjwe|4T^y{TuRKjS)>mJqV3eqF%*Dh=l z>#mvl0%Q`NI5L63JXRYW8GBOvf|#^Y4AdoJ=m+vh=R_y&?9=G>9ohHqz;iJY3(s0) zDs?FzL1{I)Y#0WP@Fg$$-pKy$>9Z7}ltLI<)pIO2qp`CSY;1aZOJ=*lOQ@D(VrFa% zPL3FO1GYjIKHgOK^C!@)+)x$!E&qJ^`^#G?Va<|e-{Cfcu@%WV_U8gfr^vBwyW#O- z^-DzQMG;-w zzqX>*n0|ESDmR{0_qRfR@HOjI=r5^;>e>7p^ZOZSlB|x{QKp`u+Q#7&w4!CSB{mcH z4lZc!0IH!+F>)fjJn7!0ON{sLiGoxlPajs$+ei?hu8-PQ-&7ypF`AVzcTP9P) zJyV3Y>5zHuQC0Uopz=6>W$q*wqY`7zsID)wJ;i;l)cxk({Uq;@EEj(qlXQ;sAx*nc z_J&4umeHc^sgBI^eQSq=6Fr-3I(`H&l?Xy)(HE_Jl%o`)6)2TT!#I4DjQGGhg7~X% z;XL(AYn9t{+RHw>G}A^)bNU9BFP&VY%gk!^jGsBK%)PzlF7u|Kqe;UXDITY*IlxV} z5`x!ywuEUx7Ey_Alq{tAgs=BYM-y2UdrD2pj(t#dn}X^9beq)Jcb8t+lctZo{%*g< z5t~+#^9__EEUIPqR{+Z$Nn`-he&{!jdb{6CW5#v|$RxHV-5;xHA?Jx=Zx2~qdIIYW zyjS{zHZl||vY6n7<`}nq<~|6adirUV@C-u*2->3&EQGtv7;@MGixbK`0_mh4+E?%A zmJ-Z1vQdP7GkBttrkIYC-4>^+LwjSA8$B3`o_tKj4tASAfViaZdl{avs&3aaXg1M2 zp38iSa2fVSQ&&0=$I9`$P2CKKB7W%xS247+g`Qyrl~b-a({BKGT!RkcgEB>e$;Oway%db36$rb`<=6T;leU~SEL^H5r`G4VzDl*f-13&-BK;{}dii+K`xWz)T| zkXcDE%gqd~wz|NGet*!Y27SHdHJ7Gpv>ShEW&CVMpm*QVD|kzOM7}bIU?EXNqedM(ss%k%_yMXCl6i_$&O;6`zf`o6GUk2af zw=Z7)*=+|3;?M98dWC;cY?i;v8lu9W4pCuU$A*i`a^oeNJ5Q`iBOL>x=IFgiiS^Qz zdhcoH!?v<cBZ*N`X{?ALap;2_Mzv0~oUsn0D?jEub1qk{Y4Y8D=;gb4(bm#V zGf>-Lf5vv9b0f~QctycfBT=ML3oX;-1f@|Bt}4#XGD$Xr&uKUoSKSiRd`VNv!UvxL z1VOFu6pDgv@m+YkgdZu|D9TT~sWQjnes1T?X-K11RVF@tRe?6S68v6d~>K8@b?z9appVi`9 z_H0TQ^h15UpKI+*8}wjBygBXprgd5pE(gZWQBen$rFR8IRChJK49~QXzC2N7!XH1m zCko3E#jy9yDxRMDS)qZK-j7dYE4)&txF-^dBiwmIaH%*Kc`U*8>jguRxYK~6-?y2_ zW<7RxQ3mUcRYm(+KjAM%1PXB@iNg8A4C*~#j!Ka4&VEQ6XTYOKuyY47n!u_Rbr9z! z$$6J7xD5AK^}r9S#6+<}GJ~|yHS<<|wsW4|?=xku!j?jP%aDQauua*I)Cau?)HQRV zo)LaLBC_HG4Se0Ik3YPF5QK8zDf0w>#`a-=km1hbaphU09DkGKyzTii|MjYfyObU# z&&V5y{oT^cv~6~zZ;dyZWpRE{)&Q%|$Mkz05>M)D{W8`B&ZkSpIT%G>(tpv)G-O#w z9EfCvXU|mz(t*k~C3knLy|=gfxTo%xDh&9nSD#uksvjn>(dNAHWv_qY-==08F7iQZ zSQXd3gY-0SRuW#lsy74O4?%1i0ek1Wj#0&JWa1>HuMYJ%ckoXf;c>Y>3fGX%p@eC? zMW0umuWso5t*p%>G2dJGB4}C%lO2o7SLWS$Qt@y;%phx6ibFb(^Vi=q1o~%>z$+6kG*PA&!=fEugX4YTdz3u!atwEn+;S%xM}WV zS9b#0wuesrK!E(J!0cTyTlZQ)wWB{mI}D9_C&)u#bmwIG*4v^xq= zCyiN>X`ZgW-_b#JOyOot!XQR}D_ z-VN><8Y_LS|GcaukLMvrW;m03!dQe=eDFDlFZT;oBAL(u_j?iDk~JLH_o*JN&5nrr zSW%>n!CGadxBPHFUkd#LTxtLP$3-MRNYYboVSZj+f+;vSxcHB!P2rd2KeP{d)Xx9q zSQA@1)|*l!WJB@_h?5yrsXRe(b_HgSx676sHgf6LC3kt%cg4@=ZEW}4%1ZA&`>r-j z$V8i0`DMdjJ2!eQEl(P1zkCb4wVVHir<|t^^ucS3S|SI?|Asu=px^QsVll>jI+r0W z4vw3ZNlr{y{*%hjVWS8_0U!%tIoc-3knxnhxa))v=*b;fE9$0k#qws00Iz_96AT+& zR07)xanKm_XWJLQ5z3k(o2q_U3g<|01O45tOt+pX0a=?mS`VETW6e>LVtu(XrER!7S{(r< ztasPv3c0!c^lqdRR`fL(XxAAE`&~e!r9!{K;2F4X_D-dmSQ}8IqMHY9BP>_`K%j3& z2zyHTc}pJb_?7x{OgXu|od>um)*udeK1Rdpc zejzUv`vZGvMdLDOke$0rKzjB*ooiqw=tuQrtDs!At{teE{I*WxE$iQ9zC)opRV`3{-)Y^OQ6XYLYLN~aNdau(Ps_lni@AE#yE|MyWiETsSSUVwd- zJZgM8&gQ?YBd`ajJ|4lYBwYT>KePLi0^^7TT7-C4Jx{Sl3x7I{$ zIkd-^D^8ehRzjc}E{6P`_r@Q%HpQ~;R;E=l`oNDZD6R5Dxqea!WU=J*J>X8Fzq(>> zNk(&LJ*Xv({Y}V!1!8{vvUB?8#*5#Rs;IjZkeic89KEMERf+CV^>I>I<^PeXPi3h< z)1#U^My7>d{63DAJ;Gh{i+sfq-@{HWj=T5__G`id_VqeuxX(Pf`n-n?ySHaaMK^L5 zbuEd>7sux)a(d)++1@_meAxlKA=BjU^cT+!EgwtSyvti`=B0qvTh3e1ZFbzNJE^i( zQ380#Aqqdr@*rW{OnuQ}OH;iq(p1iIakdM5(MN~I#K}721TGDdb1CT3mVA1I$~UWG zytBzk{%@c4Dy(ZfO=k6hsYHtZuam-DIR$*3y50;Witwzd2N|E=eQL-nX@eji$VjC9 z9Ad2b+&$BkisOLubcV-QXG?9)3bUrevKe!e^Aq)qp&IUzhUz*h&dfc^EIJ$+8V|9;$Cp)8sDq5cfZu^E9&irrkQ*JpD9<)py>G3ZS~rYtKu5UWvb@ZUMs{xzZ2qB`}I$CtOb=nG5~Voign1}w(6G`EXes+za0JPQ0o zu0DgWtcUmXIPhNKt_kQwGytA#LjQ7OJ&<~IF1PM}9C+kj>(k`r8^!Ybn;gezSgaJ< zPc3d;7UAXnr&Mk)#ZnCI4{&*4{f;)(zU`V#t~JdYwQ_&!fYYG=?G6m3V?+LF9{7ZKMaIBAp|1&|wy`M?(onRo}@++wal}w_EI0yy$I*w@JFvBO~c+S@Q5u}`9(A&0En-J^| z!y^I##FQwH;S&I3_=emtFvl)DzY(tM}7@|X4`GcOtxCSK#e0YVx#H^G>SVP+RhBNp3Gr<2^!aXB zdmMDJ5-vz zs{DzAc)NDRV8IZrOY)iS;cr~}2clJR*O|&z@@`Gq zQ!a`{b&8iy4V`-{p2L0qq0oF)J-6gNIHwzxb+{lUsX2}*ebck4t4i3|$MUWr(kjpN zVQs3XlRk>(P;V%ME1aK96G)b3Tuh{gMUjn#B@`Mb6I0d5rYk{Rt9^;GeR9M7n}wi0 z6mClyGK~jkUYRk*O61ha*SbCtjp4t;<1TgBc13Wb8(gcE=oR z52Ct<_!A}Z%hgu9GKiPf15XK2cbf56U8(Rqaxk^eYeLV_>&8X zRa;3qxhy%P@23L5bWzU-DhnCBnt6UDnqe)SYCpqGLLT3pu(Ar%#YyMaPTm}eu4T|!drUP+(#nQ@ z>~wNoHsqukvc~%zWRK0Dj+9!UnoNl8>`O*eguGe-VU0J9^<$qjqDMs-I?VZ|GcGG> z=|*NqjLxvGQVy$|y%B#f2(p+FWT(wcymVEMa4&N1!GOLR+n?#}f!v=dLf<#e`$V|2 z!lIpV+Jpp*5n`R*0jVRLQmz+pjOMSqm6G{^{WL+Pan~eUT$Ak3X^qOg*#d3)VW;&* z;%amg;bR%~g$sVql*WGpmDUlB=A4Sby!8=2@YHc}2Tqj6Ul@DO2PPtwmi!!=jg5@uX}jS1GYf8QH0+YMbJ*x;nM< z=fw7>#Mb@h<*8<|X%N*b_rpVALi07cM9-u(DLUpehi@bTu<}?1*XY=*0PKUoT z+~-dd*IsK~>66`_hb*d!VJ@eB#m|{67gg*?bLu(IH@tyd08E2qiI;_^#m2Ms>OSzt zs%V5eml{^vvwl)-$Y@5{>pQ5^m7C>YO8v#Hqu{dF__h21h-gFd=Xf~vAcdO$BY<#! zrWD;7^u|iTcr0YJ5c1!T%E}T)9lr=(<4!4*l#KZ2UF9&fzky&rxb#1Bt2jj{U5JSvpZl;b$kMiTGa=3xbWZe6^>sG|PZ$;m5W_IGgk@PEoya34k9!pc|wc07WI)po_}a`9|R2usuS z3yk7Fp>f>WSXb3`rxH5c6n+s0KdcT->8irKOcVs?+<;(@s;1h8dsOg&)MT3aha7%I zU6qIS7E7^3|HCg;E&({sgZ1F=52=_f^micX?To(udvzAbG3s&=d zbt>L_i`fz!u{gJy#~;t3*~*LAz~J;*6&cfksw(f*wG|L{Q|;dbFY&bk1=sTeU)$zJ zabH`|ny_YokNZP;?ZNV^aiha;m^tJX;J8|8O08Q@i$N{CGKPuAJLW47XYr=Tf@9H$ z+xfPbl{cJ&M-?qvkNYYHe9><#?}!f*$0$o96aVlRnk>cpVAFWDg*BCq(rs+ z{PimMOZd;D*IkN9iO~Zgq+7X_2r{p^nR(@gBFJ*YfS(TIc=G35ftiv+HbSSYhn5f(hvwRbSSyW11Xox@bR8 z=sl28^KHCq^*_OZTHTFfhs-!`-eVyuG^w7>rb~A3?FEWzcnj)`aBD;Hb;g8uH<|J}4)PjJDrE8#275PoQ$|>_L&{ zzFdbT?ai(tQA@8YrCg7@wi$8)=FZnt8~4)H@&OT=vFQ)1u@34~IJ?zV4mP-^X+X#t zrWn$r6eAPKwSeeQUA=!ks5aAPen?;BWXnBzs;lF<)DY2XCewxZF8k6Updz*P47|dB zS(D@(RLWS@jjHww%1@@^-dB7>A1lj4v%$Wa3RI~+D@guHN2AP?h|j(h02y>nWc+~X z|ETNAlp7Z@a&ogHv&86PkUd&oGnuv70!oIYY zJb52QU7J&|W75{jXQMW>fAxwnss6f!2+Ne8#q1nhC<$MAyt&1jR6hF!K{;IG?=v@0Xaa>?jkf z!M}W>q+@2+S#L$cpeo15QWx#dZLIa?O!88r`cJ+}V>4e1O7dRH_JF@FrrwG^n~!C^ zX0I+ttypP1Smj#imh+XlmJ%Bst|&N-Jfo|};pAZ{kaR{-ha>6NR#W-2e5-j{14;=V zew(&|zv;gLD~z2etHMhdh<$-CEiH<%Im*OjO1kL)pmVk>EF?4U#Z5+*Z2~-Xbc7*U z!?Sj<24isE$(Y+5bUd0X{nUE;$*~3w6er`~>Y?}TZ|TuTCVLa_li+)gjy}ltzT@Fl z>8oQsw_t8&Qf+?PhHFOGWdCyC=lm-ur5S&e1O+)3^WmT?65>z{1P=mh6&R$jv~}nR zUpiyW%$n>`$5hZid@Qf6Aau`w@xN8ZNM&GYDH?8eup0kT=rxiV{?N~{ZA0$$E9hvU zG{rwsI0ezOgVfsfp$KBE5JrqDB2iOb3ncBDDzB>GY75Dg+)E3a^Dg~v!!i?&7p4kN zG)x4%CKnl-QMNCTx|3)2Uj3ZHsWmR*GAZ7WuEg!gu?t}*N&Td4dDr|=ilk+Ej2QEN zwvtU9fw6%A@Q*R-mYdLXXbaImF?GICK@}|kv6$IT;&oF|sNz6rSC$TE4UJhfJa_Tz{u^4V$`6G2ZN@bDhFyc8!yS3As?h z{K#zoZws-o&Ebg>ht8ao)Pa$SIZ};YYFPc`-jsm%OCxXdrlu*|?AV%UazfPzue+sO zIU0Lw7Sj53mhLh6mk}v`5h!ims4s(PTu&nI@$UPdx$W>;&)??TI>SthPuSq@$R8~x z7h8!X)2ns8FAICwFg;iy@f3fi@LI=J|8hz{uAw*=uY~-DrN;*3sjX*P-;krTO>j=u zuj)dzh?YlQ*#w&HjK1T?xI{cXDfJ=W-xL5+-4a)NWwzv4=uK3^6ZpjS(gk!&7QMuz zTVsdz##Q(ETU^=6x-xU%wUqViohnEq4rAgbJV-A&;)876tC}|GSY5~$0^R4Y+nidM z^xE22-@vgRJ{W0R!M(X^!{pEwXn&^^iPkSK3zOeCmT8lGEB;|kdR}s?Z4ok&uJB#Q z5J@(8QfXxsWHxby%No>ojXQHnsF z;!UWUZ!%sHHcMKId*|#jn>H^E*?@lTEt%=ade(h;M%>V1l;84_Vhf}Mm2ntd-z(sv zwz^ zcGyH_%CV}?dS^7qpc4%DnqOq@*)V*(an_WE#vGvLkNUz~h^z4T2Oy4S# zsq!8;ytT4&)o78Wl{-lJ%i~vVzQ4QdIAh4MxDe+@%TPGaJMPc~w)ht%(YwwP;aJLwcjAX30Trzk;j_+`)xEtxFwkJFTA1&a`L`xgfQ3KPRxw&)7xw2g<=4G8qin{ z{TB8?1%j``#vMusMBjqdhfO^u$rBXJax-O;jdO$9}-i*tW8=X1WG*`LeSzS5Q zY6g`WPx+fZp9csC$ZtCpDGBT9Q08l$39gkT*baEaS)L@{lb0(H!dKGmB%o4m2wD)c zuQdx6*8zNoyg`f4kcNCnP9zk+=;(ejr9FctApbiG%t5pV-d(HcNYZck=)G`UMj&ZD z3%&3;Qz9dAqt4jD4XTpv-b;VZ5}%3%5x_Bi?0pU{z|G)cXyybmuyqvDl8>+aDWi#hMj zr(v8f#JDSEyCH4B6YQ6$Wv+Z+)UsaF(RC|Q#|Z6&?x&1oAi^(Sr&(9&o`E$D=Ek6Y z!0KzQ9v#tA1y5N5VWs#eQ?uhhPmBQBYkqAx(1oCCHj&$MZM2mowAm>4s;A41Wy&#b z92AA9$$sBg;qroZ-)D-776aB#3G2t&4vd5?d6~GBsmNoDT;tdi^j5==+Q8TQ|MrlU z*_bN#epb>VqvNp=h_0xv6II`iVF}m~V$6dS61q!2aQDsE`$^pmfl(=+i4wXtVq(8W z3*Os5>`trt$=}l@zZwgfb6@vhTg>`%XFN8l5IpJ&P#pCju6Vh3w6{wk>8Pb;wOj5) zAN%i~vkpf*L;@9c1L0sKY*Ne&`W!FgbHB4^=92eKYj7WCxY z-Mqms;uK(syKuayv`YH3VlGsAS&xQ3Jd)yqz+#3d*hkQT%-w3gLm}eCy~AVpozO5^ zrdyKhgA`fq(h3ZLPT^ClKDS76<$vgIM~^L0%){c{F4yOtcguoiR2?7xpZ2lu;>|L2 zABZ^r`H5H6@Wj+B)~1ci(#9^h;Ym&5&m^|)fk98)vu2`KCiV$aHe$yAJVry0Eq$Pmc*-1###$Gvfsl1lB#08~x1-HgRou(ONqXhy#%@E27 zCSKI(7`VEo!n%Ic-TL%-gW3j12R*};fWy|lGl5S+rRssVU{jhZXtu8Kdo;9*yRkFC zY8D_E;E6uq86e$gUK@EzMdW`f;C%biqd%tmpJPB8U#O9hZ2YY`2>vsq<6FAl~ zRLg*LR*++PvD$vVa%qbMP3byUqv~~8@g%S?

y=J765%vYfaBm{9@GoCp2bxarbEUby{>)VUdr0+e8I@IFRL(-wR52-M z{rK^NS*y|(=CQ_q95{4)afRX(TFW)1E;o)b2^;rWpJyASfQ6pcs`_ESGnU z#q_KlE3GPYksKHn@j#npZti}-csTr`tH+U^{dp6Lzn2GgbfzDXsskxQ7^8Hp^+FL% z*p}uaP#3jo8MM@1w6>-+%(Ri7+V>SYXLXPc$(;m}QFaS| zak)SpRaHu~4Bh+5mLV)vo<62;^j5D2)<4-h??ej$dtkWxUE(IWePOtb=S6k9284oc9WPa75EAR>ZrPRW{ za)P79MzZnK5O1AT0Q-YRXWJrox3*@QZu{yA3S#wRGyd~?SRv6C&RcPQKC7}eqXrk( z*JQ{XQfag(Xo&JxmZo@XAn20kDOZGraTn#;41Zu>zU+0Ba+%e4TcYq`s2KI~vlHl- z@1zb(o6CuSbp;~1F_|XpKJTNvny5;{z4?t&=GCURCa8r2|96VScDmT0qu0rYRf!09 z@1}DaYg+z$NJZIlXMrmlaRvC$Wge&Y?h zWQetkXhU1H0@*h&`4+)rm|`*l1?*M;dvQ99nYKR0{aHjfv9{k55eM8zWCpZL0AZ2R zZJ2*F9k1NJn_sO^s4G008fY)+oZQyQkO0x;!8hSEzb)IWm1qc)%fZgFWKVRV<@-f# zrSz0Hy=sGR6|y4Md7=on;cEwA{-exK`67Ms(cr!P{Y33~9!MN%iM{n{yycENV|B_&=;51p9-(l$%f>RVV$acEKXX5vaVbY z6o~&Opv0hhV@5?HQaWW7|EU$J3imEY_|DE{S4e#G#4%8pk&*&Iz@72<7;Y<>!eMCp zxh-11xbo`3abJd;)o2_zXhu3}>S?%AXBfwV?mRKi^-?Oic$G})v!F*xN=iozcQ1YG zefvK{(5LncU;yNU#cb3Z?`n0uyK7&DJQTaIBByQBcwN28=h<0{P)1D>O3Gnm>=}R} zK*i@2mNX9!8w}Hp%@;Axs_0CfT(NSt3L?D+yT4r}@0s{^E?i|tTfMS9J?392z1$HO zMx2f?jP}KMe>sq=R6CF0rh{(vS+zsYPELh-u_34B*e3}6FulyOhUj!FKq?bETJdB_ zp!4?BdLy-+7BGk`3{1JNpE137@j{7a24WI~xw%xYUnsOw)=T=F;b3RweSQ=2C>5hQ z%HtA^6=mHxe6vpMM$qmbQwNzL0&ie2>?5+SJm^++p>`>E5+uZf(WTHf`dg!)LT71{ z|9aBIickf$6aRn+(}lTTZ6iMSTN~NR6AUTJKDcRBIZmdGl#WGQMqvBzxIkS4-o3az z&QR?=s~&Hi5s6jrTyGvvAbaWP1866QUsUhaU_2`PJ_aBujL&Z-o~JR@ltvPNjVvt? zgQ#a)tS}u&kYE&_S~&HA+B}%0EP3tSXt`Cw!{A{)?1>a{ye2zTPbzZeE)a8C+Qcjx zaA{rfm1GRo?ZXhGNBf($?Y1Z&>3>C0U>GAP4rqQ8t0Nv8Xbypc?Jf1P$8bVtbj9ub zX5mCb;2_!}S!MAM#mD<|34k1?zqyY>9YJdYgW$z3!fV&$3X|mJ(=LUwIygI*!)@uQ zppo|B)xp*RA{m{(nfr121@2>s3&?m+BL81^Eqqz!(zM=3F+(WL9> zRM}f}_Bka8>IU)%U9D+QW6$L6N~1_Nei^C$v^9o>-;S+sbE@A=tbSDlTF9E>ISIBiBV9 z@`@JK2N6FzY7Zh;y7M(BwX?J;JIdMQ*XbKRpc+Q#)FZWU%W{1&k;FDJ+x1}&GO%${ z4X}q5LX?k9A}cp<@%lr?>S9o3*G)#IFy!;rIbo{nOY_-O_zhF78Jyrg3hAMYEtG7l0r6| zN!h;-GA~lQJc!pmBjCI=+gQtQr-}trD@i8fWVLvCd!JY|4LJHQYP!5cJhGm-l>csB z^MuM}?VP*NL3iR4JR)88Z~9$u_AGh~0VgxduPK8b0=8=4Q}Lrh#rcs;lqiRnz`<*j znfpBQcm`1)j~AbX1}gP^)KUGt@_WI=rz?U`V(EIMA=*B+H&1l2CGcsLqmI^Ypv5Po znS+$24C07yAN$t};;Mm=^j$7i=l*KLo5#(HPASWWS>qpjWZsdUi;H0{%eIW?l>_(9 z0;Ep~C(rgmlm~->C8Z8QW*7T!y8PziL&>+~c)|f`@*lUo?FM69#`Pfs{s?O?aOmB5 z(~FF+AF$0-q*n-X;;I+I0_S_=7f$L<59?qe%FL<+{smYVQgZZ@hJcH9r$?Jzz#BLu zNuJ%4$q@9dMQ5J(tO8_7VuKmqy#h1|K5p#pu8vpj0+a%K1O-^dB0|~AF%9BF`FpsW zjCr93uDT&P`+s=`D$*zg;hnWLB(yPgZpX-U%)tAiy1m8SwgEL%gg{}s}>TGnT?)=h=$tGnCJpkSc2)l?e zU>I-m7?Dr2QXZs~b|gWZ`^UkrOEnBq`I_tv17f)#Cth_4p2rCV3EE&?;X+qCUlYa@ zDaTw-e){qmkDRFFE(XWurSmKqrxcV%{G09UCDnk~0I%|Ff zpn_*N!lx3Bk^m;+4^^;G4}E`oV;~hkK_~O`#+onZS65}v89~dVW7h|)4DaieBbc@< zM#}=S0?Wn~t`>pR03NpK>>#}#_Wg>}?TXyF$%BS$I|@0fBcE!O*-hLN2JemcgvPNX zs7h$2@*_e!iZ-oj6y1n@hbS+YnsE0+jJl$&(-W6m-@hCHg6rSHoI^S;m=VT(b}5}e zTYY46PPhLZ;o8m!8F5!lbaUu60I9k3TunD2HD%hkMr9mZ*PuXvVl+SO*I|xhj7;b;8pURD<)ex`?taFvrwtE%kNHh>rP9} zhpqn%6#~{aw-6Qh>4xxn;^8ES*nm&$2H3xR!fENxa53tqt&NT3?qhlwVL-ez04>Bq zxwhNB0S!?sCXj}#`%ObsH2=+wUpm9aE&glt(kEjdn;+WMC(EE>t`{1<8a*mRMW^n` zUDB_)D=m)eJTTjnEn+o_J<<3}93B2#zC5g!`0i<%40aO+g-28CaZNn^_<>@+$PFk0`%bor6 z?Tj$CV}`NuN;_rcak%R-*srDavZ18cuZ$)H&2F2s+B-*tJ~D87|}Eg78DFQkoDrst!%=Lx6`X=o_@WYPEndxH4Iv?#^sQb(sxsV7%wcD3(2rn+ria{fH)KVhzK z7;r7wPN^42RSjBaCJ`pE-Oj8Y76eCydph*qJLLGNGpMUJq$kU3r|8$6-gX0rIH@k~ zh?!75Nj1!AFqtH^rZ5(f$54JnF@?$AC3-fKj2Y4uP|9I&z5yPSj9^aG-9SsSl8Og@ zot#YY)r9LhS7iyF8@Iiw_wO5{K$?&xmx#?03vxbz#2<_fALaqG@2U3%h3UO#&qFCm z?yBU#Sw#gWzkW#)Q}h*&y z)W`PQw{KMLM-LMAy=xbhi0xN9U%I8ePr76Qf?dFf(~wJmO-Q^}#T@M}#1ySK8Kf0$ zFZNR%_bY;#D0L}t*gQ@32oQGTE|a$taDTzW-rm&}sO<{CDGZ9W&b!c#*;Uysi3}3aRv*fQ7;>S=lZ&1GeR~!~3bW2%-vl!j`+WbG@xn^d}8F;=40trliDkiqJv5|B>SvqWa{PiS@e9{FiDgYYT-A`QN zd%dUo1x}CH0qpb~f**=J(`otky~rw1+xTU>;MguVPLUigh} z3B3(NoPqEA%jJ`>=Io78@$2Og&VyWR9Ng}z-@J2Y=uuk=4+l#E zk6mj=N5|-B%t<({&xYI;QYtFhIS8?-=`X)C#F7?4i6uAw1dpMWA;cgLZ*v;)lp%d+}W){I=&scgr$ny zuqhx@a<}-0{)k80R=9-Yw3rmOnboawkE_*vlOMoXx|2_tK8}I9*X_9-D=u4x_y}-5 z0I=H=z;3oz$qOp2)uJQeRfrti+IY`MaVa~>}HpuZHCB-KJ50& zRWGJ*&`{#(1m<|A`MTcQU%m)Np+p)Y5j{S>blHTmnhQiNFwa6s^KbnF)jrNy_I=Xh z$`iTabk9F4E0*rALjbQFA2yOEUW>%;gc0iS;9#Te63#p5@e;FpL56Hm9{Z;!{b{hi zoZPiz-{ae|qngQ)X~v=2k$Eyly`M=^r2!~Vt~3`B5dmyY{*-P20lE@B9+}$c2v@_i z2Snl{CP&=HoWi(tDHyV&GJjjT>bh?Ah?bi67pXBrh__m?VLd@;Kyavj&(fvRalOgEmtoEVK&2DU%C40z69%9o0L_+YtM5c3bP9{!)& zp3Z*DfA$>x%SeHRwc!Z>e1S|HPowX>|JlhYEjz^cb+Tx#10BTuzJ}^Q)i=i4L@{7(sbuaTtI=fT+syZ7T&+3xmFO{a2s> z8F@TPsKrw^J-wkaRf>P5BrC4^g{#%0$uIyShq7=RB!vo(=w-P>zoJ0_2Vd*RxEkL@ zeQ$oAg$_e{?qNjSbBg_J`#ax*NA0+F#t;4GL$ek z`d=z)fS#~HmY*8*1wh)c(W=*0S?|^nVySSs0?h{1A*sBaTe&u%k3r&1ImV4#Rd-|| z3#$ZCo$awhm09~uClH(s$SXZ7P3OC3A3X~}Gk6MDS(?@1le)zaTKT6E@^nPk4kcTY zvq6sn)C9)+utNLz@naZMVVFw4Js<|J3d;feOZ8%Jig+lXJ}^j-En%tC*QjYigc@=t zvf+a~gz1r?f6T0!%C7K0gNV)v%~SfSZbfdLI#KNg+ZBRIo1 zjW3YOzfNFppf5~?QGNaCZ@x!fi+2>>lhKQxN{BXO*WD_>*VH!==s-h)iJDGa;6!nS z9Gszr8&fMQZqPyjKFH6ZVm@BUdF-2&1rJr~O*_ET0B7ee!#uZwmeU)B(eMlbMZ(3h z7OVvL|J=fYMv1XJh<}iKu^=iE5)uL;9==RwaRmhhG{{rjp(O(Vg63%LSqa+o#~y3 zu1coK1ZA+-WLUuW)%p4PPzKq1+SRZTx&}pXdTq~IL;<>%UG!hehKF{X>2g>SQUVrX zKzTLk+RAg}a>hu{6bUX}`T~$3T#+XyhgNz|@}}>#C6oU0q#81IUzka!V{8~suK!h;yFx-V)0_x2u-vM@>**2EsNYGPS5@bU32(J7aeaT#?}uvP&XOh5m7e}RONec2vZ-!enZtUfnj ztf0msmRrj-4}=d~$ha+~>Vy)R={5)+p9Wk3@q-~85SOT|V$eGhxprZXWzEOhy z;b~-((#6a0ysafj=KZW}heGI(BOK0nF{#Ek%GYlRfd_<3 zg-y6lGMwFa*ne9e^wWvav4tW2Y=dCt0dt{C`1e7O=%u-COLc1|>q#nWrv8AJHG=;I zYzi>RbY?7yue0EkBeckuKF)&xOod*tP_%Ua%^NH|;lQYX)aqmP<>S$~Fx@VRW=i2y*f8#ii-{rC_8mdT>D|%BHeOX-px>o;8;D}blKU@f0 z1CuN4HF-nnZp4$Gu$H&4jz7kUo8@ei;r^m=IeIOE`F``&LR5@FX;{1H(HS|6V3scp~Pbc9?c_Aag38J4gfp7%bWT zDCuV!3NpOp@e@Er%f?6WKTT_&7+PEutio)raDNCE(p-(wB%CZ*>cVE!d5bc&x2~j} z@X_H!u|aFtl*cO=Pq-&t>e;V=ei)xWIk5n2IexyrY${S|1qJu@7`txx?!}C4^9Nam zz>b$h>-%QidgK>~)9tcacqWNA^cVw$&UPanbQOYMafPSpAR2vlW|uhRE%!k7j!0Og ze!_MK9b_a9-Is5z*twZnock|MhLFPlT6^PtLP%{g(2E+CEymY;T9-FoZKV)ET^|Od zjGDVuk|m!3EW?ec=)JPEW?(+I`={|UuIJEyU}dzawig%ZQ98jaa#L2o${3El>i$j* zg1~~r+&Dv|fVt6i=M_b@)i@a(DCN;x${4a-0wecAqKb)LL?#6V;<6Flb?PByH&gBc zrb!`1BE~B1?z-P`@+pa%MrME<^5@!AJ!5lC|qxyxEYPg0$ZL!mPv1xVE)vor32O1;-nSl=o~U(bB#_NXUmm z!A!8$$-BDtDn9Q?B;sVK3y4{CYNJ@cd@%HKyk4K7Q-FKk3;UbW0BWC%WCg>k(vO9o+x&SZXvJd^=0#`>cH0%L4ALzn( z=nk&r$x2!N{dd$)^lZpLwG5zBF-~5Ik>)4S2Y0OOFo++^$Q4}Nr20`%Rm0@WDA=JN zLI8*Q#hQVy-Tqg0@(}`M!Tk-mjF#sX9)T=td#Q2gQSoqWK>BycZg{6E;@Eo;XXi+K z9UkD0lpY7@q7gIPFvozzp~6d#Ls5q?5M36WIFdbG?;>>wAHDkL83a zBszN*&M0fzP?OIa{~NIszWq~+T`C?;V=<`;$$$3L?U&}q^ug4jHc1i7Equt1VxQTtqq?2zgT{SCNX+>A%?wwnsDin9*^E(l~jx&%G zJw~O*>!?^|dBvmicplptct{Z8?n0S{Y!=Yh#X@@`CFOtS;|J=DYokIC<~N7OX>z^x z;RT6Hmm6vjglWsE3BsV3hCUg5U-_U>n!{;%#%F^Wzu)-HjKx{=ADTgvGwJXv02DVv zhJo#ote8P`uPDIvVf6JZ0|laDP+DO;M*;7LgLb@-|0E-K;e3}#BhD#UJD_5Z9==_z!U5Lih-%z>?pD^3%ck_ZNj( zk~_uTKQ8#SWMzzYBHIYa;^fB-G!v8=J{KGQI}_z0hkC<_GL(P-CoShN3I@^Z&)<~q zxd_AFuQSt%NvLtDTWP%A@GMK}(;JK`h*8z_PZ2_`VS`NbdhHrpa)v&~^OVMqJGNmU z;e&|{?y6ChdBCIs1IW3vvRdbUPx<5p!BFJJ;Fm{$Y5?WIE~MqGx&+&S{H1-SC3J!3 ziC5&rrJ8Gz`(bBM85INW-Hb~>XM&~}m=>ITMg^S1#7&MgWsow#+_cX173!HgOpz{f zsTTiyWG<@VXmBn|YlgPher0UGxQibeQF3J}i^SXgw|Q;n?;CgDu8rn1$xht5yyi7D zq{hG1CXcXCxN3K_w+=vH;Kz?;6a`=##))09mv)t%gzK$izP_UkKz%HzKoZ|WenNY#K`^)2& zmo_D3rlwE*_wUTae#7RSjUBLd_eSgCT>7Zan|t)twxb8q`dXkvJ3Tqh{ED9S%fmch z`o;e&pk39jV=BhVZbHCmh0`|E>P{3NXpwDeU2?p97b5}iJpdfq;hi{9M-G8$l4)#i zHn~?=CS_g$D8&i*_dWx;VpX#pVX;BU&0P-n(#93_*K?f|npn>gg>Vi(eu034Lc9HB zBnU659K7FmJefo+Cs5Cv9R{2ln3^PjqMGM__MTqW?u*<;;d6*0|zn zLh}CC)uzLq3b5qs4pN%j+}878>BSOnotk!RCahGWd?S8=aLGn8k(Hw5Y&U9=Q-cYLk(*_N=5gp~CZQlI@E$koisQg|52g--SqH+WaJaWUYFn7%&k zqyUBBNMj>Nu;s4gAbnj)-ZCc%kwF4QQyriU&?Sy^jbO@ikZ1*}FP7VC0xGAd|IHq7 zT4+B`afgR$GFz2(0$Z>&TQU-j8sTr#S5GSl{Vw1;SqsR;x3?G5E!GRJUr2d{uNrcS}$U#g3ET$%9Q1FR7o7llas_PW);ffgY9|=J=)U67EI?P zocWs1Nq&U9&5?TmVTpPhOs!n_tCv}}|2dcPs-m!?lL*MKs`OiKFwwKtY=s1e(a6L; zyiQ2?1g9DrY!QVbz|j;QfUNe5%YISt%tK0QCuisP@8)F{q-m(BJq3)sBwj(GaHO6C z8XG6*o+yHD@=q9*)@X{%F$gFHzH%=5$HmN{fIfOCdN7-A>lH8^3R>p zLG95Z13Zd)OwdRbGI8-2+}!(Y0zaW$3m|3pwnm@pjRzSf&cuhutWLk%N#lF(lu%7j z3S9(8aRt~!eHD2IR>A3t`>4R0?NDK> zp%g4D!6#gIyRrs{2ss_i4dwedMSEA9qdA4HyF2P~?ar&4*q0upDlSUP?}!U%V|V2s|N)~+1jBH+v40ugnKy5 zb2EFiGsQ)hl~dob(f+ywQ6IPAhguehP5JC8qEn4AjYR}p9ac`0iXv-4w*T@e`Kkz| z%3E8PHiZ*|gZ!gi0dnnwie_?Cc87j24_PnZH=5{flT{{y*hG1gsVZf5oC zS0hGIa;|Z@c6zgg4tezQrwdWww=XDMn`6X+!RK=lm+(dW%i>E zo-!I+7KPHjzZMq6J*ag$%LX9^B2>SO^gCn{xB%OM*j|5HWV@h%dx;UfgidXPNeGw^ z!BaFFjtOQ01kPjOhIA9NITQ>hAao_XaRW&W z95stYk~z#EmQbiNGFIT5IXT)#rC+5$C%B)88zkU|OpqMoPO^~Re~#5vjPa&WY8L6Y zfX#Q!HG)-#|G|SEF3Ga16#mCDd*_82J>%F6aAl(&zM}3r13aig{%Dpz^I%FVVm{p4 z>#lpJfUHbDAWY5Is@loUujO&tLUxH~v^G13qE&F)9jL`)WF8~>_mPDlmanD@^@R2o z`WR@~I${<&V;@0G0=`BD)D3`O>BN&F%QSMU3q7gop}_>W#pdwlYG0;e$rCFptAj{u zTu;F|A|Ur1k#&h2fiZ4aQ1pO@q9*Iu>?uENo`3}{NO9y_fbo+(MqY@ zD4iwxQux~jGN(_Ezr`p^4=-oNz%r7))I)V$w&kw|9&QagKY~A90M(?y*gsrr3RWyq zk4Btd{dvJKu|m(v{Y{!}z3_{;%FeYgPSJ25a_MsaiQK1E){&md-v$-eto3>uHw;@Y z_`y<)dlNerWq9_xH-dK;ja`bR~$ioA*6_YrSt4dbM}t2*Hm?5*t3?jb8!>;W7t7MO!NlJX)Hd&T~7heI+vg ze17_gDy8P*G{4K?$r=_d`zJ863aTI2`Z9ks zBp165KK#|eD|U<@{D9P`K;XX&3f16D6&QAq(GX#3%I#tIG4R)H+ydkoB)8o{wzgY7 zgqIrAMp_Lvskx)Y-|pJD%lB)3P62eF#DoAx>sOSpNLF9eR`3ExNT}V?5*tVF-S=v29DQ6g@>N@e8XwJ* zsC1dDi@gl)i9&1yIE(_vDlZEv3?y}4zkaa_8_?KC$+&kY*=WBGsQ;<&SEQzq5G+s^Ue=O^NaMji%3%g$>IKTt6HP@b;O0xhNK?Jo0;~v zc)Y!@*5DH9%HOp(*z6jz9M4n9vgP8~+Sr(tFL9TEhXjVu!A%S`iZ#Pmk*#b4#~Os% zr-zS0UTrd7SsMIAG&@Wz282%skh+N>dckvpX!7><#`sQwYD$p~+k?h{ye=pQI3o~g z{bYSyx6wr94(%K!yRY&0MMp=+o&ikPQFXWZTnu-U+#sJ`>|hGvp7`==E2GD#)LgxsM7!CL_eD#H zrB>B}qf^nwMwh_l5}SC-u0*{cgJglV8s}DYs(gv82ERN1LUZs1N>kJ57E=SfVZj%R z-HGRx2Ere@eEHK7Iy*nNw_c=K7IurT@?{j8<=^-OEY;Q;$jeItW(r~NAMYNhnhmq13=PMeEi>fq6?}=M@M8_=1^&VKySQmzVpwO zn{xTueBvR-s_?a&4Hu;rp0nnkagIhfn?sRK zor^&mnZ;XeZCx+iVRME*ql0x)q&rpe@~z*!7NkUKmsWe5#Zs7u!sPJkhR`DTkLwV z1-6=R)BGenZ5zAXjiTDs#uc_c4XIuHOQpKPuYA889r?3X3^VKVquFRWVh&48XYY#V z6hlW?xHOQ;&YhFoQ~*_}!p5fr0D3u_<&hgy?zbLVX+Ibta1|#cECq>Vosq1)H_qc0jf2qp|*h$l+TNOV%w z!cHt;+<>-*v9ph38Ez0vj@a@k3_%#W(dstFd{C2jLe2<==Bz9c(GJjVfJAH4V2{Aj z*^foTVbjMmDY?Jy)R00Ek2tKl+TV%|CqdY^nUH}vii_oowZX2^brK72U@%hs7SC2h|HZ>g;-yDaR!pNBz?tHZvuEy$8AD@u~_ePPYH=o??jU(r>d3$j# zU)itY9|TqY$%bT@tE#s1@I#pGrv;8Vj{c|*ltuXl1~ymq8J-vZ=Khqu@%*fO^7nm}vv(EQI+|z*&O1;?`4e&Zc3FdKTCYI{giNbEQv^xwx7*q&KHhJdSy{IW%`4+0es@8+F<^AI-6j zfBA)L79(+ub;Cvj$rMx=dTyECM|L^V`BJ3ia18iR7e+?o`PNJB>ODy-a=7Ap_&eqS zO@@mjmu={GdCd>=OLuqvL|IM$pdR+)V#H3b>A`lLy{q(+iZiQws@^~~m+53c6Q^h} z<4pM!bk&i!uaBc+pox?4+_`g&H)hlkM))^_63Pj+Yt5rL7Cz>BJU~73@p1fVCir3$ zN?IJRj(Xv=TUK7K%N;*BlR7y!@yM*ki#lT>)ngatAC#Ei4wjTzJJUl$$uK3+X;5BFZ`-YB-{Coq+F=J;+(8AAe zd)$-Ng;ojcpCne$sVO#d{#CGXb8)1!M>LQu@N(j(0(lxMaorb`UN6D_LwR$5>b-~a zZp8lXr1fZ7xKr3oW;TUa^EZ8o*bj=(tdLXhg`+EY}iu$~<2OIp7!Hwlq<1`1B z{ek{$5&z|-yDHg@|5Tmbk6-!-ubWZ|xW#gtAMEX2q2Sr7*`3G+H*YSw4%TRXf;2v8 zalo&ZJ14!~dN&_pNT|B{kE{YHG`}b^2o$T!A%Ks1@WlIFD({1?V4C&Imvh!Tdlhf- zaJ+G=u4(w);Yu%s{H}T1Q8L+86M6aS_VQ3qSC=f}f?}c&%<*%q>S*J<_J7`gyu&qM zYbQLzO&Tu zX3~ngeI*IS>43}X(5d4nzU_`mPaFuY8>Z#sN=%I0uNP7{ z9{N7c=R9p(s!?h)>E_&&sQ1v3&BN13=#@#i(_@FJk{< zwzkouVP`Z4VC(q_V~-^{$Nhup#-{A_{l&>)EUa^J;!htd$)vK+v0zTd8ymjsxzV7a z+=sCq>b_}?Q3r$;Ux4CVJK27v0F+aVYT0|#0apk&`#7s zux0=I%4MVMGAME}$x32`wNC7KS}-lq!4vLwEj6*#xuA z-@@Kr>Ikofm%iWW$JJ|ioW8y>yQ?xbH~c48iyYqn?*5NQQ&R(QacEVB$*hj$K&rXi zGalpa?e$+)2|VF9NsQXZo-Ba`p%o6`LHcW+CZq9DPW`lo#n pLzgjM!G}!D-#qAt2l93)1rOQVkL_BQC@{ZKTv+C5p3rm8{|7>hhams} literal 0 HcmV?d00001 diff --git a/readme-images/document-indexes-sample.png b/readme-images/document-indexes-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..4d17254eab39c10990b23d6a9cd909a0079317f9 GIT binary patch literal 9950 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 R_)i*0T0%j*O4Km$e*vvN2zvkk literal 0 HcmV?d00001 diff --git a/readme-images/lcov-report-sample.png b/readme-images/lcov-report-sample.png new file mode 100644 index 0000000000000000000000000000000000000000..610664a5aa806a4237777ab749afd5eda9a7c7c3 GIT binary patch literal 34465 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